static void bAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) { INC_STATS("DOM.SVGMatrix.b._set"); SVGPropertyTearOff<SVGMatrix>* wrapper = V8SVGMatrix::toNative(info.Holder()); if (wrapper->role() == AnimValRole) { V8Proxy::setDOMException(NO_MODIFICATION_ALLOWED_ERR); return; } SVGMatrix& impInstance = wrapper->propertyReference(); SVGMatrix* imp = &impInstance; double v = static_cast<double>(value->NumberValue()); imp->setB(v); wrapper->commitChange(); return; }
v8::Handle<v8::Value> V8SVGLength::convertToSpecifiedUnitsCallback(const v8::Arguments& args) { INC_STATS("DOM.SVGLength.convertToSpecifiedUnits"); SVGPropertyTearOff<SVGLength>* wrapper = V8SVGLength::toNative(args.Holder()); if (wrapper->role() == AnimValRole) return V8Proxy::setDOMException(NO_MODIFICATION_ALLOWED_ERR, args.GetIsolate()); if (args.Length() < 1) return V8Proxy::throwNotEnoughArgumentsError(args.GetIsolate()); SVGLength& imp = wrapper->propertyReference(); ExceptionCode ec = 0; EXCEPTION_BLOCK(int, unitType, toUInt32(args[0])); SVGLengthContext lengthContext(wrapper->contextElement()); imp.convertToSpecifiedUnits(unitType, lengthContext, ec); if (UNLIKELY(ec)) return V8Proxy::setDOMException(ec, args.GetIsolate()); wrapper->commitChange(); return v8::Handle<v8::Value>(); }
void V8SVGLength::valueAccessorSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) { INC_STATS("DOM.SVGLength.value._set"); SVGPropertyTearOff<SVGLength>* wrapper = V8SVGLength::toNative(info.Holder()); if (wrapper->role() == AnimValRole) { V8Proxy::setDOMException(NO_MODIFICATION_ALLOWED_ERR); return; } if (!isUndefinedOrNull(value) && !value->IsNumber() && !value->IsBoolean()) { V8Proxy::throwTypeError(); return; } SVGLength& imp = wrapper->propertyReference(); ExceptionCode ec = 0; imp.setValue(static_cast<float>(value->NumberValue()), wrapper->contextElement(), ec); if (UNLIKELY(ec)) V8Proxy::setDOMException(ec); else wrapper->commitChange(); }