static v8::Handle<v8::Value> getItemCallback(const v8::Arguments& args) { INC_STATS("DOM.SVGPathSegList.getItem"); SVGPathSegList* imp = V8SVGPathSegList::toNative(args.Holder()); ExceptionCode ec = 0; { EXCEPTION_BLOCK(unsigned, index, toUInt32(args[0])); RefPtr<SVGPathSeg> result = imp->getItem(index, ec); if (UNLIKELY(ec)) goto fail; SVGElement* context = V8Proxy::svgContext(imp); V8Proxy::setSVGContext(result.get(), context); return toV8(result.release()); } fail: V8Proxy::setDOMException(ec); return v8::Handle<v8::Value>(); }
JSValue JSSVGPathSegList::getItem(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(); SVGPathSeg* obj = WTF::getPtr(list->getItem(index, ec)); SVGElement* context = JSSVGContextCache::svgContextForDOMObject(this); JSValue result = toJS(exec, globalObject(), obj, context); setDOMException(exec, ec); return result; }