static v8::Handle<v8::Value> supplementalMethod2Callback(const v8::Arguments& args) { INC_STATS("DOM.TestInterface.supplementalMethod2"); if (args.Length() < 2) return throwError("Not enough arguments", V8Proxy::TypeError); TestInterface* imp = V8TestInterface::toNative(args.Holder()); ExceptionCode ec = 0; { STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, strArg, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); EXCEPTION_BLOCK(TestObj*, objArg, V8TestObj::HasInstance(MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined)) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined))) : 0); ScriptExecutionContext* scriptContext = getScriptExecutionContext(); if (!scriptContext) return v8::Undefined(); RefPtr<TestObj> result = TestSupplemental::supplementalMethod2(imp, scriptContext, strArg, objArg, ec); if (UNLIKELY(ec)) goto fail; return toV8(result.release()); } fail: V8Proxy::setDOMException(ec); return v8::Handle<v8::Value>(); }
static v8::Handle<v8::Value> initMouseEventCallback(const v8::Arguments& args) { INC_STATS("DOM.MouseEvent.initMouseEvent"); MouseEvent* imp = V8MouseEvent::toNative(args.Holder()); STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, type, MAYBE_MISSING_PARAMETER(args, 0, MissingIsUndefined)); EXCEPTION_BLOCK(bool, canBubble, MAYBE_MISSING_PARAMETER(args, 1, MissingIsUndefined)->BooleanValue()); EXCEPTION_BLOCK(bool, cancelable, MAYBE_MISSING_PARAMETER(args, 2, MissingIsUndefined)->BooleanValue()); EXCEPTION_BLOCK(DOMWindow*, view, V8DOMWindow::HasInstance(MAYBE_MISSING_PARAMETER(args, 3, MissingIsUndefined)) ? V8DOMWindow::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 3, MissingIsUndefined))) : 0); EXCEPTION_BLOCK(int, detail, toInt32(MAYBE_MISSING_PARAMETER(args, 4, MissingIsUndefined))); EXCEPTION_BLOCK(int, screenX, toInt32(MAYBE_MISSING_PARAMETER(args, 5, MissingIsUndefined))); EXCEPTION_BLOCK(int, screenY, toInt32(MAYBE_MISSING_PARAMETER(args, 6, MissingIsUndefined))); EXCEPTION_BLOCK(int, clientX, toInt32(MAYBE_MISSING_PARAMETER(args, 7, MissingIsUndefined))); EXCEPTION_BLOCK(int, clientY, toInt32(MAYBE_MISSING_PARAMETER(args, 8, MissingIsUndefined))); EXCEPTION_BLOCK(bool, ctrlKey, MAYBE_MISSING_PARAMETER(args, 9, MissingIsUndefined)->BooleanValue()); EXCEPTION_BLOCK(bool, altKey, MAYBE_MISSING_PARAMETER(args, 10, MissingIsUndefined)->BooleanValue()); EXCEPTION_BLOCK(bool, shiftKey, MAYBE_MISSING_PARAMETER(args, 11, MissingIsUndefined)->BooleanValue()); EXCEPTION_BLOCK(bool, metaKey, MAYBE_MISSING_PARAMETER(args, 12, MissingIsUndefined)->BooleanValue()); EXCEPTION_BLOCK(int, button, toUInt32(MAYBE_MISSING_PARAMETER(args, 13, MissingIsUndefined))); EXCEPTION_BLOCK(Node*, relatedTarget, V8Node::HasInstance(MAYBE_MISSING_PARAMETER(args, 14, MissingIsUndefined)) ? V8Node::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 14, MissingIsUndefined))) : 0); imp->initMouseEvent(type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget); return v8::Handle<v8::Value>(); }