JSValue* jsHTMLCanvasElementPrototypeFunctionToDataURL(ExecState* exec, JSObject*, JSValue* thisValue, const ArgList& args) { if (!thisValue->isObject(&JSHTMLCanvasElement::s_info)) return throwError(exec, TypeError); JSHTMLCanvasElement* castedThisObj = static_cast<JSHTMLCanvasElement*>(thisValue); HTMLCanvasElement* imp = static_cast<HTMLCanvasElement*>(castedThisObj->impl()); ExceptionCode ec = 0; const UString& type = valueToStringWithUndefinedOrNullCheck(exec, args[0]); KJS::JSValue* result = jsString(exec, imp->toDataURL(type, ec)); setDOMException(exec, ec); return result; }
v8::Handle<v8::Value> V8HTMLCanvasElement::toDataURLCallback(const v8::Arguments& args) { double quality = 1.0; if (args.Length() > 1) { if (args[1]->IsNumber()) quality = args[1]->NumberValue(); if (!(0.0 <= quality && quality <= 1.0)) quality = 1.0; } v8::Handle<v8::Object> holder = args.Holder(); HTMLCanvasElement* canvas = V8HTMLCanvasElement::toNative(holder); String type = toWebCoreString(args[0]); ExceptionCode ec = 0; String result = canvas->toDataURL(type, &quality, ec); V8Proxy::setDOMException(ec); return v8StringOrUndefined(result); }
void V8HTMLCanvasElement::toDataURLMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) { v8::Handle<v8::Object> holder = info.Holder(); HTMLCanvasElement* canvas = V8HTMLCanvasElement::toNative(holder); ExceptionState exceptionState(ExceptionState::ExecutionContext, "toDataURL", "HTMLCanvasElement", info.Holder(), info.GetIsolate()); TOSTRING_VOID(V8StringResource<>, type, info[0]); double quality; double* qualityPtr = 0; if (info.Length() > 1 && info[1]->IsNumber()) { quality = info[1]->NumberValue(); qualityPtr = &quality; } String result = canvas->toDataURL(type, qualityPtr, exceptionState); exceptionState.throwIfNeeded(); v8SetReturnValueStringOrUndefined(info, result, info.GetIsolate()); }
v8::Handle<v8::Value> V8HTMLCanvasElement::toDataURLCallback(const v8::Arguments& args) { v8::Handle<v8::Object> holder = args.Holder(); HTMLCanvasElement* canvas = V8HTMLCanvasElement::toNative(holder); ExceptionCode ec = 0; String type = toWebCoreString(args[0]); double quality; double* qualityPtr = 0; if (args.Length() > 1 && args[1]->IsNumber()) { quality = args[1]->NumberValue(); qualityPtr = &quality; } String result = canvas->toDataURL(type, qualityPtr, ec); setDOMException(ec, args.GetIsolate()); return v8StringOrUndefined(result, args.GetIsolate()); }
JSValue JSHTMLCanvasElement::toDataURL(ExecState* exec) { HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(impl()); ExceptionCode ec = 0; const String& type = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(0)); double quality; double* qualityPtr = 0; if (exec->argumentCount() > 1) { JSValue v = exec->argument(1); if (v.isNumber()) { quality = v.toNumber(exec); qualityPtr = &quality; } } JSValue result = jsString(exec, canvas->toDataURL(type, qualityPtr, ec)); setDOMException(exec, ec); return result; }