WebCore/generated/JSCanvasRenderingContext2D.cpp
changeset 0 4f2f89ce4247
equal deleted inserted replaced
-1:000000000000 0:4f2f89ce4247
       
     1 /*
       
     2     This file is part of the WebKit open source project.
       
     3     This file has been generated by generate-bindings.pl. DO NOT MODIFY!
       
     4 
       
     5     This library is free software; you can redistribute it and/or
       
     6     modify it under the terms of the GNU Library General Public
       
     7     License as published by the Free Software Foundation; either
       
     8     version 2 of the License, or (at your option) any later version.
       
     9 
       
    10     This library is distributed in the hope that it will be useful,
       
    11     but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       
    13     Library General Public License for more details.
       
    14 
       
    15     You should have received a copy of the GNU Library General Public License
       
    16     along with this library; see the file COPYING.LIB.  If not, write to
       
    17     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
       
    18     Boston, MA 02110-1301, USA.
       
    19 */
       
    20 
       
    21 #include "config.h"
       
    22 #include "JSCanvasRenderingContext2D.h"
       
    23 
       
    24 #include "CanvasGradient.h"
       
    25 #include "CanvasPattern.h"
       
    26 #include "CanvasRenderingContext2D.h"
       
    27 #include "CanvasStyle.h"
       
    28 #include "ImageData.h"
       
    29 #include "JSCanvasGradient.h"
       
    30 #include "JSImageData.h"
       
    31 #include "JSTextMetrics.h"
       
    32 #include "KURL.h"
       
    33 #include "PlatformString.h"
       
    34 #include "TextMetrics.h"
       
    35 #include <runtime/Error.h>
       
    36 #include <runtime/JSNumberCell.h>
       
    37 #include <runtime/JSString.h>
       
    38 #include <wtf/GetPtr.h>
       
    39 
       
    40 using namespace JSC;
       
    41 
       
    42 namespace WebCore {
       
    43 
       
    44 ASSERT_CLASS_FITS_IN_CELL(JSCanvasRenderingContext2D);
       
    45 
       
    46 /* Hash table */
       
    47 #if ENABLE(JIT)
       
    48 #define THUNK_GENERATOR(generator) , generator
       
    49 #else
       
    50 #define THUNK_GENERATOR(generator)
       
    51 #endif
       
    52 
       
    53 static const HashTableValue JSCanvasRenderingContext2DTableValues[17] =
       
    54 {
       
    55     { "globalAlpha", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DGlobalAlpha), (intptr_t)setJSCanvasRenderingContext2DGlobalAlpha THUNK_GENERATOR(0) },
       
    56     { "globalCompositeOperation", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DGlobalCompositeOperation), (intptr_t)setJSCanvasRenderingContext2DGlobalCompositeOperation THUNK_GENERATOR(0) },
       
    57     { "lineWidth", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DLineWidth), (intptr_t)setJSCanvasRenderingContext2DLineWidth THUNK_GENERATOR(0) },
       
    58     { "lineCap", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DLineCap), (intptr_t)setJSCanvasRenderingContext2DLineCap THUNK_GENERATOR(0) },
       
    59     { "lineJoin", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DLineJoin), (intptr_t)setJSCanvasRenderingContext2DLineJoin THUNK_GENERATOR(0) },
       
    60     { "miterLimit", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DMiterLimit), (intptr_t)setJSCanvasRenderingContext2DMiterLimit THUNK_GENERATOR(0) },
       
    61     { "shadowOffsetX", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DShadowOffsetX), (intptr_t)setJSCanvasRenderingContext2DShadowOffsetX THUNK_GENERATOR(0) },
       
    62     { "shadowOffsetY", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DShadowOffsetY), (intptr_t)setJSCanvasRenderingContext2DShadowOffsetY THUNK_GENERATOR(0) },
       
    63     { "shadowBlur", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DShadowBlur), (intptr_t)setJSCanvasRenderingContext2DShadowBlur THUNK_GENERATOR(0) },
       
    64     { "shadowColor", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DShadowColor), (intptr_t)setJSCanvasRenderingContext2DShadowColor THUNK_GENERATOR(0) },
       
    65     { "font", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DFont), (intptr_t)setJSCanvasRenderingContext2DFont THUNK_GENERATOR(0) },
       
    66     { "textAlign", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DTextAlign), (intptr_t)setJSCanvasRenderingContext2DTextAlign THUNK_GENERATOR(0) },
       
    67     { "textBaseline", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DTextBaseline), (intptr_t)setJSCanvasRenderingContext2DTextBaseline THUNK_GENERATOR(0) },
       
    68     { "strokeStyle", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DStrokeStyle), (intptr_t)setJSCanvasRenderingContext2DStrokeStyle THUNK_GENERATOR(0) },
       
    69     { "fillStyle", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DFillStyle), (intptr_t)setJSCanvasRenderingContext2DFillStyle THUNK_GENERATOR(0) },
       
    70     { "constructor", DontEnum | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsCanvasRenderingContext2DConstructor), (intptr_t)0 THUNK_GENERATOR(0) },
       
    71     { 0, 0, 0, 0 THUNK_GENERATOR(0) }
       
    72 };
       
    73 
       
    74 #undef THUNK_GENERATOR
       
    75 static JSC_CONST_HASHTABLE HashTable JSCanvasRenderingContext2DTable = { 36, 31, JSCanvasRenderingContext2DTableValues, 0 };
       
    76 /* Hash table for constructor */
       
    77 #if ENABLE(JIT)
       
    78 #define THUNK_GENERATOR(generator) , generator
       
    79 #else
       
    80 #define THUNK_GENERATOR(generator)
       
    81 #endif
       
    82 
       
    83 static const HashTableValue JSCanvasRenderingContext2DConstructorTableValues[1] =
       
    84 {
       
    85     { 0, 0, 0, 0 THUNK_GENERATOR(0) }
       
    86 };
       
    87 
       
    88 #undef THUNK_GENERATOR
       
    89 static JSC_CONST_HASHTABLE HashTable JSCanvasRenderingContext2DConstructorTable = { 1, 0, JSCanvasRenderingContext2DConstructorTableValues, 0 };
       
    90 class JSCanvasRenderingContext2DConstructor : public DOMConstructorObject {
       
    91 public:
       
    92     JSCanvasRenderingContext2DConstructor(JSC::ExecState*, JSDOMGlobalObject*);
       
    93 
       
    94     virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier&, JSC::PropertySlot&);
       
    95     virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier&, JSC::PropertyDescriptor&);
       
    96     virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
       
    97     static const JSC::ClassInfo s_info;
       
    98     static PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
       
    99     {
       
   100         return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount);
       
   101     }
       
   102 protected:
       
   103     static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::ImplementsHasInstance | DOMConstructorObject::StructureFlags;
       
   104 };
       
   105 
       
   106 const ClassInfo JSCanvasRenderingContext2DConstructor::s_info = { "CanvasRenderingContext2DConstructor", 0, &JSCanvasRenderingContext2DConstructorTable, 0 };
       
   107 
       
   108 JSCanvasRenderingContext2DConstructor::JSCanvasRenderingContext2DConstructor(ExecState* exec, JSDOMGlobalObject* globalObject)
       
   109     : DOMConstructorObject(JSCanvasRenderingContext2DConstructor::createStructure(globalObject->objectPrototype()), globalObject)
       
   110 {
       
   111     putDirect(exec->propertyNames().prototype, JSCanvasRenderingContext2DPrototype::self(exec, globalObject), DontDelete | ReadOnly);
       
   112 }
       
   113 
       
   114 bool JSCanvasRenderingContext2DConstructor::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
       
   115 {
       
   116     return getStaticValueSlot<JSCanvasRenderingContext2DConstructor, DOMObject>(exec, &JSCanvasRenderingContext2DConstructorTable, this, propertyName, slot);
       
   117 }
       
   118 
       
   119 bool JSCanvasRenderingContext2DConstructor::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
       
   120 {
       
   121     return getStaticValueDescriptor<JSCanvasRenderingContext2DConstructor, DOMObject>(exec, &JSCanvasRenderingContext2DConstructorTable, this, propertyName, descriptor);
       
   122 }
       
   123 
       
   124 /* Hash table for prototype */
       
   125 #if ENABLE(JIT)
       
   126 #define THUNK_GENERATOR(generator) , generator
       
   127 #else
       
   128 #define THUNK_GENERATOR(generator)
       
   129 #endif
       
   130 
       
   131 static const HashTableValue JSCanvasRenderingContext2DPrototypeTableValues[45] =
       
   132 {
       
   133     { "save", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionSave), (intptr_t)0 THUNK_GENERATOR(0) },
       
   134     { "restore", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionRestore), (intptr_t)0 THUNK_GENERATOR(0) },
       
   135     { "scale", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionScale), (intptr_t)2 THUNK_GENERATOR(0) },
       
   136     { "rotate", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionRotate), (intptr_t)1 THUNK_GENERATOR(0) },
       
   137     { "translate", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionTranslate), (intptr_t)2 THUNK_GENERATOR(0) },
       
   138     { "transform", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionTransform), (intptr_t)6 THUNK_GENERATOR(0) },
       
   139     { "setTransform", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionSetTransform), (intptr_t)6 THUNK_GENERATOR(0) },
       
   140     { "createLinearGradient", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionCreateLinearGradient), (intptr_t)4 THUNK_GENERATOR(0) },
       
   141     { "createRadialGradient", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionCreateRadialGradient), (intptr_t)6 THUNK_GENERATOR(0) },
       
   142     { "clearRect", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionClearRect), (intptr_t)4 THUNK_GENERATOR(0) },
       
   143     { "fillRect", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionFillRect), (intptr_t)4 THUNK_GENERATOR(0) },
       
   144     { "beginPath", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionBeginPath), (intptr_t)0 THUNK_GENERATOR(0) },
       
   145     { "closePath", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionClosePath), (intptr_t)0 THUNK_GENERATOR(0) },
       
   146     { "moveTo", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionMoveTo), (intptr_t)2 THUNK_GENERATOR(0) },
       
   147     { "lineTo", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionLineTo), (intptr_t)2 THUNK_GENERATOR(0) },
       
   148     { "quadraticCurveTo", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionQuadraticCurveTo), (intptr_t)4 THUNK_GENERATOR(0) },
       
   149     { "bezierCurveTo", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionBezierCurveTo), (intptr_t)6 THUNK_GENERATOR(0) },
       
   150     { "arcTo", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionArcTo), (intptr_t)5 THUNK_GENERATOR(0) },
       
   151     { "rect", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionRect), (intptr_t)4 THUNK_GENERATOR(0) },
       
   152     { "arc", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionArc), (intptr_t)6 THUNK_GENERATOR(0) },
       
   153     { "fill", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionFill), (intptr_t)0 THUNK_GENERATOR(0) },
       
   154     { "stroke", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionStroke), (intptr_t)0 THUNK_GENERATOR(0) },
       
   155     { "clip", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionClip), (intptr_t)0 THUNK_GENERATOR(0) },
       
   156     { "isPointInPath", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionIsPointInPath), (intptr_t)2 THUNK_GENERATOR(0) },
       
   157     { "measureText", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionMeasureText), (intptr_t)1 THUNK_GENERATOR(0) },
       
   158     { "setAlpha", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionSetAlpha), (intptr_t)1 THUNK_GENERATOR(0) },
       
   159     { "setCompositeOperation", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionSetCompositeOperation), (intptr_t)1 THUNK_GENERATOR(0) },
       
   160     { "setLineWidth", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionSetLineWidth), (intptr_t)1 THUNK_GENERATOR(0) },
       
   161     { "setLineCap", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionSetLineCap), (intptr_t)1 THUNK_GENERATOR(0) },
       
   162     { "setLineJoin", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionSetLineJoin), (intptr_t)1 THUNK_GENERATOR(0) },
       
   163     { "setMiterLimit", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionSetMiterLimit), (intptr_t)1 THUNK_GENERATOR(0) },
       
   164     { "clearShadow", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionClearShadow), (intptr_t)0 THUNK_GENERATOR(0) },
       
   165     { "fillText", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionFillText), (intptr_t)0 THUNK_GENERATOR(0) },
       
   166     { "strokeText", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionStrokeText), (intptr_t)0 THUNK_GENERATOR(0) },
       
   167     { "setStrokeColor", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionSetStrokeColor), (intptr_t)0 THUNK_GENERATOR(0) },
       
   168     { "setFillColor", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionSetFillColor), (intptr_t)0 THUNK_GENERATOR(0) },
       
   169     { "strokeRect", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionStrokeRect), (intptr_t)0 THUNK_GENERATOR(0) },
       
   170     { "drawImage", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionDrawImage), (intptr_t)0 THUNK_GENERATOR(0) },
       
   171     { "drawImageFromRect", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionDrawImageFromRect), (intptr_t)0 THUNK_GENERATOR(0) },
       
   172     { "setShadow", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionSetShadow), (intptr_t)0 THUNK_GENERATOR(0) },
       
   173     { "createPattern", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionCreatePattern), (intptr_t)0 THUNK_GENERATOR(0) },
       
   174     { "putImageData", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionPutImageData), (intptr_t)0 THUNK_GENERATOR(0) },
       
   175     { "createImageData", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionCreateImageData), (intptr_t)0 THUNK_GENERATOR(0) },
       
   176     { "getImageData", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsCanvasRenderingContext2DPrototypeFunctionGetImageData), (intptr_t)4 THUNK_GENERATOR(0) },
       
   177     { 0, 0, 0, 0 THUNK_GENERATOR(0) }
       
   178 };
       
   179 
       
   180 #undef THUNK_GENERATOR
       
   181 static JSC_CONST_HASHTABLE HashTable JSCanvasRenderingContext2DPrototypeTable = { 134, 127, JSCanvasRenderingContext2DPrototypeTableValues, 0 };
       
   182 const ClassInfo JSCanvasRenderingContext2DPrototype::s_info = { "CanvasRenderingContext2DPrototype", 0, &JSCanvasRenderingContext2DPrototypeTable, 0 };
       
   183 
       
   184 JSObject* JSCanvasRenderingContext2DPrototype::self(ExecState* exec, JSGlobalObject* globalObject)
       
   185 {
       
   186     return getDOMPrototype<JSCanvasRenderingContext2D>(exec, globalObject);
       
   187 }
       
   188 
       
   189 bool JSCanvasRenderingContext2DPrototype::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
       
   190 {
       
   191     return getStaticFunctionSlot<JSObject>(exec, &JSCanvasRenderingContext2DPrototypeTable, this, propertyName, slot);
       
   192 }
       
   193 
       
   194 bool JSCanvasRenderingContext2DPrototype::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
       
   195 {
       
   196     return getStaticFunctionDescriptor<JSObject>(exec, &JSCanvasRenderingContext2DPrototypeTable, this, propertyName, descriptor);
       
   197 }
       
   198 
       
   199 const ClassInfo JSCanvasRenderingContext2D::s_info = { "CanvasRenderingContext2D", &JSCanvasRenderingContext::s_info, &JSCanvasRenderingContext2DTable, 0 };
       
   200 
       
   201 JSCanvasRenderingContext2D::JSCanvasRenderingContext2D(NonNullPassRefPtr<Structure> structure, JSDOMGlobalObject* globalObject, PassRefPtr<CanvasRenderingContext2D> impl)
       
   202     : JSCanvasRenderingContext(structure, globalObject, impl)
       
   203 {
       
   204 }
       
   205 
       
   206 JSObject* JSCanvasRenderingContext2D::createPrototype(ExecState* exec, JSGlobalObject* globalObject)
       
   207 {
       
   208     return new (exec) JSCanvasRenderingContext2DPrototype(globalObject, JSCanvasRenderingContext2DPrototype::createStructure(JSCanvasRenderingContextPrototype::self(exec, globalObject)));
       
   209 }
       
   210 
       
   211 bool JSCanvasRenderingContext2D::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
       
   212 {
       
   213     return getStaticValueSlot<JSCanvasRenderingContext2D, Base>(exec, &JSCanvasRenderingContext2DTable, this, propertyName, slot);
       
   214 }
       
   215 
       
   216 bool JSCanvasRenderingContext2D::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
       
   217 {
       
   218     return getStaticValueDescriptor<JSCanvasRenderingContext2D, Base>(exec, &JSCanvasRenderingContext2DTable, this, propertyName, descriptor);
       
   219 }
       
   220 
       
   221 JSValue jsCanvasRenderingContext2DGlobalAlpha(ExecState* exec, JSValue slotBase, const Identifier&)
       
   222 {
       
   223     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   224     UNUSED_PARAM(exec);
       
   225     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   226     JSValue result = jsNumber(exec, imp->globalAlpha());
       
   227     return result;
       
   228 }
       
   229 
       
   230 JSValue jsCanvasRenderingContext2DGlobalCompositeOperation(ExecState* exec, JSValue slotBase, const Identifier&)
       
   231 {
       
   232     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   233     UNUSED_PARAM(exec);
       
   234     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   235     JSValue result = jsString(exec, imp->globalCompositeOperation());
       
   236     return result;
       
   237 }
       
   238 
       
   239 JSValue jsCanvasRenderingContext2DLineWidth(ExecState* exec, JSValue slotBase, const Identifier&)
       
   240 {
       
   241     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   242     UNUSED_PARAM(exec);
       
   243     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   244     JSValue result = jsNumber(exec, imp->lineWidth());
       
   245     return result;
       
   246 }
       
   247 
       
   248 JSValue jsCanvasRenderingContext2DLineCap(ExecState* exec, JSValue slotBase, const Identifier&)
       
   249 {
       
   250     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   251     UNUSED_PARAM(exec);
       
   252     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   253     JSValue result = jsString(exec, imp->lineCap());
       
   254     return result;
       
   255 }
       
   256 
       
   257 JSValue jsCanvasRenderingContext2DLineJoin(ExecState* exec, JSValue slotBase, const Identifier&)
       
   258 {
       
   259     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   260     UNUSED_PARAM(exec);
       
   261     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   262     JSValue result = jsString(exec, imp->lineJoin());
       
   263     return result;
       
   264 }
       
   265 
       
   266 JSValue jsCanvasRenderingContext2DMiterLimit(ExecState* exec, JSValue slotBase, const Identifier&)
       
   267 {
       
   268     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   269     UNUSED_PARAM(exec);
       
   270     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   271     JSValue result = jsNumber(exec, imp->miterLimit());
       
   272     return result;
       
   273 }
       
   274 
       
   275 JSValue jsCanvasRenderingContext2DShadowOffsetX(ExecState* exec, JSValue slotBase, const Identifier&)
       
   276 {
       
   277     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   278     UNUSED_PARAM(exec);
       
   279     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   280     JSValue result = jsNumber(exec, imp->shadowOffsetX());
       
   281     return result;
       
   282 }
       
   283 
       
   284 JSValue jsCanvasRenderingContext2DShadowOffsetY(ExecState* exec, JSValue slotBase, const Identifier&)
       
   285 {
       
   286     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   287     UNUSED_PARAM(exec);
       
   288     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   289     JSValue result = jsNumber(exec, imp->shadowOffsetY());
       
   290     return result;
       
   291 }
       
   292 
       
   293 JSValue jsCanvasRenderingContext2DShadowBlur(ExecState* exec, JSValue slotBase, const Identifier&)
       
   294 {
       
   295     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   296     UNUSED_PARAM(exec);
       
   297     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   298     JSValue result = jsNumber(exec, imp->shadowBlur());
       
   299     return result;
       
   300 }
       
   301 
       
   302 JSValue jsCanvasRenderingContext2DShadowColor(ExecState* exec, JSValue slotBase, const Identifier&)
       
   303 {
       
   304     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   305     UNUSED_PARAM(exec);
       
   306     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   307     JSValue result = jsString(exec, imp->shadowColor());
       
   308     return result;
       
   309 }
       
   310 
       
   311 JSValue jsCanvasRenderingContext2DFont(ExecState* exec, JSValue slotBase, const Identifier&)
       
   312 {
       
   313     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   314     UNUSED_PARAM(exec);
       
   315     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   316     JSValue result = jsString(exec, imp->font());
       
   317     return result;
       
   318 }
       
   319 
       
   320 JSValue jsCanvasRenderingContext2DTextAlign(ExecState* exec, JSValue slotBase, const Identifier&)
       
   321 {
       
   322     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   323     UNUSED_PARAM(exec);
       
   324     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   325     JSValue result = jsString(exec, imp->textAlign());
       
   326     return result;
       
   327 }
       
   328 
       
   329 JSValue jsCanvasRenderingContext2DTextBaseline(ExecState* exec, JSValue slotBase, const Identifier&)
       
   330 {
       
   331     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   332     UNUSED_PARAM(exec);
       
   333     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   334     JSValue result = jsString(exec, imp->textBaseline());
       
   335     return result;
       
   336 }
       
   337 
       
   338 JSValue jsCanvasRenderingContext2DStrokeStyle(ExecState* exec, JSValue slotBase, const Identifier&)
       
   339 {
       
   340     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   341     return castedThis->strokeStyle(exec);
       
   342 }
       
   343 
       
   344 JSValue jsCanvasRenderingContext2DFillStyle(ExecState* exec, JSValue slotBase, const Identifier&)
       
   345 {
       
   346     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   347     return castedThis->fillStyle(exec);
       
   348 }
       
   349 
       
   350 JSValue jsCanvasRenderingContext2DConstructor(ExecState* exec, JSValue slotBase, const Identifier&)
       
   351 {
       
   352     JSCanvasRenderingContext2D* domObject = static_cast<JSCanvasRenderingContext2D*>(asObject(slotBase));
       
   353     return JSCanvasRenderingContext2D::getConstructor(exec, domObject->globalObject());
       
   354 }
       
   355 void JSCanvasRenderingContext2D::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
       
   356 {
       
   357     lookupPut<JSCanvasRenderingContext2D, Base>(exec, propertyName, value, &JSCanvasRenderingContext2DTable, this, slot);
       
   358 }
       
   359 
       
   360 void setJSCanvasRenderingContext2DGlobalAlpha(ExecState* exec, JSObject* thisObject, JSValue value)
       
   361 {
       
   362     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   363     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   364     imp->setGlobalAlpha(value.toFloat(exec));
       
   365 }
       
   366 
       
   367 void setJSCanvasRenderingContext2DGlobalCompositeOperation(ExecState* exec, JSObject* thisObject, JSValue value)
       
   368 {
       
   369     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   370     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   371     imp->setGlobalCompositeOperation(valueToStringWithNullCheck(exec, value));
       
   372 }
       
   373 
       
   374 void setJSCanvasRenderingContext2DLineWidth(ExecState* exec, JSObject* thisObject, JSValue value)
       
   375 {
       
   376     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   377     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   378     imp->setLineWidth(value.toFloat(exec));
       
   379 }
       
   380 
       
   381 void setJSCanvasRenderingContext2DLineCap(ExecState* exec, JSObject* thisObject, JSValue value)
       
   382 {
       
   383     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   384     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   385     imp->setLineCap(valueToStringWithNullCheck(exec, value));
       
   386 }
       
   387 
       
   388 void setJSCanvasRenderingContext2DLineJoin(ExecState* exec, JSObject* thisObject, JSValue value)
       
   389 {
       
   390     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   391     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   392     imp->setLineJoin(valueToStringWithNullCheck(exec, value));
       
   393 }
       
   394 
       
   395 void setJSCanvasRenderingContext2DMiterLimit(ExecState* exec, JSObject* thisObject, JSValue value)
       
   396 {
       
   397     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   398     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   399     imp->setMiterLimit(value.toFloat(exec));
       
   400 }
       
   401 
       
   402 void setJSCanvasRenderingContext2DShadowOffsetX(ExecState* exec, JSObject* thisObject, JSValue value)
       
   403 {
       
   404     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   405     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   406     imp->setShadowOffsetX(value.toFloat(exec));
       
   407 }
       
   408 
       
   409 void setJSCanvasRenderingContext2DShadowOffsetY(ExecState* exec, JSObject* thisObject, JSValue value)
       
   410 {
       
   411     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   412     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   413     imp->setShadowOffsetY(value.toFloat(exec));
       
   414 }
       
   415 
       
   416 void setJSCanvasRenderingContext2DShadowBlur(ExecState* exec, JSObject* thisObject, JSValue value)
       
   417 {
       
   418     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   419     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   420     imp->setShadowBlur(value.toFloat(exec));
       
   421 }
       
   422 
       
   423 void setJSCanvasRenderingContext2DShadowColor(ExecState* exec, JSObject* thisObject, JSValue value)
       
   424 {
       
   425     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   426     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   427     imp->setShadowColor(valueToStringWithNullCheck(exec, value));
       
   428 }
       
   429 
       
   430 void setJSCanvasRenderingContext2DFont(ExecState* exec, JSObject* thisObject, JSValue value)
       
   431 {
       
   432     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   433     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   434     imp->setFont(ustringToString(value.toString(exec)));
       
   435 }
       
   436 
       
   437 void setJSCanvasRenderingContext2DTextAlign(ExecState* exec, JSObject* thisObject, JSValue value)
       
   438 {
       
   439     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   440     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   441     imp->setTextAlign(ustringToString(value.toString(exec)));
       
   442 }
       
   443 
       
   444 void setJSCanvasRenderingContext2DTextBaseline(ExecState* exec, JSObject* thisObject, JSValue value)
       
   445 {
       
   446     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(thisObject);
       
   447     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   448     imp->setTextBaseline(ustringToString(value.toString(exec)));
       
   449 }
       
   450 
       
   451 void setJSCanvasRenderingContext2DStrokeStyle(ExecState* exec, JSObject* thisObject, JSValue value)
       
   452 {
       
   453     static_cast<JSCanvasRenderingContext2D*>(thisObject)->setStrokeStyle(exec, value);
       
   454 }
       
   455 
       
   456 void setJSCanvasRenderingContext2DFillStyle(ExecState* exec, JSObject* thisObject, JSValue value)
       
   457 {
       
   458     static_cast<JSCanvasRenderingContext2D*>(thisObject)->setFillStyle(exec, value);
       
   459 }
       
   460 
       
   461 JSValue JSCanvasRenderingContext2D::getConstructor(ExecState* exec, JSGlobalObject* globalObject)
       
   462 {
       
   463     return getDOMConstructor<JSCanvasRenderingContext2DConstructor>(exec, static_cast<JSDOMGlobalObject*>(globalObject));
       
   464 }
       
   465 
       
   466 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionSave(ExecState* exec)
       
   467 {
       
   468     JSValue thisValue = exec->hostThisValue();
       
   469     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   470         return throwVMTypeError(exec);
       
   471     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   472     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   473 
       
   474     imp->save();
       
   475     return JSValue::encode(jsUndefined());
       
   476 }
       
   477 
       
   478 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionRestore(ExecState* exec)
       
   479 {
       
   480     JSValue thisValue = exec->hostThisValue();
       
   481     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   482         return throwVMTypeError(exec);
       
   483     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   484     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   485 
       
   486     imp->restore();
       
   487     return JSValue::encode(jsUndefined());
       
   488 }
       
   489 
       
   490 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionScale(ExecState* exec)
       
   491 {
       
   492     JSValue thisValue = exec->hostThisValue();
       
   493     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   494         return throwVMTypeError(exec);
       
   495     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   496     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   497     float sx = exec->argument(0).toFloat(exec);
       
   498     float sy = exec->argument(1).toFloat(exec);
       
   499 
       
   500     imp->scale(sx, sy);
       
   501     return JSValue::encode(jsUndefined());
       
   502 }
       
   503 
       
   504 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionRotate(ExecState* exec)
       
   505 {
       
   506     JSValue thisValue = exec->hostThisValue();
       
   507     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   508         return throwVMTypeError(exec);
       
   509     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   510     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   511     float angle = exec->argument(0).toFloat(exec);
       
   512 
       
   513     imp->rotate(angle);
       
   514     return JSValue::encode(jsUndefined());
       
   515 }
       
   516 
       
   517 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionTranslate(ExecState* exec)
       
   518 {
       
   519     JSValue thisValue = exec->hostThisValue();
       
   520     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   521         return throwVMTypeError(exec);
       
   522     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   523     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   524     float tx = exec->argument(0).toFloat(exec);
       
   525     float ty = exec->argument(1).toFloat(exec);
       
   526 
       
   527     imp->translate(tx, ty);
       
   528     return JSValue::encode(jsUndefined());
       
   529 }
       
   530 
       
   531 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionTransform(ExecState* exec)
       
   532 {
       
   533     JSValue thisValue = exec->hostThisValue();
       
   534     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   535         return throwVMTypeError(exec);
       
   536     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   537     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   538     float m11 = exec->argument(0).toFloat(exec);
       
   539     float m12 = exec->argument(1).toFloat(exec);
       
   540     float m21 = exec->argument(2).toFloat(exec);
       
   541     float m22 = exec->argument(3).toFloat(exec);
       
   542     float dx = exec->argument(4).toFloat(exec);
       
   543     float dy = exec->argument(5).toFloat(exec);
       
   544 
       
   545     imp->transform(m11, m12, m21, m22, dx, dy);
       
   546     return JSValue::encode(jsUndefined());
       
   547 }
       
   548 
       
   549 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionSetTransform(ExecState* exec)
       
   550 {
       
   551     JSValue thisValue = exec->hostThisValue();
       
   552     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   553         return throwVMTypeError(exec);
       
   554     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   555     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   556     float m11 = exec->argument(0).toFloat(exec);
       
   557     float m12 = exec->argument(1).toFloat(exec);
       
   558     float m21 = exec->argument(2).toFloat(exec);
       
   559     float m22 = exec->argument(3).toFloat(exec);
       
   560     float dx = exec->argument(4).toFloat(exec);
       
   561     float dy = exec->argument(5).toFloat(exec);
       
   562 
       
   563     imp->setTransform(m11, m12, m21, m22, dx, dy);
       
   564     return JSValue::encode(jsUndefined());
       
   565 }
       
   566 
       
   567 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionCreateLinearGradient(ExecState* exec)
       
   568 {
       
   569     JSValue thisValue = exec->hostThisValue();
       
   570     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   571         return throwVMTypeError(exec);
       
   572     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   573     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   574     ExceptionCode ec = 0;
       
   575     float x0 = exec->argument(0).toFloat(exec);
       
   576     float y0 = exec->argument(1).toFloat(exec);
       
   577     float x1 = exec->argument(2).toFloat(exec);
       
   578     float y1 = exec->argument(3).toFloat(exec);
       
   579 
       
   580 
       
   581     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createLinearGradient(x0, y0, x1, y1, ec)));
       
   582     setDOMException(exec, ec);
       
   583     return JSValue::encode(result);
       
   584 }
       
   585 
       
   586 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionCreateRadialGradient(ExecState* exec)
       
   587 {
       
   588     JSValue thisValue = exec->hostThisValue();
       
   589     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   590         return throwVMTypeError(exec);
       
   591     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   592     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   593     ExceptionCode ec = 0;
       
   594     float x0 = exec->argument(0).toFloat(exec);
       
   595     float y0 = exec->argument(1).toFloat(exec);
       
   596     float r0 = exec->argument(2).toFloat(exec);
       
   597     float x1 = exec->argument(3).toFloat(exec);
       
   598     float y1 = exec->argument(4).toFloat(exec);
       
   599     float r1 = exec->argument(5).toFloat(exec);
       
   600 
       
   601 
       
   602     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createRadialGradient(x0, y0, r0, x1, y1, r1, ec)));
       
   603     setDOMException(exec, ec);
       
   604     return JSValue::encode(result);
       
   605 }
       
   606 
       
   607 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionClearRect(ExecState* exec)
       
   608 {
       
   609     JSValue thisValue = exec->hostThisValue();
       
   610     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   611         return throwVMTypeError(exec);
       
   612     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   613     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   614     float x = exec->argument(0).toFloat(exec);
       
   615     float y = exec->argument(1).toFloat(exec);
       
   616     float width = exec->argument(2).toFloat(exec);
       
   617     float height = exec->argument(3).toFloat(exec);
       
   618 
       
   619     imp->clearRect(x, y, width, height);
       
   620     return JSValue::encode(jsUndefined());
       
   621 }
       
   622 
       
   623 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionFillRect(ExecState* exec)
       
   624 {
       
   625     JSValue thisValue = exec->hostThisValue();
       
   626     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   627         return throwVMTypeError(exec);
       
   628     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   629     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   630     float x = exec->argument(0).toFloat(exec);
       
   631     float y = exec->argument(1).toFloat(exec);
       
   632     float width = exec->argument(2).toFloat(exec);
       
   633     float height = exec->argument(3).toFloat(exec);
       
   634 
       
   635     imp->fillRect(x, y, width, height);
       
   636     return JSValue::encode(jsUndefined());
       
   637 }
       
   638 
       
   639 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionBeginPath(ExecState* exec)
       
   640 {
       
   641     JSValue thisValue = exec->hostThisValue();
       
   642     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   643         return throwVMTypeError(exec);
       
   644     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   645     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   646 
       
   647     imp->beginPath();
       
   648     return JSValue::encode(jsUndefined());
       
   649 }
       
   650 
       
   651 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionClosePath(ExecState* exec)
       
   652 {
       
   653     JSValue thisValue = exec->hostThisValue();
       
   654     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   655         return throwVMTypeError(exec);
       
   656     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   657     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   658 
       
   659     imp->closePath();
       
   660     return JSValue::encode(jsUndefined());
       
   661 }
       
   662 
       
   663 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionMoveTo(ExecState* exec)
       
   664 {
       
   665     JSValue thisValue = exec->hostThisValue();
       
   666     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   667         return throwVMTypeError(exec);
       
   668     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   669     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   670     float x = exec->argument(0).toFloat(exec);
       
   671     float y = exec->argument(1).toFloat(exec);
       
   672 
       
   673     imp->moveTo(x, y);
       
   674     return JSValue::encode(jsUndefined());
       
   675 }
       
   676 
       
   677 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionLineTo(ExecState* exec)
       
   678 {
       
   679     JSValue thisValue = exec->hostThisValue();
       
   680     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   681         return throwVMTypeError(exec);
       
   682     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   683     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   684     float x = exec->argument(0).toFloat(exec);
       
   685     float y = exec->argument(1).toFloat(exec);
       
   686 
       
   687     imp->lineTo(x, y);
       
   688     return JSValue::encode(jsUndefined());
       
   689 }
       
   690 
       
   691 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionQuadraticCurveTo(ExecState* exec)
       
   692 {
       
   693     JSValue thisValue = exec->hostThisValue();
       
   694     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   695         return throwVMTypeError(exec);
       
   696     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   697     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   698     float cpx = exec->argument(0).toFloat(exec);
       
   699     float cpy = exec->argument(1).toFloat(exec);
       
   700     float x = exec->argument(2).toFloat(exec);
       
   701     float y = exec->argument(3).toFloat(exec);
       
   702 
       
   703     imp->quadraticCurveTo(cpx, cpy, x, y);
       
   704     return JSValue::encode(jsUndefined());
       
   705 }
       
   706 
       
   707 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionBezierCurveTo(ExecState* exec)
       
   708 {
       
   709     JSValue thisValue = exec->hostThisValue();
       
   710     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   711         return throwVMTypeError(exec);
       
   712     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   713     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   714     float cp1x = exec->argument(0).toFloat(exec);
       
   715     float cp1y = exec->argument(1).toFloat(exec);
       
   716     float cp2x = exec->argument(2).toFloat(exec);
       
   717     float cp2y = exec->argument(3).toFloat(exec);
       
   718     float x = exec->argument(4).toFloat(exec);
       
   719     float y = exec->argument(5).toFloat(exec);
       
   720 
       
   721     imp->bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
       
   722     return JSValue::encode(jsUndefined());
       
   723 }
       
   724 
       
   725 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionArcTo(ExecState* exec)
       
   726 {
       
   727     JSValue thisValue = exec->hostThisValue();
       
   728     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   729         return throwVMTypeError(exec);
       
   730     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   731     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   732     ExceptionCode ec = 0;
       
   733     float x1 = exec->argument(0).toFloat(exec);
       
   734     float y1 = exec->argument(1).toFloat(exec);
       
   735     float x2 = exec->argument(2).toFloat(exec);
       
   736     float y2 = exec->argument(3).toFloat(exec);
       
   737     float radius = exec->argument(4).toFloat(exec);
       
   738 
       
   739     imp->arcTo(x1, y1, x2, y2, radius, ec);
       
   740     setDOMException(exec, ec);
       
   741     return JSValue::encode(jsUndefined());
       
   742 }
       
   743 
       
   744 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionRect(ExecState* exec)
       
   745 {
       
   746     JSValue thisValue = exec->hostThisValue();
       
   747     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   748         return throwVMTypeError(exec);
       
   749     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   750     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   751     float x = exec->argument(0).toFloat(exec);
       
   752     float y = exec->argument(1).toFloat(exec);
       
   753     float width = exec->argument(2).toFloat(exec);
       
   754     float height = exec->argument(3).toFloat(exec);
       
   755 
       
   756     imp->rect(x, y, width, height);
       
   757     return JSValue::encode(jsUndefined());
       
   758 }
       
   759 
       
   760 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionArc(ExecState* exec)
       
   761 {
       
   762     JSValue thisValue = exec->hostThisValue();
       
   763     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   764         return throwVMTypeError(exec);
       
   765     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   766     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   767     ExceptionCode ec = 0;
       
   768     float x = exec->argument(0).toFloat(exec);
       
   769     float y = exec->argument(1).toFloat(exec);
       
   770     float radius = exec->argument(2).toFloat(exec);
       
   771     float startAngle = exec->argument(3).toFloat(exec);
       
   772     float endAngle = exec->argument(4).toFloat(exec);
       
   773     bool anticlockwise = exec->argument(5).toBoolean(exec);
       
   774 
       
   775     imp->arc(x, y, radius, startAngle, endAngle, anticlockwise, ec);
       
   776     setDOMException(exec, ec);
       
   777     return JSValue::encode(jsUndefined());
       
   778 }
       
   779 
       
   780 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionFill(ExecState* exec)
       
   781 {
       
   782     JSValue thisValue = exec->hostThisValue();
       
   783     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   784         return throwVMTypeError(exec);
       
   785     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   786     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   787 
       
   788     imp->fill();
       
   789     return JSValue::encode(jsUndefined());
       
   790 }
       
   791 
       
   792 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionStroke(ExecState* exec)
       
   793 {
       
   794     JSValue thisValue = exec->hostThisValue();
       
   795     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   796         return throwVMTypeError(exec);
       
   797     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   798     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   799 
       
   800     imp->stroke();
       
   801     return JSValue::encode(jsUndefined());
       
   802 }
       
   803 
       
   804 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionClip(ExecState* exec)
       
   805 {
       
   806     JSValue thisValue = exec->hostThisValue();
       
   807     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   808         return throwVMTypeError(exec);
       
   809     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   810     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   811 
       
   812     imp->clip();
       
   813     return JSValue::encode(jsUndefined());
       
   814 }
       
   815 
       
   816 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionIsPointInPath(ExecState* exec)
       
   817 {
       
   818     JSValue thisValue = exec->hostThisValue();
       
   819     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   820         return throwVMTypeError(exec);
       
   821     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   822     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   823     float x = exec->argument(0).toFloat(exec);
       
   824     float y = exec->argument(1).toFloat(exec);
       
   825 
       
   826 
       
   827     JSC::JSValue result = jsBoolean(imp->isPointInPath(x, y));
       
   828     return JSValue::encode(result);
       
   829 }
       
   830 
       
   831 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionMeasureText(ExecState* exec)
       
   832 {
       
   833     JSValue thisValue = exec->hostThisValue();
       
   834     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   835         return throwVMTypeError(exec);
       
   836     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   837     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   838     const String& text = ustringToString(exec->argument(0).toString(exec));
       
   839 
       
   840 
       
   841     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->measureText(text)));
       
   842     return JSValue::encode(result);
       
   843 }
       
   844 
       
   845 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionSetAlpha(ExecState* exec)
       
   846 {
       
   847     JSValue thisValue = exec->hostThisValue();
       
   848     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   849         return throwVMTypeError(exec);
       
   850     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   851     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   852     float alpha = exec->argument(0).toFloat(exec);
       
   853 
       
   854     imp->setAlpha(alpha);
       
   855     return JSValue::encode(jsUndefined());
       
   856 }
       
   857 
       
   858 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionSetCompositeOperation(ExecState* exec)
       
   859 {
       
   860     JSValue thisValue = exec->hostThisValue();
       
   861     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   862         return throwVMTypeError(exec);
       
   863     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   864     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   865     const String& compositeOperation = ustringToString(exec->argument(0).toString(exec));
       
   866 
       
   867     imp->setCompositeOperation(compositeOperation);
       
   868     return JSValue::encode(jsUndefined());
       
   869 }
       
   870 
       
   871 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionSetLineWidth(ExecState* exec)
       
   872 {
       
   873     JSValue thisValue = exec->hostThisValue();
       
   874     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   875         return throwVMTypeError(exec);
       
   876     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   877     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   878     float width = exec->argument(0).toFloat(exec);
       
   879 
       
   880     imp->setLineWidth(width);
       
   881     return JSValue::encode(jsUndefined());
       
   882 }
       
   883 
       
   884 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionSetLineCap(ExecState* exec)
       
   885 {
       
   886     JSValue thisValue = exec->hostThisValue();
       
   887     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   888         return throwVMTypeError(exec);
       
   889     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   890     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   891     const String& cap = ustringToString(exec->argument(0).toString(exec));
       
   892 
       
   893     imp->setLineCap(cap);
       
   894     return JSValue::encode(jsUndefined());
       
   895 }
       
   896 
       
   897 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionSetLineJoin(ExecState* exec)
       
   898 {
       
   899     JSValue thisValue = exec->hostThisValue();
       
   900     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   901         return throwVMTypeError(exec);
       
   902     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   903     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   904     const String& join = ustringToString(exec->argument(0).toString(exec));
       
   905 
       
   906     imp->setLineJoin(join);
       
   907     return JSValue::encode(jsUndefined());
       
   908 }
       
   909 
       
   910 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionSetMiterLimit(ExecState* exec)
       
   911 {
       
   912     JSValue thisValue = exec->hostThisValue();
       
   913     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   914         return throwVMTypeError(exec);
       
   915     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   916     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   917     float limit = exec->argument(0).toFloat(exec);
       
   918 
       
   919     imp->setMiterLimit(limit);
       
   920     return JSValue::encode(jsUndefined());
       
   921 }
       
   922 
       
   923 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionClearShadow(ExecState* exec)
       
   924 {
       
   925     JSValue thisValue = exec->hostThisValue();
       
   926     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   927         return throwVMTypeError(exec);
       
   928     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   929     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
   930 
       
   931     imp->clearShadow();
       
   932     return JSValue::encode(jsUndefined());
       
   933 }
       
   934 
       
   935 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionFillText(ExecState* exec)
       
   936 {
       
   937     JSValue thisValue = exec->hostThisValue();
       
   938     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   939         return throwVMTypeError(exec);
       
   940     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   941     return JSValue::encode(castedThis->fillText(exec));
       
   942 }
       
   943 
       
   944 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionStrokeText(ExecState* exec)
       
   945 {
       
   946     JSValue thisValue = exec->hostThisValue();
       
   947     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   948         return throwVMTypeError(exec);
       
   949     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   950     return JSValue::encode(castedThis->strokeText(exec));
       
   951 }
       
   952 
       
   953 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionSetStrokeColor(ExecState* exec)
       
   954 {
       
   955     JSValue thisValue = exec->hostThisValue();
       
   956     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   957         return throwVMTypeError(exec);
       
   958     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   959     return JSValue::encode(castedThis->setStrokeColor(exec));
       
   960 }
       
   961 
       
   962 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionSetFillColor(ExecState* exec)
       
   963 {
       
   964     JSValue thisValue = exec->hostThisValue();
       
   965     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   966         return throwVMTypeError(exec);
       
   967     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   968     return JSValue::encode(castedThis->setFillColor(exec));
       
   969 }
       
   970 
       
   971 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionStrokeRect(ExecState* exec)
       
   972 {
       
   973     JSValue thisValue = exec->hostThisValue();
       
   974     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   975         return throwVMTypeError(exec);
       
   976     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   977     return JSValue::encode(castedThis->strokeRect(exec));
       
   978 }
       
   979 
       
   980 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionDrawImage(ExecState* exec)
       
   981 {
       
   982     JSValue thisValue = exec->hostThisValue();
       
   983     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   984         return throwVMTypeError(exec);
       
   985     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   986     return JSValue::encode(castedThis->drawImage(exec));
       
   987 }
       
   988 
       
   989 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionDrawImageFromRect(ExecState* exec)
       
   990 {
       
   991     JSValue thisValue = exec->hostThisValue();
       
   992     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
   993         return throwVMTypeError(exec);
       
   994     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
   995     return JSValue::encode(castedThis->drawImageFromRect(exec));
       
   996 }
       
   997 
       
   998 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionSetShadow(ExecState* exec)
       
   999 {
       
  1000     JSValue thisValue = exec->hostThisValue();
       
  1001     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
  1002         return throwVMTypeError(exec);
       
  1003     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
  1004     return JSValue::encode(castedThis->setShadow(exec));
       
  1005 }
       
  1006 
       
  1007 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionCreatePattern(ExecState* exec)
       
  1008 {
       
  1009     JSValue thisValue = exec->hostThisValue();
       
  1010     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
  1011         return throwVMTypeError(exec);
       
  1012     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
  1013     return JSValue::encode(castedThis->createPattern(exec));
       
  1014 }
       
  1015 
       
  1016 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionPutImageData(ExecState* exec)
       
  1017 {
       
  1018     JSValue thisValue = exec->hostThisValue();
       
  1019     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
  1020         return throwVMTypeError(exec);
       
  1021     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
  1022     return JSValue::encode(castedThis->putImageData(exec));
       
  1023 }
       
  1024 
       
  1025 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionCreateImageData(ExecState* exec)
       
  1026 {
       
  1027     JSValue thisValue = exec->hostThisValue();
       
  1028     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
  1029         return throwVMTypeError(exec);
       
  1030     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
  1031     return JSValue::encode(castedThis->createImageData(exec));
       
  1032 }
       
  1033 
       
  1034 EncodedJSValue JSC_HOST_CALL jsCanvasRenderingContext2DPrototypeFunctionGetImageData(ExecState* exec)
       
  1035 {
       
  1036     JSValue thisValue = exec->hostThisValue();
       
  1037     if (!thisValue.inherits(&JSCanvasRenderingContext2D::s_info))
       
  1038         return throwVMTypeError(exec);
       
  1039     JSCanvasRenderingContext2D* castedThis = static_cast<JSCanvasRenderingContext2D*>(asObject(thisValue));
       
  1040     CanvasRenderingContext2D* imp = static_cast<CanvasRenderingContext2D*>(castedThis->impl());
       
  1041     ExceptionCode ec = 0;
       
  1042     float sx = exec->argument(0).toFloat(exec);
       
  1043     float sy = exec->argument(1).toFloat(exec);
       
  1044     float sw = exec->argument(2).toFloat(exec);
       
  1045     float sh = exec->argument(3).toFloat(exec);
       
  1046 
       
  1047 
       
  1048     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->getImageData(sx, sy, sw, sh, ec)));
       
  1049     setDOMException(exec, ec);
       
  1050     return JSValue::encode(result);
       
  1051 }
       
  1052 
       
  1053 
       
  1054 }