static inline JSValue jsTestActiveDOMObjectExcitingAttrGetter(ExecState& state, JSTestActiveDOMObject& thisObject, ThrowScope& throwScope) { UNUSED_PARAM(throwScope); UNUSED_PARAM(state); if (!BindingSecurity::shouldAllowAccessToDOMWindow(&state, thisObject.wrapped().window(), ThrowSecurityError)) return jsUndefined(); auto& impl = thisObject.wrapped(); JSValue result = toJS<IDLLong>(state, throwScope, impl.excitingAttr()); return result; }
EncodedJSValue jsTestActiveDOMObjectExcitingAttr(ExecState* state, JSObject* slotBase, EncodedJSValue thisValue, PropertyName) { UNUSED_PARAM(state); UNUSED_PARAM(slotBase); UNUSED_PARAM(thisValue); JSTestActiveDOMObject* castedThis = jsDynamicCast<JSTestActiveDOMObject*>(JSValue::decode(thisValue)); if (UNLIKELY(!castedThis)) { return throwGetterTypeError(*state, "TestActiveDOMObject", "excitingAttr"); } if (!BindingSecurity::shouldAllowAccessToDOMWindow(state, castedThis->wrapped())) return JSValue::encode(jsUndefined()); auto& impl = castedThis->wrapped(); JSValue result = jsNumber(impl.excitingAttr()); return JSValue::encode(result); }
EncodedJSValue JSC_HOST_CALL jsTestActiveDOMObjectPrototypeFunctionExcitingFunction(ExecState* state) { JSValue thisValue = state->thisValue(); JSTestActiveDOMObject* castedThis = jsDynamicCast<JSTestActiveDOMObject*>(thisValue); if (UNLIKELY(!castedThis)) return throwThisTypeError(*state, "TestActiveDOMObject", "excitingFunction"); ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestActiveDOMObject::info()); if (!BindingSecurity::shouldAllowAccessToDOMWindow(state, castedThis->wrapped())) return JSValue::encode(jsUndefined()); auto& impl = castedThis->wrapped(); if (UNLIKELY(state->argumentCount() < 1)) return throwVMError(state, createNotEnoughArgumentsError(state)); Node* nextChild = JSNode::toWrapped(state->argument(0)); if (UNLIKELY(state->hadException())) return JSValue::encode(jsUndefined()); impl.excitingFunction(nextChild); return JSValue::encode(jsUndefined()); }
EncodedJSValue jsTestActiveDOMObjectConstructor(ExecState* state, JSObject*, EncodedJSValue thisValue, PropertyName) { JSTestActiveDOMObject* domObject = jsDynamicCast<JSTestActiveDOMObject*>(JSValue::decode(thisValue)); if (!domObject) return throwVMTypeError(state); if (!BindingSecurity::shouldAllowAccessToDOMWindow(state, domObject->wrapped())) return JSValue::encode(jsUndefined()); return JSValue::encode(JSTestActiveDOMObject::getConstructor(state->vm(), domObject->globalObject())); }
void setJSTestActiveDOMObjectConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue) { JSValue value = JSValue::decode(encodedValue); JSTestActiveDOMObject* domObject = jsDynamicCast<JSTestActiveDOMObject*>(JSValue::decode(thisValue)); if (UNLIKELY(!domObject)) { throwVMTypeError(state); return; } if (!shouldAllowAccessToFrame(state, domObject->wrapped().frame())) return; // Shadowing a built-in constructor domObject->putDirect(state->vm(), state->propertyNames().constructor, value); }
EncodedJSValue JSC_HOST_CALL jsTestActiveDOMObjectPrototypeFunctionPostMessage(ExecState* state) { JSValue thisValue = state->thisValue(); JSTestActiveDOMObject* castedThis = jsDynamicCast<JSTestActiveDOMObject*>(thisValue); if (UNLIKELY(!castedThis)) return throwThisTypeError(*state, "TestActiveDOMObject", "postMessage"); ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestActiveDOMObject::info()); auto& impl = castedThis->wrapped(); if (UNLIKELY(state->argumentCount() < 1)) return throwVMError(state, createNotEnoughArgumentsError(state)); String message = state->argument(0).toString(state)->value(state); if (UNLIKELY(state->hadException())) return JSValue::encode(jsUndefined()); impl.postMessage(message); return JSValue::encode(jsUndefined()); }