/* static */ int DOM_CSSMatrix::scale(DOM_Object* this_object, ES_Value* argv, int argc, ES_Value* return_value, DOM_Runtime* origining_runtime) { DOM_THIS_OBJECT(matrix, DOM_TYPE_CSS_MATRIX, DOM_CSSMatrix); DOM_CHECK_ARGUMENTS("n|n"); float sx = static_cast<float>(argv[0].value.number); float sy; if (argc == 2) sy = static_cast<float>(argv[1].value.number); else sy = sx; AffineTransform tmp; tmp.LoadScale(sx, sy); AffineTransform transform = matrix->transform; transform.PostMultiply(tmp); DOM_CSSMatrix *result_matrix; if (OpStatus::IsMemoryError(DOM_CSSMatrix::Make(result_matrix, transform, matrix->style_declaration))) return ES_NO_MEMORY; DOMSetObject(return_value, result_matrix); return ES_VALUE; }