static v8::Handle<v8::Value> removeItemCallback(const v8::Arguments& args) { INC_STATS("DOM.SVGPathSegList.removeItem"); SVGPathSegList* imp = V8SVGPathSegList::toNative(args.Holder()); ExceptionCode ec = 0; { EXCEPTION_BLOCK(unsigned, index, toUInt32(args[0])); RefPtr<SVGPathSeg> result = imp->removeItem(index, ec); if (UNLIKELY(ec)) goto fail; SVGElement* context = V8Proxy::svgContext(imp); V8Proxy::setSVGContext(result.get(), context); context->svgAttributeChanged(imp->associatedAttributeName()); return toV8(result.release()); } fail: V8Proxy::setDOMException(ec); return v8::Handle<v8::Value>(); }
JSValue JSSVGPathSegList::removeItem(ExecState* exec, const ArgList& args) { ExceptionCode ec = 0; bool indexOk; unsigned index = args.at(0).toInt32(exec, indexOk); if (!indexOk) { setDOMException(exec, TYPE_MISMATCH_ERR); return jsUndefined(); } SVGPathSegList* list = impl(); RefPtr<SVGPathSeg> obj(list->removeItem(index, ec)); SVGElement* context = JSSVGContextCache::svgContextForDOMObject(this); JSValue result = toJS(exec, globalObject(), obj.get(), context); setDOMException(exec, ec); JSSVGContextCache::propagateSVGDOMChange(this, list->associatedAttributeName()); return result; }