static v8::Handle<v8::Value> getItemCallback(const v8::Arguments& args) { INC_STATS("DOM.SVGPointList.getItem"); SVGPointList* imp = V8SVGPointList::toNative(args.Holder()); ExceptionCode ec = 0; { EXCEPTION_BLOCK(unsigned, index, toUInt32(args[0])); SVGList<RefPtr<SVGPODListItem<FloatPoint> > >* listImp = imp; RefPtr<SVGPODListItem<FloatPoint> > result = listImp->getItem(index, ec); if (UNLIKELY(ec)) goto fail; RefPtr<V8SVGPODTypeWrapper<FloatPoint> > wrapper = V8SVGPODTypeWrapperCreatorForList<FloatPoint>::create(result, imp->associatedAttributeName()); SVGElement* context = V8Proxy::svgContext(imp); V8Proxy::setSVGContext(wrapper.get(), context); return toV8(wrapper.release()); } fail: V8Proxy::setDOMException(ec); return v8::Handle<v8::Value>(); }
JSValue* JSSVGTransformList::getItem(ExecState* exec, const List& args) { ExceptionCode ec = 0; bool indexOk; unsigned index = args[0]->toInt32(exec, indexOk); if (!indexOk) { setDOMException(exec, DOMException::TYPE_MISMATCH_ERR); return jsUndefined(); } SVGTransformList* imp = static_cast<SVGTransformList*>(impl()); SVGList<RefPtr<SVGPODListItem<SVGTransform> > >* listImp = imp; SVGPODListItem<SVGTransform>* listItem = listImp->getItem(index, ec).get(); JSSVGPODTypeWrapperCreatorForList<SVGTransform>* obj = new JSSVGPODTypeWrapperCreatorForList<SVGTransform>(listItem, imp->associatedAttributeName()); KJS::JSValue* result = toJS(exec, obj, m_context.get()); setDOMException(exec, ec); return result; }