コード例 #1
0
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>();
}
コード例 #2
0
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>();
}