v8::Handle<v8::Value> V8CanvasRenderingContext2D::strokeTextCallback(const v8::Arguments& args) { INC_STATS("DOM.CanvasRenderingContext2D.strokeText()"); CanvasRenderingContext2D* context = V8CanvasRenderingContext2D::toNative(args.Holder()); // Two forms: // * strokeText(text, x, y) // * strokeText(text, x, y, maxWidth) if (args.Length() < 3 || args.Length() > 4) { V8Proxy::setDOMException(SYNTAX_ERR); return notHandledByInterceptor(); } String text = toWebCoreString(args[0]); float x = toFloat(args[1]); float y = toFloat(args[2]); if (args.Length() == 4) { float maxWidth = toFloat(args[3]); context->strokeText(text, x, y, maxWidth); } else context->strokeText(text, x, y); return v8::Undefined(); }
JSValue JSCanvasRenderingContext2D::strokeText(ExecState* exec, const ArgList& args) { CanvasRenderingContext2D* context = impl(); // string arg = text to draw // number arg = x // number arg = y // optional number arg = maxWidth if (args.size() < 3 || args.size() > 4) return throwError(exec, SyntaxError); if (args.size() == 4) context->strokeText(args.at(0).toString(exec), args.at(1).toFloat(exec), args.at(2).toFloat(exec), args.at(3).toFloat(exec)); else context->strokeText(args.at(0).toString(exec), args.at(1).toFloat(exec), args.at(2).toFloat(exec)); return jsUndefined(); }