static v8::Handle<v8::Value> webkitGetUserMediaCallback(const v8::Arguments& args) { if (args.Length() < 2) return throwNotEnoughArgumentsError(args.GetIsolate()); Navigator* imp = V8Navigator::toNative(args.Holder()); ExceptionCode ec = 0; { V8TRYCATCH(Dictionary, options, Dictionary(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined), args.GetIsolate())); if (!options.isUndefinedOrNull() && !options.isObject()) return throwTypeError("Not an object.", args.GetIsolate()); if (args.Length() <= 1 || !args[1]->IsFunction()) return throwTypeError(0, args.GetIsolate()); RefPtr<NavigatorUserMediaSuccessCallback> successCallback = V8NavigatorUserMediaSuccessCallback::create(args[1], getScriptExecutionContext()); RefPtr<NavigatorUserMediaErrorCallback> errorCallback; if (args.Length() > 2 && !args[2]->IsNull() && !args[2]->IsUndefined()) { if (!args[2]->IsFunction()) return throwTypeError(0, args.GetIsolate()); errorCallback = V8NavigatorUserMediaErrorCallback::create(args[2], getScriptExecutionContext()); } NavigatorMediaStream::webkitGetUserMedia(imp, options, successCallback, errorCallback, ec); if (UNLIKELY(ec)) goto fail; return v8Undefined(); } fail: return setDOMException(ec, args.GetIsolate()); }
v8::Handle<v8::Value> V8TestSerializedScriptValueInterface::constructorCallback(const v8::Arguments& args) { INC_STATS("DOM.TestSerializedScriptValueInterface.Constructor"); if (!args.IsConstructCall()) return throwTypeError("DOM object constructor cannot be called as a function."); if (ConstructorMode::current() == ConstructorMode::WrapExistingObject) return args.Holder(); if (args.Length() < 2) return throwNotEnoughArgumentsError(args.GetIsolate()); STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, hello, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); MessagePortArray messagePortArrayTransferList; ArrayBufferArray arrayBufferArrayTransferList; if (args.Length() > 2) { if (!extractTransferables(args[2], messagePortArrayTransferList, arrayBufferArrayTransferList, args.GetIsolate())) return throwTypeError("Could not extract transferables"); } bool dataDidThrow = false; RefPtr<SerializedScriptValue> data = SerializedScriptValue::create(args[1], &messagePortArrayTransferList, &arrayBufferArrayTransferList, dataDidThrow, args.GetIsolate()); if (dataDidThrow) return v8Undefined(); RefPtr<TestSerializedScriptValueInterface> impl = TestSerializedScriptValueInterface::create(hello, data, messagePortArrayTransferList); v8::Handle<v8::Object> wrapper = args.Holder(); V8DOMWrapper::setDOMWrapper(wrapper, &info, impl.get()); V8DOMWrapper::setJSWrapperForDOMObject(impl.release(), wrapper, args.GetIsolate()); return wrapper; }
v8::Handle<v8::Value> V8RTCIceCandidate::constructorCallback(const v8::Arguments& args) { if (!args.IsConstructCall()) return throwTypeError("DOM object constructor cannot be called as a function."); if (ConstructorMode::current() == ConstructorMode::WrapExistingObject) return args.Holder(); if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); ExceptionCode ec = 0; V8TRYCATCH(Dictionary, dictionary, Dictionary(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined), args.GetIsolate())); if (!dictionary.isUndefinedOrNull() && !dictionary.isObject()) return throwTypeError("Not an object.", args.GetIsolate()); RefPtr<RTCIceCandidate> impl = RTCIceCandidate::create(dictionary, ec); v8::Handle<v8::Object> wrapper = args.Holder(); if (ec) goto fail; V8DOMWrapper::associateObjectWithWrapper(impl.release(), &info, wrapper, args.GetIsolate()); return wrapper; fail: return setDOMException(ec, args.GetIsolate()); }
static v8::Handle<v8::Value> webkitStartActivityCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); Navigator* imp = V8Navigator::toNative(args.Holder()); ExceptionCode ec = 0; { V8TRYCATCH(Intent*, intent, V8Intent::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8Intent::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0); RefPtr<IntentResultCallback> successCallback; if (args.Length() > 1 && !args[1]->IsNull() && !args[1]->IsUndefined()) { if (!args[1]->IsFunction()) return throwTypeError(0, args.GetIsolate()); successCallback = V8IntentResultCallback::create(args[1], getScriptExecutionContext()); } RefPtr<IntentResultCallback> failureCallback; if (args.Length() > 2 && !args[2]->IsNull() && !args[2]->IsUndefined()) { if (!args[2]->IsFunction()) return throwTypeError(0, args.GetIsolate()); failureCallback = V8IntentResultCallback::create(args[2], getScriptExecutionContext()); } NavigatorIntents::webkitStartActivity(imp, intent, successCallback, failureCallback, ec); if (UNLIKELY(ec)) goto fail; return v8Undefined(); } fail: return setDOMException(ec, args.GetIsolate()); }
v8::Handle<v8::Value> V8MutationObserver::constructorCallback(const v8::Arguments& args) { INC_STATS("DOM.MutationObserver.Constructor"); if (!args.IsConstructCall()) return throwTypeError("DOM object constructor cannot be called as a function.", args.GetIsolate()); if (ConstructorMode::current() == ConstructorMode::WrapExistingObject) return args.Holder(); if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); v8::Local<v8::Value> arg = args[0]; if (!arg->IsObject()) return setDOMException(TYPE_MISMATCH_ERR, args.GetIsolate()); ScriptExecutionContext* context = getScriptExecutionContext(); RefPtr<MutationCallback> callback = V8MutationCallback::create(arg, context); RefPtr<MutationObserver> observer = MutationObserver::create(callback.release()); v8::Handle<v8::Object> wrapper = args.Holder(); V8DOMWrapper::setDOMWrapper(wrapper, &info, observer.get()); V8DOMWrapper::setJSWrapperForDOMObject(observer.release(), wrapper); return wrapper; }
static v8::Handle<v8::Value> readAsTextCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); FileReaderSync* imp = V8FileReaderSync::toNative(args.Holder()); ExceptionCode ec = 0; { V8TRYCATCH(Blob*, blob, V8Blob::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8Blob::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0); if (args.Length() <= 1) { ScriptExecutionContext* scriptContext = getScriptExecutionContext(); String result = imp->readAsText(scriptContext, blob, ec); if (UNLIKELY(ec)) goto fail; return v8String(result, args.GetIsolate()); } V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, encoding, MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined)); ScriptExecutionContext* scriptContext = getScriptExecutionContext(); String result = imp->readAsText(scriptContext, blob, encoding, ec); if (UNLIKELY(ec)) goto fail; return v8String(result, args.GetIsolate()); } fail: return setDOMException(ec, args.GetIsolate()); }
static v8::Handle<v8::Value> V8TestNamedConstructorConstructorCallback(const v8::Arguments& args) { if (!args.IsConstructCall()) return throwTypeError("DOM object constructor cannot be called as a function.", args.GetIsolate()); if (ConstructorMode::current() == ConstructorMode::WrapExistingObject) return args.Holder(); Document* document = currentDocument(); // Make sure the document is added to the DOM Node map. Otherwise, the TestNamedConstructor instance // may end up being the only node in the map and get garbage-collected prematurely. toV8(document, args.Holder(), args.GetIsolate()); if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); ExceptionCode ec = 0; V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, str1, args[0]); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, str2, args[1]); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, str3, argumentOrNull(args, 2)); RefPtr<TestNamedConstructor> impl = TestNamedConstructor::createForJSConstructor(document, str1, str2, str3, ec); v8::Handle<v8::Object> wrapper = args.Holder(); if (ec) return setDOMException(ec, args.GetIsolate()); V8DOMWrapper::associateObjectWithWrapper(impl.release(), &V8TestNamedConstructorConstructor::info, wrapper, args.GetIsolate(), WrapperConfiguration::Dependent); return wrapper; }
static v8::Handle<v8::Value> changeVersionCallback(const v8::Arguments& args) { if (args.Length() < 2) return throwNotEnoughArgumentsError(args.GetIsolate()); Database* imp = V8Database::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, oldVersion, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, newVersion, MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined)); RefPtr<SQLTransactionCallback> callback; if (args.Length() > 2 && !args[2]->IsNull() && !args[2]->IsUndefined()) { if (!args[2]->IsFunction()) return throwTypeError(0, args.GetIsolate()); callback = V8SQLTransactionCallback::create(args[2], getScriptExecutionContext()); } RefPtr<SQLTransactionErrorCallback> errorCallback; if (args.Length() > 3 && !args[3]->IsNull() && !args[3]->IsUndefined()) { if (!args[3]->IsFunction()) return throwTypeError(0, args.GetIsolate()); errorCallback = V8SQLTransactionErrorCallback::create(args[3], getScriptExecutionContext()); } RefPtr<VoidCallback> successCallback; if (args.Length() > 4 && !args[4]->IsNull() && !args[4]->IsUndefined()) { if (!args[4]->IsFunction()) return throwTypeError(0, args.GetIsolate()); successCallback = V8VoidCallback::create(args[4], getScriptExecutionContext()); } imp->changeVersion(oldVersion, newVersion, callback, errorCallback, successCallback); return v8Undefined(); }
static v8::Handle<v8::Value> V8TestNamedConstructorConstructorCallback(const v8::Arguments& args) { INC_STATS("DOM.TestNamedConstructor.Constructor"); if (!args.IsConstructCall()) return throwTypeError("DOM object constructor cannot be called as a function."); if (ConstructorMode::current() == ConstructorMode::WrapExistingObject) return args.Holder(); Document* document = currentDocument(BindingState::instance()); // Make sure the document is added to the DOM Node map. Otherwise, the TestNamedConstructor instance // may end up being the only node in the map and get garbage-collected prematurely. toV8(document, args.Holder(), args.GetIsolate()); if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); ExceptionCode ec = 0; STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, str1, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, str2, MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined)); STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, str3, MAYBE_MISSING_PARAMETER(args, 2, DefaultIsNullString)); RefPtr<TestNamedConstructor> impl = TestNamedConstructor::createForJSConstructor(document, str1, str2, str3, ec); v8::Handle<v8::Object> wrapper = args.Holder(); if (ec) goto fail; V8DOMWrapper::setDOMWrapper(wrapper, &V8TestNamedConstructorConstructor::info, impl.get()); V8DOMWrapper::setJSWrapperForActiveDOMObject(impl.release(), wrapper, args.GetIsolate()); return wrapper; fail: return setDOMException(ec, args.GetIsolate()); }
static v8::Handle<v8::Value> loadResourceSynchronouslyCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); InspectorFrontendHost* imp = V8InspectorFrontendHost::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, url, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); return v8String(imp->loadResourceSynchronously(url), args.GetIsolate()); }
static v8::Handle<v8::Value> namedItemCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); DOMNamedFlowCollection* imp = V8DOMNamedFlowCollection::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, name, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); return toV8(imp->namedItem(name), args.Holder(), args.GetIsolate()); }
static v8::Handle<v8::Value> itemCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); DOMNamedFlowCollection* imp = V8DOMNamedFlowCollection::toNative(args.Holder()); V8TRYCATCH(unsigned, index, toUInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); return toV8(imp->item(index), args.Holder(), args.GetIsolate()); }
static v8::Handle<v8::Value> getDataCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); Clipboard* imp = V8Clipboard::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, type, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); return v8String(imp->getData(type), args.GetIsolate()); }
static v8::Handle<v8::Value> localizeNumberStringCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); PagePopupController* imp = V8PagePopupController::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, numberString, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); return v8String(imp->localizeNumberString(numberString), args.GetIsolate()); }
static v8::Handle<v8::Value> fooMethod(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); Float64Array* imp = V8Float64Array::toNative(args.Holder()); V8TRYCATCH(Float32Array*, array, V8Float32Array::HasInstance(args[0], args.GetIsolate(), worldType(args.GetIsolate())) ? V8Float32Array::toNative(v8::Handle<v8::Object>::Cast(args[0])) : 0); return toV8(imp->foo(array), args.Holder(), args.GetIsolate()); }
static v8::Handle<v8::Value> webkitGetEntriesByTypeCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); Performance* imp = V8Performance::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, entryType, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); return toV8(imp->webkitGetEntriesByType(entryType), args.Holder(), args.GetIsolate()); }
static v8::Handle<v8::Value> copyTextCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); InjectedScriptHost* imp = V8InjectedScriptHost::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, text, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); imp->copyText(text); return v8Undefined(); }
static v8::Handle<v8::Value> postMessageCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); TestActiveDOMObject* imp = V8TestActiveDOMObject::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, message, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); imp->postMessage(message); return v8Undefined(); }
static v8::Handle<v8::Value> fooCallback(const v8::Arguments& args) { INC_STATS("DOM.Float64Array.foo"); if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); Float64Array* imp = V8Float64Array::toNative(args.Holder()); EXCEPTION_BLOCK(Float32Array*, array, V8Float32Array::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8Float32Array::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0); return toV8(imp->foo(array), args.Holder(), args.GetIsolate()); }
static v8::Handle<v8::Value> anotherFunctionCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); TestCustomNamedGetter* imp = V8TestCustomNamedGetter::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, str, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); imp->anotherFunction(str); return v8Undefined(); }
static v8::Handle<v8::Value> methodMethod(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); TestMediaQueryListListener* imp = V8TestMediaQueryListListener::toNative(args.Holder()); V8TRYCATCH(RefPtr<MediaQueryListListener>, listener, MediaQueryListListener::create(args[0])); imp->method(listener); return v8Undefined(); }
static v8::Handle<v8::Value> setZoomFactorCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); InspectorFrontendHost* imp = V8InspectorFrontendHost::toNative(args.Holder()); V8TRYCATCH(float, zoom, static_cast<float>(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)->NumberValue())); imp->setZoomFactor(zoom); return v8Undefined(); }
static v8::Handle<v8::Value> requestSetDockSideCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); InspectorFrontendHost* imp = V8InspectorFrontendHost::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, side, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); imp->requestSetDockSide(side); return v8Undefined(); }
v8::Handle<v8::Value> V8AudioContext::constructorCallback(const v8::Arguments& args) { INC_STATS("DOM.AudioContext.Contructor"); if (!args.IsConstructCall()) return throwTypeError("AudioContext constructor cannot be called as a function.", args.GetIsolate()); if (ConstructorMode::current() == ConstructorMode::WrapExistingObject) return args.Holder(); Document* document = currentDocument(BindingState::instance()); RefPtr<AudioContext> audioContext; if (!args.Length()) { // Constructor for default AudioContext which talks to audio hardware. ExceptionCode ec = 0; audioContext = AudioContext::create(document, ec); if (ec) return setDOMException(ec, args.GetIsolate()); if (!audioContext.get()) return throwError(SyntaxError, "audio resources unavailable for AudioContext construction", args.GetIsolate()); } else { // Constructor for offline (render-target) AudioContext which renders into an AudioBuffer. // new AudioContext(in unsigned long numberOfChannels, in unsigned long numberOfFrames, in float sampleRate); if (args.Length() < 3) return throwNotEnoughArgumentsError(args.GetIsolate()); bool ok = false; int32_t numberOfChannels = toInt32(args[0], ok); if (!ok || numberOfChannels <= 0 || numberOfChannels > 10) return throwError(SyntaxError, "Invalid number of channels", args.GetIsolate()); int32_t numberOfFrames = toInt32(args[1], ok); if (!ok || numberOfFrames <= 0) return throwError(SyntaxError, "Invalid number of frames", args.GetIsolate()); float sampleRate = toFloat(args[2]); if (sampleRate <= 0) return throwError(SyntaxError, "Invalid sample rate", args.GetIsolate()); ExceptionCode ec = 0; audioContext = AudioContext::createOfflineContext(document, numberOfChannels, numberOfFrames, sampleRate, ec); if (ec) return setDOMException(ec, args.GetIsolate()); } if (!audioContext.get()) return throwError(SyntaxError, "Error creating AudioContext", args.GetIsolate()); // Transform the holder into a wrapper object for the audio context. V8DOMWrapper::setDOMWrapper(args.Holder(), &info, audioContext.get()); audioContext->ref(); return args.Holder(); }
static v8::Handle<v8::Value> setAttachedWindowHeightCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); InspectorFrontendHost* imp = V8InspectorFrontendHost::toNative(args.Holder()); V8TRYCATCH(unsigned, height, toUInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); imp->setAttachedWindowHeight(height); return v8Undefined(); }
static v8::Handle<v8::Value> methodCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); TestMediaQueryListListener* imp = V8TestMediaQueryListListener::toNative(args.Holder()); V8TRYCATCH(RefPtr<MediaQueryListListener>, listener, MediaQueryListListener::create(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); imp->method(listener); return v8Undefined(); }
static v8::Handle<v8::Value> addCueCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); TextTrack* imp = V8TextTrack::toNative(args.Holder()); V8TRYCATCH(TextTrackCue*, cue, V8TextTrackCue::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8TextTrackCue::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0); imp->addCue(cue); return v8Undefined(); }
static v8::Handle<v8::Value> webkitSetResourceTimingBufferSizeCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); Performance* imp = V8Performance::toNative(args.Holder()); V8TRYCATCH(unsigned, maxSize, toUInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); imp->webkitSetResourceTimingBufferSize(maxSize); return v8Undefined(); }
static v8::Handle<v8::Value> setCustomValidityCallback(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); HTMLButtonElement* imp = V8HTMLButtonElement::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<WithUndefinedOrNullCheck>, error, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); imp->setCustomValidity(error); return v8Undefined(); }
static v8::Handle<v8::Value> anotherFunctionMethod(const v8::Arguments& args) { if (args.Length() < 1) return throwNotEnoughArgumentsError(args.GetIsolate()); TestCustomNamedGetter* imp = V8TestCustomNamedGetter::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, str, args[0]); imp->anotherFunction(str); return v8Undefined(); }