EncodedJSValue jsTestNondeterministicNondeterministicSetterExceptionAttr(ExecState* state, EncodedJSValue thisValue, PropertyName) { UNUSED_PARAM(state); UNUSED_PARAM(thisValue); JSValue decodedThisValue = JSValue::decode(thisValue); auto* castedThis = jsDynamicCast<JSTestNondeterministic*>(decodedThisValue); if (UNLIKELY(!castedThis)) { return throwGetterTypeError(*state, "TestNondeterministic", "nondeterministicSetterExceptionAttr"); } #if ENABLE(WEB_REPLAY) JSGlobalObject* globalObject = state->lexicalGlobalObject(); InputCursor& cursor = globalObject->inputCursor(); static NeverDestroyed<const AtomicString> bindingName("TestNondeterministic.nondeterministicSetterExceptionAttr", AtomicString::ConstructFromLiteral); if (cursor.isCapturing()) { String memoizedResult = castedThis->wrapped().nondeterministicSetterExceptionAttr(); cursor.appendInput<MemoizedDOMResult<String>>(bindingName.get().string(), memoizedResult, 0); JSValue result = jsStringWithCache(state, memoizedResult); return JSValue::encode(result); } if (cursor.isReplaying()) { String memoizedResult; MemoizedDOMResultBase* input = cursor.fetchInput<MemoizedDOMResultBase>(); if (input && input->convertTo<String>(memoizedResult)) { JSValue result = jsStringWithCache(state, memoizedResult); return JSValue::encode(result); } } #endif auto& impl = castedThis->wrapped(); JSValue result = jsStringWithCache(state, impl.nondeterministicSetterExceptionAttr()); return JSValue::encode(result); }
EncodedJSValue jsTestNondeterministicNondeterministicWriteableAttr(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName) { UNUSED_PARAM(exec); UNUSED_PARAM(slotBase); UNUSED_PARAM(thisValue); JSTestNondeterministic* castedThis = jsDynamicCast<JSTestNondeterministic*>(JSValue::decode(thisValue)); if (UNLIKELY(!castedThis)) { if (jsDynamicCast<JSTestNondeterministicPrototype*>(slotBase)) return reportDeprecatedGetterError(*exec, "TestNondeterministic", "nondeterministicWriteableAttr"); return throwGetterTypeError(*exec, "TestNondeterministic", "nondeterministicWriteableAttr"); } #if ENABLE(WEB_REPLAY) JSGlobalObject* globalObject = exec->lexicalGlobalObject(); InputCursor& cursor = globalObject->inputCursor(); static NeverDestroyed<const AtomicString> bindingName("TestNondeterministic.nondeterministicWriteableAttr", AtomicString::ConstructFromLiteral); if (cursor.isCapturing()) { String memoizedResult = castedThis->impl().nondeterministicWriteableAttr(); cursor.appendInput<MemoizedDOMResult<String>>(bindingName.get().string(), memoizedResult, 0); JSValue result = jsStringWithCache(exec, memoizedResult); return JSValue::encode(result); } if (cursor.isReplaying()) { String memoizedResult; MemoizedDOMResultBase* input = cursor.fetchInput<MemoizedDOMResultBase>(); if (input && input->convertTo<String>(memoizedResult)) { JSValue result = jsStringWithCache(exec, memoizedResult); return JSValue::encode(result); } } #endif TestNondeterministic& impl = castedThis->impl(); JSValue result = jsStringWithCache(exec, impl.nondeterministicWriteableAttr()); return JSValue::encode(result); }