RefPtr<InjectedBundleNodeHandle> InjectedBundleNodeHandle::getOrCreate(JSContextRef, JSObjectRef object) { Node* node = JSNode::toWrapped(toJS(object)); return getOrCreate(node); }
JSValue* JSSVGFEFloodElement::getValueProperty(ExecState* exec, int token) const { switch (token) { case In1AttrNum: { SVGFEFloodElement* imp = static_cast<SVGFEFloodElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedString> obj = imp->in1Animated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedString>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedString>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedString>(obj.get(), imp); } } return toJS(exec, obj.get()); } case XAttrNum: { SVGFEFloodElement* imp = static_cast<SVGFEFloodElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedLength> obj = imp->xAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedLength>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedLength>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedLength>(obj.get(), imp); } } return toJS(exec, obj.get()); } case YAttrNum: { SVGFEFloodElement* imp = static_cast<SVGFEFloodElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedLength> obj = imp->yAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedLength>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedLength>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedLength>(obj.get(), imp); } } return toJS(exec, obj.get()); } case WidthAttrNum: { SVGFEFloodElement* imp = static_cast<SVGFEFloodElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedLength> obj = imp->widthAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedLength>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedLength>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedLength>(obj.get(), imp); } } return toJS(exec, obj.get()); } case HeightAttrNum: { SVGFEFloodElement* imp = static_cast<SVGFEFloodElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedLength> obj = imp->heightAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedLength>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedLength>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedLength>(obj.get(), imp); } } return toJS(exec, obj.get()); } case ResultAttrNum: { SVGFEFloodElement* imp = static_cast<SVGFEFloodElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedString> obj = imp->resultAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedString>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedString>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedString>(obj.get(), imp); } } return toJS(exec, obj.get()); } case ClassNameAttrNum: { SVGFEFloodElement* imp = static_cast<SVGFEFloodElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedString> obj = imp->classNameAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedString>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedString>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedString>(obj.get(), imp); } } return toJS(exec, obj.get()); } case StyleAttrNum: { SVGFEFloodElement* imp = static_cast<SVGFEFloodElement*>(impl()); return toJS(exec, WTF::getPtr(imp->style())); } } return 0; }
JSRetainPtr<JSStringRef> LayoutTestController::pageSizeAndMarginsInPixels(int pageIndex, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft) { WKBundleFrameRef mainFrame = WKBundlePageGetMainFrame(InjectedBundle::shared().page()->page()); return toJS(WKBundlePageSizeAndMarginsInPixels(InjectedBundle::shared().bundle(), mainFrame, pageIndex, width, height, marginTop, marginRight, marginBottom, marginLeft)); }
EncodedJSValue JSNodeList::indexGetter(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue, unsigned index) { JSNodeList* thisObj = jsCast<JSNodeList*>(JSValue::decode(slotBase)); ASSERT_GC_OBJECT_INHERITS(thisObj, info()); return JSValue::encode(toJS(exec, thisObj->globalObject(), thisObj->impl().item(index))); }
JSValue JSNamedNodeMap::nameGetter(ExecState* exec, const Identifier& propertyName, const PropertySlot& slot) { JSNamedNodeMap* thisObj = static_cast<JSNamedNodeMap*>(asObject(slot.slotBase())); return toJS(exec, thisObj->impl()->getNamedItem(propertyName)); }
JSValue* JSNodeList::nameGetter(ExecState* exec, const Identifier& propertyName, const PropertySlot& slot) { JSNodeList* thisObj = static_cast<JSNodeList*>(slot.slotBase()); return toJS(exec, thisObj->impl()->itemWithName(propertyName)); }
void JSDOMWindowBase::updateDocument() { ASSERT(m_impl->document()); ExecState* exec = globalExec(); symbolTablePutWithAttributes(exec->globalData(), Identifier(exec, "document"), toJS(exec, this, m_impl->document()), DontDelete | ReadOnly); }
JSValue* JSSVGTransformListPrototypeFunction::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args) { if (!thisObj->inherits(&JSSVGTransformList::info)) return throwError(exec, TypeError); SVGTransformList* imp = static_cast<SVGTransformList*>(static_cast<JSSVGTransformList*>(thisObj)->impl()); switch (id) { case JSSVGTransformList::ClearFuncNum: { ExceptionCode ec = 0; imp->clear(ec); setDOMException(exec, ec); return jsUndefined(); } case JSSVGTransformList::InitializeFuncNum: { ExceptionCode ec = 0; SVGTransform item = toSVGTransform(args[0]); KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<SVGTransform>(imp->initialize(item, ec))); setDOMException(exec, ec); return result; } case JSSVGTransformList::GetItemFuncNum: { ExceptionCode ec = 0; bool indexOk; unsigned index = args[0]->toInt32(exec, indexOk); if (!indexOk) { setDOMException(exec, TYPE_MISMATCH_ERR); return jsUndefined(); } KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<SVGTransform>(imp->getItem(index, ec))); setDOMException(exec, ec); return result; } case JSSVGTransformList::InsertItemBeforeFuncNum: { ExceptionCode ec = 0; SVGTransform item = toSVGTransform(args[0]); bool indexOk; unsigned index = args[1]->toInt32(exec, indexOk); if (!indexOk) { setDOMException(exec, TYPE_MISMATCH_ERR); return jsUndefined(); } KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<SVGTransform>(imp->insertItemBefore(item, index, ec))); setDOMException(exec, ec); return result; } case JSSVGTransformList::ReplaceItemFuncNum: { ExceptionCode ec = 0; SVGTransform item = toSVGTransform(args[0]); bool indexOk; unsigned index = args[1]->toInt32(exec, indexOk); if (!indexOk) { setDOMException(exec, TYPE_MISMATCH_ERR); return jsUndefined(); } KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<SVGTransform>(imp->replaceItem(item, index, ec))); setDOMException(exec, ec); return result; } case JSSVGTransformList::RemoveItemFuncNum: { ExceptionCode ec = 0; bool indexOk; unsigned index = args[0]->toInt32(exec, indexOk); if (!indexOk) { setDOMException(exec, TYPE_MISMATCH_ERR); return jsUndefined(); } KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<SVGTransform>(imp->removeItem(index, ec))); setDOMException(exec, ec); return result; } case JSSVGTransformList::AppendItemFuncNum: { ExceptionCode ec = 0; SVGTransform item = toSVGTransform(args[0]); KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<SVGTransform>(imp->appendItem(item, ec))); setDOMException(exec, ec); return result; } case JSSVGTransformList::CreateSVGTransformFromMatrixFuncNum: { AffineTransform matrix = toSVGMatrix(args[0]); KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<SVGTransform>(imp->createSVGTransformFromMatrix(matrix))); return result; } case JSSVGTransformList::ConsolidateFuncNum: { KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<SVGTransform>(imp->consolidate())); return result; } } return 0; }
JSValue* JSSVGFilterElement::getValueProperty(ExecState* exec, int token) const { switch (token) { case FilterUnitsAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedEnumeration> obj = imp->filterUnitsAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedEnumeration>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedEnumeration>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedEnumeration>(obj.get(), imp); } } return toJS(exec, obj.get()); } case PrimitiveUnitsAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedEnumeration> obj = imp->primitiveUnitsAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedEnumeration>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedEnumeration>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedEnumeration>(obj.get(), imp); } } return toJS(exec, obj.get()); } case XAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedLength> obj = imp->xAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedLength>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedLength>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedLength>(obj.get(), imp); } } return toJS(exec, obj.get()); } case YAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedLength> obj = imp->yAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedLength>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedLength>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedLength>(obj.get(), imp); } } return toJS(exec, obj.get()); } case WidthAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedLength> obj = imp->widthAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedLength>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedLength>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedLength>(obj.get(), imp); } } return toJS(exec, obj.get()); } case HeightAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedLength> obj = imp->heightAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedLength>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedLength>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedLength>(obj.get(), imp); } } return toJS(exec, obj.get()); } case FilterResXAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedInteger> obj = imp->filterResXAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedInteger>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedInteger>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedInteger>(obj.get(), imp); } } return toJS(exec, obj.get()); } case FilterResYAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedInteger> obj = imp->filterResYAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedInteger>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedInteger>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedInteger>(obj.get(), imp); } } return toJS(exec, obj.get()); } case HrefAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedString> obj = imp->hrefAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedString>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedString>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedString>(obj.get(), imp); } } return toJS(exec, obj.get()); } case XmllangAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); return jsString(imp->xmllang()); } case XmlspaceAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); return jsString(imp->xmlspace()); } case ExternalResourcesRequiredAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedBoolean> obj = imp->externalResourcesRequiredAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedBoolean>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedBoolean>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedBoolean>(obj.get(), imp); } } return toJS(exec, obj.get()); } case ClassNameAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedString> obj = imp->classNameAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedString>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedString>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedString>(obj.get(), imp); } } return toJS(exec, obj.get()); } case StyleAttrNum: { SVGFilterElement* imp = static_cast<SVGFilterElement*>(impl()); return toJS(exec, WTF::getPtr(imp->style())); } } return 0; }
JSValue* JSSVGPathElementPrototypeFunction::callAsFunction(ExecState* exec, JSObject* thisObj, const List& args) { if (!thisObj->inherits(&JSSVGPathElement::info)) return throwError(exec, TypeError); SVGPathElement* imp = static_cast<SVGPathElement*>(static_cast<JSSVGPathElement*>(thisObj)->impl()); switch (id) { case JSSVGPathElement::GetTotalLengthFuncNum: { KJS::JSValue* result = jsNumber(imp->getTotalLength()); return result; } case JSSVGPathElement::GetPointAtLengthFuncNum: { float distance = args[0]->toFloat(exec); KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<FloatPoint>(imp->getPointAtLength(distance))); return result; } case JSSVGPathElement::GetPathSegAtLengthFuncNum: { float distance = args[0]->toFloat(exec); KJS::JSValue* result = jsNumber(imp->getPathSegAtLength(distance)); return result; } case JSSVGPathElement::CreateSVGPathSegClosePathFuncNum: { KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegClosePath())); return result; } case JSSVGPathElement::CreateSVGPathSegMovetoAbsFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegMovetoAbs(x, y))); return result; } case JSSVGPathElement::CreateSVGPathSegMovetoRelFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegMovetoRel(x, y))); return result; } case JSSVGPathElement::CreateSVGPathSegLinetoAbsFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegLinetoAbs(x, y))); return result; } case JSSVGPathElement::CreateSVGPathSegLinetoRelFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegLinetoRel(x, y))); return result; } case JSSVGPathElement::CreateSVGPathSegCurvetoCubicAbsFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); float x1 = args[2]->toFloat(exec); float y1 = args[3]->toFloat(exec); float x2 = args[4]->toFloat(exec); float y2 = args[5]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2))); return result; } case JSSVGPathElement::CreateSVGPathSegCurvetoCubicRelFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); float x1 = args[2]->toFloat(exec); float y1 = args[3]->toFloat(exec); float x2 = args[4]->toFloat(exec); float y2 = args[5]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegCurvetoCubicRel(x, y, x1, y1, x2, y2))); return result; } case JSSVGPathElement::CreateSVGPathSegCurvetoQuadraticAbsFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); float x1 = args[2]->toFloat(exec); float y1 = args[3]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegCurvetoQuadraticAbs(x, y, x1, y1))); return result; } case JSSVGPathElement::CreateSVGPathSegCurvetoQuadraticRelFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); float x1 = args[2]->toFloat(exec); float y1 = args[3]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegCurvetoQuadraticRel(x, y, x1, y1))); return result; } case JSSVGPathElement::CreateSVGPathSegArcAbsFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); float r1 = args[2]->toFloat(exec); float r2 = args[3]->toFloat(exec); float angle = args[4]->toFloat(exec); bool largeArcFlag = args[5]->toBoolean(exec); bool sweepFlag = args[6]->toBoolean(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegArcAbs(x, y, r1, r2, angle, largeArcFlag, sweepFlag))); return result; } case JSSVGPathElement::CreateSVGPathSegArcRelFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); float r1 = args[2]->toFloat(exec); float r2 = args[3]->toFloat(exec); float angle = args[4]->toFloat(exec); bool largeArcFlag = args[5]->toBoolean(exec); bool sweepFlag = args[6]->toBoolean(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegArcRel(x, y, r1, r2, angle, largeArcFlag, sweepFlag))); return result; } case JSSVGPathElement::CreateSVGPathSegLinetoHorizontalAbsFuncNum: { float x = args[0]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegLinetoHorizontalAbs(x))); return result; } case JSSVGPathElement::CreateSVGPathSegLinetoHorizontalRelFuncNum: { float x = args[0]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegLinetoHorizontalRel(x))); return result; } case JSSVGPathElement::CreateSVGPathSegLinetoVerticalAbsFuncNum: { float y = args[0]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegLinetoVerticalAbs(y))); return result; } case JSSVGPathElement::CreateSVGPathSegLinetoVerticalRelFuncNum: { float y = args[0]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegLinetoVerticalRel(y))); return result; } case JSSVGPathElement::CreateSVGPathSegCurvetoCubicSmoothAbsFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); float x2 = args[2]->toFloat(exec); float y2 = args[3]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegCurvetoCubicSmoothAbs(x, y, x2, y2))); return result; } case JSSVGPathElement::CreateSVGPathSegCurvetoCubicSmoothRelFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); float x2 = args[2]->toFloat(exec); float y2 = args[3]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegCurvetoCubicSmoothRel(x, y, x2, y2))); return result; } case JSSVGPathElement::CreateSVGPathSegCurvetoQuadraticSmoothAbsFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegCurvetoQuadraticSmoothAbs(x, y))); return result; } case JSSVGPathElement::CreateSVGPathSegCurvetoQuadraticSmoothRelFuncNum: { float x = args[0]->toFloat(exec); float y = args[1]->toFloat(exec); KJS::JSValue* result = toJS(exec, WTF::getPtr(imp->createSVGPathSegCurvetoQuadraticSmoothRel(x, y))); return result; } case JSSVGPathElement::HasExtensionFuncNum: { String extension = args[0]->toString(exec); KJS::JSValue* result = jsBoolean(imp->hasExtension(extension)); return result; } case JSSVGPathElement::GetBBoxFuncNum: { KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<FloatRect>(imp->getBBox())); return result; } case JSSVGPathElement::GetCTMFuncNum: { KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<AffineTransform>(imp->getCTM())); return result; } case JSSVGPathElement::GetScreenCTMFuncNum: { KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<AffineTransform>(imp->getScreenCTM())); return result; } case JSSVGPathElement::GetTransformToElementFuncNum: { ExceptionCode ec = 0; SVGElement* element = toSVGElement(args[0]); KJS::JSValue* result = toJS(exec, new JSSVGPODTypeWrapper<AffineTransform>(imp->getTransformToElement(element, ec))); setDOMException(exec, ec); return result; } } return 0; }
void JSDOMWindowBase::updateDocument() { ASSERT(m_impl->document()); ExecState* exec = globalExec(); symbolTablePutWithAttributes(this, exec->vm(), exec->vm().propertyNames->document, toJS(exec, this, m_impl->document()), DontDelete | ReadOnly); }
KJS::JSValue* JSNodeList::nameGetter(KJS::ExecState* exec, KJS::JSObject* originalObject, const KJS::Identifier& propertyName, const KJS::PropertySlot& slot) { JSNodeList* thisObj = static_cast<JSNodeList*>(slot.slotBase()); return toJS(exec, thisObj->impl()->itemWithName(propertyName)); }
JSValue jsHTMLIFrameElementContentDocument(ExecState* exec, JSValue slotBase, const Identifier&) { JSHTMLIFrameElement* castedThis = static_cast<JSHTMLIFrameElement*>(asObject(slotBase)); HTMLIFrameElement* imp = static_cast<HTMLIFrameElement*>(castedThis->impl()); return checkNodeSecurity(exec, imp->contentDocument()) ? toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->contentDocument())) : jsUndefined(); }
static JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, WebGLExtension* extension) { if (!extension) return jsNull(); switch (extension->getName()) { case WebGLExtension::WebGLLoseContextName: return toJS(exec, globalObject, static_cast<WebGLLoseContext*>(extension)); case WebGLExtension::EXTDrawBuffersName: return toJS(exec, globalObject, static_cast<EXTDrawBuffers*>(extension)); case WebGLExtension::EXTTextureFilterAnisotropicName: return toJS(exec, globalObject, static_cast<EXTTextureFilterAnisotropic*>(extension)); case WebGLExtension::OESStandardDerivativesName: return toJS(exec, globalObject, static_cast<OESStandardDerivatives*>(extension)); case WebGLExtension::OESTextureFloatName: return toJS(exec, globalObject, static_cast<OESTextureFloat*>(extension)); case WebGLExtension::OESTextureHalfFloatName: return toJS(exec, globalObject, static_cast<OESTextureHalfFloat*>(extension)); case WebGLExtension::OESVertexArrayObjectName: return toJS(exec, globalObject, static_cast<OESVertexArrayObject*>(extension)); case WebGLExtension::OESElementIndexUintName: return toJS(exec, globalObject, static_cast<OESElementIndexUint*>(extension)); case WebGLExtension::WebGLDebugRendererInfoName: return toJS(exec, globalObject, static_cast<WebGLDebugRendererInfo*>(extension)); case WebGLExtension::WebGLDebugShadersName: return toJS(exec, globalObject, static_cast<WebGLDebugShaders*>(extension)); case WebGLExtension::WebGLCompressedTextureATCName: return toJS(exec, globalObject, static_cast<WebGLCompressedTextureATC*>(extension)); case WebGLExtension::WebGLCompressedTextureS3TCName: return toJS(exec, globalObject, static_cast<WebGLCompressedTextureS3TC*>(extension)); case WebGLExtension::WebGLDepthTextureName: return toJS(exec, globalObject, static_cast<WebGLDepthTexture*>(extension)); } ASSERT_NOT_REACHED(); return jsNull(); }
JSObject* JSLazyEventListener::initializeJSFunction(ScriptExecutionContext* executionContext) const { ASSERT(is<Document>(executionContext)); if (!executionContext) return nullptr; ASSERT(!m_code.isNull()); ASSERT(!m_eventParameterName.isNull()); if (m_code.isNull() || m_eventParameterName.isNull()) return nullptr; Document& document = downcast<Document>(*executionContext); if (!document.frame()) return nullptr; if (!document.contentSecurityPolicy()->allowInlineEventHandlers(m_sourceURL, m_sourcePosition.m_line)) return nullptr; ScriptController& script = document.frame()->script(); if (!script.canExecuteScripts(AboutToExecuteScript) || script.isPaused()) return nullptr; JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(executionContext, isolatedWorld()); if (!globalObject) return nullptr; VM& vm = globalObject->vm(); JSLockHolder lock(vm); auto scope = DECLARE_CATCH_SCOPE(vm); ExecState* exec = globalObject->globalExec(); MarkedArgumentBuffer args; args.append(jsNontrivialString(exec, m_eventParameterName)); args.append(jsStringWithCache(exec, m_code)); // We want all errors to refer back to the line on which our attribute was // declared, regardless of any newlines in our JavaScript source text. int overrideLineNumber = m_sourcePosition.m_line.oneBasedInt(); JSObject* jsFunction = constructFunctionSkippingEvalEnabledCheck( exec, exec->lexicalGlobalObject(), args, Identifier::fromString(exec, m_functionName), m_sourceURL, m_sourcePosition, overrideLineNumber); if (UNLIKELY(scope.exception())) { reportCurrentException(exec); scope.clearException(); return nullptr; } JSFunction* listenerAsFunction = jsCast<JSFunction*>(jsFunction); if (m_originalNode) { if (!wrapper()) { // Ensure that 'node' has a JavaScript wrapper to mark the event listener we're creating. // FIXME: Should pass the global object associated with the node setWrapper(vm, asObject(toJS(exec, globalObject, *m_originalNode))); } // Add the event's home element to the scope // (and the document, and the form - see JSHTMLElement::eventHandlerScope) listenerAsFunction->setScope(vm, jsCast<JSNode*>(wrapper())->pushEventHandlerScope(exec, listenerAsFunction->scope())); } return jsFunction; }
JSValue JSHTMLCollection::indexGetter(ExecState* exec, JSValue slotBase, unsigned index) { JSHTMLCollection* thisObj = static_cast<JSHTMLCollection*>(asObject(slotBase)); ASSERT_GC_OBJECT_INHERITS(thisObj, &s_info); return toJS(exec, thisObj->globalObject(), static_cast<HTMLCollection*>(thisObj->impl())->item(index)); }
static JSObject* construct(ExecState* exec, JSObject*, const ArgList&) { return static_cast<JSObject*>(toJS(exec, XMLSerializer::create())); }
JSValue toJS(ExecState* exec, JSDOMGlobalObject*, WorkerGlobalScope* workerGlobalScope) { return toJS(exec, workerGlobalScope); }
// JSDOMGlobalObject* is ignored, accessing a window in any context will // use that DOMWindow's prototype chain. JSValue toJS(ExecState* exec, JSDOMGlobalObject*, DOMWindow* domWindow) { return toJS(exec, domWindow); }
void JSEventListener::handleEvent(ScriptExecutionContext* scriptExecutionContext, Event* event) { ASSERT(scriptExecutionContext); if (!scriptExecutionContext || scriptExecutionContext->isJSExecutionForbidden()) return; VM& vm = scriptExecutionContext->vm(); JSLockHolder lock(vm); auto scope = DECLARE_CATCH_SCOPE(vm); // See https://dom.spec.whatwg.org/#dispatching-events spec on calling handleEvent. // "If this throws an exception, report the exception." It should not propagate the // exception. JSObject* jsFunction = this->jsFunction(scriptExecutionContext); if (!jsFunction) return; JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(scriptExecutionContext, *m_isolatedWorld); if (!globalObject) return; if (scriptExecutionContext->isDocument()) { JSDOMWindow* window = jsCast<JSDOMWindow*>(globalObject); if (!window->wrapped().isCurrentlyDisplayedInFrame()) return; if (wasCreatedFromMarkup() && !scriptExecutionContext->contentSecurityPolicy()->allowInlineEventHandlers(sourceURL(), sourcePosition().m_line)) return; // FIXME: Is this check needed for other contexts? ScriptController& script = window->wrapped().frame()->script(); if (!script.canExecuteScripts(AboutToExecuteScript) || script.isPaused()) return; } ExecState* exec = globalObject->globalExec(); JSValue handleEventFunction = jsFunction; CallData callData; CallType callType = getCallData(handleEventFunction, callData); // If jsFunction is not actually a function, see if it implements the EventListener interface and use that if (callType == CallType::None) { handleEventFunction = jsFunction->get(exec, Identifier::fromString(exec, "handleEvent")); if (UNLIKELY(scope.exception())) { auto* exception = scope.exception(); scope.clearException(); event->target()->uncaughtExceptionInEventHandler(); reportException(exec, exception); return; } callType = getCallData(handleEventFunction, callData); } if (callType != CallType::None) { Ref<JSEventListener> protectedThis(*this); MarkedArgumentBuffer args; args.append(toJS(exec, globalObject, event)); Event* savedEvent = globalObject->currentEvent(); globalObject->setCurrentEvent(event); VMEntryScope entryScope(vm, vm.entryScope ? vm.entryScope->globalObject() : globalObject); InspectorInstrumentationCookie cookie = JSMainThreadExecState::instrumentFunctionCall(scriptExecutionContext, callType, callData); JSValue thisValue = handleEventFunction == jsFunction ? toJS(exec, globalObject, event->currentTarget()) : jsFunction; NakedPtr<JSC::Exception> exception; JSValue retval = scriptExecutionContext->isDocument() ? JSMainThreadExecState::profiledCall(exec, JSC::ProfilingReason::Other, handleEventFunction, callType, callData, thisValue, args, exception) : JSC::profiledCall(exec, JSC::ProfilingReason::Other, handleEventFunction, callType, callData, thisValue, args, exception); InspectorInstrumentation::didCallFunction(cookie, scriptExecutionContext); globalObject->setCurrentEvent(savedEvent); if (is<WorkerGlobalScope>(*scriptExecutionContext)) { auto scriptController = downcast<WorkerGlobalScope>(*scriptExecutionContext).script(); bool terminatorCausedException = (scope.exception() && isTerminatedExecutionException(scope.exception())); if (terminatorCausedException || scriptController->isTerminatingExecution()) scriptController->forbidExecution(); } if (exception) { event->target()->uncaughtExceptionInEventHandler(); reportException(exec, exception); } else { if (!retval.isUndefinedOrNull() && is<BeforeUnloadEvent>(*event)) downcast<BeforeUnloadEvent>(*event).setReturnValue(retval.toWTFString(exec)); if (m_isAttribute) { if (retval.isFalse()) event->preventDefault(); } } } }
EncodedJSValue JSC_HOST_CALL JSTestNodeConstructor::constructJSTestNode(ExecState* exec) { JSTestNodeConstructor* castedThis = jsCast<JSTestNodeConstructor*>(exec->callee()); RefPtr<TestNode> object = TestNode::create(); return JSValue::encode(asObject(toJS(exec, castedThis->globalObject(), object.get()))); }
void JSEventListener::handleEvent(ScriptExecutionContext* scriptExecutionContext, Event* event) { ASSERT(scriptExecutionContext); if (!scriptExecutionContext || scriptExecutionContext->isJSExecutionForbidden()) return; JSLock lock(SilenceAssertionsOnly); JSObject* jsFunction = this->jsFunction(scriptExecutionContext); if (!jsFunction) return; JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(scriptExecutionContext, m_isolatedWorld.get()); if (!globalObject) return; if (scriptExecutionContext->isDocument()) { JSDOMWindow* window = static_cast<JSDOMWindow*>(globalObject); Frame* frame = window->impl()->frame(); if (!frame) return; // The window must still be active in its frame. See <https://bugs.webkit.org/show_bug.cgi?id=21921>. // FIXME: A better fix for this may be to change DOMWindow::frame() to not return a frame the detached window used to be in. if (frame->domWindow() != window->impl()) return; // FIXME: Is this check needed for other contexts? ScriptController* script = frame->script(); if (!script->canExecuteScripts(AboutToExecuteScript) || script->isPaused()) return; } ExecState* exec = globalObject->globalExec(); JSValue handleEventFunction = jsFunction; CallData callData; CallType callType = getCallData(handleEventFunction, callData); // If jsFunction is not actually a function, see if it implements the EventListener interface and use that if (callType == CallTypeNone) { handleEventFunction = jsFunction->get(exec, Identifier(exec, "handleEvent")); callType = getCallData(handleEventFunction, callData); } if (callType != CallTypeNone) { RefPtr<JSEventListener> protect(this); MarkedArgumentBuffer args; args.append(toJS(exec, globalObject, event)); Event* savedEvent = globalObject->currentEvent(); globalObject->setCurrentEvent(event); JSGlobalData& globalData = globalObject->globalData(); DynamicGlobalObjectScope globalObjectScope(globalData, globalData.dynamicGlobalObject ? globalData.dynamicGlobalObject : globalObject); globalData.timeoutChecker.start(); JSValue thisValue = handleEventFunction == jsFunction ? toJS(exec, globalObject, event->currentTarget()) : jsFunction; JSValue retval = scriptExecutionContext->isDocument() ? JSMainThreadExecState::call(exec, handleEventFunction, callType, callData, thisValue, args) : JSC::call(exec, handleEventFunction, callType, callData, thisValue, args); globalData.timeoutChecker.stop(); globalObject->setCurrentEvent(savedEvent); #if ENABLE(WORKERS) if (scriptExecutionContext->isWorkerContext()) { bool terminatorCausedException = (exec->hadException() && isTerminatedExecutionException(exec->exception())); if (terminatorCausedException || globalData.terminator.shouldTerminate()) static_cast<WorkerContext*>(scriptExecutionContext)->script()->forbidExecution(); } #endif if (exec->hadException()) { event->target()->uncaughtExceptionInEventHandler(); reportCurrentException(exec); } else { if (!retval.isUndefinedOrNull() && event->storesResultAsString()) event->storeResult(ustringToString(retval.toString(exec)->value(exec))); if (m_isAttribute) { if (retval.isFalse()) event->preventDefault(); } } } }
JSValue* JSSVGCircleElement::getValueProperty(ExecState* exec, int token) const { switch (token) { case CxAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedLength> obj = imp->cxAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedLength>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedLength>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedLength>(obj.get(), imp); } } return toJS(exec, obj.get()); } case CyAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedLength> obj = imp->cyAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedLength>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedLength>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedLength>(obj.get(), imp); } } return toJS(exec, obj.get()); } case RAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedLength> obj = imp->rAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedLength>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedLength>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedLength>(obj.get(), imp); } } return toJS(exec, obj.get()); } case RequiredFeaturesAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); return toJS(exec, WTF::getPtr(imp->requiredFeatures())); } case RequiredExtensionsAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); return toJS(exec, WTF::getPtr(imp->requiredExtensions())); } case SystemLanguageAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); return toJS(exec, WTF::getPtr(imp->systemLanguage())); } case XmllangAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); return jsString(imp->xmllang()); } case XmlspaceAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); return jsString(imp->xmlspace()); } case ExternalResourcesRequiredAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedBoolean> obj = imp->externalResourcesRequiredAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedBoolean>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedBoolean>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedBoolean>(obj.get(), imp); } } return toJS(exec, obj.get()); } case ClassNameAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedString> obj = imp->classNameAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedString>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedString>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedString>(obj.get(), imp); } } return toJS(exec, obj.get()); } case StyleAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); return toJS(exec, WTF::getPtr(imp->style())); } case TransformAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); ASSERT(exec && exec->dynamicInterpreter()); RefPtr<SVGAnimatedTransformList> obj = imp->transformAnimated(); Frame* activeFrame = static_cast<ScriptInterpreter*>(exec->dynamicInterpreter())->frame(); if (activeFrame) { SVGDocumentExtensions* extensions = (activeFrame->document() ? activeFrame->document()->accessSVGExtensions() : 0); if (extensions) { if (extensions->hasGenericContext<SVGAnimatedTransformList>(obj.get())) ASSERT(extensions->genericContext<SVGAnimatedTransformList>(obj.get()) == imp); else extensions->setGenericContext<SVGAnimatedTransformList>(obj.get(), imp); } } return toJS(exec, obj.get()); } case NearestViewportElementAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); return toJS(exec, WTF::getPtr(imp->nearestViewportElement())); } case FarthestViewportElementAttrNum: { SVGCircleElement* imp = static_cast<SVGCircleElement*>(impl()); return toJS(exec, WTF::getPtr(imp->farthestViewportElement())); } } return 0; }
EncodedJSValue JSC_HOST_CALL JSXMLSerializerConstructor::constructJSXMLSerializer(ExecState* exec) { return JSValue::encode(asObject(toJS(exec, static_cast<JSXMLSerializerConstructor*>(exec->callee())->globalObject(), XMLSerializer::create()))); }
JSValue JSNodeList::nameGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName) { JSNodeList* thisObj = static_cast<JSNodeList*>(asObject(slotBase)); return toJS(exec, thisObj->impl()->itemWithName(identifierToAtomicString(propertyName))); }
JSValue toJS(ExecState* exec, JSDOMGlobalObject*, WorkerContext* workerContext) { return toJS(exec, workerContext); }
JSRetainPtr<JSStringRef> LayoutTestController::layerTreeAsText() const { WKBundleFrameRef mainFrame = WKBundlePageGetMainFrame(InjectedBundle::shared().page()->page()); WKRetainPtr<WKStringRef> text(AdoptWK, WKBundleFrameCopyLayerTreeAsText(mainFrame)); return toJS(text); }
JSValue* JSEvent::clipboardData(ExecState* exec) const { return impl()->isClipboardEvent() ? toJS(exec, impl()->clipboardData()) : jsUndefined(); }
ScriptValue InjectedScriptHost::nodeAsScriptValue(ScriptState* state, Node* node) { JSLock lock(SilenceAssertionsOnly); return ScriptValue(state->globalData(), toJS(state, deprecatedGlobalObjectForPrototype(state), node)); }
JSValue JSHTMLOptionsCollection::remove(ExecState* exec) { HTMLOptionsCollection* imp = static_cast<HTMLOptionsCollection*>(impl()); JSHTMLSelectElement* base = jsCast<JSHTMLSelectElement*>(asObject(toJS(exec, globalObject(), imp->ownerNode()))); return base->remove(exec); }