diff options
Diffstat (limited to 'WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp')
-rw-r--r-- | WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp | 192 |
1 files changed, 96 insertions, 96 deletions
diff --git a/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp b/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp index a2f4f65..ae48440 100644 --- a/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp +++ b/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp @@ -40,7 +40,7 @@ using namespace JSC; namespace WebCore { -static JSValue* toJS(ExecState* exec, CanvasStyle* style) +static JSValuePtr toJS(ExecState* exec, CanvasStyle* style) { if (style->canvasGradient()) return toJS(exec, style->canvasGradient()); @@ -49,11 +49,11 @@ static JSValue* toJS(ExecState* exec, CanvasStyle* style) return jsString(exec, style->color()); } -static PassRefPtr<CanvasStyle> toHTMLCanvasStyle(ExecState* exec, JSValue* value) +static PassRefPtr<CanvasStyle> toHTMLCanvasStyle(ExecState*, JSValuePtr value) { - if (value->isString()) + if (value.isString()) return CanvasStyle::create(asString(value)->value()); - if (!value->isObject()) + if (!value.isObject()) return 0; JSObject* object = asObject(value); if (object->inherits(&JSCanvasGradient::s_info)) @@ -63,27 +63,27 @@ static PassRefPtr<CanvasStyle> toHTMLCanvasStyle(ExecState* exec, JSValue* value return 0; } -JSValue* JSCanvasRenderingContext2D::strokeStyle(ExecState* exec) const +JSValuePtr JSCanvasRenderingContext2D::strokeStyle(ExecState* exec) const { return toJS(exec, impl()->strokeStyle()); } -void JSCanvasRenderingContext2D::setStrokeStyle(ExecState* exec, JSValue* value) +void JSCanvasRenderingContext2D::setStrokeStyle(ExecState* exec, JSValuePtr value) { impl()->setStrokeStyle(toHTMLCanvasStyle(exec, value)); } -JSValue* JSCanvasRenderingContext2D::fillStyle(ExecState* exec) const +JSValuePtr JSCanvasRenderingContext2D::fillStyle(ExecState* exec) const { return toJS(exec, impl()->fillStyle()); } -void JSCanvasRenderingContext2D::setFillStyle(ExecState* exec, JSValue* value) +void JSCanvasRenderingContext2D::setFillStyle(ExecState* exec, JSValuePtr value) { impl()->setFillStyle(toHTMLCanvasStyle(exec, value)); } -JSValue* JSCanvasRenderingContext2D::setFillColor(ExecState* exec, const ArgList& args) +JSValuePtr JSCanvasRenderingContext2D::setFillColor(ExecState* exec, const ArgList& args) { CanvasRenderingContext2D* context = impl(); @@ -95,24 +95,24 @@ JSValue* JSCanvasRenderingContext2D::setFillColor(ExecState* exec, const ArgList // 5 args = c, m, y, k, a switch (args.size()) { case 1: - if (args.at(exec, 0)->isString()) + if (args.at(exec, 0).isString()) context->setFillColor(asString(args.at(exec, 0))->value()); else - context->setFillColor(args.at(exec, 0)->toFloat(exec)); + context->setFillColor(args.at(exec, 0).toFloat(exec)); break; case 2: - if (args.at(exec, 0)->isString()) - context->setFillColor(asString(args.at(exec, 0))->value(), args.at(exec, 1)->toFloat(exec)); + if (args.at(exec, 0).isString()) + context->setFillColor(asString(args.at(exec, 0))->value(), args.at(exec, 1).toFloat(exec)); else - context->setFillColor(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec)); + context->setFillColor(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec)); break; case 4: - context->setFillColor(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec), args.at(exec, 3)->toFloat(exec)); + context->setFillColor(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec), args.at(exec, 3).toFloat(exec)); break; case 5: - context->setFillColor(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec), args.at(exec, 3)->toFloat(exec), args.at(exec, 4)->toFloat(exec)); + context->setFillColor(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec), args.at(exec, 3).toFloat(exec), args.at(exec, 4).toFloat(exec)); break; default: return throwError(exec, SyntaxError); @@ -120,7 +120,7 @@ JSValue* JSCanvasRenderingContext2D::setFillColor(ExecState* exec, const ArgList return jsUndefined(); } -JSValue* JSCanvasRenderingContext2D::setStrokeColor(ExecState* exec, const ArgList& args) +JSValuePtr JSCanvasRenderingContext2D::setStrokeColor(ExecState* exec, const ArgList& args) { CanvasRenderingContext2D* context = impl(); @@ -132,24 +132,24 @@ JSValue* JSCanvasRenderingContext2D::setStrokeColor(ExecState* exec, const ArgLi // 5 args = c, m, y, k, a switch (args.size()) { case 1: - if (args.at(exec, 0)->isString()) + if (args.at(exec, 0).isString()) context->setStrokeColor(asString(args.at(exec, 0))->value()); else - context->setStrokeColor(args.at(exec, 0)->toFloat(exec)); + context->setStrokeColor(args.at(exec, 0).toFloat(exec)); break; case 2: - if (args.at(exec, 0)->isString()) - context->setStrokeColor(asString(args.at(exec, 0))->value(), args.at(exec, 1)->toFloat(exec)); + if (args.at(exec, 0).isString()) + context->setStrokeColor(asString(args.at(exec, 0))->value(), args.at(exec, 1).toFloat(exec)); else - context->setStrokeColor(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec)); + context->setStrokeColor(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec)); break; case 4: - context->setStrokeColor(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec), args.at(exec, 3)->toFloat(exec)); + context->setStrokeColor(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec), args.at(exec, 3).toFloat(exec)); break; case 5: - context->setStrokeColor(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec), args.at(exec, 3)->toFloat(exec), args.at(exec, 4)->toFloat(exec)); + context->setStrokeColor(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec), args.at(exec, 3).toFloat(exec), args.at(exec, 4).toFloat(exec)); break; default: return throwError(exec, SyntaxError); @@ -158,21 +158,21 @@ JSValue* JSCanvasRenderingContext2D::setStrokeColor(ExecState* exec, const ArgLi return jsUndefined(); } -JSValue* JSCanvasRenderingContext2D::strokeRect(ExecState* exec, const ArgList& args) +JSValuePtr JSCanvasRenderingContext2D::strokeRect(ExecState* exec, const ArgList& args) { CanvasRenderingContext2D* context = impl(); if (args.size() <= 4) - context->strokeRect(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec), args.at(exec, 3)->toFloat(exec)); + context->strokeRect(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec), args.at(exec, 3).toFloat(exec)); else - context->strokeRect(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec), args.at(exec, 3)->toFloat(exec), args.at(exec, 4)->toFloat(exec)); + context->strokeRect(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec), args.at(exec, 3).toFloat(exec), args.at(exec, 4).toFloat(exec)); return jsUndefined(); } -JSValue* JSCanvasRenderingContext2D::drawImage(ExecState* exec, const ArgList& args) +JSValuePtr JSCanvasRenderingContext2D::drawImage(ExecState* exec, const ArgList& args) { CanvasRenderingContext2D* context = impl(); @@ -182,8 +182,8 @@ JSValue* JSCanvasRenderingContext2D::drawImage(ExecState* exec, const ArgList& a // drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh) // Composite operation is specified with globalCompositeOperation. // The img parameter can be a <img> or <canvas> element. - JSValue* value = args.at(exec, 0); - if (!value->isObject()) + JSValuePtr value = args.at(exec, 0); + if (!value.isObject()) return throwError(exec, TypeError); JSObject* o = asObject(value); @@ -192,18 +192,18 @@ JSValue* JSCanvasRenderingContext2D::drawImage(ExecState* exec, const ArgList& a HTMLImageElement* imgElt = static_cast<HTMLImageElement*>(static_cast<JSHTMLElement*>(o)->impl()); switch (args.size()) { case 3: - context->drawImage(imgElt, args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec)); + context->drawImage(imgElt, args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec)); break; case 5: - context->drawImage(imgElt, args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec), - args.at(exec, 3)->toFloat(exec), args.at(exec, 4)->toFloat(exec), ec); + context->drawImage(imgElt, args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec), + args.at(exec, 3).toFloat(exec), args.at(exec, 4).toFloat(exec), ec); setDOMException(exec, ec); break; case 9: - context->drawImage(imgElt, FloatRect(args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec), - args.at(exec, 3)->toFloat(exec), args.at(exec, 4)->toFloat(exec)), - FloatRect(args.at(exec, 5)->toFloat(exec), args.at(exec, 6)->toFloat(exec), - args.at(exec, 7)->toFloat(exec), args.at(exec, 8)->toFloat(exec)), ec); + context->drawImage(imgElt, FloatRect(args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec), + args.at(exec, 3).toFloat(exec), args.at(exec, 4).toFloat(exec)), + FloatRect(args.at(exec, 5).toFloat(exec), args.at(exec, 6).toFloat(exec), + args.at(exec, 7).toFloat(exec), args.at(exec, 8).toFloat(exec)), ec); setDOMException(exec, ec); break; default: @@ -213,18 +213,18 @@ JSValue* JSCanvasRenderingContext2D::drawImage(ExecState* exec, const ArgList& a HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(static_cast<JSHTMLElement*>(o)->impl()); switch (args.size()) { case 3: - context->drawImage(canvas, args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec)); + context->drawImage(canvas, args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec)); break; case 5: - context->drawImage(canvas, args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec), - args.at(exec, 3)->toFloat(exec), args.at(exec, 4)->toFloat(exec), ec); + context->drawImage(canvas, args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec), + args.at(exec, 3).toFloat(exec), args.at(exec, 4).toFloat(exec), ec); setDOMException(exec, ec); break; case 9: - context->drawImage(canvas, FloatRect(args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec), - args.at(exec, 3)->toFloat(exec), args.at(exec, 4)->toFloat(exec)), - FloatRect(args.at(exec, 5)->toFloat(exec), args.at(exec, 6)->toFloat(exec), - args.at(exec, 7)->toFloat(exec), args.at(exec, 8)->toFloat(exec)), ec); + context->drawImage(canvas, FloatRect(args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec), + args.at(exec, 3).toFloat(exec), args.at(exec, 4).toFloat(exec)), + FloatRect(args.at(exec, 5).toFloat(exec), args.at(exec, 6).toFloat(exec), + args.at(exec, 7).toFloat(exec), args.at(exec, 8).toFloat(exec)), ec); setDOMException(exec, ec); break; default: @@ -237,64 +237,64 @@ JSValue* JSCanvasRenderingContext2D::drawImage(ExecState* exec, const ArgList& a return jsUndefined(); } -JSValue* JSCanvasRenderingContext2D::drawImageFromRect(ExecState* exec, const ArgList& args) +JSValuePtr JSCanvasRenderingContext2D::drawImageFromRect(ExecState* exec, const ArgList& args) { CanvasRenderingContext2D* context = impl(); - JSValue* value = args.at(exec, 0); - if (!value->isObject()) + JSValuePtr value = args.at(exec, 0); + if (!value.isObject()) return throwError(exec, TypeError); JSObject* o = asObject(value); if (!o->inherits(&JSHTMLImageElement::s_info)) return throwError(exec, TypeError); context->drawImageFromRect(static_cast<HTMLImageElement*>(static_cast<JSHTMLElement*>(o)->impl()), - args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec), - args.at(exec, 3)->toFloat(exec), args.at(exec, 4)->toFloat(exec), - args.at(exec, 5)->toFloat(exec), args.at(exec, 6)->toFloat(exec), - args.at(exec, 7)->toFloat(exec), args.at(exec, 8)->toFloat(exec), - args.at(exec, 9)->toString(exec)); + args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec), + args.at(exec, 3).toFloat(exec), args.at(exec, 4).toFloat(exec), + args.at(exec, 5).toFloat(exec), args.at(exec, 6).toFloat(exec), + args.at(exec, 7).toFloat(exec), args.at(exec, 8).toFloat(exec), + args.at(exec, 9).toString(exec)); return jsUndefined(); } -JSValue* JSCanvasRenderingContext2D::setShadow(ExecState* exec, const ArgList& args) +JSValuePtr JSCanvasRenderingContext2D::setShadow(ExecState* exec, const ArgList& args) { CanvasRenderingContext2D* context = impl(); switch (args.size()) { case 3: - context->setShadow(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec)); + context->setShadow(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec)); break; case 4: - if (args.at(exec, 3)->isString()) - context->setShadow(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec), asString(args.at(exec, 3))->value()); + if (args.at(exec, 3).isString()) + context->setShadow(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec), asString(args.at(exec, 3))->value()); else - context->setShadow(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec), args.at(exec, 3)->toFloat(exec)); + context->setShadow(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec), args.at(exec, 3).toFloat(exec)); break; case 5: - if (args.at(exec, 3)->isString()) - context->setShadow(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec), asString(args.at(exec, 3))->value(), - args.at(exec, 4)->toFloat(exec)); + if (args.at(exec, 3).isString()) + context->setShadow(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec), asString(args.at(exec, 3))->value(), + args.at(exec, 4).toFloat(exec)); else - context->setShadow(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec), args.at(exec, 3)->toFloat(exec), - args.at(exec, 4)->toFloat(exec)); + context->setShadow(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec), args.at(exec, 3).toFloat(exec), + args.at(exec, 4).toFloat(exec)); break; case 7: - context->setShadow(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec), args.at(exec, 3)->toFloat(exec), - args.at(exec, 4)->toFloat(exec), args.at(exec, 5)->toFloat(exec), - args.at(exec, 6)->toFloat(exec)); + context->setShadow(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec), args.at(exec, 3).toFloat(exec), + args.at(exec, 4).toFloat(exec), args.at(exec, 5).toFloat(exec), + args.at(exec, 6).toFloat(exec)); break; case 8: - context->setShadow(args.at(exec, 0)->toFloat(exec), args.at(exec, 1)->toFloat(exec), - args.at(exec, 2)->toFloat(exec), args.at(exec, 3)->toFloat(exec), - args.at(exec, 4)->toFloat(exec), args.at(exec, 5)->toFloat(exec), - args.at(exec, 6)->toFloat(exec), args.at(exec, 7)->toFloat(exec)); + context->setShadow(args.at(exec, 0).toFloat(exec), args.at(exec, 1).toFloat(exec), + args.at(exec, 2).toFloat(exec), args.at(exec, 3).toFloat(exec), + args.at(exec, 4).toFloat(exec), args.at(exec, 5).toFloat(exec), + args.at(exec, 6).toFloat(exec), args.at(exec, 7).toFloat(exec)); break; default: return throwError(exec, SyntaxError); @@ -303,18 +303,18 @@ JSValue* JSCanvasRenderingContext2D::setShadow(ExecState* exec, const ArgList& a return jsUndefined(); } -JSValue* JSCanvasRenderingContext2D::createPattern(ExecState* exec, const ArgList& args) +JSValuePtr JSCanvasRenderingContext2D::createPattern(ExecState* exec, const ArgList& args) { CanvasRenderingContext2D* context = impl(); - JSValue* value = args.at(exec, 0); - if (!value->isObject()) + JSValuePtr value = args.at(exec, 0); + if (!value.isObject()) return throwError(exec, TypeError); JSObject* o = asObject(value); if (o->inherits(&JSHTMLImageElement::s_info)) { ExceptionCode ec; - JSValue* pattern = toJS(exec, + JSValuePtr pattern = toJS(exec, context->createPattern(static_cast<HTMLImageElement*>(static_cast<JSHTMLElement*>(o)->impl()), valueToStringWithNullCheck(exec, args.at(exec, 1)), ec).get()); setDOMException(exec, ec); @@ -322,7 +322,7 @@ JSValue* JSCanvasRenderingContext2D::createPattern(ExecState* exec, const ArgLis } if (o->inherits(&JSHTMLCanvasElement::s_info)) { ExceptionCode ec; - JSValue* pattern = toJS(exec, + JSValuePtr pattern = toJS(exec, context->createPattern(static_cast<HTMLCanvasElement*>(static_cast<JSHTMLElement*>(o)->impl()), valueToStringWithNullCheck(exec, args.at(exec, 1)), ec).get()); setDOMException(exec, ec); @@ -332,7 +332,7 @@ JSValue* JSCanvasRenderingContext2D::createPattern(ExecState* exec, const ArgLis return jsUndefined(); } -JSValue* JSCanvasRenderingContext2D::putImageData(ExecState* exec, const ArgList& args) +JSValuePtr JSCanvasRenderingContext2D::putImageData(ExecState* exec, const ArgList& args) { // putImageData has two variants // putImageData(ImageData, x, y) @@ -341,16 +341,16 @@ JSValue* JSCanvasRenderingContext2D::putImageData(ExecState* exec, const ArgList ExceptionCode ec = 0; if (args.size() >= 7) - context->putImageData(toImageData(args.at(exec, 0)), args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec), - args.at(exec, 3)->toFloat(exec), args.at(exec, 4)->toFloat(exec), args.at(exec, 5)->toFloat(exec), args.at(exec, 6)->toFloat(exec), ec); + context->putImageData(toImageData(args.at(exec, 0)), args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec), + args.at(exec, 3).toFloat(exec), args.at(exec, 4).toFloat(exec), args.at(exec, 5).toFloat(exec), args.at(exec, 6).toFloat(exec), ec); else - context->putImageData(toImageData(args.at(exec, 0)), args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec), ec); + context->putImageData(toImageData(args.at(exec, 0)), args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec), ec); setDOMException(exec, ec); return jsUndefined(); } -JSValue* JSCanvasRenderingContext2D::fillText(ExecState* exec, const ArgList& args) +JSValuePtr JSCanvasRenderingContext2D::fillText(ExecState* exec, const ArgList& args) { CanvasRenderingContext2D* context = impl(); @@ -362,13 +362,13 @@ JSValue* JSCanvasRenderingContext2D::fillText(ExecState* exec, const ArgList& ar return throwError(exec, SyntaxError); if (args.size() == 4) - context->fillText(args.at(exec, 0)->toString(exec), args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec), args.at(exec, 3)->toFloat(exec)); + context->fillText(args.at(exec, 0).toString(exec), args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec), args.at(exec, 3).toFloat(exec)); else - context->fillText(args.at(exec, 0)->toString(exec), args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec)); + context->fillText(args.at(exec, 0).toString(exec), args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec)); return jsUndefined(); } -JSValue* JSCanvasRenderingContext2D::strokeText(ExecState* exec, const ArgList& args) +JSValuePtr JSCanvasRenderingContext2D::strokeText(ExecState* exec, const ArgList& args) { CanvasRenderingContext2D* context = impl(); @@ -380,9 +380,9 @@ JSValue* JSCanvasRenderingContext2D::strokeText(ExecState* exec, const ArgList& return throwError(exec, SyntaxError); if (args.size() == 4) - context->strokeText(args.at(exec, 0)->toString(exec), args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec), args.at(exec, 3)->toFloat(exec)); + context->strokeText(args.at(exec, 0).toString(exec), args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec), args.at(exec, 3).toFloat(exec)); else - context->strokeText(args.at(exec, 0)->toString(exec), args.at(exec, 1)->toFloat(exec), args.at(exec, 2)->toFloat(exec)); + context->strokeText(args.at(exec, 0).toString(exec), args.at(exec, 1).toFloat(exec), args.at(exec, 2).toFloat(exec)); return jsUndefined(); } |