v8::Handle<v8::Value> V8CanvasRenderingContext2D::drawImageFromRectCallback(const v8::Arguments& args) { INC_STATS("DOM.CanvasRenderingContext2D.drawImageFromRect()"); CanvasRenderingContext2D* context = V8CanvasRenderingContext2D::toNative(args.Holder()); v8::Handle<v8::Value> arg = args[0]; if (V8HTMLImageElement::HasInstance(arg)) { HTMLImageElement* imageElement = V8HTMLImageElement::toNative(v8::Handle<v8::Object>::Cast(arg)); context->drawImageFromRect(imageElement, toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]), toFloat(args[5]), toFloat(args[6]), toFloat(args[7]), toFloat(args[8]), toWebCoreString(args[9])); } else V8Proxy::throwError(V8Proxy::TypeError, "drawImageFromRect: Invalid type of arguments"); return v8::Undefined(); }
JSValue* JSCanvasRenderingContext2D::drawImageFromRect(ExecState* exec, const ArgList& args) { CanvasRenderingContext2D* context = impl(); JSValue* value = args[0]; if (!value->isObject()) return throwError(exec, TypeError); JSObject* o = static_cast<JSObject*>(value); if (!o->inherits(&JSHTMLImageElement::s_info)) return throwError(exec, TypeError); context->drawImageFromRect(static_cast<HTMLImageElement*>(static_cast<JSHTMLElement*>(args[0])->impl()), args[1]->toFloat(exec), args[2]->toFloat(exec), args[3]->toFloat(exec), args[4]->toFloat(exec), args[5]->toFloat(exec), args[6]->toFloat(exec), args[7]->toFloat(exec), args[8]->toFloat(exec), args[9]->toString(exec)); return jsUndefined(); }
JSValue JSCanvasRenderingContext2D::drawImageFromRect(ExecState* exec, const ArgList& args) { CanvasRenderingContext2D* context = impl(); JSValue value = args.at(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(1).toFloat(exec), args.at(2).toFloat(exec), args.at(3).toFloat(exec), args.at(4).toFloat(exec), args.at(5).toFloat(exec), args.at(6).toFloat(exec), args.at(7).toFloat(exec), args.at(8).toFloat(exec), args.at(9).toString(exec)); return jsUndefined(); }