EncodedJSValue JSC_HOST_CALL jsTestEventTargetPrototypeFunctionRemoveEventListener(ExecState* exec) { JSValue thisValue = exec->thisValue(); JSTestEventTarget* castedThis = jsDynamicCast<JSTestEventTarget*>(thisValue); if (UNLIKELY(!castedThis)) return throwThisTypeError(*exec, "TestEventTarget", "removeEventListener"); ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestEventTarget::info()); auto& impl = castedThis->impl(); JSValue listener = exec->argument(1); if (UNLIKELY(!listener.isObject())) return JSValue::encode(jsUndefined()); impl.removeEventListener(exec->argument(0).toString(exec)->toAtomicString(exec), createJSEventListenerForRemove(*exec, *asObject(listener), *castedThis).ptr(), exec->argument(2).toBoolean(exec)); return JSValue::encode(jsUndefined()); }
EncodedJSValue JSC_HOST_CALL jsTestEventTargetPrototypeFunctionRemoveEventListener(ExecState* exec) { JSValue thisValue = exec->hostThisValue(); if (!thisValue.inherits(&JSTestEventTarget::s_info)) return throwVMTypeError(exec); JSTestEventTarget* castedThis = jsCast<JSTestEventTarget*>(asObject(thisValue)); ASSERT_GC_OBJECT_INHERITS(castedThis, &JSTestEventTarget::s_info); TestEventTarget* impl = static_cast<TestEventTarget*>(castedThis->impl()); JSValue listener = exec->argument(1); if (!listener.isObject()) return JSValue::encode(jsUndefined()); impl->removeEventListener(ustringToAtomicString(exec->argument(0).toString(exec)->value(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)).get(), exec->argument(2).toBoolean()); return JSValue::encode(jsUndefined()); }
EncodedJSValue JSC_HOST_CALL jsTestEventTargetPrototypeFunctionAddEventListener(ExecState* exec) { JSValue thisValue = exec->thisValue(); JSTestEventTarget* castedThis = jsDynamicCast<JSTestEventTarget*>(thisValue); if (UNLIKELY(!castedThis)) return throwThisTypeError(*exec, "TestEventTarget", "addEventListener"); ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestEventTarget::info()); TestEventTarget& impl = castedThis->impl(); JSValue listener = exec->argument(1); if (!listener.isObject()) return JSValue::encode(jsUndefined()); impl.addEventListener(exec->argument(0).toString(exec)->value(exec), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)), exec->argument(2).toBoolean(exec)); return JSValue::encode(jsUndefined()); }
EncodedJSValue JSC_HOST_CALL jsTestEventTargetPrototypeFunctionRemoveEventListener(ExecState* exec) { JSValue thisValue = exec->hostThisValue(); JSTestEventTarget* castedThis = jsDynamicCast<JSTestEventTarget*>(thisValue); if (UNLIKELY(!castedThis)) return throwVMTypeError(exec, makeDOMBindingsTypeErrorString("Can only call ", "TestEventTarget", ".", "removeEventListener", " on instances of ", "TestEventTarget")); ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestEventTarget::info()); TestEventTarget& impl = castedThis->impl(); JSValue listener = exec->argument(1); if (!listener.isObject()) return JSValue::encode(jsUndefined()); impl.removeEventListener(exec->argument(0).toString(exec)->value(exec), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)).get(), exec->argument(2).toBoolean(exec)); return JSValue::encode(jsUndefined()); }
EncodedJSValue JSC_HOST_CALL jsTestEventTargetPrototypeFunctionDispatchEvent(ExecState* exec) { JSValue thisValue = exec->hostThisValue(); if (!thisValue.inherits(&JSTestEventTarget::s_info)) return throwVMTypeError(exec); JSTestEventTarget* castedThis = jsCast<JSTestEventTarget*>(asObject(thisValue)); ASSERT_GC_OBJECT_INHERITS(castedThis, &JSTestEventTarget::s_info); TestEventTarget* impl = static_cast<TestEventTarget*>(castedThis->impl()); if (exec->argumentCount() < 1) return throwVMError(exec, createNotEnoughArgumentsError(exec)); ExceptionCode ec = 0; Event* evt(toEvent(exec->argument(0))); if (exec->hadException()) return JSValue::encode(jsUndefined()); JSC::JSValue result = jsBoolean(impl->dispatchEvent(evt, ec)); setDOMException(exec, ec); return JSValue::encode(result); }
EncodedJSValue JSC_HOST_CALL jsTestEventTargetPrototypeFunctionDispatchEvent(ExecState* exec) { JSValue thisValue = exec->thisValue(); JSTestEventTarget* castedThis = jsDynamicCast<JSTestEventTarget*>(thisValue); if (UNLIKELY(!castedThis)) return throwThisTypeError(*exec, "TestEventTarget", "dispatchEvent"); ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestEventTarget::info()); auto& impl = castedThis->impl(); if (UNLIKELY(exec->argumentCount() < 1)) return throwVMError(exec, createNotEnoughArgumentsError(exec)); ExceptionCode ec = 0; Event* evt = JSEvent::toWrapped(exec->argument(0)); if (UNLIKELY(exec->hadException())) return JSValue::encode(jsUndefined()); JSValue result = jsBoolean(impl.dispatchEvent(evt, ec)); setDOMException(exec, ec); return JSValue::encode(result); }
EncodedJSValue JSC_HOST_CALL jsTestEventTargetPrototypeFunctionDispatchEvent(ExecState* exec) { JSValue thisValue = exec->hostThisValue(); JSTestEventTarget* castedThis = jsDynamicCast<JSTestEventTarget*>(thisValue); if (UNLIKELY(!castedThis)) return throwVMTypeError(exec, makeDOMBindingsTypeErrorString("Can only call ", "TestEventTarget", ".", "dispatchEvent", " on instances of ", "TestEventTarget")); ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestEventTarget::info()); TestEventTarget& impl = castedThis->impl(); if (exec->argumentCount() < 1) return throwVMError(exec, createNotEnoughArgumentsError(exec)); ExceptionCode ec = 0; Event* evt(toEvent(exec->argument(0))); if (UNLIKELY(exec->hadException())) return JSValue::encode(jsUndefined()); JSValue result = jsBoolean(impl.dispatchEvent(evt, ec)); setDOMException(exec, ec); return JSValue::encode(result); }
EncodedJSValue JSC_HOST_CALL jsTestEventTargetPrototypeFunctionItem(ExecState* exec) { JSValue thisValue = exec->thisValue(); JSTestEventTarget* castedThis = jsDynamicCast<JSTestEventTarget*>(thisValue); if (UNLIKELY(!castedThis)) return throwThisTypeError(*exec, "TestEventTarget", "item"); ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestEventTarget::info()); auto& impl = castedThis->impl(); if (UNLIKELY(exec->argumentCount() < 1)) return throwVMError(exec, createNotEnoughArgumentsError(exec)); int index = toUInt32(exec, exec->argument(0), NormalConversion); if (index < 0) { setDOMException(exec, INDEX_SIZE_ERR); return JSValue::encode(jsUndefined()); } if (UNLIKELY(exec->hadException())) return JSValue::encode(jsUndefined()); JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl.item(index))); return JSValue::encode(result); }
EncodedJSValue JSC_HOST_CALL jsTestEventTargetPrototypeFunctionItem(ExecState* exec) { JSValue thisValue = exec->hostThisValue(); if (!thisValue.inherits(&JSTestEventTarget::s_info)) return throwVMTypeError(exec); JSTestEventTarget* castedThis = jsCast<JSTestEventTarget*>(asObject(thisValue)); ASSERT_GC_OBJECT_INHERITS(castedThis, &JSTestEventTarget::s_info); TestEventTarget* impl = static_cast<TestEventTarget*>(castedThis->impl()); if (exec->argumentCount() < 1) return throwVMError(exec, createNotEnoughArgumentsError(exec)); int index(toUInt32(exec, exec->argument(0), NormalConversion)); if (index < 0) { setDOMException(exec, INDEX_SIZE_ERR); return JSValue::encode(jsUndefined()); } if (exec->hadException()) return JSValue::encode(jsUndefined()); JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->item(index))); return JSValue::encode(result); }
JSValue JSTestEventTarget::indexGetter(ExecState* exec, JSValue slotBase, unsigned index) { JSTestEventTarget* thisObj = jsCast<JSTestEventTarget*>(asObject(slotBase)); ASSERT_GC_OBJECT_INHERITS(thisObj, &s_info); return toJS(exec, thisObj->globalObject(), static_cast<TestEventTarget*>(thisObj->impl())->item(index)); }
EncodedJSValue JSTestEventTarget::indexGetter(ExecState* exec, EncodedJSValue slotBase, EncodedJSValue, unsigned index) { JSTestEventTarget* thisObj = jsCast<JSTestEventTarget*>(JSValue::decode(slotBase)); ASSERT_GC_OBJECT_INHERITS(thisObj, info()); return JSValue::encode(toJS(exec, thisObj->globalObject(), thisObj->impl().item(index))); }