diff options
Diffstat (limited to 'WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp')
-rw-r--r-- | WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp b/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp index a69696a..ae9115e 100644 --- a/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp +++ b/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp @@ -88,17 +88,21 @@ JSValue JSHTMLCanvasElement::getContext(ExecState* exec) JSValue JSHTMLCanvasElement::toDataURL(ExecState* exec) { const String& type = valueToStringWithUndefinedOrNullCheck(exec, exec->argument(0)); - double quality = 1.0; + HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(impl()); + ExceptionCode ec = 0; + + JSC::JSValue result; + double quality; + double* qualityPtr = 0; if (exec->argumentCount() > 1) { JSValue v = exec->argument(1); - if (v.isNumber()) + if (v.isNumber()) { quality = v.toNumber(exec); - if (!(0.0 <= quality && quality <= 1.0)) - quality = 1.0; + qualityPtr = &quality; + } } - HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(impl()); - ExceptionCode ec = 0; - JSC::JSValue result = jsString(exec, canvas->toDataURL(type, quality, ec)); + + result = jsString(exec, canvas->toDataURL(type, qualityPtr, ec)); setDOMException(exec, ec); return result; } |