void V8CustomEvent::initCustomEventMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) { CustomEvent* event = V8CustomEvent::toImpl(info.Holder()); TOSTRING_VOID(V8StringResource<>, typeArg, info[0]); bool canBubbleArg; bool cancelableArg; if (!v8Call(info[1]->BooleanValue(info.GetIsolate()->GetCurrentContext()), canBubbleArg) || !v8Call(info[2]->BooleanValue(info.GetIsolate()->GetCurrentContext()), cancelableArg)) return; v8::Local<v8::Value> detailsArg = info[3]; event->initEvent(typeArg, canBubbleArg, cancelableArg); event->setDetail(ScriptValue(ScriptState::current(info.GetIsolate()), detailsArg)); }
void V8CustomEvent::initCustomEventMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) { CustomEvent* event = V8CustomEvent::toNative(info.Holder()); ASSERT(!event->serializedDetail()); V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, typeArg, info[0]); V8TRYCATCH_VOID(bool, canBubbleArg, info[1]->BooleanValue()); V8TRYCATCH_VOID(bool, cancelableArg, info[2]->BooleanValue()); v8::Handle<v8::Value> detailsArg = info[3]; event->initEvent(typeArg, canBubbleArg, cancelableArg); if (!detailsArg.IsEmpty()) { V8HiddenValue::setHiddenValue(info.GetIsolate(), info.Holder(), V8HiddenValue::detail(info.GetIsolate()), detailsArg); if (DOMWrapperWorld::current(info.GetIsolate())->isIsolatedWorld()) event->setSerializedDetail(SerializedScriptValue::createAndSwallowExceptions(detailsArg, info.GetIsolate())); } }