void setJSTestSerializedScriptValueInterfaceCachedValue(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue) { JSValue value = JSValue::decode(encodedValue); UNUSED_PARAM(baseObject); JSTestSerializedScriptValueInterface* castedThis = jsDynamicCast<JSTestSerializedScriptValueInterface*>(JSValue::decode(thisValue)); if (UNLIKELY(!castedThis)) { if (jsDynamicCast<JSTestSerializedScriptValueInterfacePrototype*>(JSValue::decode(thisValue))) reportDeprecatedSetterError(*exec, "TestSerializedScriptValueInterface", "cachedValue"); else throwSetterTypeError(*exec, "TestSerializedScriptValueInterface", "cachedValue"); return; } TestSerializedScriptValueInterface& impl = castedThis->impl(); RefPtr<SerializedScriptValue> nativeValue(SerializedScriptValue::create(exec, value, 0, 0)); if (UNLIKELY(exec->hadException())) return; impl.setCachedValue(nativeValue); }
EncodedJSValue jsTestSerializedScriptValueInterfaceCachedValue(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName) { UNUSED_PARAM(exec); UNUSED_PARAM(slotBase); UNUSED_PARAM(thisValue); JSTestSerializedScriptValueInterface* castedThis = jsDynamicCast<JSTestSerializedScriptValueInterface*>(JSValue::decode(thisValue)); if (UNLIKELY(!castedThis)) { if (jsDynamicCast<JSTestSerializedScriptValueInterfacePrototype*>(slotBase)) return reportDeprecatedGetterError(*exec, "TestSerializedScriptValueInterface", "cachedValue"); return throwGetterTypeError(*exec, "TestSerializedScriptValueInterface", "cachedValue"); } if (JSValue cachedValue = castedThis->m_cachedValue.get()) return JSValue::encode(cachedValue); auto& impl = castedThis->impl(); JSValue result = impl.cachedValue() ? impl.cachedValue()->deserialize(exec, castedThis->globalObject(), 0) : jsNull(); castedThis->m_cachedValue.set(exec->vm(), castedThis, result); return JSValue::encode(result); }
void setJSTestSerializedScriptValueInterfaceCachedValue(ExecState* exec, JSObject* thisObject, JSValue value) { UNUSED_PARAM(exec); JSTestSerializedScriptValueInterface* castedThis = jsCast<JSTestSerializedScriptValueInterface*>(thisObject); TestSerializedScriptValueInterface* impl = static_cast<TestSerializedScriptValueInterface*>(castedThis->impl()); RefPtr<SerializedScriptValue> nativeValue(SerializedScriptValue::create(exec, value, 0, 0)); if (exec->hadException()) return; impl->setCachedValue(nativeValue); }
static inline bool setJSTestSerializedScriptValueInterfaceCachedValueFunction(ExecState& state, JSTestSerializedScriptValueInterface& thisObject, JSValue value, ThrowScope& throwScope) { UNUSED_PARAM(state); UNUSED_PARAM(throwScope); auto& impl = thisObject.wrapped(); auto nativeValue = SerializedScriptValue::create(state, value); RETURN_IF_EXCEPTION(throwScope, false); impl.setCachedValue(WTFMove(nativeValue)); return true; }
JSValue jsTestSerializedScriptValueInterfaceCachedReadonlyValue(ExecState* exec, JSValue slotBase, PropertyName) { JSTestSerializedScriptValueInterface* castedThis = jsCast<JSTestSerializedScriptValueInterface*>(asObject(slotBase)); UNUSED_PARAM(exec); if (JSValue cachedValue = castedThis->m_cachedReadonlyValue.get()) return cachedValue; TestSerializedScriptValueInterface* impl = static_cast<TestSerializedScriptValueInterface*>(castedThis->impl()); JSValue result = impl->cachedReadonlyValue() ? impl->cachedReadonlyValue()->deserialize(exec, castedThis->globalObject(), 0) : jsNull(); castedThis->m_cachedReadonlyValue.set(exec->vm(), castedThis, result); return result; }
EncodedJSValue jsTestSerializedScriptValueInterfaceCachedReadonlyValue(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName) { JSTestSerializedScriptValueInterface* castedThis = jsDynamicCast<JSTestSerializedScriptValueInterface*>(JSValue::decode(thisValue)); UNUSED_PARAM(slotBase); if (!castedThis) { if (jsDynamicCast<JSTestSerializedScriptValueInterfacePrototype*>(slotBase)) { ScriptExecutionContext* scriptExecutionContext = jsCast<JSDOMGlobalObject*>(exec->lexicalGlobalObject())->scriptExecutionContext(); scriptExecutionContext->addConsoleMessage(MessageSource::JS, MessageLevel::Error, String("Deprecated attempt to access property 'cachedReadonlyValue' on a non-TestSerializedScriptValueInterface object.")); return JSValue::encode(jsUndefined()); } return throwVMTypeError(exec); } UNUSED_PARAM(exec); if (JSValue cachedValue = castedThis->m_cachedReadonlyValue.get()) return JSValue::encode(cachedValue); TestSerializedScriptValueInterface& impl = castedThis->impl(); JSValue result = impl.cachedReadonlyValue() ? impl.cachedReadonlyValue()->deserialize(exec, castedThis->globalObject(), 0) : jsNull(); castedThis->m_cachedReadonlyValue.set(exec->vm(), castedThis, result); return JSValue::encode(result); }
static inline JSValue jsTestSerializedScriptValueInterfaceCachedReadonlyValueGetter(ExecState& state, JSTestSerializedScriptValueInterface& thisObject, ThrowScope& throwScope) { UNUSED_PARAM(throwScope); UNUSED_PARAM(state); if (JSValue cachedValue = thisObject.m_cachedReadonlyValue.get()) return cachedValue; auto& impl = thisObject.wrapped(); JSValue result = impl.cachedReadonlyValue() ? impl.cachedReadonlyValue()->deserialize(state, thisObject.globalObject()) : jsNull(); thisObject.m_cachedReadonlyValue.set(state.vm(), &thisObject, result); return result; }
EncodedJSValue JSC_HOST_CALL jsTestSerializedScriptValueInterfacePrototypeFunctionMultiTransferList(ExecState* exec) { JSValue thisValue = exec->hostThisValue(); if (!thisValue.inherits(&JSTestSerializedScriptValueInterface::s_info)) return throwVMTypeError(exec); JSTestSerializedScriptValueInterface* castedThis = jsCast<JSTestSerializedScriptValueInterface*>(asObject(thisValue)); ASSERT_GC_OBJECT_INHERITS(castedThis, &JSTestSerializedScriptValueInterface::s_info); TestSerializedScriptValueInterface* impl = static_cast<TestSerializedScriptValueInterface*>(castedThis->impl()); size_t argsCount = exec->argumentCount(); if (argsCount <= 0) { impl->multiTransferList(); return JSValue::encode(jsUndefined()); } RefPtr<SerializedScriptValue> first(SerializedScriptValue::create(exec, MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined), 0, 0)); if (exec->hadException()) return JSValue::encode(jsUndefined()); if (argsCount <= 1) { impl->multiTransferList(first); return JSValue::encode(jsUndefined()); } Array* tx(toArray(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined))); if (exec->hadException()) return JSValue::encode(jsUndefined()); if (argsCount <= 2) { impl->multiTransferList(first, tx); return JSValue::encode(jsUndefined()); } RefPtr<SerializedScriptValue> second(SerializedScriptValue::create(exec, MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined), 0, 0)); if (exec->hadException()) return JSValue::encode(jsUndefined()); if (argsCount <= 3) { impl->multiTransferList(first, tx, second); return JSValue::encode(jsUndefined()); } Array* txx(toArray(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined))); if (exec->hadException()) return JSValue::encode(jsUndefined()); impl->multiTransferList(first, tx, second, txx); return JSValue::encode(jsUndefined()); }
JSValue jsTestSerializedScriptValueInterfaceConstructor(ExecState* exec, JSValue slotBase, PropertyName) { JSTestSerializedScriptValueInterface* domObject = jsCast<JSTestSerializedScriptValueInterface*>(asObject(slotBase)); return JSTestSerializedScriptValueInterface::getConstructor(exec, domObject->globalObject()); }
void setJSTestSerializedScriptValueInterfaceCachedValue(ExecState* exec, JSObject* thisObject, JSValue value) { JSTestSerializedScriptValueInterface* castedThis = static_cast<JSTestSerializedScriptValueInterface*>(thisObject); TestSerializedScriptValueInterface* impl = static_cast<TestSerializedScriptValueInterface*>(castedThis->impl()); impl->setCachedValue(SerializedScriptValue::create(exec, value)); }
JSValue jsTestSerializedScriptValueInterfaceConstructor(ExecState* exec, JSValue slotBase, const Identifier&) { JSTestSerializedScriptValueInterface* domObject = static_cast<JSTestSerializedScriptValueInterface*>(asObject(slotBase)); return JSTestSerializedScriptValueInterface::getConstructor(exec, domObject->globalObject()); }