tizen beta release
[profile/ivi/webkit-efl.git] / DerivedSources / WebCore / JSWebGLRenderingContext.cpp
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
23 #if ENABLE(WEBGL)
24
25 #include "JSWebGLRenderingContext.h"
26
27 #include "ExceptionCode.h"
28 #include "JSArrayBuffer.h"
29 #include "JSArrayBufferView.h"
30 #include "JSDOMBinding.h"
31 #include "JSHTMLCanvasElement.h"
32 #include "JSHTMLImageElement.h"
33 #include "JSHTMLVideoElement.h"
34 #include "JSImageData.h"
35 #include "JSWebGLActiveInfo.h"
36 #include "JSWebGLBuffer.h"
37 #include "JSWebGLContextAttributes.h"
38 #include "JSWebGLFramebuffer.h"
39 #include "JSWebGLProgram.h"
40 #include "JSWebGLRenderbuffer.h"
41 #include "JSWebGLShader.h"
42 #include "JSWebGLTexture.h"
43 #include "JSWebGLUniformLocation.h"
44 #include "KURL.h"
45 #include "WebGLActiveInfo.h"
46 #include "WebGLBuffer.h"
47 #include "WebGLContextAttributes.h"
48 #include "WebGLFramebuffer.h"
49 #include "WebGLProgram.h"
50 #include "WebGLRenderbuffer.h"
51 #include "WebGLRenderingContext.h"
52 #include "WebGLShader.h"
53 #include "WebGLTexture.h"
54 #include "WebGLUniformLocation.h"
55 #include <runtime/Error.h>
56 #include <wtf/GetPtr.h>
57
58 using namespace JSC;
59
60 namespace WebCore {
61
62 ASSERT_CLASS_FITS_IN_CELL(JSWebGLRenderingContext);
63
64 /* Hash table */
65 #if ENABLE(JIT)
66 #define THUNK_GENERATOR(generator) , generator
67 #else
68 #define THUNK_GENERATOR(generator)
69 #endif
70 #if ENABLE(DFG_JIT)
71 #define INTRINSIC(intrinsic) , intrinsic
72 #else
73 #define INTRINSIC(intrinsic)
74 #endif
75
76 static const HashTableValue JSWebGLRenderingContextTableValues[] =
77 {
78     { "drawingBufferWidth", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDrawingBufferWidth), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
79     { "drawingBufferHeight", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDrawingBufferHeight), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
80     { "constructor", DontEnum | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextConstructor), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
81     { 0, 0, 0, 0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) }
82 };
83
84 #undef THUNK_GENERATOR
85 static const HashTable JSWebGLRenderingContextTable = { 8, 7, JSWebGLRenderingContextTableValues, 0 };
86 /* Hash table for constructor */
87 #if ENABLE(JIT)
88 #define THUNK_GENERATOR(generator) , generator
89 #else
90 #define THUNK_GENERATOR(generator)
91 #endif
92 #if ENABLE(DFG_JIT)
93 #define INTRINSIC(intrinsic) , intrinsic
94 #else
95 #define INTRINSIC(intrinsic)
96 #endif
97
98 static const HashTableValue JSWebGLRenderingContextConstructorTableValues[] =
99 {
100     { "DEPTH_BUFFER_BIT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_BUFFER_BIT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
101     { "STENCIL_BUFFER_BIT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BUFFER_BIT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
102     { "COLOR_BUFFER_BIT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_BUFFER_BIT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
103     { "POINTS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOINTS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
104     { "LINES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINES), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
105     { "LINE_LOOP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINE_LOOP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
106     { "LINE_STRIP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINE_STRIP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
107     { "TRIANGLES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRIANGLES), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
108     { "TRIANGLE_STRIP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRIANGLE_STRIP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
109     { "TRIANGLE_FAN", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRIANGLE_FAN), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
110     { "ZERO", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextZERO), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
111     { "ONE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
112     { "SRC_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSRC_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
113     { "ONE_MINUS_SRC_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_SRC_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
114     { "SRC_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSRC_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
115     { "ONE_MINUS_SRC_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_SRC_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
116     { "DST_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDST_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
117     { "ONE_MINUS_DST_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_DST_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
118     { "DST_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDST_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
119     { "ONE_MINUS_DST_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_DST_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
120     { "SRC_ALPHA_SATURATE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSRC_ALPHA_SATURATE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
121     { "FUNC_ADD", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFUNC_ADD), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
122     { "BLEND_EQUATION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_EQUATION), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
123     { "BLEND_EQUATION_RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_EQUATION_RGB), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
124     { "BLEND_EQUATION_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_EQUATION_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
125     { "FUNC_SUBTRACT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFUNC_SUBTRACT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
126     { "FUNC_REVERSE_SUBTRACT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFUNC_REVERSE_SUBTRACT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
127     { "BLEND_DST_RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_DST_RGB), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
128     { "BLEND_SRC_RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_SRC_RGB), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
129     { "BLEND_DST_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_DST_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
130     { "BLEND_SRC_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_SRC_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
131     { "CONSTANT_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCONSTANT_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
132     { "ONE_MINUS_CONSTANT_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_CONSTANT_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
133     { "CONSTANT_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCONSTANT_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
134     { "ONE_MINUS_CONSTANT_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_CONSTANT_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
135     { "BLEND_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
136     { "ARRAY_BUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextARRAY_BUFFER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
137     { "ELEMENT_ARRAY_BUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextELEMENT_ARRAY_BUFFER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
138     { "ARRAY_BUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextARRAY_BUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
139     { "ELEMENT_ARRAY_BUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextELEMENT_ARRAY_BUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
140     { "STREAM_DRAW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTREAM_DRAW), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
141     { "STATIC_DRAW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTATIC_DRAW), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
142     { "DYNAMIC_DRAW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDYNAMIC_DRAW), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
143     { "BUFFER_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBUFFER_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
144     { "BUFFER_USAGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBUFFER_USAGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
145     { "CURRENT_VERTEX_ATTRIB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCURRENT_VERTEX_ATTRIB), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
146     { "FRONT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRONT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
147     { "BACK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBACK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
148     { "FRONT_AND_BACK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRONT_AND_BACK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
149     { "TEXTURE_2D", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_2D), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
150     { "CULL_FACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCULL_FACE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
151     { "BLEND", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
152     { "DITHER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDITHER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
153     { "STENCIL_TEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_TEST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
154     { "DEPTH_TEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_TEST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
155     { "SCISSOR_TEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSCISSOR_TEST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
156     { "POLYGON_OFFSET_FILL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOLYGON_OFFSET_FILL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
157     { "SAMPLE_ALPHA_TO_COVERAGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_ALPHA_TO_COVERAGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
158     { "SAMPLE_COVERAGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_COVERAGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
159     { "NO_ERROR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNO_ERROR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
160     { "INVALID_ENUM", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_ENUM), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
161     { "INVALID_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_VALUE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
162     { "INVALID_OPERATION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_OPERATION), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
163     { "OUT_OF_MEMORY", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextOUT_OF_MEMORY), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
164     { "CW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCW), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
165     { "CCW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCCW), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
166     { "LINE_WIDTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINE_WIDTH), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
167     { "ALIASED_POINT_SIZE_RANGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALIASED_POINT_SIZE_RANGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
168     { "ALIASED_LINE_WIDTH_RANGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALIASED_LINE_WIDTH_RANGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
169     { "CULL_FACE_MODE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCULL_FACE_MODE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
170     { "FRONT_FACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRONT_FACE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
171     { "DEPTH_RANGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_RANGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
172     { "DEPTH_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
173     { "DEPTH_CLEAR_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_CLEAR_VALUE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
174     { "DEPTH_FUNC", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_FUNC), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
175     { "STENCIL_CLEAR_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_CLEAR_VALUE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
176     { "STENCIL_FUNC", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_FUNC), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
177     { "STENCIL_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_FAIL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
178     { "STENCIL_PASS_DEPTH_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_PASS_DEPTH_FAIL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
179     { "STENCIL_PASS_DEPTH_PASS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_PASS_DEPTH_PASS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
180     { "STENCIL_REF", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_REF), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
181     { "STENCIL_VALUE_MASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_VALUE_MASK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
182     { "STENCIL_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
183     { "STENCIL_BACK_FUNC", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_FUNC), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
184     { "STENCIL_BACK_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_FAIL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
185     { "STENCIL_BACK_PASS_DEPTH_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_FAIL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
186     { "STENCIL_BACK_PASS_DEPTH_PASS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_PASS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
187     { "STENCIL_BACK_REF", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_REF), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
188     { "STENCIL_BACK_VALUE_MASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_VALUE_MASK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
189     { "STENCIL_BACK_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
190     { "VIEWPORT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVIEWPORT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
191     { "SCISSOR_BOX", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSCISSOR_BOX), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
192     { "COLOR_CLEAR_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_CLEAR_VALUE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
193     { "COLOR_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
194     { "UNPACK_ALIGNMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_ALIGNMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
195     { "PACK_ALIGNMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPACK_ALIGNMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
196     { "MAX_TEXTURE_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_TEXTURE_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
197     { "MAX_VIEWPORT_DIMS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VIEWPORT_DIMS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
198     { "SUBPIXEL_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSUBPIXEL_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
199     { "RED_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRED_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
200     { "GREEN_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGREEN_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
201     { "BLUE_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLUE_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
202     { "ALPHA_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALPHA_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
203     { "DEPTH_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
204     { "STENCIL_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
205     { "POLYGON_OFFSET_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOLYGON_OFFSET_UNITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
206     { "POLYGON_OFFSET_FACTOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOLYGON_OFFSET_FACTOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
207     { "TEXTURE_BINDING_2D", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_BINDING_2D), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
208     { "SAMPLE_BUFFERS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_BUFFERS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
209     { "SAMPLES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLES), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
210     { "SAMPLE_COVERAGE_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_COVERAGE_VALUE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
211     { "SAMPLE_COVERAGE_INVERT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_COVERAGE_INVERT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
212     { "NUM_COMPRESSED_TEXTURE_FORMATS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNUM_COMPRESSED_TEXTURE_FORMATS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
213     { "COMPRESSED_TEXTURE_FORMATS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOMPRESSED_TEXTURE_FORMATS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
214     { "DONT_CARE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDONT_CARE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
215     { "FASTEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFASTEST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
216     { "NICEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNICEST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
217     { "GENERATE_MIPMAP_HINT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGENERATE_MIPMAP_HINT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
218     { "BYTE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBYTE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
219     { "UNSIGNED_BYTE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_BYTE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
220     { "SHORT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHORT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
221     { "UNSIGNED_SHORT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_SHORT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
222     { "INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
223     { "UNSIGNED_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_INT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
224     { "FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
225     { "DEPTH_COMPONENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_COMPONENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
226     { "ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
227     { "RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGB), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
228     { "RGBA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGBA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
229     { "LUMINANCE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLUMINANCE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
230     { "LUMINANCE_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLUMINANCE_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
231     { "UNSIGNED_SHORT_4_4_4_4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_SHORT_4_4_4_4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
232     { "UNSIGNED_SHORT_5_5_5_1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_SHORT_5_5_5_1), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
233     { "UNSIGNED_SHORT_5_6_5", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_SHORT_5_6_5), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
234     { "FRAGMENT_SHADER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAGMENT_SHADER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
235     { "VERTEX_SHADER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_SHADER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
236     { "MAX_VERTEX_ATTRIBS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VERTEX_ATTRIBS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
237     { "MAX_VERTEX_UNIFORM_VECTORS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VERTEX_UNIFORM_VECTORS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
238     { "MAX_VARYING_VECTORS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VARYING_VECTORS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
239     { "MAX_COMBINED_TEXTURE_IMAGE_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_COMBINED_TEXTURE_IMAGE_UNITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
240     { "MAX_VERTEX_TEXTURE_IMAGE_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VERTEX_TEXTURE_IMAGE_UNITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
241     { "MAX_TEXTURE_IMAGE_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_TEXTURE_IMAGE_UNITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
242     { "MAX_FRAGMENT_UNIFORM_VECTORS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_FRAGMENT_UNIFORM_VECTORS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
243     { "SHADER_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADER_TYPE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
244     { "DELETE_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDELETE_STATUS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
245     { "LINK_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINK_STATUS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
246     { "VALIDATE_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVALIDATE_STATUS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
247     { "ATTACHED_SHADERS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextATTACHED_SHADERS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
248     { "ACTIVE_UNIFORMS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_UNIFORMS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
249     { "ACTIVE_ATTRIBUTES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_ATTRIBUTES), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
250     { "SHADING_LANGUAGE_VERSION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADING_LANGUAGE_VERSION), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
251     { "CURRENT_PROGRAM", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCURRENT_PROGRAM), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
252     { "NEVER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEVER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
253     { "LESS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLESS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
254     { "EQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextEQUAL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
255     { "LEQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLEQUAL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
256     { "GREATER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGREATER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
257     { "NOTEQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNOTEQUAL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
258     { "GEQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGEQUAL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
259     { "ALWAYS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALWAYS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
260     { "KEEP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextKEEP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
261     { "REPLACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextREPLACE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
262     { "INCR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINCR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
263     { "DECR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDECR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
264     { "INVERT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVERT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
265     { "INCR_WRAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINCR_WRAP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
266     { "DECR_WRAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDECR_WRAP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
267     { "VENDOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVENDOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
268     { "RENDERER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
269     { "VERSION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERSION), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
270     { "NEAREST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEAREST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
271     { "LINEAR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINEAR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
272     { "NEAREST_MIPMAP_NEAREST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEAREST_MIPMAP_NEAREST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
273     { "LINEAR_MIPMAP_NEAREST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINEAR_MIPMAP_NEAREST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
274     { "NEAREST_MIPMAP_LINEAR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEAREST_MIPMAP_LINEAR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
275     { "LINEAR_MIPMAP_LINEAR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINEAR_MIPMAP_LINEAR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
276     { "TEXTURE_MAG_FILTER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_MAG_FILTER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
277     { "TEXTURE_MIN_FILTER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_MIN_FILTER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
278     { "TEXTURE_WRAP_S", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_WRAP_S), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
279     { "TEXTURE_WRAP_T", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_WRAP_T), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
280     { "TEXTURE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
281     { "TEXTURE_CUBE_MAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
282     { "TEXTURE_BINDING_CUBE_MAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_BINDING_CUBE_MAP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
283     { "TEXTURE_CUBE_MAP_POSITIVE_X", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_X), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
284     { "TEXTURE_CUBE_MAP_NEGATIVE_X", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_X), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
285     { "TEXTURE_CUBE_MAP_POSITIVE_Y", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Y), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
286     { "TEXTURE_CUBE_MAP_NEGATIVE_Y", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Y), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
287     { "TEXTURE_CUBE_MAP_POSITIVE_Z", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Z), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
288     { "TEXTURE_CUBE_MAP_NEGATIVE_Z", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Z), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
289     { "MAX_CUBE_MAP_TEXTURE_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_CUBE_MAP_TEXTURE_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
290     { "TEXTURE0", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE0), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
291     { "TEXTURE1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE1), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
292     { "TEXTURE2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE2), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
293     { "TEXTURE3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE3), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
294     { "TEXTURE4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
295     { "TEXTURE5", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE5), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
296     { "TEXTURE6", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE6), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
297     { "TEXTURE7", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE7), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
298     { "TEXTURE8", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE8), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
299     { "TEXTURE9", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE9), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
300     { "TEXTURE10", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE10), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
301     { "TEXTURE11", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE11), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
302     { "TEXTURE12", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE12), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
303     { "TEXTURE13", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE13), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
304     { "TEXTURE14", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE14), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
305     { "TEXTURE15", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE15), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
306     { "TEXTURE16", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE16), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
307     { "TEXTURE17", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE17), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
308     { "TEXTURE18", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE18), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
309     { "TEXTURE19", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE19), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
310     { "TEXTURE20", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE20), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
311     { "TEXTURE21", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE21), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
312     { "TEXTURE22", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE22), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
313     { "TEXTURE23", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE23), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
314     { "TEXTURE24", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE24), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
315     { "TEXTURE25", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE25), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
316     { "TEXTURE26", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE26), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
317     { "TEXTURE27", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE27), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
318     { "TEXTURE28", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE28), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
319     { "TEXTURE29", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE29), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
320     { "TEXTURE30", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE30), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
321     { "TEXTURE31", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE31), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
322     { "ACTIVE_TEXTURE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_TEXTURE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
323     { "REPEAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextREPEAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
324     { "CLAMP_TO_EDGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCLAMP_TO_EDGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
325     { "MIRRORED_REPEAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMIRRORED_REPEAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
326     { "FLOAT_VEC2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_VEC2), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
327     { "FLOAT_VEC3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_VEC3), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
328     { "FLOAT_VEC4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_VEC4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
329     { "INT_VEC2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT_VEC2), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
330     { "INT_VEC3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT_VEC3), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
331     { "INT_VEC4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT_VEC4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
332     { "BOOL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
333     { "BOOL_VEC2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL_VEC2), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
334     { "BOOL_VEC3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL_VEC3), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
335     { "BOOL_VEC4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL_VEC4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
336     { "FLOAT_MAT2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_MAT2), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
337     { "FLOAT_MAT3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_MAT3), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
338     { "FLOAT_MAT4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_MAT4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
339     { "SAMPLER_2D", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLER_2D), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
340     { "SAMPLER_CUBE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLER_CUBE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
341     { "VERTEX_ATTRIB_ARRAY_ENABLED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_ENABLED), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
342     { "VERTEX_ATTRIB_ARRAY_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
343     { "VERTEX_ATTRIB_ARRAY_STRIDE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_STRIDE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
344     { "VERTEX_ATTRIB_ARRAY_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_TYPE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
345     { "VERTEX_ATTRIB_ARRAY_NORMALIZED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_NORMALIZED), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
346     { "VERTEX_ATTRIB_ARRAY_POINTER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_POINTER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
347     { "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_BUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
348     { "COMPILE_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOMPILE_STATUS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
349     { "SHADER_COMPILER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADER_COMPILER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
350     { "LOW_FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLOW_FLOAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
351     { "MEDIUM_FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMEDIUM_FLOAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
352     { "HIGH_FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextHIGH_FLOAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
353     { "LOW_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLOW_INT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
354     { "MEDIUM_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMEDIUM_INT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
355     { "HIGH_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextHIGH_INT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
356     { "FRAMEBUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
357     { "RENDERBUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
358     { "RGBA4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGBA4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
359     { "RGB5_A1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGB5_A1), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
360     { "RGB565", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGB565), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
361     { "DEPTH_COMPONENT16", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_COMPONENT16), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
362     { "STENCIL_INDEX", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_INDEX), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
363     { "STENCIL_INDEX8", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_INDEX8), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
364     { "DEPTH_STENCIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_STENCIL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
365     { "RENDERBUFFER_WIDTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_WIDTH), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
366     { "RENDERBUFFER_HEIGHT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_HEIGHT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
367     { "RENDERBUFFER_INTERNAL_FORMAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_INTERNAL_FORMAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
368     { "RENDERBUFFER_RED_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_RED_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
369     { "RENDERBUFFER_GREEN_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_GREEN_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
370     { "RENDERBUFFER_BLUE_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_BLUE_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
371     { "RENDERBUFFER_ALPHA_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_ALPHA_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
372     { "RENDERBUFFER_DEPTH_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_DEPTH_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
373     { "RENDERBUFFER_STENCIL_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_STENCIL_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
374     { "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_TYPE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
375     { "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_NAME), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
376     { "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
377     { "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
378     { "COLOR_ATTACHMENT0", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_ATTACHMENT0), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
379     { "DEPTH_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
380     { "STENCIL_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
381     { "DEPTH_STENCIL_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_STENCIL_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
382     { "NONE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNONE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
383     { "FRAMEBUFFER_COMPLETE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_COMPLETE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
384     { "FRAMEBUFFER_INCOMPLETE_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
385     { "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
386     { "FRAMEBUFFER_INCOMPLETE_DIMENSIONS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_DIMENSIONS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
387     { "FRAMEBUFFER_UNSUPPORTED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_UNSUPPORTED), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
388     { "FRAMEBUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
389     { "RENDERBUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
390     { "MAX_RENDERBUFFER_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_RENDERBUFFER_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
391     { "INVALID_FRAMEBUFFER_OPERATION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_FRAMEBUFFER_OPERATION), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
392     { "UNPACK_FLIP_Y_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_FLIP_Y_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
393     { "UNPACK_PREMULTIPLY_ALPHA_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_PREMULTIPLY_ALPHA_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
394     { "CONTEXT_LOST_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCONTEXT_LOST_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
395     { "UNPACK_COLORSPACE_CONVERSION_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_COLORSPACE_CONVERSION_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
396     { "BROWSER_DEFAULT_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBROWSER_DEFAULT_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
397     { 0, 0, 0, 0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) }
398 };
399
400 #undef THUNK_GENERATOR
401 static const HashTable JSWebGLRenderingContextConstructorTable = { 1057, 1023, JSWebGLRenderingContextConstructorTableValues, 0 };
402 const ClassInfo JSWebGLRenderingContextConstructor::s_info = { "WebGLRenderingContextConstructor", &DOMConstructorObject::s_info, &JSWebGLRenderingContextConstructorTable, 0, CREATE_METHOD_TABLE(JSWebGLRenderingContextConstructor) };
403
404 JSWebGLRenderingContextConstructor::JSWebGLRenderingContextConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
405     : DOMConstructorObject(structure, globalObject)
406 {
407 }
408
409 void JSWebGLRenderingContextConstructor::finishCreation(ExecState* exec, JSDOMGlobalObject* globalObject)
410 {
411     Base::finishCreation(exec->globalData());
412     ASSERT(inherits(&s_info));
413     putDirect(exec->globalData(), exec->propertyNames().prototype, JSWebGLRenderingContextPrototype::self(exec, globalObject), DontDelete | ReadOnly);
414 }
415
416 bool JSWebGLRenderingContextConstructor::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
417 {
418     return getStaticValueSlot<JSWebGLRenderingContextConstructor, JSDOMWrapper>(exec, &JSWebGLRenderingContextConstructorTable, static_cast<JSWebGLRenderingContextConstructor*>(cell), propertyName, slot);
419 }
420
421 bool JSWebGLRenderingContextConstructor::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
422 {
423     return getStaticValueDescriptor<JSWebGLRenderingContextConstructor, JSDOMWrapper>(exec, &JSWebGLRenderingContextConstructorTable, static_cast<JSWebGLRenderingContextConstructor*>(object), propertyName, descriptor);
424 }
425
426 /* Hash table for prototype */
427 #if ENABLE(JIT)
428 #define THUNK_GENERATOR(generator) , generator
429 #else
430 #define THUNK_GENERATOR(generator)
431 #endif
432 #if ENABLE(DFG_JIT)
433 #define INTRINSIC(intrinsic) , intrinsic
434 #else
435 #define INTRINSIC(intrinsic)
436 #endif
437
438 static const HashTableValue JSWebGLRenderingContextPrototypeTableValues[] =
439 {
440     { "DEPTH_BUFFER_BIT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_BUFFER_BIT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
441     { "STENCIL_BUFFER_BIT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BUFFER_BIT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
442     { "COLOR_BUFFER_BIT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_BUFFER_BIT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
443     { "POINTS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOINTS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
444     { "LINES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINES), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
445     { "LINE_LOOP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINE_LOOP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
446     { "LINE_STRIP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINE_STRIP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
447     { "TRIANGLES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRIANGLES), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
448     { "TRIANGLE_STRIP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRIANGLE_STRIP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
449     { "TRIANGLE_FAN", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRIANGLE_FAN), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
450     { "ZERO", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextZERO), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
451     { "ONE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
452     { "SRC_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSRC_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
453     { "ONE_MINUS_SRC_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_SRC_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
454     { "SRC_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSRC_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
455     { "ONE_MINUS_SRC_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_SRC_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
456     { "DST_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDST_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
457     { "ONE_MINUS_DST_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_DST_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
458     { "DST_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDST_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
459     { "ONE_MINUS_DST_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_DST_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
460     { "SRC_ALPHA_SATURATE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSRC_ALPHA_SATURATE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
461     { "FUNC_ADD", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFUNC_ADD), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
462     { "BLEND_EQUATION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_EQUATION), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
463     { "BLEND_EQUATION_RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_EQUATION_RGB), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
464     { "BLEND_EQUATION_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_EQUATION_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
465     { "FUNC_SUBTRACT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFUNC_SUBTRACT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
466     { "FUNC_REVERSE_SUBTRACT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFUNC_REVERSE_SUBTRACT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
467     { "BLEND_DST_RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_DST_RGB), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
468     { "BLEND_SRC_RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_SRC_RGB), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
469     { "BLEND_DST_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_DST_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
470     { "BLEND_SRC_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_SRC_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
471     { "CONSTANT_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCONSTANT_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
472     { "ONE_MINUS_CONSTANT_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_CONSTANT_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
473     { "CONSTANT_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCONSTANT_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
474     { "ONE_MINUS_CONSTANT_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_CONSTANT_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
475     { "BLEND_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_COLOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
476     { "ARRAY_BUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextARRAY_BUFFER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
477     { "ELEMENT_ARRAY_BUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextELEMENT_ARRAY_BUFFER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
478     { "ARRAY_BUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextARRAY_BUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
479     { "ELEMENT_ARRAY_BUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextELEMENT_ARRAY_BUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
480     { "STREAM_DRAW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTREAM_DRAW), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
481     { "STATIC_DRAW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTATIC_DRAW), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
482     { "DYNAMIC_DRAW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDYNAMIC_DRAW), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
483     { "BUFFER_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBUFFER_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
484     { "BUFFER_USAGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBUFFER_USAGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
485     { "CURRENT_VERTEX_ATTRIB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCURRENT_VERTEX_ATTRIB), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
486     { "FRONT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRONT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
487     { "BACK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBACK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
488     { "FRONT_AND_BACK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRONT_AND_BACK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
489     { "TEXTURE_2D", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_2D), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
490     { "CULL_FACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCULL_FACE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
491     { "BLEND", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
492     { "DITHER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDITHER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
493     { "STENCIL_TEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_TEST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
494     { "DEPTH_TEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_TEST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
495     { "SCISSOR_TEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSCISSOR_TEST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
496     { "POLYGON_OFFSET_FILL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOLYGON_OFFSET_FILL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
497     { "SAMPLE_ALPHA_TO_COVERAGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_ALPHA_TO_COVERAGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
498     { "SAMPLE_COVERAGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_COVERAGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
499     { "NO_ERROR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNO_ERROR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
500     { "INVALID_ENUM", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_ENUM), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
501     { "INVALID_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_VALUE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
502     { "INVALID_OPERATION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_OPERATION), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
503     { "OUT_OF_MEMORY", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextOUT_OF_MEMORY), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
504     { "CW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCW), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
505     { "CCW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCCW), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
506     { "LINE_WIDTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINE_WIDTH), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
507     { "ALIASED_POINT_SIZE_RANGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALIASED_POINT_SIZE_RANGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
508     { "ALIASED_LINE_WIDTH_RANGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALIASED_LINE_WIDTH_RANGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
509     { "CULL_FACE_MODE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCULL_FACE_MODE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
510     { "FRONT_FACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRONT_FACE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
511     { "DEPTH_RANGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_RANGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
512     { "DEPTH_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
513     { "DEPTH_CLEAR_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_CLEAR_VALUE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
514     { "DEPTH_FUNC", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_FUNC), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
515     { "STENCIL_CLEAR_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_CLEAR_VALUE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
516     { "STENCIL_FUNC", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_FUNC), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
517     { "STENCIL_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_FAIL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
518     { "STENCIL_PASS_DEPTH_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_PASS_DEPTH_FAIL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
519     { "STENCIL_PASS_DEPTH_PASS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_PASS_DEPTH_PASS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
520     { "STENCIL_REF", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_REF), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
521     { "STENCIL_VALUE_MASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_VALUE_MASK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
522     { "STENCIL_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
523     { "STENCIL_BACK_FUNC", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_FUNC), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
524     { "STENCIL_BACK_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_FAIL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
525     { "STENCIL_BACK_PASS_DEPTH_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_FAIL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
526     { "STENCIL_BACK_PASS_DEPTH_PASS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_PASS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
527     { "STENCIL_BACK_REF", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_REF), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
528     { "STENCIL_BACK_VALUE_MASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_VALUE_MASK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
529     { "STENCIL_BACK_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
530     { "VIEWPORT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVIEWPORT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
531     { "SCISSOR_BOX", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSCISSOR_BOX), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
532     { "COLOR_CLEAR_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_CLEAR_VALUE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
533     { "COLOR_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
534     { "UNPACK_ALIGNMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_ALIGNMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
535     { "PACK_ALIGNMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPACK_ALIGNMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
536     { "MAX_TEXTURE_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_TEXTURE_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
537     { "MAX_VIEWPORT_DIMS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VIEWPORT_DIMS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
538     { "SUBPIXEL_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSUBPIXEL_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
539     { "RED_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRED_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
540     { "GREEN_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGREEN_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
541     { "BLUE_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLUE_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
542     { "ALPHA_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALPHA_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
543     { "DEPTH_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
544     { "STENCIL_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
545     { "POLYGON_OFFSET_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOLYGON_OFFSET_UNITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
546     { "POLYGON_OFFSET_FACTOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOLYGON_OFFSET_FACTOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
547     { "TEXTURE_BINDING_2D", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_BINDING_2D), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
548     { "SAMPLE_BUFFERS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_BUFFERS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
549     { "SAMPLES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLES), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
550     { "SAMPLE_COVERAGE_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_COVERAGE_VALUE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
551     { "SAMPLE_COVERAGE_INVERT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_COVERAGE_INVERT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
552     { "NUM_COMPRESSED_TEXTURE_FORMATS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNUM_COMPRESSED_TEXTURE_FORMATS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
553     { "COMPRESSED_TEXTURE_FORMATS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOMPRESSED_TEXTURE_FORMATS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
554     { "DONT_CARE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDONT_CARE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
555     { "FASTEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFASTEST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
556     { "NICEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNICEST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
557     { "GENERATE_MIPMAP_HINT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGENERATE_MIPMAP_HINT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
558     { "BYTE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBYTE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
559     { "UNSIGNED_BYTE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_BYTE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
560     { "SHORT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHORT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
561     { "UNSIGNED_SHORT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_SHORT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
562     { "INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
563     { "UNSIGNED_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_INT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
564     { "FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
565     { "DEPTH_COMPONENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_COMPONENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
566     { "ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
567     { "RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGB), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
568     { "RGBA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGBA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
569     { "LUMINANCE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLUMINANCE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
570     { "LUMINANCE_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLUMINANCE_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
571     { "UNSIGNED_SHORT_4_4_4_4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_SHORT_4_4_4_4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
572     { "UNSIGNED_SHORT_5_5_5_1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_SHORT_5_5_5_1), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
573     { "UNSIGNED_SHORT_5_6_5", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_SHORT_5_6_5), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
574     { "FRAGMENT_SHADER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAGMENT_SHADER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
575     { "VERTEX_SHADER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_SHADER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
576     { "MAX_VERTEX_ATTRIBS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VERTEX_ATTRIBS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
577     { "MAX_VERTEX_UNIFORM_VECTORS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VERTEX_UNIFORM_VECTORS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
578     { "MAX_VARYING_VECTORS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VARYING_VECTORS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
579     { "MAX_COMBINED_TEXTURE_IMAGE_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_COMBINED_TEXTURE_IMAGE_UNITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
580     { "MAX_VERTEX_TEXTURE_IMAGE_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VERTEX_TEXTURE_IMAGE_UNITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
581     { "MAX_TEXTURE_IMAGE_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_TEXTURE_IMAGE_UNITS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
582     { "MAX_FRAGMENT_UNIFORM_VECTORS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_FRAGMENT_UNIFORM_VECTORS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
583     { "SHADER_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADER_TYPE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
584     { "DELETE_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDELETE_STATUS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
585     { "LINK_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINK_STATUS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
586     { "VALIDATE_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVALIDATE_STATUS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
587     { "ATTACHED_SHADERS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextATTACHED_SHADERS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
588     { "ACTIVE_UNIFORMS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_UNIFORMS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
589     { "ACTIVE_ATTRIBUTES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_ATTRIBUTES), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
590     { "SHADING_LANGUAGE_VERSION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADING_LANGUAGE_VERSION), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
591     { "CURRENT_PROGRAM", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCURRENT_PROGRAM), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
592     { "NEVER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEVER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
593     { "LESS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLESS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
594     { "EQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextEQUAL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
595     { "LEQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLEQUAL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
596     { "GREATER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGREATER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
597     { "NOTEQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNOTEQUAL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
598     { "GEQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGEQUAL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
599     { "ALWAYS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALWAYS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
600     { "KEEP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextKEEP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
601     { "REPLACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextREPLACE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
602     { "INCR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINCR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
603     { "DECR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDECR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
604     { "INVERT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVERT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
605     { "INCR_WRAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINCR_WRAP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
606     { "DECR_WRAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDECR_WRAP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
607     { "VENDOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVENDOR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
608     { "RENDERER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
609     { "VERSION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERSION), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
610     { "NEAREST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEAREST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
611     { "LINEAR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINEAR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
612     { "NEAREST_MIPMAP_NEAREST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEAREST_MIPMAP_NEAREST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
613     { "LINEAR_MIPMAP_NEAREST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINEAR_MIPMAP_NEAREST), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
614     { "NEAREST_MIPMAP_LINEAR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEAREST_MIPMAP_LINEAR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
615     { "LINEAR_MIPMAP_LINEAR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINEAR_MIPMAP_LINEAR), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
616     { "TEXTURE_MAG_FILTER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_MAG_FILTER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
617     { "TEXTURE_MIN_FILTER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_MIN_FILTER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
618     { "TEXTURE_WRAP_S", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_WRAP_S), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
619     { "TEXTURE_WRAP_T", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_WRAP_T), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
620     { "TEXTURE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
621     { "TEXTURE_CUBE_MAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
622     { "TEXTURE_BINDING_CUBE_MAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_BINDING_CUBE_MAP), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
623     { "TEXTURE_CUBE_MAP_POSITIVE_X", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_X), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
624     { "TEXTURE_CUBE_MAP_NEGATIVE_X", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_X), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
625     { "TEXTURE_CUBE_MAP_POSITIVE_Y", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Y), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
626     { "TEXTURE_CUBE_MAP_NEGATIVE_Y", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Y), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
627     { "TEXTURE_CUBE_MAP_POSITIVE_Z", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Z), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
628     { "TEXTURE_CUBE_MAP_NEGATIVE_Z", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Z), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
629     { "MAX_CUBE_MAP_TEXTURE_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_CUBE_MAP_TEXTURE_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
630     { "TEXTURE0", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE0), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
631     { "TEXTURE1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE1), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
632     { "TEXTURE2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE2), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
633     { "TEXTURE3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE3), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
634     { "TEXTURE4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
635     { "TEXTURE5", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE5), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
636     { "TEXTURE6", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE6), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
637     { "TEXTURE7", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE7), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
638     { "TEXTURE8", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE8), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
639     { "TEXTURE9", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE9), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
640     { "TEXTURE10", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE10), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
641     { "TEXTURE11", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE11), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
642     { "TEXTURE12", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE12), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
643     { "TEXTURE13", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE13), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
644     { "TEXTURE14", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE14), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
645     { "TEXTURE15", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE15), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
646     { "TEXTURE16", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE16), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
647     { "TEXTURE17", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE17), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
648     { "TEXTURE18", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE18), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
649     { "TEXTURE19", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE19), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
650     { "TEXTURE20", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE20), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
651     { "TEXTURE21", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE21), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
652     { "TEXTURE22", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE22), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
653     { "TEXTURE23", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE23), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
654     { "TEXTURE24", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE24), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
655     { "TEXTURE25", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE25), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
656     { "TEXTURE26", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE26), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
657     { "TEXTURE27", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE27), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
658     { "TEXTURE28", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE28), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
659     { "TEXTURE29", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE29), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
660     { "TEXTURE30", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE30), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
661     { "TEXTURE31", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE31), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
662     { "ACTIVE_TEXTURE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_TEXTURE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
663     { "REPEAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextREPEAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
664     { "CLAMP_TO_EDGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCLAMP_TO_EDGE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
665     { "MIRRORED_REPEAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMIRRORED_REPEAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
666     { "FLOAT_VEC2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_VEC2), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
667     { "FLOAT_VEC3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_VEC3), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
668     { "FLOAT_VEC4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_VEC4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
669     { "INT_VEC2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT_VEC2), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
670     { "INT_VEC3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT_VEC3), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
671     { "INT_VEC4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT_VEC4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
672     { "BOOL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
673     { "BOOL_VEC2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL_VEC2), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
674     { "BOOL_VEC3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL_VEC3), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
675     { "BOOL_VEC4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL_VEC4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
676     { "FLOAT_MAT2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_MAT2), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
677     { "FLOAT_MAT3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_MAT3), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
678     { "FLOAT_MAT4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_MAT4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
679     { "SAMPLER_2D", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLER_2D), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
680     { "SAMPLER_CUBE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLER_CUBE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
681     { "VERTEX_ATTRIB_ARRAY_ENABLED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_ENABLED), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
682     { "VERTEX_ATTRIB_ARRAY_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
683     { "VERTEX_ATTRIB_ARRAY_STRIDE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_STRIDE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
684     { "VERTEX_ATTRIB_ARRAY_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_TYPE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
685     { "VERTEX_ATTRIB_ARRAY_NORMALIZED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_NORMALIZED), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
686     { "VERTEX_ATTRIB_ARRAY_POINTER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_POINTER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
687     { "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_BUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
688     { "COMPILE_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOMPILE_STATUS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
689     { "SHADER_COMPILER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADER_COMPILER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
690     { "LOW_FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLOW_FLOAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
691     { "MEDIUM_FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMEDIUM_FLOAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
692     { "HIGH_FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextHIGH_FLOAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
693     { "LOW_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLOW_INT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
694     { "MEDIUM_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMEDIUM_INT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
695     { "HIGH_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextHIGH_INT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
696     { "FRAMEBUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
697     { "RENDERBUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
698     { "RGBA4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGBA4), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
699     { "RGB5_A1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGB5_A1), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
700     { "RGB565", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGB565), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
701     { "DEPTH_COMPONENT16", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_COMPONENT16), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
702     { "STENCIL_INDEX", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_INDEX), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
703     { "STENCIL_INDEX8", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_INDEX8), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
704     { "DEPTH_STENCIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_STENCIL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
705     { "RENDERBUFFER_WIDTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_WIDTH), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
706     { "RENDERBUFFER_HEIGHT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_HEIGHT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
707     { "RENDERBUFFER_INTERNAL_FORMAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_INTERNAL_FORMAT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
708     { "RENDERBUFFER_RED_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_RED_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
709     { "RENDERBUFFER_GREEN_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_GREEN_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
710     { "RENDERBUFFER_BLUE_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_BLUE_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
711     { "RENDERBUFFER_ALPHA_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_ALPHA_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
712     { "RENDERBUFFER_DEPTH_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_DEPTH_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
713     { "RENDERBUFFER_STENCIL_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_STENCIL_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
714     { "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_TYPE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
715     { "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_NAME), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
716     { "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
717     { "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
718     { "COLOR_ATTACHMENT0", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_ATTACHMENT0), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
719     { "DEPTH_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
720     { "STENCIL_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
721     { "DEPTH_STENCIL_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_STENCIL_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
722     { "NONE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNONE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
723     { "FRAMEBUFFER_COMPLETE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_COMPLETE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
724     { "FRAMEBUFFER_INCOMPLETE_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
725     { "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
726     { "FRAMEBUFFER_INCOMPLETE_DIMENSIONS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_DIMENSIONS), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
727     { "FRAMEBUFFER_UNSUPPORTED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_UNSUPPORTED), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
728     { "FRAMEBUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
729     { "RENDERBUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
730     { "MAX_RENDERBUFFER_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_RENDERBUFFER_SIZE), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
731     { "INVALID_FRAMEBUFFER_OPERATION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_FRAMEBUFFER_OPERATION), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
732     { "UNPACK_FLIP_Y_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_FLIP_Y_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
733     { "UNPACK_PREMULTIPLY_ALPHA_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_PREMULTIPLY_ALPHA_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
734     { "CONTEXT_LOST_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCONTEXT_LOST_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
735     { "UNPACK_COLORSPACE_CONVERSION_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_COLORSPACE_CONVERSION_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
736     { "BROWSER_DEFAULT_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBROWSER_DEFAULT_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
737     { "activeTexture", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionActiveTexture), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
738     { "attachShader", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionAttachShader), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
739     { "bindAttribLocation", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBindAttribLocation), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
740     { "bindBuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBindBuffer), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
741     { "bindFramebuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBindFramebuffer), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
742     { "bindRenderbuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBindRenderbuffer), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
743     { "bindTexture", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBindTexture), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
744     { "blendColor", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBlendColor), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
745     { "blendEquation", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBlendEquation), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
746     { "blendEquationSeparate", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBlendEquationSeparate), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
747     { "blendFunc", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBlendFunc), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
748     { "blendFuncSeparate", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBlendFuncSeparate), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
749     { "bufferData", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBufferData), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
750     { "bufferSubData", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBufferSubData), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
751     { "checkFramebufferStatus", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCheckFramebufferStatus), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
752     { "clear", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionClear), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
753     { "clearColor", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionClearColor), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
754     { "clearDepth", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionClearDepth), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
755     { "clearStencil", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionClearStencil), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
756     { "colorMask", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionColorMask), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
757     { "compileShader", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCompileShader), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
758     { "copyTexImage2D", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCopyTexImage2D), (intptr_t)8 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
759     { "copyTexSubImage2D", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCopyTexSubImage2D), (intptr_t)8 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
760     { "createBuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCreateBuffer), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
761     { "createFramebuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCreateFramebuffer), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
762     { "createProgram", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCreateProgram), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
763     { "createRenderbuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCreateRenderbuffer), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
764     { "createShader", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCreateShader), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
765     { "createTexture", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCreateTexture), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
766     { "cullFace", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCullFace), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
767     { "deleteBuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDeleteBuffer), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
768     { "deleteFramebuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDeleteFramebuffer), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
769     { "deleteProgram", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDeleteProgram), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
770     { "deleteRenderbuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDeleteRenderbuffer), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
771     { "deleteShader", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDeleteShader), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
772     { "deleteTexture", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDeleteTexture), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
773     { "depthFunc", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDepthFunc), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
774     { "depthMask", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDepthMask), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
775     { "depthRange", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDepthRange), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
776     { "detachShader", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDetachShader), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
777     { "disable", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDisable), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
778     { "disableVertexAttribArray", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDisableVertexAttribArray), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
779     { "drawArrays", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDrawArrays), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
780     { "drawElements", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDrawElements), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
781     { "enable", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionEnable), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
782     { "enableVertexAttribArray", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionEnableVertexAttribArray), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
783     { "finish", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionFinish), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
784     { "flush", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionFlush), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
785     { "framebufferRenderbuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionFramebufferRenderbuffer), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
786     { "framebufferTexture2D", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionFramebufferTexture2D), (intptr_t)5 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
787     { "frontFace", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionFrontFace), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
788     { "generateMipmap", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGenerateMipmap), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
789     { "getActiveAttrib", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetActiveAttrib), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
790     { "getActiveUniform", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetActiveUniform), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
791     { "getAttachedShaders", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetAttachedShaders), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
792     { "getAttribLocation", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetAttribLocation), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
793     { "getBufferParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetBufferParameter), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
794     { "getContextAttributes", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetContextAttributes), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
795     { "getError", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetError), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
796     { "getExtension", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetExtension), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
797     { "getFramebufferAttachmentParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetFramebufferAttachmentParameter), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
798     { "getParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetParameter), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
799     { "getProgramParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetProgramParameter), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
800     { "getProgramInfoLog", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetProgramInfoLog), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
801     { "getRenderbufferParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetRenderbufferParameter), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
802     { "getShaderParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetShaderParameter), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
803     { "getShaderInfoLog", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetShaderInfoLog), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
804     { "getShaderSource", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetShaderSource), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
805     { "getSupportedExtensions", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetSupportedExtensions), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
806     { "getTexParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetTexParameter), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
807     { "getUniform", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetUniform), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
808     { "getUniformLocation", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetUniformLocation), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
809     { "getVertexAttrib", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetVertexAttrib), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
810     { "getVertexAttribOffset", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetVertexAttribOffset), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
811     { "hint", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionHint), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
812     { "isBuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsBuffer), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
813     { "isContextLost", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsContextLost), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
814     { "isEnabled", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsEnabled), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
815     { "isFramebuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsFramebuffer), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
816     { "isProgram", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsProgram), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
817     { "isRenderbuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsRenderbuffer), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
818     { "isShader", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsShader), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
819     { "isTexture", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsTexture), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
820     { "lineWidth", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionLineWidth), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
821     { "linkProgram", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionLinkProgram), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
822     { "pixelStorei", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionPixelStorei), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
823     { "polygonOffset", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionPolygonOffset), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
824     { "readPixels", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionReadPixels), (intptr_t)7 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
825     { "releaseShaderCompiler", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionReleaseShaderCompiler), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
826     { "renderbufferStorage", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionRenderbufferStorage), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
827     { "sampleCoverage", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionSampleCoverage), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
828     { "scissor", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionScissor), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
829     { "shaderSource", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionShaderSource), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
830     { "stencilFunc", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionStencilFunc), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
831     { "stencilFuncSeparate", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionStencilFuncSeparate), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
832     { "stencilMask", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionStencilMask), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
833     { "stencilMaskSeparate", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionStencilMaskSeparate), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
834     { "stencilOp", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionStencilOp), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
835     { "stencilOpSeparate", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionStencilOpSeparate), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
836     { "texParameterf", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionTexParameterf), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
837     { "texParameteri", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionTexParameteri), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
838     { "texImage2D", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionTexImage2D), (intptr_t)9 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
839     { "texSubImage2D", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionTexSubImage2D), (intptr_t)9 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
840     { "uniform1f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform1f), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
841     { "uniform1fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform1fv), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
842     { "uniform1i", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform1i), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
843     { "uniform1iv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform1iv), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
844     { "uniform2f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform2f), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
845     { "uniform2fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform2fv), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
846     { "uniform2i", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform2i), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
847     { "uniform2iv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform2iv), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
848     { "uniform3f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform3f), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
849     { "uniform3fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform3fv), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
850     { "uniform3i", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform3i), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
851     { "uniform3iv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform3iv), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
852     { "uniform4f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform4f), (intptr_t)5 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
853     { "uniform4fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform4fv), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
854     { "uniform4i", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform4i), (intptr_t)5 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
855     { "uniform4iv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform4iv), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
856     { "uniformMatrix2fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniformMatrix2fv), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
857     { "uniformMatrix3fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniformMatrix3fv), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
858     { "uniformMatrix4fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniformMatrix4fv), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
859     { "useProgram", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUseProgram), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
860     { "validateProgram", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionValidateProgram), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
861     { "vertexAttrib1f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib1f), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
862     { "vertexAttrib1fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib1fv), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
863     { "vertexAttrib2f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib2f), (intptr_t)3 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
864     { "vertexAttrib2fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib2fv), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
865     { "vertexAttrib3f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib3f), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
866     { "vertexAttrib3fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib3fv), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
867     { "vertexAttrib4f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib4f), (intptr_t)5 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
868     { "vertexAttrib4fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib4fv), (intptr_t)2 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
869     { "vertexAttribPointer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttribPointer), (intptr_t)6 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
870     { "viewport", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionViewport), (intptr_t)4 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
871     { 0, 0, 0, 0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) }
872 };
873
874 #undef THUNK_GENERATOR
875 static const HashTable JSWebGLRenderingContextPrototypeTable = { 1096, 1023, JSWebGLRenderingContextPrototypeTableValues, 0 };
876 const ClassInfo JSWebGLRenderingContextPrototype::s_info = { "WebGLRenderingContextPrototype", &JSC::JSNonFinalObject::s_info, &JSWebGLRenderingContextPrototypeTable, 0, CREATE_METHOD_TABLE(JSWebGLRenderingContextPrototype) };
877
878 JSObject* JSWebGLRenderingContextPrototype::self(ExecState* exec, JSGlobalObject* globalObject)
879 {
880     return getDOMPrototype<JSWebGLRenderingContext>(exec, globalObject);
881 }
882
883 bool JSWebGLRenderingContextPrototype::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
884 {
885     JSWebGLRenderingContextPrototype* thisObject = jsCast<JSWebGLRenderingContextPrototype*>(cell);
886     return getStaticPropertySlot<JSWebGLRenderingContextPrototype, JSObject>(exec, &JSWebGLRenderingContextPrototypeTable, thisObject, propertyName, slot);
887 }
888
889 bool JSWebGLRenderingContextPrototype::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
890 {
891     JSWebGLRenderingContextPrototype* thisObject = jsCast<JSWebGLRenderingContextPrototype*>(object);
892     return getStaticPropertyDescriptor<JSWebGLRenderingContextPrototype, JSObject>(exec, &JSWebGLRenderingContextPrototypeTable, thisObject, propertyName, descriptor);
893 }
894
895 const ClassInfo JSWebGLRenderingContext::s_info = { "WebGLRenderingContext", &JSCanvasRenderingContext::s_info, &JSWebGLRenderingContextTable, 0 , CREATE_METHOD_TABLE(JSWebGLRenderingContext) };
896
897 JSWebGLRenderingContext::JSWebGLRenderingContext(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<WebGLRenderingContext> impl)
898     : JSCanvasRenderingContext(structure, globalObject, impl)
899 {
900 }
901
902 void JSWebGLRenderingContext::finishCreation(JSGlobalData& globalData)
903 {
904     Base::finishCreation(globalData);
905     ASSERT(inherits(&s_info));
906 }
907
908 JSObject* JSWebGLRenderingContext::createPrototype(ExecState* exec, JSGlobalObject* globalObject)
909 {
910     return JSWebGLRenderingContextPrototype::create(exec->globalData(), globalObject, JSWebGLRenderingContextPrototype::createStructure(exec->globalData(), globalObject, JSCanvasRenderingContextPrototype::self(exec, globalObject)));
911 }
912
913 bool JSWebGLRenderingContext::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
914 {
915     JSWebGLRenderingContext* thisObject = jsCast<JSWebGLRenderingContext*>(cell);
916     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
917     return getStaticValueSlot<JSWebGLRenderingContext, Base>(exec, &JSWebGLRenderingContextTable, thisObject, propertyName, slot);
918 }
919
920 bool JSWebGLRenderingContext::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
921 {
922     JSWebGLRenderingContext* thisObject = jsCast<JSWebGLRenderingContext*>(object);
923     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
924     return getStaticValueDescriptor<JSWebGLRenderingContext, Base>(exec, &JSWebGLRenderingContextTable, thisObject, propertyName, descriptor);
925 }
926
927 JSValue jsWebGLRenderingContextDrawingBufferWidth(ExecState* exec, JSValue slotBase, const Identifier&)
928 {
929     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(slotBase));
930     UNUSED_PARAM(exec);
931     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
932     JSValue result = jsNumber(imp->drawingBufferWidth());
933     return result;
934 }
935
936
937 JSValue jsWebGLRenderingContextDrawingBufferHeight(ExecState* exec, JSValue slotBase, const Identifier&)
938 {
939     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(slotBase));
940     UNUSED_PARAM(exec);
941     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
942     JSValue result = jsNumber(imp->drawingBufferHeight());
943     return result;
944 }
945
946
947 JSValue jsWebGLRenderingContextConstructor(ExecState* exec, JSValue slotBase, const Identifier&)
948 {
949     JSWebGLRenderingContext* domObject = static_cast<JSWebGLRenderingContext*>(asObject(slotBase));
950     return JSWebGLRenderingContext::getConstructor(exec, domObject->globalObject());
951 }
952
953 JSValue JSWebGLRenderingContext::getConstructor(ExecState* exec, JSGlobalObject* globalObject)
954 {
955     return getDOMConstructor<JSWebGLRenderingContextConstructor>(exec, static_cast<JSDOMGlobalObject*>(globalObject));
956 }
957
958 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionActiveTexture(ExecState* exec)
959 {
960     JSValue thisValue = exec->hostThisValue();
961     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
962         return throwVMTypeError(exec);
963     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
964     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
965     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
966     if (exec->argumentCount() < 1)
967         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
968     ExceptionCode ec = 0;
969     unsigned texture(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
970     if (exec->hadException())
971         return JSValue::encode(jsUndefined());
972     imp->activeTexture(texture, ec);
973     setDOMException(exec, ec);
974     return JSValue::encode(jsUndefined());
975 }
976
977 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionAttachShader(ExecState* exec)
978 {
979     JSValue thisValue = exec->hostThisValue();
980     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
981         return throwVMTypeError(exec);
982     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
983     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
984     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
985     if (exec->argumentCount() < 2)
986         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
987     ExceptionCode ec = 0;
988     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
989         return throwVMTypeError(exec);
990     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
991     if (exec->hadException())
992         return JSValue::encode(jsUndefined());
993     if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLShader::s_info))
994         return throwVMTypeError(exec);
995     WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined)));
996     if (exec->hadException())
997         return JSValue::encode(jsUndefined());
998     imp->attachShader(program, shader, ec);
999     setDOMException(exec, ec);
1000     return JSValue::encode(jsUndefined());
1001 }
1002
1003 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBindAttribLocation(ExecState* exec)
1004 {
1005     JSValue thisValue = exec->hostThisValue();
1006     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1007         return throwVMTypeError(exec);
1008     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1009     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1010     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1011     if (exec->argumentCount() < 3)
1012         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1013     ExceptionCode ec = 0;
1014     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
1015         return throwVMTypeError(exec);
1016     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
1017     if (exec->hadException())
1018         return JSValue::encode(jsUndefined());
1019     unsigned index(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
1020     if (exec->hadException())
1021         return JSValue::encode(jsUndefined());
1022     const String& name(ustringToString(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).isEmpty() ? UString() : MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toString(exec)));
1023     if (exec->hadException())
1024         return JSValue::encode(jsUndefined());
1025     imp->bindAttribLocation(program, index, name, ec);
1026     setDOMException(exec, ec);
1027     return JSValue::encode(jsUndefined());
1028 }
1029
1030 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBindBuffer(ExecState* exec)
1031 {
1032     JSValue thisValue = exec->hostThisValue();
1033     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1034         return throwVMTypeError(exec);
1035     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1036     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1037     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1038     if (exec->argumentCount() < 2)
1039         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1040     ExceptionCode ec = 0;
1041     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1042     if (exec->hadException())
1043         return JSValue::encode(jsUndefined());
1044     if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLBuffer::s_info))
1045         return throwVMTypeError(exec);
1046     WebGLBuffer* buffer(toWebGLBuffer(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined)));
1047     if (exec->hadException())
1048         return JSValue::encode(jsUndefined());
1049     imp->bindBuffer(target, buffer, ec);
1050     setDOMException(exec, ec);
1051     return JSValue::encode(jsUndefined());
1052 }
1053
1054 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBindFramebuffer(ExecState* exec)
1055 {
1056     JSValue thisValue = exec->hostThisValue();
1057     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1058         return throwVMTypeError(exec);
1059     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1060     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1061     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1062     if (exec->argumentCount() < 2)
1063         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1064     ExceptionCode ec = 0;
1065     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1066     if (exec->hadException())
1067         return JSValue::encode(jsUndefined());
1068     if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLFramebuffer::s_info))
1069         return throwVMTypeError(exec);
1070     WebGLFramebuffer* framebuffer(toWebGLFramebuffer(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined)));
1071     if (exec->hadException())
1072         return JSValue::encode(jsUndefined());
1073     imp->bindFramebuffer(target, framebuffer, ec);
1074     setDOMException(exec, ec);
1075     return JSValue::encode(jsUndefined());
1076 }
1077
1078 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBindRenderbuffer(ExecState* exec)
1079 {
1080     JSValue thisValue = exec->hostThisValue();
1081     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1082         return throwVMTypeError(exec);
1083     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1084     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1085     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1086     if (exec->argumentCount() < 2)
1087         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1088     ExceptionCode ec = 0;
1089     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1090     if (exec->hadException())
1091         return JSValue::encode(jsUndefined());
1092     if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLRenderbuffer::s_info))
1093         return throwVMTypeError(exec);
1094     WebGLRenderbuffer* renderbuffer(toWebGLRenderbuffer(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined)));
1095     if (exec->hadException())
1096         return JSValue::encode(jsUndefined());
1097     imp->bindRenderbuffer(target, renderbuffer, ec);
1098     setDOMException(exec, ec);
1099     return JSValue::encode(jsUndefined());
1100 }
1101
1102 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBindTexture(ExecState* exec)
1103 {
1104     JSValue thisValue = exec->hostThisValue();
1105     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1106         return throwVMTypeError(exec);
1107     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1108     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1109     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1110     if (exec->argumentCount() < 2)
1111         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1112     ExceptionCode ec = 0;
1113     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1114     if (exec->hadException())
1115         return JSValue::encode(jsUndefined());
1116     if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLTexture::s_info))
1117         return throwVMTypeError(exec);
1118     WebGLTexture* texture(toWebGLTexture(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined)));
1119     if (exec->hadException())
1120         return JSValue::encode(jsUndefined());
1121     imp->bindTexture(target, texture, ec);
1122     setDOMException(exec, ec);
1123     return JSValue::encode(jsUndefined());
1124 }
1125
1126 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBlendColor(ExecState* exec)
1127 {
1128     JSValue thisValue = exec->hostThisValue();
1129     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1130         return throwVMTypeError(exec);
1131     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1132     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1133     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1134     if (exec->argumentCount() < 4)
1135         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1136     float red(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toFloat(exec));
1137     if (exec->hadException())
1138         return JSValue::encode(jsUndefined());
1139     float green(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toFloat(exec));
1140     if (exec->hadException())
1141         return JSValue::encode(jsUndefined());
1142     float blue(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toFloat(exec));
1143     if (exec->hadException())
1144         return JSValue::encode(jsUndefined());
1145     float alpha(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toFloat(exec));
1146     if (exec->hadException())
1147         return JSValue::encode(jsUndefined());
1148     imp->blendColor(red, green, blue, alpha);
1149     return JSValue::encode(jsUndefined());
1150 }
1151
1152 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBlendEquation(ExecState* exec)
1153 {
1154     JSValue thisValue = exec->hostThisValue();
1155     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1156         return throwVMTypeError(exec);
1157     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1158     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1159     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1160     if (exec->argumentCount() < 1)
1161         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1162     unsigned mode(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1163     if (exec->hadException())
1164         return JSValue::encode(jsUndefined());
1165     imp->blendEquation(mode);
1166     return JSValue::encode(jsUndefined());
1167 }
1168
1169 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBlendEquationSeparate(ExecState* exec)
1170 {
1171     JSValue thisValue = exec->hostThisValue();
1172     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1173         return throwVMTypeError(exec);
1174     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1175     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1176     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1177     if (exec->argumentCount() < 2)
1178         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1179     unsigned modeRGB(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1180     if (exec->hadException())
1181         return JSValue::encode(jsUndefined());
1182     unsigned modeAlpha(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
1183     if (exec->hadException())
1184         return JSValue::encode(jsUndefined());
1185     imp->blendEquationSeparate(modeRGB, modeAlpha);
1186     return JSValue::encode(jsUndefined());
1187 }
1188
1189 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBlendFunc(ExecState* exec)
1190 {
1191     JSValue thisValue = exec->hostThisValue();
1192     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1193         return throwVMTypeError(exec);
1194     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1195     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1196     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1197     if (exec->argumentCount() < 2)
1198         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1199     unsigned sfactor(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1200     if (exec->hadException())
1201         return JSValue::encode(jsUndefined());
1202     unsigned dfactor(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
1203     if (exec->hadException())
1204         return JSValue::encode(jsUndefined());
1205     imp->blendFunc(sfactor, dfactor);
1206     return JSValue::encode(jsUndefined());
1207 }
1208
1209 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBlendFuncSeparate(ExecState* exec)
1210 {
1211     JSValue thisValue = exec->hostThisValue();
1212     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1213         return throwVMTypeError(exec);
1214     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1215     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1216     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1217     if (exec->argumentCount() < 4)
1218         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1219     unsigned srcRGB(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1220     if (exec->hadException())
1221         return JSValue::encode(jsUndefined());
1222     unsigned dstRGB(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
1223     if (exec->hadException())
1224         return JSValue::encode(jsUndefined());
1225     unsigned srcAlpha(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
1226     if (exec->hadException())
1227         return JSValue::encode(jsUndefined());
1228     unsigned dstAlpha(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toUInt32(exec));
1229     if (exec->hadException())
1230         return JSValue::encode(jsUndefined());
1231     imp->blendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
1232     return JSValue::encode(jsUndefined());
1233 }
1234
1235 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferData1(ExecState* exec)
1236 {
1237     JSValue thisValue = exec->hostThisValue();
1238     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1239         return throwVMTypeError(exec);
1240     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1241     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1242     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1243     if (exec->argumentCount() < 3)
1244         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1245     ExceptionCode ec = 0;
1246     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1247     if (exec->hadException())
1248         return JSValue::encode(jsUndefined());
1249     if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSArrayBuffer::s_info))
1250         return throwVMTypeError(exec);
1251     ArrayBuffer* data(toArrayBuffer(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined)));
1252     if (exec->hadException())
1253         return JSValue::encode(jsUndefined());
1254     unsigned usage(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
1255     if (exec->hadException())
1256         return JSValue::encode(jsUndefined());
1257     imp->bufferData(target, data, usage, ec);
1258     setDOMException(exec, ec);
1259     return JSValue::encode(jsUndefined());
1260 }
1261
1262 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferData2(ExecState* exec)
1263 {
1264     JSValue thisValue = exec->hostThisValue();
1265     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1266         return throwVMTypeError(exec);
1267     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1268     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1269     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1270     if (exec->argumentCount() < 3)
1271         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1272     ExceptionCode ec = 0;
1273     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1274     if (exec->hadException())
1275         return JSValue::encode(jsUndefined());
1276     if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSArrayBufferView::s_info))
1277         return throwVMTypeError(exec);
1278     ArrayBufferView* data(toArrayBufferView(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined)));
1279     if (exec->hadException())
1280         return JSValue::encode(jsUndefined());
1281     unsigned usage(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
1282     if (exec->hadException())
1283         return JSValue::encode(jsUndefined());
1284     imp->bufferData(target, data, usage, ec);
1285     setDOMException(exec, ec);
1286     return JSValue::encode(jsUndefined());
1287 }
1288
1289 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferData3(ExecState* exec)
1290 {
1291     JSValue thisValue = exec->hostThisValue();
1292     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1293         return throwVMTypeError(exec);
1294     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1295     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1296     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1297     if (exec->argumentCount() < 3)
1298         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1299     ExceptionCode ec = 0;
1300     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1301     if (exec->hadException())
1302         return JSValue::encode(jsUndefined());
1303     int size(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
1304     if (exec->hadException())
1305         return JSValue::encode(jsUndefined());
1306     unsigned usage(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
1307     if (exec->hadException())
1308         return JSValue::encode(jsUndefined());
1309     imp->bufferData(target, size, usage, ec);
1310     setDOMException(exec, ec);
1311     return JSValue::encode(jsUndefined());
1312 }
1313
1314 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferData(ExecState* exec)
1315 {
1316     size_t argsCount = exec->argumentCount();
1317     JSValue arg1(exec->argument(1));
1318     if ((argsCount == 3 && (arg1.isNull() || (arg1.isObject() && asObject(arg1)->inherits(&JSArrayBuffer::s_info)))))
1319         return jsWebGLRenderingContextPrototypeFunctionBufferData1(exec);
1320     if ((argsCount == 3 && (arg1.isNull() || (arg1.isObject() && asObject(arg1)->inherits(&JSArrayBufferView::s_info)))))
1321         return jsWebGLRenderingContextPrototypeFunctionBufferData2(exec);
1322     if (argsCount == 3)
1323         return jsWebGLRenderingContextPrototypeFunctionBufferData3(exec);
1324     return throwVMTypeError(exec);
1325 }
1326
1327 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferSubData1(ExecState* exec)
1328 {
1329     JSValue thisValue = exec->hostThisValue();
1330     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1331         return throwVMTypeError(exec);
1332     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1333     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1334     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1335     if (exec->argumentCount() < 3)
1336         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1337     ExceptionCode ec = 0;
1338     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1339     if (exec->hadException())
1340         return JSValue::encode(jsUndefined());
1341     int offset(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
1342     if (exec->hadException())
1343         return JSValue::encode(jsUndefined());
1344     if (exec->argumentCount() > 2 && !exec->argument(2).isUndefinedOrNull() && !exec->argument(2).inherits(&JSArrayBuffer::s_info))
1345         return throwVMTypeError(exec);
1346     ArrayBuffer* data(toArrayBuffer(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined)));
1347     if (exec->hadException())
1348         return JSValue::encode(jsUndefined());
1349     imp->bufferSubData(target, offset, data, ec);
1350     setDOMException(exec, ec);
1351     return JSValue::encode(jsUndefined());
1352 }
1353
1354 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferSubData2(ExecState* exec)
1355 {
1356     JSValue thisValue = exec->hostThisValue();
1357     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1358         return throwVMTypeError(exec);
1359     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1360     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1361     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1362     if (exec->argumentCount() < 3)
1363         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1364     ExceptionCode ec = 0;
1365     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1366     if (exec->hadException())
1367         return JSValue::encode(jsUndefined());
1368     int offset(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
1369     if (exec->hadException())
1370         return JSValue::encode(jsUndefined());
1371     if (exec->argumentCount() > 2 && !exec->argument(2).isUndefinedOrNull() && !exec->argument(2).inherits(&JSArrayBufferView::s_info))
1372         return throwVMTypeError(exec);
1373     ArrayBufferView* data(toArrayBufferView(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined)));
1374     if (exec->hadException())
1375         return JSValue::encode(jsUndefined());
1376     imp->bufferSubData(target, offset, data, ec);
1377     setDOMException(exec, ec);
1378     return JSValue::encode(jsUndefined());
1379 }
1380
1381 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferSubData(ExecState* exec)
1382 {
1383     size_t argsCount = exec->argumentCount();
1384     JSValue arg2(exec->argument(2));
1385     if ((argsCount == 3 && (arg2.isNull() || (arg2.isObject() && asObject(arg2)->inherits(&JSArrayBuffer::s_info)))))
1386         return jsWebGLRenderingContextPrototypeFunctionBufferSubData1(exec);
1387     if ((argsCount == 3 && (arg2.isNull() || (arg2.isObject() && asObject(arg2)->inherits(&JSArrayBufferView::s_info)))))
1388         return jsWebGLRenderingContextPrototypeFunctionBufferSubData2(exec);
1389     return throwVMTypeError(exec);
1390 }
1391
1392 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCheckFramebufferStatus(ExecState* exec)
1393 {
1394     JSValue thisValue = exec->hostThisValue();
1395     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1396         return throwVMTypeError(exec);
1397     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1398     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1399     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1400     if (exec->argumentCount() < 1)
1401         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1402     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1403     if (exec->hadException())
1404         return JSValue::encode(jsUndefined());
1405
1406     JSC::JSValue result = jsNumber(imp->checkFramebufferStatus(target));
1407     return JSValue::encode(result);
1408 }
1409
1410 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionClear(ExecState* exec)
1411 {
1412     JSValue thisValue = exec->hostThisValue();
1413     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1414         return throwVMTypeError(exec);
1415     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1416     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1417     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1418     if (exec->argumentCount() < 1)
1419         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1420     unsigned mask(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1421     if (exec->hadException())
1422         return JSValue::encode(jsUndefined());
1423     imp->clear(mask);
1424     return JSValue::encode(jsUndefined());
1425 }
1426
1427 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionClearColor(ExecState* exec)
1428 {
1429     JSValue thisValue = exec->hostThisValue();
1430     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1431         return throwVMTypeError(exec);
1432     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1433     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1434     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1435     if (exec->argumentCount() < 4)
1436         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1437     float red(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toFloat(exec));
1438     if (exec->hadException())
1439         return JSValue::encode(jsUndefined());
1440     float green(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toFloat(exec));
1441     if (exec->hadException())
1442         return JSValue::encode(jsUndefined());
1443     float blue(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toFloat(exec));
1444     if (exec->hadException())
1445         return JSValue::encode(jsUndefined());
1446     float alpha(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toFloat(exec));
1447     if (exec->hadException())
1448         return JSValue::encode(jsUndefined());
1449     imp->clearColor(red, green, blue, alpha);
1450     return JSValue::encode(jsUndefined());
1451 }
1452
1453 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionClearDepth(ExecState* exec)
1454 {
1455     JSValue thisValue = exec->hostThisValue();
1456     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1457         return throwVMTypeError(exec);
1458     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1459     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1460     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1461     if (exec->argumentCount() < 1)
1462         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1463     float depth(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toFloat(exec));
1464     if (exec->hadException())
1465         return JSValue::encode(jsUndefined());
1466     imp->clearDepth(depth);
1467     return JSValue::encode(jsUndefined());
1468 }
1469
1470 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionClearStencil(ExecState* exec)
1471 {
1472     JSValue thisValue = exec->hostThisValue();
1473     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1474         return throwVMTypeError(exec);
1475     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1476     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1477     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1478     if (exec->argumentCount() < 1)
1479         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1480     int s(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toInt32(exec));
1481     if (exec->hadException())
1482         return JSValue::encode(jsUndefined());
1483     imp->clearStencil(s);
1484     return JSValue::encode(jsUndefined());
1485 }
1486
1487 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionColorMask(ExecState* exec)
1488 {
1489     JSValue thisValue = exec->hostThisValue();
1490     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1491         return throwVMTypeError(exec);
1492     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1493     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1494     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1495     if (exec->argumentCount() < 4)
1496         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1497     bool red(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toBoolean(exec));
1498     if (exec->hadException())
1499         return JSValue::encode(jsUndefined());
1500     bool green(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toBoolean(exec));
1501     if (exec->hadException())
1502         return JSValue::encode(jsUndefined());
1503     bool blue(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toBoolean(exec));
1504     if (exec->hadException())
1505         return JSValue::encode(jsUndefined());
1506     bool alpha(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toBoolean(exec));
1507     if (exec->hadException())
1508         return JSValue::encode(jsUndefined());
1509     imp->colorMask(red, green, blue, alpha);
1510     return JSValue::encode(jsUndefined());
1511 }
1512
1513 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCompileShader(ExecState* exec)
1514 {
1515     JSValue thisValue = exec->hostThisValue();
1516     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1517         return throwVMTypeError(exec);
1518     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1519     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1520     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1521     if (exec->argumentCount() < 1)
1522         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1523     ExceptionCode ec = 0;
1524     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
1525         return throwVMTypeError(exec);
1526     WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
1527     if (exec->hadException())
1528         return JSValue::encode(jsUndefined());
1529     imp->compileShader(shader, ec);
1530     setDOMException(exec, ec);
1531     return JSValue::encode(jsUndefined());
1532 }
1533
1534 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCopyTexImage2D(ExecState* exec)
1535 {
1536     JSValue thisValue = exec->hostThisValue();
1537     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1538         return throwVMTypeError(exec);
1539     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1540     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1541     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1542     if (exec->argumentCount() < 8)
1543         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1544     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1545     if (exec->hadException())
1546         return JSValue::encode(jsUndefined());
1547     int level(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
1548     if (exec->hadException())
1549         return JSValue::encode(jsUndefined());
1550     unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
1551     if (exec->hadException())
1552         return JSValue::encode(jsUndefined());
1553     int x(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
1554     if (exec->hadException())
1555         return JSValue::encode(jsUndefined());
1556     int y(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toInt32(exec));
1557     if (exec->hadException())
1558         return JSValue::encode(jsUndefined());
1559     int width(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined).toInt32(exec));
1560     if (exec->hadException())
1561         return JSValue::encode(jsUndefined());
1562     int height(MAYBE_MISSING_PARAMETER(exec, 6, MissingIsUndefined).toInt32(exec));
1563     if (exec->hadException())
1564         return JSValue::encode(jsUndefined());
1565     int border(MAYBE_MISSING_PARAMETER(exec, 7, MissingIsUndefined).toInt32(exec));
1566     if (exec->hadException())
1567         return JSValue::encode(jsUndefined());
1568     imp->copyTexImage2D(target, level, internalformat, x, y, width, height, border);
1569     return JSValue::encode(jsUndefined());
1570 }
1571
1572 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCopyTexSubImage2D(ExecState* exec)
1573 {
1574     JSValue thisValue = exec->hostThisValue();
1575     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1576         return throwVMTypeError(exec);
1577     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1578     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1579     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1580     if (exec->argumentCount() < 8)
1581         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1582     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1583     if (exec->hadException())
1584         return JSValue::encode(jsUndefined());
1585     int level(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
1586     if (exec->hadException())
1587         return JSValue::encode(jsUndefined());
1588     int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
1589     if (exec->hadException())
1590         return JSValue::encode(jsUndefined());
1591     int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
1592     if (exec->hadException())
1593         return JSValue::encode(jsUndefined());
1594     int x(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toInt32(exec));
1595     if (exec->hadException())
1596         return JSValue::encode(jsUndefined());
1597     int y(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined).toInt32(exec));
1598     if (exec->hadException())
1599         return JSValue::encode(jsUndefined());
1600     int width(MAYBE_MISSING_PARAMETER(exec, 6, MissingIsUndefined).toInt32(exec));
1601     if (exec->hadException())
1602         return JSValue::encode(jsUndefined());
1603     int height(MAYBE_MISSING_PARAMETER(exec, 7, MissingIsUndefined).toInt32(exec));
1604     if (exec->hadException())
1605         return JSValue::encode(jsUndefined());
1606     imp->copyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
1607     return JSValue::encode(jsUndefined());
1608 }
1609
1610 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCreateBuffer(ExecState* exec)
1611 {
1612     JSValue thisValue = exec->hostThisValue();
1613     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1614         return throwVMTypeError(exec);
1615     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1616     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1617     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1618
1619     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createBuffer()));
1620     return JSValue::encode(result);
1621 }
1622
1623 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCreateFramebuffer(ExecState* exec)
1624 {
1625     JSValue thisValue = exec->hostThisValue();
1626     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1627         return throwVMTypeError(exec);
1628     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1629     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1630     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1631
1632     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createFramebuffer()));
1633     return JSValue::encode(result);
1634 }
1635
1636 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCreateProgram(ExecState* exec)
1637 {
1638     JSValue thisValue = exec->hostThisValue();
1639     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1640         return throwVMTypeError(exec);
1641     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1642     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1643     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1644
1645     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createProgram()));
1646     return JSValue::encode(result);
1647 }
1648
1649 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCreateRenderbuffer(ExecState* exec)
1650 {
1651     JSValue thisValue = exec->hostThisValue();
1652     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1653         return throwVMTypeError(exec);
1654     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1655     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1656     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1657
1658     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createRenderbuffer()));
1659     return JSValue::encode(result);
1660 }
1661
1662 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCreateShader(ExecState* exec)
1663 {
1664     JSValue thisValue = exec->hostThisValue();
1665     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1666         return throwVMTypeError(exec);
1667     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1668     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1669     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1670     if (exec->argumentCount() < 1)
1671         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1672     ExceptionCode ec = 0;
1673     unsigned type(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1674     if (exec->hadException())
1675         return JSValue::encode(jsUndefined());
1676
1677     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createShader(type, ec)));
1678     setDOMException(exec, ec);
1679     return JSValue::encode(result);
1680 }
1681
1682 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCreateTexture(ExecState* exec)
1683 {
1684     JSValue thisValue = exec->hostThisValue();
1685     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1686         return throwVMTypeError(exec);
1687     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1688     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1689     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1690
1691     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createTexture()));
1692     return JSValue::encode(result);
1693 }
1694
1695 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCullFace(ExecState* exec)
1696 {
1697     JSValue thisValue = exec->hostThisValue();
1698     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1699         return throwVMTypeError(exec);
1700     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1701     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1702     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1703     if (exec->argumentCount() < 1)
1704         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1705     unsigned mode(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1706     if (exec->hadException())
1707         return JSValue::encode(jsUndefined());
1708     imp->cullFace(mode);
1709     return JSValue::encode(jsUndefined());
1710 }
1711
1712 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDeleteBuffer(ExecState* exec)
1713 {
1714     JSValue thisValue = exec->hostThisValue();
1715     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1716         return throwVMTypeError(exec);
1717     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1718     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1719     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1720     if (exec->argumentCount() < 1)
1721         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1722     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLBuffer::s_info))
1723         return throwVMTypeError(exec);
1724     WebGLBuffer* buffer(toWebGLBuffer(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
1725     if (exec->hadException())
1726         return JSValue::encode(jsUndefined());
1727     imp->deleteBuffer(buffer);
1728     return JSValue::encode(jsUndefined());
1729 }
1730
1731 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDeleteFramebuffer(ExecState* exec)
1732 {
1733     JSValue thisValue = exec->hostThisValue();
1734     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1735         return throwVMTypeError(exec);
1736     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1737     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1738     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1739     if (exec->argumentCount() < 1)
1740         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1741     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLFramebuffer::s_info))
1742         return throwVMTypeError(exec);
1743     WebGLFramebuffer* framebuffer(toWebGLFramebuffer(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
1744     if (exec->hadException())
1745         return JSValue::encode(jsUndefined());
1746     imp->deleteFramebuffer(framebuffer);
1747     return JSValue::encode(jsUndefined());
1748 }
1749
1750 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDeleteProgram(ExecState* exec)
1751 {
1752     JSValue thisValue = exec->hostThisValue();
1753     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1754         return throwVMTypeError(exec);
1755     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1756     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1757     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1758     if (exec->argumentCount() < 1)
1759         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1760     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
1761         return throwVMTypeError(exec);
1762     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
1763     if (exec->hadException())
1764         return JSValue::encode(jsUndefined());
1765     imp->deleteProgram(program);
1766     return JSValue::encode(jsUndefined());
1767 }
1768
1769 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDeleteRenderbuffer(ExecState* exec)
1770 {
1771     JSValue thisValue = exec->hostThisValue();
1772     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1773         return throwVMTypeError(exec);
1774     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1775     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1776     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1777     if (exec->argumentCount() < 1)
1778         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1779     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLRenderbuffer::s_info))
1780         return throwVMTypeError(exec);
1781     WebGLRenderbuffer* renderbuffer(toWebGLRenderbuffer(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
1782     if (exec->hadException())
1783         return JSValue::encode(jsUndefined());
1784     imp->deleteRenderbuffer(renderbuffer);
1785     return JSValue::encode(jsUndefined());
1786 }
1787
1788 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDeleteShader(ExecState* exec)
1789 {
1790     JSValue thisValue = exec->hostThisValue();
1791     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1792         return throwVMTypeError(exec);
1793     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1794     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1795     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1796     if (exec->argumentCount() < 1)
1797         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1798     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
1799         return throwVMTypeError(exec);
1800     WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
1801     if (exec->hadException())
1802         return JSValue::encode(jsUndefined());
1803     imp->deleteShader(shader);
1804     return JSValue::encode(jsUndefined());
1805 }
1806
1807 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDeleteTexture(ExecState* exec)
1808 {
1809     JSValue thisValue = exec->hostThisValue();
1810     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1811         return throwVMTypeError(exec);
1812     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1813     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1814     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1815     if (exec->argumentCount() < 1)
1816         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1817     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLTexture::s_info))
1818         return throwVMTypeError(exec);
1819     WebGLTexture* texture(toWebGLTexture(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
1820     if (exec->hadException())
1821         return JSValue::encode(jsUndefined());
1822     imp->deleteTexture(texture);
1823     return JSValue::encode(jsUndefined());
1824 }
1825
1826 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDepthFunc(ExecState* exec)
1827 {
1828     JSValue thisValue = exec->hostThisValue();
1829     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1830         return throwVMTypeError(exec);
1831     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1832     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1833     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1834     if (exec->argumentCount() < 1)
1835         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1836     unsigned func(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1837     if (exec->hadException())
1838         return JSValue::encode(jsUndefined());
1839     imp->depthFunc(func);
1840     return JSValue::encode(jsUndefined());
1841 }
1842
1843 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDepthMask(ExecState* exec)
1844 {
1845     JSValue thisValue = exec->hostThisValue();
1846     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1847         return throwVMTypeError(exec);
1848     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1849     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1850     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1851     if (exec->argumentCount() < 1)
1852         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1853     bool flag(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toBoolean(exec));
1854     if (exec->hadException())
1855         return JSValue::encode(jsUndefined());
1856     imp->depthMask(flag);
1857     return JSValue::encode(jsUndefined());
1858 }
1859
1860 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDepthRange(ExecState* exec)
1861 {
1862     JSValue thisValue = exec->hostThisValue();
1863     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1864         return throwVMTypeError(exec);
1865     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1866     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1867     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1868     if (exec->argumentCount() < 2)
1869         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1870     float zNear(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toFloat(exec));
1871     if (exec->hadException())
1872         return JSValue::encode(jsUndefined());
1873     float zFar(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toFloat(exec));
1874     if (exec->hadException())
1875         return JSValue::encode(jsUndefined());
1876     imp->depthRange(zNear, zFar);
1877     return JSValue::encode(jsUndefined());
1878 }
1879
1880 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDetachShader(ExecState* exec)
1881 {
1882     JSValue thisValue = exec->hostThisValue();
1883     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1884         return throwVMTypeError(exec);
1885     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1886     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1887     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1888     if (exec->argumentCount() < 2)
1889         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1890     ExceptionCode ec = 0;
1891     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
1892         return throwVMTypeError(exec);
1893     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
1894     if (exec->hadException())
1895         return JSValue::encode(jsUndefined());
1896     if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLShader::s_info))
1897         return throwVMTypeError(exec);
1898     WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined)));
1899     if (exec->hadException())
1900         return JSValue::encode(jsUndefined());
1901     imp->detachShader(program, shader, ec);
1902     setDOMException(exec, ec);
1903     return JSValue::encode(jsUndefined());
1904 }
1905
1906 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDisable(ExecState* exec)
1907 {
1908     JSValue thisValue = exec->hostThisValue();
1909     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1910         return throwVMTypeError(exec);
1911     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1912     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1913     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1914     if (exec->argumentCount() < 1)
1915         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1916     unsigned cap(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1917     if (exec->hadException())
1918         return JSValue::encode(jsUndefined());
1919     imp->disable(cap);
1920     return JSValue::encode(jsUndefined());
1921 }
1922
1923 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDisableVertexAttribArray(ExecState* exec)
1924 {
1925     JSValue thisValue = exec->hostThisValue();
1926     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1927         return throwVMTypeError(exec);
1928     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1929     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1930     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1931     if (exec->argumentCount() < 1)
1932         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1933     ExceptionCode ec = 0;
1934     unsigned index(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1935     if (exec->hadException())
1936         return JSValue::encode(jsUndefined());
1937     imp->disableVertexAttribArray(index, ec);
1938     setDOMException(exec, ec);
1939     return JSValue::encode(jsUndefined());
1940 }
1941
1942 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDrawArrays(ExecState* exec)
1943 {
1944     JSValue thisValue = exec->hostThisValue();
1945     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1946         return throwVMTypeError(exec);
1947     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1948     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1949     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1950     if (exec->argumentCount() < 3)
1951         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1952     ExceptionCode ec = 0;
1953     unsigned mode(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1954     if (exec->hadException())
1955         return JSValue::encode(jsUndefined());
1956     int first(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
1957     if (exec->hadException())
1958         return JSValue::encode(jsUndefined());
1959     int count(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
1960     if (exec->hadException())
1961         return JSValue::encode(jsUndefined());
1962     imp->drawArrays(mode, first, count, ec);
1963     setDOMException(exec, ec);
1964     return JSValue::encode(jsUndefined());
1965 }
1966
1967 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDrawElements(ExecState* exec)
1968 {
1969     JSValue thisValue = exec->hostThisValue();
1970     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1971         return throwVMTypeError(exec);
1972     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
1973     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
1974     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
1975     if (exec->argumentCount() < 4)
1976         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
1977     ExceptionCode ec = 0;
1978     unsigned mode(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
1979     if (exec->hadException())
1980         return JSValue::encode(jsUndefined());
1981     int count(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
1982     if (exec->hadException())
1983         return JSValue::encode(jsUndefined());
1984     unsigned type(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
1985     if (exec->hadException())
1986         return JSValue::encode(jsUndefined());
1987     int offset(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
1988     if (exec->hadException())
1989         return JSValue::encode(jsUndefined());
1990     imp->drawElements(mode, count, type, offset, ec);
1991     setDOMException(exec, ec);
1992     return JSValue::encode(jsUndefined());
1993 }
1994
1995 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionEnable(ExecState* exec)
1996 {
1997     JSValue thisValue = exec->hostThisValue();
1998     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
1999         return throwVMTypeError(exec);
2000     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2001     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2002     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2003     if (exec->argumentCount() < 1)
2004         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2005     unsigned cap(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2006     if (exec->hadException())
2007         return JSValue::encode(jsUndefined());
2008     imp->enable(cap);
2009     return JSValue::encode(jsUndefined());
2010 }
2011
2012 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionEnableVertexAttribArray(ExecState* exec)
2013 {
2014     JSValue thisValue = exec->hostThisValue();
2015     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2016         return throwVMTypeError(exec);
2017     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2018     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2019     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2020     if (exec->argumentCount() < 1)
2021         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2022     ExceptionCode ec = 0;
2023     unsigned index(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2024     if (exec->hadException())
2025         return JSValue::encode(jsUndefined());
2026     imp->enableVertexAttribArray(index, ec);
2027     setDOMException(exec, ec);
2028     return JSValue::encode(jsUndefined());
2029 }
2030
2031 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionFinish(ExecState* exec)
2032 {
2033     JSValue thisValue = exec->hostThisValue();
2034     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2035         return throwVMTypeError(exec);
2036     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2037     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2038     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2039     imp->finish();
2040     return JSValue::encode(jsUndefined());
2041 }
2042
2043 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionFlush(ExecState* exec)
2044 {
2045     JSValue thisValue = exec->hostThisValue();
2046     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2047         return throwVMTypeError(exec);
2048     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2049     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2050     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2051     imp->flush();
2052     return JSValue::encode(jsUndefined());
2053 }
2054
2055 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionFramebufferRenderbuffer(ExecState* exec)
2056 {
2057     JSValue thisValue = exec->hostThisValue();
2058     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2059         return throwVMTypeError(exec);
2060     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2061     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2062     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2063     if (exec->argumentCount() < 4)
2064         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2065     ExceptionCode ec = 0;
2066     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2067     if (exec->hadException())
2068         return JSValue::encode(jsUndefined());
2069     unsigned attachment(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
2070     if (exec->hadException())
2071         return JSValue::encode(jsUndefined());
2072     unsigned renderbuffertarget(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
2073     if (exec->hadException())
2074         return JSValue::encode(jsUndefined());
2075     if (exec->argumentCount() > 3 && !exec->argument(3).isUndefinedOrNull() && !exec->argument(3).inherits(&JSWebGLRenderbuffer::s_info))
2076         return throwVMTypeError(exec);
2077     WebGLRenderbuffer* renderbuffer(toWebGLRenderbuffer(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined)));
2078     if (exec->hadException())
2079         return JSValue::encode(jsUndefined());
2080     imp->framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer, ec);
2081     setDOMException(exec, ec);
2082     return JSValue::encode(jsUndefined());
2083 }
2084
2085 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionFramebufferTexture2D(ExecState* exec)
2086 {
2087     JSValue thisValue = exec->hostThisValue();
2088     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2089         return throwVMTypeError(exec);
2090     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2091     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2092     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2093     if (exec->argumentCount() < 5)
2094         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2095     ExceptionCode ec = 0;
2096     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2097     if (exec->hadException())
2098         return JSValue::encode(jsUndefined());
2099     unsigned attachment(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
2100     if (exec->hadException())
2101         return JSValue::encode(jsUndefined());
2102     unsigned textarget(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
2103     if (exec->hadException())
2104         return JSValue::encode(jsUndefined());
2105     if (exec->argumentCount() > 3 && !exec->argument(3).isUndefinedOrNull() && !exec->argument(3).inherits(&JSWebGLTexture::s_info))
2106         return throwVMTypeError(exec);
2107     WebGLTexture* texture(toWebGLTexture(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined)));
2108     if (exec->hadException())
2109         return JSValue::encode(jsUndefined());
2110     int level(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toInt32(exec));
2111     if (exec->hadException())
2112         return JSValue::encode(jsUndefined());
2113     imp->framebufferTexture2D(target, attachment, textarget, texture, level, ec);
2114     setDOMException(exec, ec);
2115     return JSValue::encode(jsUndefined());
2116 }
2117
2118 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionFrontFace(ExecState* exec)
2119 {
2120     JSValue thisValue = exec->hostThisValue();
2121     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2122         return throwVMTypeError(exec);
2123     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2124     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2125     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2126     if (exec->argumentCount() < 1)
2127         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2128     unsigned mode(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2129     if (exec->hadException())
2130         return JSValue::encode(jsUndefined());
2131     imp->frontFace(mode);
2132     return JSValue::encode(jsUndefined());
2133 }
2134
2135 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGenerateMipmap(ExecState* exec)
2136 {
2137     JSValue thisValue = exec->hostThisValue();
2138     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2139         return throwVMTypeError(exec);
2140     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2141     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2142     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2143     if (exec->argumentCount() < 1)
2144         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2145     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2146     if (exec->hadException())
2147         return JSValue::encode(jsUndefined());
2148     imp->generateMipmap(target);
2149     return JSValue::encode(jsUndefined());
2150 }
2151
2152 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetActiveAttrib(ExecState* exec)
2153 {
2154     JSValue thisValue = exec->hostThisValue();
2155     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2156         return throwVMTypeError(exec);
2157     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2158     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2159     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2160     if (exec->argumentCount() < 2)
2161         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2162     ExceptionCode ec = 0;
2163     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
2164         return throwVMTypeError(exec);
2165     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2166     if (exec->hadException())
2167         return JSValue::encode(jsUndefined());
2168     unsigned index(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
2169     if (exec->hadException())
2170         return JSValue::encode(jsUndefined());
2171
2172     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->getActiveAttrib(program, index, ec)));
2173     setDOMException(exec, ec);
2174     return JSValue::encode(result);
2175 }
2176
2177 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetActiveUniform(ExecState* exec)
2178 {
2179     JSValue thisValue = exec->hostThisValue();
2180     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2181         return throwVMTypeError(exec);
2182     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2183     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2184     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2185     if (exec->argumentCount() < 2)
2186         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2187     ExceptionCode ec = 0;
2188     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
2189         return throwVMTypeError(exec);
2190     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2191     if (exec->hadException())
2192         return JSValue::encode(jsUndefined());
2193     unsigned index(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
2194     if (exec->hadException())
2195         return JSValue::encode(jsUndefined());
2196
2197     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->getActiveUniform(program, index, ec)));
2198     setDOMException(exec, ec);
2199     return JSValue::encode(result);
2200 }
2201
2202 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetAttachedShaders(ExecState* exec)
2203 {
2204     JSValue thisValue = exec->hostThisValue();
2205     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2206         return throwVMTypeError(exec);
2207     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2208     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2209     return JSValue::encode(castedThis->getAttachedShaders(exec));
2210 }
2211
2212 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetAttribLocation(ExecState* exec)
2213 {
2214     JSValue thisValue = exec->hostThisValue();
2215     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2216         return throwVMTypeError(exec);
2217     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2218     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2219     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2220     if (exec->argumentCount() < 2)
2221         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2222     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
2223         return throwVMTypeError(exec);
2224     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2225     if (exec->hadException())
2226         return JSValue::encode(jsUndefined());
2227     const String& name(ustringToString(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).isEmpty() ? UString() : MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toString(exec)));
2228     if (exec->hadException())
2229         return JSValue::encode(jsUndefined());
2230
2231     JSC::JSValue result = jsNumber(imp->getAttribLocation(program, name));
2232     return JSValue::encode(result);
2233 }
2234
2235 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetBufferParameter(ExecState* exec)
2236 {
2237     JSValue thisValue = exec->hostThisValue();
2238     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2239         return throwVMTypeError(exec);
2240     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2241     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2242     return JSValue::encode(castedThis->getBufferParameter(exec));
2243 }
2244
2245 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetContextAttributes(ExecState* exec)
2246 {
2247     JSValue thisValue = exec->hostThisValue();
2248     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2249         return throwVMTypeError(exec);
2250     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2251     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2252     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2253
2254     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->getContextAttributes()));
2255     return JSValue::encode(result);
2256 }
2257
2258 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetError(ExecState* exec)
2259 {
2260     JSValue thisValue = exec->hostThisValue();
2261     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2262         return throwVMTypeError(exec);
2263     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2264     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2265     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2266
2267     JSC::JSValue result = jsNumber(imp->getError());
2268     return JSValue::encode(result);
2269 }
2270
2271 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetExtension(ExecState* exec)
2272 {
2273     JSValue thisValue = exec->hostThisValue();
2274     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2275         return throwVMTypeError(exec);
2276     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2277     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2278     return JSValue::encode(castedThis->getExtension(exec));
2279 }
2280
2281 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetFramebufferAttachmentParameter(ExecState* exec)
2282 {
2283     JSValue thisValue = exec->hostThisValue();
2284     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2285         return throwVMTypeError(exec);
2286     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2287     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2288     return JSValue::encode(castedThis->getFramebufferAttachmentParameter(exec));
2289 }
2290
2291 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetParameter(ExecState* exec)
2292 {
2293     JSValue thisValue = exec->hostThisValue();
2294     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2295         return throwVMTypeError(exec);
2296     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2297     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2298     return JSValue::encode(castedThis->getParameter(exec));
2299 }
2300
2301 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetProgramParameter(ExecState* exec)
2302 {
2303     JSValue thisValue = exec->hostThisValue();
2304     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2305         return throwVMTypeError(exec);
2306     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2307     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2308     return JSValue::encode(castedThis->getProgramParameter(exec));
2309 }
2310
2311 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetProgramInfoLog(ExecState* exec)
2312 {
2313     JSValue thisValue = exec->hostThisValue();
2314     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2315         return throwVMTypeError(exec);
2316     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2317     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2318     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2319     if (exec->argumentCount() < 1)
2320         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2321     ExceptionCode ec = 0;
2322     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
2323         return throwVMTypeError(exec);
2324     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2325     if (exec->hadException())
2326         return JSValue::encode(jsUndefined());
2327
2328     JSC::JSValue result = jsStringOrNull(exec, imp->getProgramInfoLog(program, ec));
2329     setDOMException(exec, ec);
2330     return JSValue::encode(result);
2331 }
2332
2333 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetRenderbufferParameter(ExecState* exec)
2334 {
2335     JSValue thisValue = exec->hostThisValue();
2336     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2337         return throwVMTypeError(exec);
2338     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2339     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2340     return JSValue::encode(castedThis->getRenderbufferParameter(exec));
2341 }
2342
2343 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetShaderParameter(ExecState* exec)
2344 {
2345     JSValue thisValue = exec->hostThisValue();
2346     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2347         return throwVMTypeError(exec);
2348     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2349     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2350     return JSValue::encode(castedThis->getShaderParameter(exec));
2351 }
2352
2353 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetShaderInfoLog(ExecState* exec)
2354 {
2355     JSValue thisValue = exec->hostThisValue();
2356     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2357         return throwVMTypeError(exec);
2358     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2359     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2360     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2361     if (exec->argumentCount() < 1)
2362         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2363     ExceptionCode ec = 0;
2364     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
2365         return throwVMTypeError(exec);
2366     WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2367     if (exec->hadException())
2368         return JSValue::encode(jsUndefined());
2369
2370     JSC::JSValue result = jsStringOrNull(exec, imp->getShaderInfoLog(shader, ec));
2371     setDOMException(exec, ec);
2372     return JSValue::encode(result);
2373 }
2374
2375 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetShaderSource(ExecState* exec)
2376 {
2377     JSValue thisValue = exec->hostThisValue();
2378     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2379         return throwVMTypeError(exec);
2380     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2381     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2382     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2383     if (exec->argumentCount() < 1)
2384         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2385     ExceptionCode ec = 0;
2386     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
2387         return throwVMTypeError(exec);
2388     WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2389     if (exec->hadException())
2390         return JSValue::encode(jsUndefined());
2391
2392     JSC::JSValue result = jsStringOrNull(exec, imp->getShaderSource(shader, ec));
2393     setDOMException(exec, ec);
2394     return JSValue::encode(result);
2395 }
2396
2397 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetSupportedExtensions(ExecState* exec)
2398 {
2399     JSValue thisValue = exec->hostThisValue();
2400     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2401         return throwVMTypeError(exec);
2402     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2403     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2404     return JSValue::encode(castedThis->getSupportedExtensions(exec));
2405 }
2406
2407 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetTexParameter(ExecState* exec)
2408 {
2409     JSValue thisValue = exec->hostThisValue();
2410     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2411         return throwVMTypeError(exec);
2412     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2413     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2414     return JSValue::encode(castedThis->getTexParameter(exec));
2415 }
2416
2417 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetUniform(ExecState* exec)
2418 {
2419     JSValue thisValue = exec->hostThisValue();
2420     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2421         return throwVMTypeError(exec);
2422     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2423     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2424     return JSValue::encode(castedThis->getUniform(exec));
2425 }
2426
2427 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetUniformLocation(ExecState* exec)
2428 {
2429     JSValue thisValue = exec->hostThisValue();
2430     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2431         return throwVMTypeError(exec);
2432     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2433     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2434     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2435     if (exec->argumentCount() < 2)
2436         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2437     ExceptionCode ec = 0;
2438     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
2439         return throwVMTypeError(exec);
2440     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2441     if (exec->hadException())
2442         return JSValue::encode(jsUndefined());
2443     const String& name(ustringToString(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).isEmpty() ? UString() : MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toString(exec)));
2444     if (exec->hadException())
2445         return JSValue::encode(jsUndefined());
2446
2447     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->getUniformLocation(program, name, ec)));
2448     setDOMException(exec, ec);
2449     return JSValue::encode(result);
2450 }
2451
2452 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetVertexAttrib(ExecState* exec)
2453 {
2454     JSValue thisValue = exec->hostThisValue();
2455     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2456         return throwVMTypeError(exec);
2457     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2458     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2459     return JSValue::encode(castedThis->getVertexAttrib(exec));
2460 }
2461
2462 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetVertexAttribOffset(ExecState* exec)
2463 {
2464     JSValue thisValue = exec->hostThisValue();
2465     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2466         return throwVMTypeError(exec);
2467     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2468     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2469     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2470     if (exec->argumentCount() < 2)
2471         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2472     unsigned index(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2473     if (exec->hadException())
2474         return JSValue::encode(jsUndefined());
2475     unsigned pname(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
2476     if (exec->hadException())
2477         return JSValue::encode(jsUndefined());
2478
2479     JSC::JSValue result = jsNumber(imp->getVertexAttribOffset(index, pname));
2480     return JSValue::encode(result);
2481 }
2482
2483 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionHint(ExecState* exec)
2484 {
2485     JSValue thisValue = exec->hostThisValue();
2486     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2487         return throwVMTypeError(exec);
2488     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2489     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2490     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2491     if (exec->argumentCount() < 2)
2492         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2493     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2494     if (exec->hadException())
2495         return JSValue::encode(jsUndefined());
2496     unsigned mode(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
2497     if (exec->hadException())
2498         return JSValue::encode(jsUndefined());
2499     imp->hint(target, mode);
2500     return JSValue::encode(jsUndefined());
2501 }
2502
2503 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsBuffer(ExecState* exec)
2504 {
2505     JSValue thisValue = exec->hostThisValue();
2506     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2507         return throwVMTypeError(exec);
2508     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2509     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2510     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2511     if (exec->argumentCount() < 1)
2512         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2513     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLBuffer::s_info))
2514         return throwVMTypeError(exec);
2515     WebGLBuffer* buffer(toWebGLBuffer(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2516     if (exec->hadException())
2517         return JSValue::encode(jsUndefined());
2518
2519     JSC::JSValue result = jsBoolean(imp->isBuffer(buffer));
2520     return JSValue::encode(result);
2521 }
2522
2523 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsContextLost(ExecState* exec)
2524 {
2525     JSValue thisValue = exec->hostThisValue();
2526     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2527         return throwVMTypeError(exec);
2528     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2529     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2530     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2531
2532     JSC::JSValue result = jsBoolean(imp->isContextLost());
2533     return JSValue::encode(result);
2534 }
2535
2536 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsEnabled(ExecState* exec)
2537 {
2538     JSValue thisValue = exec->hostThisValue();
2539     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2540         return throwVMTypeError(exec);
2541     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2542     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2543     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2544     if (exec->argumentCount() < 1)
2545         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2546     unsigned cap(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2547     if (exec->hadException())
2548         return JSValue::encode(jsUndefined());
2549
2550     JSC::JSValue result = jsBoolean(imp->isEnabled(cap));
2551     return JSValue::encode(result);
2552 }
2553
2554 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsFramebuffer(ExecState* exec)
2555 {
2556     JSValue thisValue = exec->hostThisValue();
2557     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2558         return throwVMTypeError(exec);
2559     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2560     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2561     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2562     if (exec->argumentCount() < 1)
2563         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2564     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLFramebuffer::s_info))
2565         return throwVMTypeError(exec);
2566     WebGLFramebuffer* framebuffer(toWebGLFramebuffer(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2567     if (exec->hadException())
2568         return JSValue::encode(jsUndefined());
2569
2570     JSC::JSValue result = jsBoolean(imp->isFramebuffer(framebuffer));
2571     return JSValue::encode(result);
2572 }
2573
2574 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsProgram(ExecState* exec)
2575 {
2576     JSValue thisValue = exec->hostThisValue();
2577     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2578         return throwVMTypeError(exec);
2579     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2580     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2581     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2582     if (exec->argumentCount() < 1)
2583         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2584     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
2585         return throwVMTypeError(exec);
2586     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2587     if (exec->hadException())
2588         return JSValue::encode(jsUndefined());
2589
2590     JSC::JSValue result = jsBoolean(imp->isProgram(program));
2591     return JSValue::encode(result);
2592 }
2593
2594 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsRenderbuffer(ExecState* exec)
2595 {
2596     JSValue thisValue = exec->hostThisValue();
2597     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2598         return throwVMTypeError(exec);
2599     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2600     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2601     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2602     if (exec->argumentCount() < 1)
2603         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2604     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLRenderbuffer::s_info))
2605         return throwVMTypeError(exec);
2606     WebGLRenderbuffer* renderbuffer(toWebGLRenderbuffer(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2607     if (exec->hadException())
2608         return JSValue::encode(jsUndefined());
2609
2610     JSC::JSValue result = jsBoolean(imp->isRenderbuffer(renderbuffer));
2611     return JSValue::encode(result);
2612 }
2613
2614 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsShader(ExecState* exec)
2615 {
2616     JSValue thisValue = exec->hostThisValue();
2617     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2618         return throwVMTypeError(exec);
2619     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2620     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2621     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2622     if (exec->argumentCount() < 1)
2623         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2624     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
2625         return throwVMTypeError(exec);
2626     WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2627     if (exec->hadException())
2628         return JSValue::encode(jsUndefined());
2629
2630     JSC::JSValue result = jsBoolean(imp->isShader(shader));
2631     return JSValue::encode(result);
2632 }
2633
2634 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsTexture(ExecState* exec)
2635 {
2636     JSValue thisValue = exec->hostThisValue();
2637     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2638         return throwVMTypeError(exec);
2639     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2640     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2641     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2642     if (exec->argumentCount() < 1)
2643         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2644     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLTexture::s_info))
2645         return throwVMTypeError(exec);
2646     WebGLTexture* texture(toWebGLTexture(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2647     if (exec->hadException())
2648         return JSValue::encode(jsUndefined());
2649
2650     JSC::JSValue result = jsBoolean(imp->isTexture(texture));
2651     return JSValue::encode(result);
2652 }
2653
2654 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionLineWidth(ExecState* exec)
2655 {
2656     JSValue thisValue = exec->hostThisValue();
2657     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2658         return throwVMTypeError(exec);
2659     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2660     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2661     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2662     if (exec->argumentCount() < 1)
2663         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2664     float width(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toFloat(exec));
2665     if (exec->hadException())
2666         return JSValue::encode(jsUndefined());
2667     imp->lineWidth(width);
2668     return JSValue::encode(jsUndefined());
2669 }
2670
2671 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionLinkProgram(ExecState* exec)
2672 {
2673     JSValue thisValue = exec->hostThisValue();
2674     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2675         return throwVMTypeError(exec);
2676     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2677     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2678     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2679     if (exec->argumentCount() < 1)
2680         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2681     ExceptionCode ec = 0;
2682     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
2683         return throwVMTypeError(exec);
2684     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2685     if (exec->hadException())
2686         return JSValue::encode(jsUndefined());
2687     imp->linkProgram(program, ec);
2688     setDOMException(exec, ec);
2689     return JSValue::encode(jsUndefined());
2690 }
2691
2692 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionPixelStorei(ExecState* exec)
2693 {
2694     JSValue thisValue = exec->hostThisValue();
2695     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2696         return throwVMTypeError(exec);
2697     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2698     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2699     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2700     if (exec->argumentCount() < 2)
2701         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2702     unsigned pname(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2703     if (exec->hadException())
2704         return JSValue::encode(jsUndefined());
2705     int param(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
2706     if (exec->hadException())
2707         return JSValue::encode(jsUndefined());
2708     imp->pixelStorei(pname, param);
2709     return JSValue::encode(jsUndefined());
2710 }
2711
2712 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionPolygonOffset(ExecState* exec)
2713 {
2714     JSValue thisValue = exec->hostThisValue();
2715     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2716         return throwVMTypeError(exec);
2717     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2718     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2719     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2720     if (exec->argumentCount() < 2)
2721         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2722     float factor(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toFloat(exec));
2723     if (exec->hadException())
2724         return JSValue::encode(jsUndefined());
2725     float units(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toFloat(exec));
2726     if (exec->hadException())
2727         return JSValue::encode(jsUndefined());
2728     imp->polygonOffset(factor, units);
2729     return JSValue::encode(jsUndefined());
2730 }
2731
2732 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionReadPixels(ExecState* exec)
2733 {
2734     JSValue thisValue = exec->hostThisValue();
2735     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2736         return throwVMTypeError(exec);
2737     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2738     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2739     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2740     if (exec->argumentCount() < 7)
2741         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2742     ExceptionCode ec = 0;
2743     int x(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toInt32(exec));
2744     if (exec->hadException())
2745         return JSValue::encode(jsUndefined());
2746     int y(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
2747     if (exec->hadException())
2748         return JSValue::encode(jsUndefined());
2749     int width(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
2750     if (exec->hadException())
2751         return JSValue::encode(jsUndefined());
2752     int height(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
2753     if (exec->hadException())
2754         return JSValue::encode(jsUndefined());
2755     unsigned format(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toUInt32(exec));
2756     if (exec->hadException())
2757         return JSValue::encode(jsUndefined());
2758     unsigned type(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined).toUInt32(exec));
2759     if (exec->hadException())
2760         return JSValue::encode(jsUndefined());
2761     if (exec->argumentCount() > 6 && !exec->argument(6).isUndefinedOrNull() && !exec->argument(6).inherits(&JSArrayBufferView::s_info))
2762         return throwVMTypeError(exec);
2763     ArrayBufferView* pixels(toArrayBufferView(MAYBE_MISSING_PARAMETER(exec, 6, MissingIsUndefined)));
2764     if (exec->hadException())
2765         return JSValue::encode(jsUndefined());
2766     imp->readPixels(x, y, width, height, format, type, pixels, ec);
2767     setDOMException(exec, ec);
2768     return JSValue::encode(jsUndefined());
2769 }
2770
2771 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionReleaseShaderCompiler(ExecState* exec)
2772 {
2773     JSValue thisValue = exec->hostThisValue();
2774     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2775         return throwVMTypeError(exec);
2776     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2777     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2778     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2779     imp->releaseShaderCompiler();
2780     return JSValue::encode(jsUndefined());
2781 }
2782
2783 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionRenderbufferStorage(ExecState* exec)
2784 {
2785     JSValue thisValue = exec->hostThisValue();
2786     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2787         return throwVMTypeError(exec);
2788     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2789     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2790     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2791     if (exec->argumentCount() < 4)
2792         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2793     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2794     if (exec->hadException())
2795         return JSValue::encode(jsUndefined());
2796     unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
2797     if (exec->hadException())
2798         return JSValue::encode(jsUndefined());
2799     int width(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
2800     if (exec->hadException())
2801         return JSValue::encode(jsUndefined());
2802     int height(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
2803     if (exec->hadException())
2804         return JSValue::encode(jsUndefined());
2805     imp->renderbufferStorage(target, internalformat, width, height);
2806     return JSValue::encode(jsUndefined());
2807 }
2808
2809 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionSampleCoverage(ExecState* exec)
2810 {
2811     JSValue thisValue = exec->hostThisValue();
2812     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2813         return throwVMTypeError(exec);
2814     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2815     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2816     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2817     if (exec->argumentCount() < 2)
2818         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2819     float value(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toFloat(exec));
2820     if (exec->hadException())
2821         return JSValue::encode(jsUndefined());
2822     bool invert(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toBoolean(exec));
2823     if (exec->hadException())
2824         return JSValue::encode(jsUndefined());
2825     imp->sampleCoverage(value, invert);
2826     return JSValue::encode(jsUndefined());
2827 }
2828
2829 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionScissor(ExecState* exec)
2830 {
2831     JSValue thisValue = exec->hostThisValue();
2832     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2833         return throwVMTypeError(exec);
2834     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2835     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2836     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2837     if (exec->argumentCount() < 4)
2838         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2839     int x(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toInt32(exec));
2840     if (exec->hadException())
2841         return JSValue::encode(jsUndefined());
2842     int y(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
2843     if (exec->hadException())
2844         return JSValue::encode(jsUndefined());
2845     int width(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
2846     if (exec->hadException())
2847         return JSValue::encode(jsUndefined());
2848     int height(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
2849     if (exec->hadException())
2850         return JSValue::encode(jsUndefined());
2851     imp->scissor(x, y, width, height);
2852     return JSValue::encode(jsUndefined());
2853 }
2854
2855 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionShaderSource(ExecState* exec)
2856 {
2857     JSValue thisValue = exec->hostThisValue();
2858     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2859         return throwVMTypeError(exec);
2860     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2861     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2862     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2863     if (exec->argumentCount() < 2)
2864         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2865     ExceptionCode ec = 0;
2866     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
2867         return throwVMTypeError(exec);
2868     WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
2869     if (exec->hadException())
2870         return JSValue::encode(jsUndefined());
2871     const String& string(ustringToString(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).isEmpty() ? UString() : MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toString(exec)));
2872     if (exec->hadException())
2873         return JSValue::encode(jsUndefined());
2874     imp->shaderSource(shader, string, ec);
2875     setDOMException(exec, ec);
2876     return JSValue::encode(jsUndefined());
2877 }
2878
2879 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionStencilFunc(ExecState* exec)
2880 {
2881     JSValue thisValue = exec->hostThisValue();
2882     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2883         return throwVMTypeError(exec);
2884     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2885     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2886     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2887     if (exec->argumentCount() < 3)
2888         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2889     unsigned func(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2890     if (exec->hadException())
2891         return JSValue::encode(jsUndefined());
2892     int ref(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
2893     if (exec->hadException())
2894         return JSValue::encode(jsUndefined());
2895     unsigned mask(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
2896     if (exec->hadException())
2897         return JSValue::encode(jsUndefined());
2898     imp->stencilFunc(func, ref, mask);
2899     return JSValue::encode(jsUndefined());
2900 }
2901
2902 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionStencilFuncSeparate(ExecState* exec)
2903 {
2904     JSValue thisValue = exec->hostThisValue();
2905     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2906         return throwVMTypeError(exec);
2907     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2908     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2909     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2910     if (exec->argumentCount() < 4)
2911         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2912     unsigned face(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2913     if (exec->hadException())
2914         return JSValue::encode(jsUndefined());
2915     unsigned func(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
2916     if (exec->hadException())
2917         return JSValue::encode(jsUndefined());
2918     int ref(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
2919     if (exec->hadException())
2920         return JSValue::encode(jsUndefined());
2921     unsigned mask(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toUInt32(exec));
2922     if (exec->hadException())
2923         return JSValue::encode(jsUndefined());
2924     imp->stencilFuncSeparate(face, func, ref, mask);
2925     return JSValue::encode(jsUndefined());
2926 }
2927
2928 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionStencilMask(ExecState* exec)
2929 {
2930     JSValue thisValue = exec->hostThisValue();
2931     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2932         return throwVMTypeError(exec);
2933     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2934     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2935     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2936     if (exec->argumentCount() < 1)
2937         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2938     unsigned mask(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2939     if (exec->hadException())
2940         return JSValue::encode(jsUndefined());
2941     imp->stencilMask(mask);
2942     return JSValue::encode(jsUndefined());
2943 }
2944
2945 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionStencilMaskSeparate(ExecState* exec)
2946 {
2947     JSValue thisValue = exec->hostThisValue();
2948     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2949         return throwVMTypeError(exec);
2950     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2951     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2952     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2953     if (exec->argumentCount() < 2)
2954         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2955     unsigned face(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2956     if (exec->hadException())
2957         return JSValue::encode(jsUndefined());
2958     unsigned mask(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
2959     if (exec->hadException())
2960         return JSValue::encode(jsUndefined());
2961     imp->stencilMaskSeparate(face, mask);
2962     return JSValue::encode(jsUndefined());
2963 }
2964
2965 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionStencilOp(ExecState* exec)
2966 {
2967     JSValue thisValue = exec->hostThisValue();
2968     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2969         return throwVMTypeError(exec);
2970     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2971     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2972     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2973     if (exec->argumentCount() < 3)
2974         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2975     unsigned fail(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2976     if (exec->hadException())
2977         return JSValue::encode(jsUndefined());
2978     unsigned zfail(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
2979     if (exec->hadException())
2980         return JSValue::encode(jsUndefined());
2981     unsigned zpass(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
2982     if (exec->hadException())
2983         return JSValue::encode(jsUndefined());
2984     imp->stencilOp(fail, zfail, zpass);
2985     return JSValue::encode(jsUndefined());
2986 }
2987
2988 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionStencilOpSeparate(ExecState* exec)
2989 {
2990     JSValue thisValue = exec->hostThisValue();
2991     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
2992         return throwVMTypeError(exec);
2993     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
2994     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
2995     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
2996     if (exec->argumentCount() < 4)
2997         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
2998     unsigned face(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
2999     if (exec->hadException())
3000         return JSValue::encode(jsUndefined());
3001     unsigned fail(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
3002     if (exec->hadException())
3003         return JSValue::encode(jsUndefined());
3004     unsigned zfail(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
3005     if (exec->hadException())
3006         return JSValue::encode(jsUndefined());
3007     unsigned zpass(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toUInt32(exec));
3008     if (exec->hadException())
3009         return JSValue::encode(jsUndefined());
3010     imp->stencilOpSeparate(face, fail, zfail, zpass);
3011     return JSValue::encode(jsUndefined());
3012 }
3013
3014 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexParameterf(ExecState* exec)
3015 {
3016     JSValue thisValue = exec->hostThisValue();
3017     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3018         return throwVMTypeError(exec);
3019     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3020     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3021     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3022     if (exec->argumentCount() < 3)
3023         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3024     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3025     if (exec->hadException())
3026         return JSValue::encode(jsUndefined());
3027     unsigned pname(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
3028     if (exec->hadException())
3029         return JSValue::encode(jsUndefined());
3030     float param(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toFloat(exec));
3031     if (exec->hadException())
3032         return JSValue::encode(jsUndefined());
3033     imp->texParameterf(target, pname, param);
3034     return JSValue::encode(jsUndefined());
3035 }
3036
3037 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexParameteri(ExecState* exec)
3038 {
3039     JSValue thisValue = exec->hostThisValue();
3040     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3041         return throwVMTypeError(exec);
3042     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3043     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3044     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3045     if (exec->argumentCount() < 3)
3046         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3047     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3048     if (exec->hadException())
3049         return JSValue::encode(jsUndefined());
3050     unsigned pname(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toUInt32(exec));
3051     if (exec->hadException())
3052         return JSValue::encode(jsUndefined());
3053     int param(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
3054     if (exec->hadException())
3055         return JSValue::encode(jsUndefined());
3056     imp->texParameteri(target, pname, param);
3057     return JSValue::encode(jsUndefined());
3058 }
3059
3060 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D1(ExecState* exec)
3061 {
3062     JSValue thisValue = exec->hostThisValue();
3063     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3064         return throwVMTypeError(exec);
3065     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3066     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3067     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3068     if (exec->argumentCount() < 9)
3069         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3070     ExceptionCode ec = 0;
3071     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3072     if (exec->hadException())
3073         return JSValue::encode(jsUndefined());
3074     int level(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3075     if (exec->hadException())
3076         return JSValue::encode(jsUndefined());
3077     unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
3078     if (exec->hadException())
3079         return JSValue::encode(jsUndefined());
3080     int width(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
3081     if (exec->hadException())
3082         return JSValue::encode(jsUndefined());
3083     int height(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toInt32(exec));
3084     if (exec->hadException())
3085         return JSValue::encode(jsUndefined());
3086     int border(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined).toInt32(exec));
3087     if (exec->hadException())
3088         return JSValue::encode(jsUndefined());
3089     unsigned format(MAYBE_MISSING_PARAMETER(exec, 6, MissingIsUndefined).toUInt32(exec));
3090     if (exec->hadException())
3091         return JSValue::encode(jsUndefined());
3092     unsigned type(MAYBE_MISSING_PARAMETER(exec, 7, MissingIsUndefined).toUInt32(exec));
3093     if (exec->hadException())
3094         return JSValue::encode(jsUndefined());
3095     if (exec->argumentCount() > 8 && !exec->argument(8).isUndefinedOrNull() && !exec->argument(8).inherits(&JSArrayBufferView::s_info))
3096         return throwVMTypeError(exec);
3097     ArrayBufferView* pixels(toArrayBufferView(MAYBE_MISSING_PARAMETER(exec, 8, MissingIsUndefined)));
3098     if (exec->hadException())
3099         return JSValue::encode(jsUndefined());
3100     imp->texImage2D(target, level, internalformat, width, height, border, format, type, pixels, ec);
3101     setDOMException(exec, ec);
3102     return JSValue::encode(jsUndefined());
3103 }
3104
3105 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D2(ExecState* exec)
3106 {
3107     JSValue thisValue = exec->hostThisValue();
3108     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3109         return throwVMTypeError(exec);
3110     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3111     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3112     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3113     if (exec->argumentCount() < 6)
3114         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3115     ExceptionCode ec = 0;
3116     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3117     if (exec->hadException())
3118         return JSValue::encode(jsUndefined());
3119     int level(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3120     if (exec->hadException())
3121         return JSValue::encode(jsUndefined());
3122     unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
3123     if (exec->hadException())
3124         return JSValue::encode(jsUndefined());
3125     unsigned format(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toUInt32(exec));
3126     if (exec->hadException())
3127         return JSValue::encode(jsUndefined());
3128     unsigned type(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toUInt32(exec));
3129     if (exec->hadException())
3130         return JSValue::encode(jsUndefined());
3131     if (exec->argumentCount() > 5 && !exec->argument(5).isUndefinedOrNull() && !exec->argument(5).inherits(&JSImageData::s_info))
3132         return throwVMTypeError(exec);
3133     ImageData* pixels(toImageData(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined)));
3134     if (exec->hadException())
3135         return JSValue::encode(jsUndefined());
3136     imp->texImage2D(target, level, internalformat, format, type, pixels, ec);
3137     setDOMException(exec, ec);
3138     return JSValue::encode(jsUndefined());
3139 }
3140
3141 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D3(ExecState* exec)
3142 {
3143     JSValue thisValue = exec->hostThisValue();
3144     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3145         return throwVMTypeError(exec);
3146     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3147     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3148     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3149     if (exec->argumentCount() < 6)
3150         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3151     ExceptionCode ec = 0;
3152     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3153     if (exec->hadException())
3154         return JSValue::encode(jsUndefined());
3155     int level(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3156     if (exec->hadException())
3157         return JSValue::encode(jsUndefined());
3158     unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
3159     if (exec->hadException())
3160         return JSValue::encode(jsUndefined());
3161     unsigned format(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toUInt32(exec));
3162     if (exec->hadException())
3163         return JSValue::encode(jsUndefined());
3164     unsigned type(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toUInt32(exec));
3165     if (exec->hadException())
3166         return JSValue::encode(jsUndefined());
3167     if (exec->argumentCount() > 5 && !exec->argument(5).isUndefinedOrNull() && !exec->argument(5).inherits(&JSHTMLImageElement::s_info))
3168         return throwVMTypeError(exec);
3169     HTMLImageElement* image(toHTMLImageElement(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined)));
3170     if (exec->hadException())
3171         return JSValue::encode(jsUndefined());
3172     imp->texImage2D(target, level, internalformat, format, type, image, ec);
3173     setDOMException(exec, ec);
3174     return JSValue::encode(jsUndefined());
3175 }
3176
3177 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D4(ExecState* exec)
3178 {
3179     JSValue thisValue = exec->hostThisValue();
3180     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3181         return throwVMTypeError(exec);
3182     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3183     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3184     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3185     if (exec->argumentCount() < 6)
3186         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3187     ExceptionCode ec = 0;
3188     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3189     if (exec->hadException())
3190         return JSValue::encode(jsUndefined());
3191     int level(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3192     if (exec->hadException())
3193         return JSValue::encode(jsUndefined());
3194     unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
3195     if (exec->hadException())
3196         return JSValue::encode(jsUndefined());
3197     unsigned format(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toUInt32(exec));
3198     if (exec->hadException())
3199         return JSValue::encode(jsUndefined());
3200     unsigned type(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toUInt32(exec));
3201     if (exec->hadException())
3202         return JSValue::encode(jsUndefined());
3203     if (exec->argumentCount() > 5 && !exec->argument(5).isUndefinedOrNull() && !exec->argument(5).inherits(&JSHTMLCanvasElement::s_info))
3204         return throwVMTypeError(exec);
3205     HTMLCanvasElement* canvas(toHTMLCanvasElement(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined)));
3206     if (exec->hadException())
3207         return JSValue::encode(jsUndefined());
3208     imp->texImage2D(target, level, internalformat, format, type, canvas, ec);
3209     setDOMException(exec, ec);
3210     return JSValue::encode(jsUndefined());
3211 }
3212
3213 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D5(ExecState* exec)
3214 {
3215     JSValue thisValue = exec->hostThisValue();
3216     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3217         return throwVMTypeError(exec);
3218     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3219     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3220     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3221     if (exec->argumentCount() < 6)
3222         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3223     ExceptionCode ec = 0;
3224     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3225     if (exec->hadException())
3226         return JSValue::encode(jsUndefined());
3227     int level(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3228     if (exec->hadException())
3229         return JSValue::encode(jsUndefined());
3230     unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
3231     if (exec->hadException())
3232         return JSValue::encode(jsUndefined());
3233     unsigned format(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toUInt32(exec));
3234     if (exec->hadException())
3235         return JSValue::encode(jsUndefined());
3236     unsigned type(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toUInt32(exec));
3237     if (exec->hadException())
3238         return JSValue::encode(jsUndefined());
3239     if (exec->argumentCount() > 5 && !exec->argument(5).isUndefinedOrNull() && !exec->argument(5).inherits(&JSHTMLVideoElement::s_info))
3240         return throwVMTypeError(exec);
3241     HTMLVideoElement* video(toHTMLVideoElement(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined)));
3242     if (exec->hadException())
3243         return JSValue::encode(jsUndefined());
3244     imp->texImage2D(target, level, internalformat, format, type, video, ec);
3245     setDOMException(exec, ec);
3246     return JSValue::encode(jsUndefined());
3247 }
3248
3249 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D(ExecState* exec)
3250 {
3251     size_t argsCount = exec->argumentCount();
3252     JSValue arg8(exec->argument(8));
3253     if ((argsCount == 9 && (arg8.isNull() || (arg8.isObject() && asObject(arg8)->inherits(&JSArrayBufferView::s_info)))))
3254         return jsWebGLRenderingContextPrototypeFunctionTexImage2D1(exec);
3255     JSValue arg5(exec->argument(5));
3256     if ((argsCount == 6 && (arg5.isNull() || (arg5.isObject() && asObject(arg5)->inherits(&JSImageData::s_info)))))
3257         return jsWebGLRenderingContextPrototypeFunctionTexImage2D2(exec);
3258     if ((argsCount == 6 && (arg5.isNull() || (arg5.isObject() && asObject(arg5)->inherits(&JSHTMLImageElement::s_info)))))
3259         return jsWebGLRenderingContextPrototypeFunctionTexImage2D3(exec);
3260     if ((argsCount == 6 && (arg5.isNull() || (arg5.isObject() && asObject(arg5)->inherits(&JSHTMLCanvasElement::s_info)))))
3261         return jsWebGLRenderingContextPrototypeFunctionTexImage2D4(exec);
3262     if ((argsCount == 6 && (arg5.isNull() || (arg5.isObject() && asObject(arg5)->inherits(&JSHTMLVideoElement::s_info)))))
3263         return jsWebGLRenderingContextPrototypeFunctionTexImage2D5(exec);
3264     return throwVMTypeError(exec);
3265 }
3266
3267 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D1(ExecState* exec)
3268 {
3269     JSValue thisValue = exec->hostThisValue();
3270     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3271         return throwVMTypeError(exec);
3272     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3273     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3274     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3275     if (exec->argumentCount() < 9)
3276         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3277     ExceptionCode ec = 0;
3278     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3279     if (exec->hadException())
3280         return JSValue::encode(jsUndefined());
3281     int level(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3282     if (exec->hadException())
3283         return JSValue::encode(jsUndefined());
3284     int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
3285     if (exec->hadException())
3286         return JSValue::encode(jsUndefined());
3287     int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
3288     if (exec->hadException())
3289         return JSValue::encode(jsUndefined());
3290     int width(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toInt32(exec));
3291     if (exec->hadException())
3292         return JSValue::encode(jsUndefined());
3293     int height(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined).toInt32(exec));
3294     if (exec->hadException())
3295         return JSValue::encode(jsUndefined());
3296     unsigned format(MAYBE_MISSING_PARAMETER(exec, 6, MissingIsUndefined).toUInt32(exec));
3297     if (exec->hadException())
3298         return JSValue::encode(jsUndefined());
3299     unsigned type(MAYBE_MISSING_PARAMETER(exec, 7, MissingIsUndefined).toUInt32(exec));
3300     if (exec->hadException())
3301         return JSValue::encode(jsUndefined());
3302     if (exec->argumentCount() > 8 && !exec->argument(8).isUndefinedOrNull() && !exec->argument(8).inherits(&JSArrayBufferView::s_info))
3303         return throwVMTypeError(exec);
3304     ArrayBufferView* pixels(toArrayBufferView(MAYBE_MISSING_PARAMETER(exec, 8, MissingIsUndefined)));
3305     if (exec->hadException())
3306         return JSValue::encode(jsUndefined());
3307     imp->texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels, ec);
3308     setDOMException(exec, ec);
3309     return JSValue::encode(jsUndefined());
3310 }
3311
3312 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D2(ExecState* exec)
3313 {
3314     JSValue thisValue = exec->hostThisValue();
3315     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3316         return throwVMTypeError(exec);
3317     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3318     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3319     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3320     if (exec->argumentCount() < 7)
3321         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3322     ExceptionCode ec = 0;
3323     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3324     if (exec->hadException())
3325         return JSValue::encode(jsUndefined());
3326     int level(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3327     if (exec->hadException())
3328         return JSValue::encode(jsUndefined());
3329     int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
3330     if (exec->hadException())
3331         return JSValue::encode(jsUndefined());
3332     int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
3333     if (exec->hadException())
3334         return JSValue::encode(jsUndefined());
3335     unsigned format(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toUInt32(exec));
3336     if (exec->hadException())
3337         return JSValue::encode(jsUndefined());
3338     unsigned type(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined).toUInt32(exec));
3339     if (exec->hadException())
3340         return JSValue::encode(jsUndefined());
3341     if (exec->argumentCount() > 6 && !exec->argument(6).isUndefinedOrNull() && !exec->argument(6).inherits(&JSImageData::s_info))
3342         return throwVMTypeError(exec);
3343     ImageData* pixels(toImageData(MAYBE_MISSING_PARAMETER(exec, 6, MissingIsUndefined)));
3344     if (exec->hadException())
3345         return JSValue::encode(jsUndefined());
3346     imp->texSubImage2D(target, level, xoffset, yoffset, format, type, pixels, ec);
3347     setDOMException(exec, ec);
3348     return JSValue::encode(jsUndefined());
3349 }
3350
3351 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D3(ExecState* exec)
3352 {
3353     JSValue thisValue = exec->hostThisValue();
3354     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3355         return throwVMTypeError(exec);
3356     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3357     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3358     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3359     if (exec->argumentCount() < 7)
3360         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3361     ExceptionCode ec = 0;
3362     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3363     if (exec->hadException())
3364         return JSValue::encode(jsUndefined());
3365     int level(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3366     if (exec->hadException())
3367         return JSValue::encode(jsUndefined());
3368     int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
3369     if (exec->hadException())
3370         return JSValue::encode(jsUndefined());
3371     int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
3372     if (exec->hadException())
3373         return JSValue::encode(jsUndefined());
3374     unsigned format(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toUInt32(exec));
3375     if (exec->hadException())
3376         return JSValue::encode(jsUndefined());
3377     unsigned type(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined).toUInt32(exec));
3378     if (exec->hadException())
3379         return JSValue::encode(jsUndefined());
3380     if (exec->argumentCount() > 6 && !exec->argument(6).isUndefinedOrNull() && !exec->argument(6).inherits(&JSHTMLImageElement::s_info))
3381         return throwVMTypeError(exec);
3382     HTMLImageElement* image(toHTMLImageElement(MAYBE_MISSING_PARAMETER(exec, 6, MissingIsUndefined)));
3383     if (exec->hadException())
3384         return JSValue::encode(jsUndefined());
3385     imp->texSubImage2D(target, level, xoffset, yoffset, format, type, image, ec);
3386     setDOMException(exec, ec);
3387     return JSValue::encode(jsUndefined());
3388 }
3389
3390 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D4(ExecState* exec)
3391 {
3392     JSValue thisValue = exec->hostThisValue();
3393     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3394         return throwVMTypeError(exec);
3395     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3396     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3397     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3398     if (exec->argumentCount() < 7)
3399         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3400     ExceptionCode ec = 0;
3401     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3402     if (exec->hadException())
3403         return JSValue::encode(jsUndefined());
3404     int level(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3405     if (exec->hadException())
3406         return JSValue::encode(jsUndefined());
3407     int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
3408     if (exec->hadException())
3409         return JSValue::encode(jsUndefined());
3410     int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
3411     if (exec->hadException())
3412         return JSValue::encode(jsUndefined());
3413     unsigned format(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toUInt32(exec));
3414     if (exec->hadException())
3415         return JSValue::encode(jsUndefined());
3416     unsigned type(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined).toUInt32(exec));
3417     if (exec->hadException())
3418         return JSValue::encode(jsUndefined());
3419     if (exec->argumentCount() > 6 && !exec->argument(6).isUndefinedOrNull() && !exec->argument(6).inherits(&JSHTMLCanvasElement::s_info))
3420         return throwVMTypeError(exec);
3421     HTMLCanvasElement* canvas(toHTMLCanvasElement(MAYBE_MISSING_PARAMETER(exec, 6, MissingIsUndefined)));
3422     if (exec->hadException())
3423         return JSValue::encode(jsUndefined());
3424     imp->texSubImage2D(target, level, xoffset, yoffset, format, type, canvas, ec);
3425     setDOMException(exec, ec);
3426     return JSValue::encode(jsUndefined());
3427 }
3428
3429 static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D5(ExecState* exec)
3430 {
3431     JSValue thisValue = exec->hostThisValue();
3432     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3433         return throwVMTypeError(exec);
3434     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3435     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3436     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3437     if (exec->argumentCount() < 7)
3438         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3439     ExceptionCode ec = 0;
3440     unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3441     if (exec->hadException())
3442         return JSValue::encode(jsUndefined());
3443     int level(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3444     if (exec->hadException())
3445         return JSValue::encode(jsUndefined());
3446     int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
3447     if (exec->hadException())
3448         return JSValue::encode(jsUndefined());
3449     int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
3450     if (exec->hadException())
3451         return JSValue::encode(jsUndefined());
3452     unsigned format(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toUInt32(exec));
3453     if (exec->hadException())
3454         return JSValue::encode(jsUndefined());
3455     unsigned type(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined).toUInt32(exec));
3456     if (exec->hadException())
3457         return JSValue::encode(jsUndefined());
3458     if (exec->argumentCount() > 6 && !exec->argument(6).isUndefinedOrNull() && !exec->argument(6).inherits(&JSHTMLVideoElement::s_info))
3459         return throwVMTypeError(exec);
3460     HTMLVideoElement* video(toHTMLVideoElement(MAYBE_MISSING_PARAMETER(exec, 6, MissingIsUndefined)));
3461     if (exec->hadException())
3462         return JSValue::encode(jsUndefined());
3463     imp->texSubImage2D(target, level, xoffset, yoffset, format, type, video, ec);
3464     setDOMException(exec, ec);
3465     return JSValue::encode(jsUndefined());
3466 }
3467
3468 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D(ExecState* exec)
3469 {
3470     size_t argsCount = exec->argumentCount();
3471     JSValue arg8(exec->argument(8));
3472     if ((argsCount == 9 && (arg8.isNull() || (arg8.isObject() && asObject(arg8)->inherits(&JSArrayBufferView::s_info)))))
3473         return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D1(exec);
3474     JSValue arg6(exec->argument(6));
3475     if ((argsCount == 7 && (arg6.isNull() || (arg6.isObject() && asObject(arg6)->inherits(&JSImageData::s_info)))))
3476         return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D2(exec);
3477     if ((argsCount == 7 && (arg6.isNull() || (arg6.isObject() && asObject(arg6)->inherits(&JSHTMLImageElement::s_info)))))
3478         return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D3(exec);
3479     if ((argsCount == 7 && (arg6.isNull() || (arg6.isObject() && asObject(arg6)->inherits(&JSHTMLCanvasElement::s_info)))))
3480         return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D4(exec);
3481     if ((argsCount == 7 && (arg6.isNull() || (arg6.isObject() && asObject(arg6)->inherits(&JSHTMLVideoElement::s_info)))))
3482         return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D5(exec);
3483     return throwVMTypeError(exec);
3484 }
3485
3486 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform1f(ExecState* exec)
3487 {
3488     JSValue thisValue = exec->hostThisValue();
3489     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3490         return throwVMTypeError(exec);
3491     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3492     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3493     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3494     if (exec->argumentCount() < 2)
3495         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3496     ExceptionCode ec = 0;
3497     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
3498         return throwVMTypeError(exec);
3499     WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
3500     if (exec->hadException())
3501         return JSValue::encode(jsUndefined());
3502     float x(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toFloat(exec));
3503     if (exec->hadException())
3504         return JSValue::encode(jsUndefined());
3505     imp->uniform1f(location, x, ec);
3506     setDOMException(exec, ec);
3507     return JSValue::encode(jsUndefined());
3508 }
3509
3510 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform1fv(ExecState* exec)
3511 {
3512     JSValue thisValue = exec->hostThisValue();
3513     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3514         return throwVMTypeError(exec);
3515     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3516     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3517     return JSValue::encode(castedThis->uniform1fv(exec));
3518 }
3519
3520 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform1i(ExecState* exec)
3521 {
3522     JSValue thisValue = exec->hostThisValue();
3523     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3524         return throwVMTypeError(exec);
3525     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3526     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3527     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3528     if (exec->argumentCount() < 2)
3529         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3530     ExceptionCode ec = 0;
3531     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
3532         return throwVMTypeError(exec);
3533     WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
3534     if (exec->hadException())
3535         return JSValue::encode(jsUndefined());
3536     int x(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3537     if (exec->hadException())
3538         return JSValue::encode(jsUndefined());
3539     imp->uniform1i(location, x, ec);
3540     setDOMException(exec, ec);
3541     return JSValue::encode(jsUndefined());
3542 }
3543
3544 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform1iv(ExecState* exec)
3545 {
3546     JSValue thisValue = exec->hostThisValue();
3547     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3548         return throwVMTypeError(exec);
3549     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3550     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3551     return JSValue::encode(castedThis->uniform1iv(exec));
3552 }
3553
3554 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform2f(ExecState* exec)
3555 {
3556     JSValue thisValue = exec->hostThisValue();
3557     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3558         return throwVMTypeError(exec);
3559     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3560     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3561     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3562     if (exec->argumentCount() < 3)
3563         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3564     ExceptionCode ec = 0;
3565     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
3566         return throwVMTypeError(exec);
3567     WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
3568     if (exec->hadException())
3569         return JSValue::encode(jsUndefined());
3570     float x(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toFloat(exec));
3571     if (exec->hadException())
3572         return JSValue::encode(jsUndefined());
3573     float y(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toFloat(exec));
3574     if (exec->hadException())
3575         return JSValue::encode(jsUndefined());
3576     imp->uniform2f(location, x, y, ec);
3577     setDOMException(exec, ec);
3578     return JSValue::encode(jsUndefined());
3579 }
3580
3581 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform2fv(ExecState* exec)
3582 {
3583     JSValue thisValue = exec->hostThisValue();
3584     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3585         return throwVMTypeError(exec);
3586     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3587     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3588     return JSValue::encode(castedThis->uniform2fv(exec));
3589 }
3590
3591 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform2i(ExecState* exec)
3592 {
3593     JSValue thisValue = exec->hostThisValue();
3594     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3595         return throwVMTypeError(exec);
3596     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3597     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3598     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3599     if (exec->argumentCount() < 3)
3600         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3601     ExceptionCode ec = 0;
3602     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
3603         return throwVMTypeError(exec);
3604     WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
3605     if (exec->hadException())
3606         return JSValue::encode(jsUndefined());
3607     int x(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3608     if (exec->hadException())
3609         return JSValue::encode(jsUndefined());
3610     int y(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
3611     if (exec->hadException())
3612         return JSValue::encode(jsUndefined());
3613     imp->uniform2i(location, x, y, ec);
3614     setDOMException(exec, ec);
3615     return JSValue::encode(jsUndefined());
3616 }
3617
3618 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform2iv(ExecState* exec)
3619 {
3620     JSValue thisValue = exec->hostThisValue();
3621     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3622         return throwVMTypeError(exec);
3623     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3624     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3625     return JSValue::encode(castedThis->uniform2iv(exec));
3626 }
3627
3628 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform3f(ExecState* exec)
3629 {
3630     JSValue thisValue = exec->hostThisValue();
3631     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3632         return throwVMTypeError(exec);
3633     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3634     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3635     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3636     if (exec->argumentCount() < 4)
3637         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3638     ExceptionCode ec = 0;
3639     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
3640         return throwVMTypeError(exec);
3641     WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
3642     if (exec->hadException())
3643         return JSValue::encode(jsUndefined());
3644     float x(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toFloat(exec));
3645     if (exec->hadException())
3646         return JSValue::encode(jsUndefined());
3647     float y(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toFloat(exec));
3648     if (exec->hadException())
3649         return JSValue::encode(jsUndefined());
3650     float z(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toFloat(exec));
3651     if (exec->hadException())
3652         return JSValue::encode(jsUndefined());
3653     imp->uniform3f(location, x, y, z, ec);
3654     setDOMException(exec, ec);
3655     return JSValue::encode(jsUndefined());
3656 }
3657
3658 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform3fv(ExecState* exec)
3659 {
3660     JSValue thisValue = exec->hostThisValue();
3661     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3662         return throwVMTypeError(exec);
3663     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3664     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3665     return JSValue::encode(castedThis->uniform3fv(exec));
3666 }
3667
3668 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform3i(ExecState* exec)
3669 {
3670     JSValue thisValue = exec->hostThisValue();
3671     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3672         return throwVMTypeError(exec);
3673     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3674     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3675     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3676     if (exec->argumentCount() < 4)
3677         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3678     ExceptionCode ec = 0;
3679     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
3680         return throwVMTypeError(exec);
3681     WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
3682     if (exec->hadException())
3683         return JSValue::encode(jsUndefined());
3684     int x(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3685     if (exec->hadException())
3686         return JSValue::encode(jsUndefined());
3687     int y(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
3688     if (exec->hadException())
3689         return JSValue::encode(jsUndefined());
3690     int z(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
3691     if (exec->hadException())
3692         return JSValue::encode(jsUndefined());
3693     imp->uniform3i(location, x, y, z, ec);
3694     setDOMException(exec, ec);
3695     return JSValue::encode(jsUndefined());
3696 }
3697
3698 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform3iv(ExecState* exec)
3699 {
3700     JSValue thisValue = exec->hostThisValue();
3701     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3702         return throwVMTypeError(exec);
3703     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3704     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3705     return JSValue::encode(castedThis->uniform3iv(exec));
3706 }
3707
3708 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform4f(ExecState* exec)
3709 {
3710     JSValue thisValue = exec->hostThisValue();
3711     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3712         return throwVMTypeError(exec);
3713     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3714     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3715     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3716     if (exec->argumentCount() < 5)
3717         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3718     ExceptionCode ec = 0;
3719     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
3720         return throwVMTypeError(exec);
3721     WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
3722     if (exec->hadException())
3723         return JSValue::encode(jsUndefined());
3724     float x(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toFloat(exec));
3725     if (exec->hadException())
3726         return JSValue::encode(jsUndefined());
3727     float y(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toFloat(exec));
3728     if (exec->hadException())
3729         return JSValue::encode(jsUndefined());
3730     float z(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toFloat(exec));
3731     if (exec->hadException())
3732         return JSValue::encode(jsUndefined());
3733     float w(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toFloat(exec));
3734     if (exec->hadException())
3735         return JSValue::encode(jsUndefined());
3736     imp->uniform4f(location, x, y, z, w, ec);
3737     setDOMException(exec, ec);
3738     return JSValue::encode(jsUndefined());
3739 }
3740
3741 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform4fv(ExecState* exec)
3742 {
3743     JSValue thisValue = exec->hostThisValue();
3744     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3745         return throwVMTypeError(exec);
3746     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3747     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3748     return JSValue::encode(castedThis->uniform4fv(exec));
3749 }
3750
3751 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform4i(ExecState* exec)
3752 {
3753     JSValue thisValue = exec->hostThisValue();
3754     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3755         return throwVMTypeError(exec);
3756     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3757     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3758     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3759     if (exec->argumentCount() < 5)
3760         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3761     ExceptionCode ec = 0;
3762     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
3763         return throwVMTypeError(exec);
3764     WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
3765     if (exec->hadException())
3766         return JSValue::encode(jsUndefined());
3767     int x(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
3768     if (exec->hadException())
3769         return JSValue::encode(jsUndefined());
3770     int y(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
3771     if (exec->hadException())
3772         return JSValue::encode(jsUndefined());
3773     int z(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
3774     if (exec->hadException())
3775         return JSValue::encode(jsUndefined());
3776     int w(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toInt32(exec));
3777     if (exec->hadException())
3778         return JSValue::encode(jsUndefined());
3779     imp->uniform4i(location, x, y, z, w, ec);
3780     setDOMException(exec, ec);
3781     return JSValue::encode(jsUndefined());
3782 }
3783
3784 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform4iv(ExecState* exec)
3785 {
3786     JSValue thisValue = exec->hostThisValue();
3787     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3788         return throwVMTypeError(exec);
3789     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3790     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3791     return JSValue::encode(castedThis->uniform4iv(exec));
3792 }
3793
3794 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniformMatrix2fv(ExecState* exec)
3795 {
3796     JSValue thisValue = exec->hostThisValue();
3797     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3798         return throwVMTypeError(exec);
3799     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3800     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3801     return JSValue::encode(castedThis->uniformMatrix2fv(exec));
3802 }
3803
3804 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniformMatrix3fv(ExecState* exec)
3805 {
3806     JSValue thisValue = exec->hostThisValue();
3807     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3808         return throwVMTypeError(exec);
3809     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3810     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3811     return JSValue::encode(castedThis->uniformMatrix3fv(exec));
3812 }
3813
3814 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniformMatrix4fv(ExecState* exec)
3815 {
3816     JSValue thisValue = exec->hostThisValue();
3817     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3818         return throwVMTypeError(exec);
3819     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3820     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3821     return JSValue::encode(castedThis->uniformMatrix4fv(exec));
3822 }
3823
3824 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUseProgram(ExecState* exec)
3825 {
3826     JSValue thisValue = exec->hostThisValue();
3827     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3828         return throwVMTypeError(exec);
3829     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3830     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3831     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3832     if (exec->argumentCount() < 1)
3833         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3834     ExceptionCode ec = 0;
3835     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
3836         return throwVMTypeError(exec);
3837     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
3838     if (exec->hadException())
3839         return JSValue::encode(jsUndefined());
3840     imp->useProgram(program, ec);
3841     setDOMException(exec, ec);
3842     return JSValue::encode(jsUndefined());
3843 }
3844
3845 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionValidateProgram(ExecState* exec)
3846 {
3847     JSValue thisValue = exec->hostThisValue();
3848     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3849         return throwVMTypeError(exec);
3850     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3851     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3852     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3853     if (exec->argumentCount() < 1)
3854         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3855     ExceptionCode ec = 0;
3856     if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
3857         return throwVMTypeError(exec);
3858     WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
3859     if (exec->hadException())
3860         return JSValue::encode(jsUndefined());
3861     imp->validateProgram(program, ec);
3862     setDOMException(exec, ec);
3863     return JSValue::encode(jsUndefined());
3864 }
3865
3866 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib1f(ExecState* exec)
3867 {
3868     JSValue thisValue = exec->hostThisValue();
3869     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3870         return throwVMTypeError(exec);
3871     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3872     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3873     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3874     if (exec->argumentCount() < 2)
3875         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3876     unsigned indx(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3877     if (exec->hadException())
3878         return JSValue::encode(jsUndefined());
3879     float x(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toFloat(exec));
3880     if (exec->hadException())
3881         return JSValue::encode(jsUndefined());
3882     imp->vertexAttrib1f(indx, x);
3883     return JSValue::encode(jsUndefined());
3884 }
3885
3886 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib1fv(ExecState* exec)
3887 {
3888     JSValue thisValue = exec->hostThisValue();
3889     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3890         return throwVMTypeError(exec);
3891     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3892     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3893     return JSValue::encode(castedThis->vertexAttrib1fv(exec));
3894 }
3895
3896 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib2f(ExecState* exec)
3897 {
3898     JSValue thisValue = exec->hostThisValue();
3899     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3900         return throwVMTypeError(exec);
3901     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3902     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3903     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3904     if (exec->argumentCount() < 3)
3905         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3906     unsigned indx(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3907     if (exec->hadException())
3908         return JSValue::encode(jsUndefined());
3909     float x(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toFloat(exec));
3910     if (exec->hadException())
3911         return JSValue::encode(jsUndefined());
3912     float y(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toFloat(exec));
3913     if (exec->hadException())
3914         return JSValue::encode(jsUndefined());
3915     imp->vertexAttrib2f(indx, x, y);
3916     return JSValue::encode(jsUndefined());
3917 }
3918
3919 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib2fv(ExecState* exec)
3920 {
3921     JSValue thisValue = exec->hostThisValue();
3922     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3923         return throwVMTypeError(exec);
3924     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3925     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3926     return JSValue::encode(castedThis->vertexAttrib2fv(exec));
3927 }
3928
3929 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib3f(ExecState* exec)
3930 {
3931     JSValue thisValue = exec->hostThisValue();
3932     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3933         return throwVMTypeError(exec);
3934     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3935     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3936     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3937     if (exec->argumentCount() < 4)
3938         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3939     unsigned indx(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3940     if (exec->hadException())
3941         return JSValue::encode(jsUndefined());
3942     float x(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toFloat(exec));
3943     if (exec->hadException())
3944         return JSValue::encode(jsUndefined());
3945     float y(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toFloat(exec));
3946     if (exec->hadException())
3947         return JSValue::encode(jsUndefined());
3948     float z(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toFloat(exec));
3949     if (exec->hadException())
3950         return JSValue::encode(jsUndefined());
3951     imp->vertexAttrib3f(indx, x, y, z);
3952     return JSValue::encode(jsUndefined());
3953 }
3954
3955 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib3fv(ExecState* exec)
3956 {
3957     JSValue thisValue = exec->hostThisValue();
3958     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3959         return throwVMTypeError(exec);
3960     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3961     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3962     return JSValue::encode(castedThis->vertexAttrib3fv(exec));
3963 }
3964
3965 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib4f(ExecState* exec)
3966 {
3967     JSValue thisValue = exec->hostThisValue();
3968     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3969         return throwVMTypeError(exec);
3970     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
3971     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
3972     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
3973     if (exec->argumentCount() < 5)
3974         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
3975     unsigned indx(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
3976     if (exec->hadException())
3977         return JSValue::encode(jsUndefined());
3978     float x(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toFloat(exec));
3979     if (exec->hadException())
3980         return JSValue::encode(jsUndefined());
3981     float y(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toFloat(exec));
3982     if (exec->hadException())
3983         return JSValue::encode(jsUndefined());
3984     float z(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toFloat(exec));
3985     if (exec->hadException())
3986         return JSValue::encode(jsUndefined());
3987     float w(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toFloat(exec));
3988     if (exec->hadException())
3989         return JSValue::encode(jsUndefined());
3990     imp->vertexAttrib4f(indx, x, y, z, w);
3991     return JSValue::encode(jsUndefined());
3992 }
3993
3994 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib4fv(ExecState* exec)
3995 {
3996     JSValue thisValue = exec->hostThisValue();
3997     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
3998         return throwVMTypeError(exec);
3999     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
4000     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
4001     return JSValue::encode(castedThis->vertexAttrib4fv(exec));
4002 }
4003
4004 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttribPointer(ExecState* exec)
4005 {
4006     JSValue thisValue = exec->hostThisValue();
4007     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
4008         return throwVMTypeError(exec);
4009     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
4010     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
4011     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
4012     if (exec->argumentCount() < 6)
4013         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
4014     ExceptionCode ec = 0;
4015     unsigned indx(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toUInt32(exec));
4016     if (exec->hadException())
4017         return JSValue::encode(jsUndefined());
4018     int size(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
4019     if (exec->hadException())
4020         return JSValue::encode(jsUndefined());
4021     unsigned type(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toUInt32(exec));
4022     if (exec->hadException())
4023         return JSValue::encode(jsUndefined());
4024     bool normalized(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toBoolean(exec));
4025     if (exec->hadException())
4026         return JSValue::encode(jsUndefined());
4027     int stride(MAYBE_MISSING_PARAMETER(exec, 4, MissingIsUndefined).toInt32(exec));
4028     if (exec->hadException())
4029         return JSValue::encode(jsUndefined());
4030     int offset(MAYBE_MISSING_PARAMETER(exec, 5, MissingIsUndefined).toInt32(exec));
4031     if (exec->hadException())
4032         return JSValue::encode(jsUndefined());
4033     imp->vertexAttribPointer(indx, size, type, normalized, stride, offset, ec);
4034     setDOMException(exec, ec);
4035     return JSValue::encode(jsUndefined());
4036 }
4037
4038 EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionViewport(ExecState* exec)
4039 {
4040     JSValue thisValue = exec->hostThisValue();
4041     if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
4042         return throwVMTypeError(exec);
4043     JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
4044     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
4045     WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
4046     if (exec->argumentCount() < 4)
4047         return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
4048     int x(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toInt32(exec));
4049     if (exec->hadException())
4050         return JSValue::encode(jsUndefined());
4051     int y(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toInt32(exec));
4052     if (exec->hadException())
4053         return JSValue::encode(jsUndefined());
4054     int width(MAYBE_MISSING_PARAMETER(exec, 2, MissingIsUndefined).toInt32(exec));
4055     if (exec->hadException())
4056         return JSValue::encode(jsUndefined());
4057     int height(MAYBE_MISSING_PARAMETER(exec, 3, MissingIsUndefined).toInt32(exec));
4058     if (exec->hadException())
4059         return JSValue::encode(jsUndefined());
4060     imp->viewport(x, y, width, height);
4061     return JSValue::encode(jsUndefined());
4062 }
4063
4064 // Constant getters
4065
4066 JSValue jsWebGLRenderingContextDEPTH_BUFFER_BIT(ExecState* exec, JSValue, const Identifier&)
4067 {
4068     UNUSED_PARAM(exec);
4069     return jsNumber(static_cast<int>(0x00000100));
4070 }
4071
4072 JSValue jsWebGLRenderingContextSTENCIL_BUFFER_BIT(ExecState* exec, JSValue, const Identifier&)
4073 {
4074     UNUSED_PARAM(exec);
4075     return jsNumber(static_cast<int>(0x00000400));
4076 }
4077
4078 JSValue jsWebGLRenderingContextCOLOR_BUFFER_BIT(ExecState* exec, JSValue, const Identifier&)
4079 {
4080     UNUSED_PARAM(exec);
4081     return jsNumber(static_cast<int>(0x00004000));
4082 }
4083
4084 JSValue jsWebGLRenderingContextPOINTS(ExecState* exec, JSValue, const Identifier&)
4085 {
4086     UNUSED_PARAM(exec);
4087     return jsNumber(static_cast<int>(0x0000));
4088 }
4089
4090 JSValue jsWebGLRenderingContextLINES(ExecState* exec, JSValue, const Identifier&)
4091 {
4092     UNUSED_PARAM(exec);
4093     return jsNumber(static_cast<int>(0x0001));
4094 }
4095
4096 JSValue jsWebGLRenderingContextLINE_LOOP(ExecState* exec, JSValue, const Identifier&)
4097 {
4098     UNUSED_PARAM(exec);
4099     return jsNumber(static_cast<int>(0x0002));
4100 }
4101
4102 JSValue jsWebGLRenderingContextLINE_STRIP(ExecState* exec, JSValue, const Identifier&)
4103 {
4104     UNUSED_PARAM(exec);
4105     return jsNumber(static_cast<int>(0x0003));
4106 }
4107
4108 JSValue jsWebGLRenderingContextTRIANGLES(ExecState* exec, JSValue, const Identifier&)
4109 {
4110     UNUSED_PARAM(exec);
4111     return jsNumber(static_cast<int>(0x0004));
4112 }
4113
4114 JSValue jsWebGLRenderingContextTRIANGLE_STRIP(ExecState* exec, JSValue, const Identifier&)
4115 {
4116     UNUSED_PARAM(exec);
4117     return jsNumber(static_cast<int>(0x0005));
4118 }
4119
4120 JSValue jsWebGLRenderingContextTRIANGLE_FAN(ExecState* exec, JSValue, const Identifier&)
4121 {
4122     UNUSED_PARAM(exec);
4123     return jsNumber(static_cast<int>(0x0006));
4124 }
4125
4126 JSValue jsWebGLRenderingContextZERO(ExecState* exec, JSValue, const Identifier&)
4127 {
4128     UNUSED_PARAM(exec);
4129     return jsNumber(static_cast<int>(0));
4130 }
4131
4132 JSValue jsWebGLRenderingContextONE(ExecState* exec, JSValue, const Identifier&)
4133 {
4134     UNUSED_PARAM(exec);
4135     return jsNumber(static_cast<int>(1));
4136 }
4137
4138 JSValue jsWebGLRenderingContextSRC_COLOR(ExecState* exec, JSValue, const Identifier&)
4139 {
4140     UNUSED_PARAM(exec);
4141     return jsNumber(static_cast<int>(0x0300));
4142 }
4143
4144 JSValue jsWebGLRenderingContextONE_MINUS_SRC_COLOR(ExecState* exec, JSValue, const Identifier&)
4145 {
4146     UNUSED_PARAM(exec);
4147     return jsNumber(static_cast<int>(0x0301));
4148 }
4149
4150 JSValue jsWebGLRenderingContextSRC_ALPHA(ExecState* exec, JSValue, const Identifier&)
4151 {
4152     UNUSED_PARAM(exec);
4153     return jsNumber(static_cast<int>(0x0302));
4154 }
4155
4156 JSValue jsWebGLRenderingContextONE_MINUS_SRC_ALPHA(ExecState* exec, JSValue, const Identifier&)
4157 {
4158     UNUSED_PARAM(exec);
4159     return jsNumber(static_cast<int>(0x0303));
4160 }
4161
4162 JSValue jsWebGLRenderingContextDST_ALPHA(ExecState* exec, JSValue, const Identifier&)
4163 {
4164     UNUSED_PARAM(exec);
4165     return jsNumber(static_cast<int>(0x0304));
4166 }
4167
4168 JSValue jsWebGLRenderingContextONE_MINUS_DST_ALPHA(ExecState* exec, JSValue, const Identifier&)
4169 {
4170     UNUSED_PARAM(exec);
4171     return jsNumber(static_cast<int>(0x0305));
4172 }
4173
4174 JSValue jsWebGLRenderingContextDST_COLOR(ExecState* exec, JSValue, const Identifier&)
4175 {
4176     UNUSED_PARAM(exec);
4177     return jsNumber(static_cast<int>(0x0306));
4178 }
4179
4180 JSValue jsWebGLRenderingContextONE_MINUS_DST_COLOR(ExecState* exec, JSValue, const Identifier&)
4181 {
4182     UNUSED_PARAM(exec);
4183     return jsNumber(static_cast<int>(0x0307));
4184 }
4185
4186 JSValue jsWebGLRenderingContextSRC_ALPHA_SATURATE(ExecState* exec, JSValue, const Identifier&)
4187 {
4188     UNUSED_PARAM(exec);
4189     return jsNumber(static_cast<int>(0x0308));
4190 }
4191
4192 JSValue jsWebGLRenderingContextFUNC_ADD(ExecState* exec, JSValue, const Identifier&)
4193 {
4194     UNUSED_PARAM(exec);
4195     return jsNumber(static_cast<int>(0x8006));
4196 }
4197
4198 JSValue jsWebGLRenderingContextBLEND_EQUATION(ExecState* exec, JSValue, const Identifier&)
4199 {
4200     UNUSED_PARAM(exec);
4201     return jsNumber(static_cast<int>(0x8009));
4202 }
4203
4204 JSValue jsWebGLRenderingContextBLEND_EQUATION_RGB(ExecState* exec, JSValue, const Identifier&)
4205 {
4206     UNUSED_PARAM(exec);
4207     return jsNumber(static_cast<int>(0x8009));
4208 }
4209
4210 JSValue jsWebGLRenderingContextBLEND_EQUATION_ALPHA(ExecState* exec, JSValue, const Identifier&)
4211 {
4212     UNUSED_PARAM(exec);
4213     return jsNumber(static_cast<int>(0x883D));
4214 }
4215
4216 JSValue jsWebGLRenderingContextFUNC_SUBTRACT(ExecState* exec, JSValue, const Identifier&)
4217 {
4218     UNUSED_PARAM(exec);
4219     return jsNumber(static_cast<int>(0x800A));
4220 }
4221
4222 JSValue jsWebGLRenderingContextFUNC_REVERSE_SUBTRACT(ExecState* exec, JSValue, const Identifier&)
4223 {
4224     UNUSED_PARAM(exec);
4225     return jsNumber(static_cast<int>(0x800B));
4226 }
4227
4228 JSValue jsWebGLRenderingContextBLEND_DST_RGB(ExecState* exec, JSValue, const Identifier&)
4229 {
4230     UNUSED_PARAM(exec);
4231     return jsNumber(static_cast<int>(0x80C8));
4232 }
4233
4234 JSValue jsWebGLRenderingContextBLEND_SRC_RGB(ExecState* exec, JSValue, const Identifier&)
4235 {
4236     UNUSED_PARAM(exec);
4237     return jsNumber(static_cast<int>(0x80C9));
4238 }
4239
4240 JSValue jsWebGLRenderingContextBLEND_DST_ALPHA(ExecState* exec, JSValue, const Identifier&)
4241 {
4242     UNUSED_PARAM(exec);
4243     return jsNumber(static_cast<int>(0x80CA));
4244 }
4245
4246 JSValue jsWebGLRenderingContextBLEND_SRC_ALPHA(ExecState* exec, JSValue, const Identifier&)
4247 {
4248     UNUSED_PARAM(exec);
4249     return jsNumber(static_cast<int>(0x80CB));
4250 }
4251
4252 JSValue jsWebGLRenderingContextCONSTANT_COLOR(ExecState* exec, JSValue, const Identifier&)
4253 {
4254     UNUSED_PARAM(exec);
4255     return jsNumber(static_cast<int>(0x8001));
4256 }
4257
4258 JSValue jsWebGLRenderingContextONE_MINUS_CONSTANT_COLOR(ExecState* exec, JSValue, const Identifier&)
4259 {
4260     UNUSED_PARAM(exec);
4261     return jsNumber(static_cast<int>(0x8002));
4262 }
4263
4264 JSValue jsWebGLRenderingContextCONSTANT_ALPHA(ExecState* exec, JSValue, const Identifier&)
4265 {
4266     UNUSED_PARAM(exec);
4267     return jsNumber(static_cast<int>(0x8003));
4268 }
4269
4270 JSValue jsWebGLRenderingContextONE_MINUS_CONSTANT_ALPHA(ExecState* exec, JSValue, const Identifier&)
4271 {
4272     UNUSED_PARAM(exec);
4273     return jsNumber(static_cast<int>(0x8004));
4274 }
4275
4276 JSValue jsWebGLRenderingContextBLEND_COLOR(ExecState* exec, JSValue, const Identifier&)
4277 {
4278     UNUSED_PARAM(exec);
4279     return jsNumber(static_cast<int>(0x8005));
4280 }
4281
4282 JSValue jsWebGLRenderingContextARRAY_BUFFER(ExecState* exec, JSValue, const Identifier&)
4283 {
4284     UNUSED_PARAM(exec);
4285     return jsNumber(static_cast<int>(0x8892));
4286 }
4287
4288 JSValue jsWebGLRenderingContextELEMENT_ARRAY_BUFFER(ExecState* exec, JSValue, const Identifier&)
4289 {
4290     UNUSED_PARAM(exec);
4291     return jsNumber(static_cast<int>(0x8893));
4292 }
4293
4294 JSValue jsWebGLRenderingContextARRAY_BUFFER_BINDING(ExecState* exec, JSValue, const Identifier&)
4295 {
4296     UNUSED_PARAM(exec);
4297     return jsNumber(static_cast<int>(0x8894));
4298 }
4299
4300 JSValue jsWebGLRenderingContextELEMENT_ARRAY_BUFFER_BINDING(ExecState* exec, JSValue, const Identifier&)
4301 {
4302     UNUSED_PARAM(exec);
4303     return jsNumber(static_cast<int>(0x8895));
4304 }
4305
4306 JSValue jsWebGLRenderingContextSTREAM_DRAW(ExecState* exec, JSValue, const Identifier&)
4307 {
4308     UNUSED_PARAM(exec);
4309     return jsNumber(static_cast<int>(0x88E0));
4310 }
4311
4312 JSValue jsWebGLRenderingContextSTATIC_DRAW(ExecState* exec, JSValue, const Identifier&)
4313 {
4314     UNUSED_PARAM(exec);
4315     return jsNumber(static_cast<int>(0x88E4));
4316 }
4317
4318 JSValue jsWebGLRenderingContextDYNAMIC_DRAW(ExecState* exec, JSValue, const Identifier&)
4319 {
4320     UNUSED_PARAM(exec);
4321     return jsNumber(static_cast<int>(0x88E8));
4322 }
4323
4324 JSValue jsWebGLRenderingContextBUFFER_SIZE(ExecState* exec, JSValue, const Identifier&)
4325 {
4326     UNUSED_PARAM(exec);
4327     return jsNumber(static_cast<int>(0x8764));
4328 }
4329
4330 JSValue jsWebGLRenderingContextBUFFER_USAGE(ExecState* exec, JSValue, const Identifier&)
4331 {
4332     UNUSED_PARAM(exec);
4333     return jsNumber(static_cast<int>(0x8765));
4334 }
4335
4336 JSValue jsWebGLRenderingContextCURRENT_VERTEX_ATTRIB(ExecState* exec, JSValue, const Identifier&)
4337 {
4338     UNUSED_PARAM(exec);
4339     return jsNumber(static_cast<int>(0x8626));
4340 }
4341
4342 JSValue jsWebGLRenderingContextFRONT(ExecState* exec, JSValue, const Identifier&)
4343 {
4344     UNUSED_PARAM(exec);
4345     return jsNumber(static_cast<int>(0x0404));
4346 }
4347
4348 JSValue jsWebGLRenderingContextBACK(ExecState* exec, JSValue, const Identifier&)
4349 {
4350     UNUSED_PARAM(exec);
4351     return jsNumber(static_cast<int>(0x0405));
4352 }
4353
4354 JSValue jsWebGLRenderingContextFRONT_AND_BACK(ExecState* exec, JSValue, const Identifier&)
4355 {
4356     UNUSED_PARAM(exec);
4357     return jsNumber(static_cast<int>(0x0408));
4358 }
4359
4360 JSValue jsWebGLRenderingContextTEXTURE_2D(ExecState* exec, JSValue, const Identifier&)
4361 {
4362     UNUSED_PARAM(exec);
4363     return jsNumber(static_cast<int>(0x0DE1));
4364 }
4365
4366 JSValue jsWebGLRenderingContextCULL_FACE(ExecState* exec, JSValue, const Identifier&)
4367 {
4368     UNUSED_PARAM(exec);
4369     return jsNumber(static_cast<int>(0x0B44));
4370 }
4371
4372 JSValue jsWebGLRenderingContextBLEND(ExecState* exec, JSValue, const Identifier&)
4373 {
4374     UNUSED_PARAM(exec);
4375     return jsNumber(static_cast<int>(0x0BE2));
4376 }
4377
4378 JSValue jsWebGLRenderingContextDITHER(ExecState* exec, JSValue, const Identifier&)
4379 {
4380     UNUSED_PARAM(exec);
4381     return jsNumber(static_cast<int>(0x0BD0));
4382 }
4383
4384 JSValue jsWebGLRenderingContextSTENCIL_TEST(ExecState* exec, JSValue, const Identifier&)
4385 {
4386     UNUSED_PARAM(exec);
4387     return jsNumber(static_cast<int>(0x0B90));
4388 }
4389
4390 JSValue jsWebGLRenderingContextDEPTH_TEST(ExecState* exec, JSValue, const Identifier&)
4391 {
4392     UNUSED_PARAM(exec);
4393     return jsNumber(static_cast<int>(0x0B71));
4394 }
4395
4396 JSValue jsWebGLRenderingContextSCISSOR_TEST(ExecState* exec, JSValue, const Identifier&)
4397 {
4398     UNUSED_PARAM(exec);
4399     return jsNumber(static_cast<int>(0x0C11));
4400 }
4401
4402 JSValue jsWebGLRenderingContextPOLYGON_OFFSET_FILL(ExecState* exec, JSValue, const Identifier&)
4403 {
4404     UNUSED_PARAM(exec);
4405     return jsNumber(static_cast<int>(0x8037));
4406 }
4407
4408 JSValue jsWebGLRenderingContextSAMPLE_ALPHA_TO_COVERAGE(ExecState* exec, JSValue, const Identifier&)
4409 {
4410     UNUSED_PARAM(exec);
4411     return jsNumber(static_cast<int>(0x809E));
4412 }
4413
4414 JSValue jsWebGLRenderingContextSAMPLE_COVERAGE(ExecState* exec, JSValue, const Identifier&)
4415 {
4416     UNUSED_PARAM(exec);
4417     return jsNumber(static_cast<int>(0x80A0));
4418 }
4419
4420 JSValue jsWebGLRenderingContextNO_ERROR(ExecState* exec, JSValue, const Identifier&)
4421 {
4422     UNUSED_PARAM(exec);
4423     return jsNumber(static_cast<int>(0));
4424 }
4425
4426 JSValue jsWebGLRenderingContextINVALID_ENUM(ExecState* exec, JSValue, const Identifier&)
4427 {
4428     UNUSED_PARAM(exec);
4429     return jsNumber(static_cast<int>(0x0500));
4430 }
4431
4432 JSValue jsWebGLRenderingContextINVALID_VALUE(ExecState* exec, JSValue, const Identifier&)
4433 {
4434     UNUSED_PARAM(exec);
4435     return jsNumber(static_cast<int>(0x0501));
4436 }
4437
4438 JSValue jsWebGLRenderingContextINVALID_OPERATION(ExecState* exec, JSValue, const Identifier&)
4439 {
4440     UNUSED_PARAM(exec);
4441     return jsNumber(static_cast<int>(0x0502));
4442 }
4443
4444 JSValue jsWebGLRenderingContextOUT_OF_MEMORY(ExecState* exec, JSValue, const Identifier&)
4445 {
4446     UNUSED_PARAM(exec);
4447     return jsNumber(static_cast<int>(0x0505));
4448 }
4449
4450 JSValue jsWebGLRenderingContextCW(ExecState* exec, JSValue, const Identifier&)
4451 {
4452     UNUSED_PARAM(exec);
4453     return jsNumber(static_cast<int>(0x0900));
4454 }
4455
4456 JSValue jsWebGLRenderingContextCCW(ExecState* exec, JSValue, const Identifier&)
4457 {
4458     UNUSED_PARAM(exec);
4459     return jsNumber(static_cast<int>(0x0901));
4460 }
4461
4462 JSValue jsWebGLRenderingContextLINE_WIDTH(ExecState* exec, JSValue, const Identifier&)
4463 {
4464     UNUSED_PARAM(exec);
4465     return jsNumber(static_cast<int>(0x0B21));
4466 }
4467
4468 JSValue jsWebGLRenderingContextALIASED_POINT_SIZE_RANGE(ExecState* exec, JSValue, const Identifier&)
4469 {
4470     UNUSED_PARAM(exec);
4471     return jsNumber(static_cast<int>(0x846D));
4472 }
4473
4474 JSValue jsWebGLRenderingContextALIASED_LINE_WIDTH_RANGE(ExecState* exec, JSValue, const Identifier&)
4475 {
4476     UNUSED_PARAM(exec);
4477     return jsNumber(static_cast<int>(0x846E));
4478 }
4479
4480 JSValue jsWebGLRenderingContextCULL_FACE_MODE(ExecState* exec, JSValue, const Identifier&)
4481 {
4482     UNUSED_PARAM(exec);
4483     return jsNumber(static_cast<int>(0x0B45));
4484 }
4485
4486 JSValue jsWebGLRenderingContextFRONT_FACE(ExecState* exec, JSValue, const Identifier&)
4487 {
4488     UNUSED_PARAM(exec);
4489     return jsNumber(static_cast<int>(0x0B46));
4490 }
4491
4492 JSValue jsWebGLRenderingContextDEPTH_RANGE(ExecState* exec, JSValue, const Identifier&)
4493 {
4494     UNUSED_PARAM(exec);
4495     return jsNumber(static_cast<int>(0x0B70));
4496 }
4497
4498 JSValue jsWebGLRenderingContextDEPTH_WRITEMASK(ExecState* exec, JSValue, const Identifier&)
4499 {
4500     UNUSED_PARAM(exec);
4501     return jsNumber(static_cast<int>(0x0B72));
4502 }
4503
4504 JSValue jsWebGLRenderingContextDEPTH_CLEAR_VALUE(ExecState* exec, JSValue, const Identifier&)
4505 {
4506     UNUSED_PARAM(exec);
4507     return jsNumber(static_cast<int>(0x0B73));
4508 }
4509
4510 JSValue jsWebGLRenderingContextDEPTH_FUNC(ExecState* exec, JSValue, const Identifier&)
4511 {
4512     UNUSED_PARAM(exec);
4513     return jsNumber(static_cast<int>(0x0B74));
4514 }
4515
4516 JSValue jsWebGLRenderingContextSTENCIL_CLEAR_VALUE(ExecState* exec, JSValue, const Identifier&)
4517 {
4518     UNUSED_PARAM(exec);
4519     return jsNumber(static_cast<int>(0x0B91));
4520 }
4521
4522 JSValue jsWebGLRenderingContextSTENCIL_FUNC(ExecState* exec, JSValue, const Identifier&)
4523 {
4524     UNUSED_PARAM(exec);
4525     return jsNumber(static_cast<int>(0x0B92));
4526 }
4527
4528 JSValue jsWebGLRenderingContextSTENCIL_FAIL(ExecState* exec, JSValue, const Identifier&)
4529 {
4530     UNUSED_PARAM(exec);
4531     return jsNumber(static_cast<int>(0x0B94));
4532 }
4533
4534 JSValue jsWebGLRenderingContextSTENCIL_PASS_DEPTH_FAIL(ExecState* exec, JSValue, const Identifier&)
4535 {
4536     UNUSED_PARAM(exec);
4537     return jsNumber(static_cast<int>(0x0B95));
4538 }
4539
4540 JSValue jsWebGLRenderingContextSTENCIL_PASS_DEPTH_PASS(ExecState* exec, JSValue, const Identifier&)
4541 {
4542     UNUSED_PARAM(exec);
4543     return jsNumber(static_cast<int>(0x0B96));
4544 }
4545
4546 JSValue jsWebGLRenderingContextSTENCIL_REF(ExecState* exec, JSValue, const Identifier&)
4547 {
4548     UNUSED_PARAM(exec);
4549     return jsNumber(static_cast<int>(0x0B97));
4550 }
4551
4552 JSValue jsWebGLRenderingContextSTENCIL_VALUE_MASK(ExecState* exec, JSValue, const Identifier&)
4553 {
4554     UNUSED_PARAM(exec);
4555     return jsNumber(static_cast<int>(0x0B93));
4556 }
4557
4558 JSValue jsWebGLRenderingContextSTENCIL_WRITEMASK(ExecState* exec, JSValue, const Identifier&)
4559 {
4560     UNUSED_PARAM(exec);
4561     return jsNumber(static_cast<int>(0x0B98));
4562 }
4563
4564 JSValue jsWebGLRenderingContextSTENCIL_BACK_FUNC(ExecState* exec, JSValue, const Identifier&)
4565 {
4566     UNUSED_PARAM(exec);
4567     return jsNumber(static_cast<int>(0x8800));
4568 }
4569
4570 JSValue jsWebGLRenderingContextSTENCIL_BACK_FAIL(ExecState* exec, JSValue, const Identifier&)
4571 {
4572     UNUSED_PARAM(exec);
4573     return jsNumber(static_cast<int>(0x8801));
4574 }
4575
4576 JSValue jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_FAIL(ExecState* exec, JSValue, const Identifier&)
4577 {
4578     UNUSED_PARAM(exec);
4579     return jsNumber(static_cast<int>(0x8802));
4580 }
4581
4582 JSValue jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_PASS(ExecState* exec, JSValue, const Identifier&)
4583 {
4584     UNUSED_PARAM(exec);
4585     return jsNumber(static_cast<int>(0x8803));
4586 }
4587
4588 JSValue jsWebGLRenderingContextSTENCIL_BACK_REF(ExecState* exec, JSValue, const Identifier&)
4589 {
4590     UNUSED_PARAM(exec);
4591     return jsNumber(static_cast<int>(0x8CA3));
4592 }
4593
4594 JSValue jsWebGLRenderingContextSTENCIL_BACK_VALUE_MASK(ExecState* exec, JSValue, const Identifier&)
4595 {
4596     UNUSED_PARAM(exec);
4597     return jsNumber(static_cast<int>(0x8CA4));
4598 }
4599
4600 JSValue jsWebGLRenderingContextSTENCIL_BACK_WRITEMASK(ExecState* exec, JSValue, const Identifier&)
4601 {
4602     UNUSED_PARAM(exec);
4603     return jsNumber(static_cast<int>(0x8CA5));
4604 }
4605
4606 JSValue jsWebGLRenderingContextVIEWPORT(ExecState* exec, JSValue, const Identifier&)
4607 {
4608     UNUSED_PARAM(exec);
4609     return jsNumber(static_cast<int>(0x0BA2));
4610 }
4611
4612 JSValue jsWebGLRenderingContextSCISSOR_BOX(ExecState* exec, JSValue, const Identifier&)
4613 {
4614     UNUSED_PARAM(exec);
4615     return jsNumber(static_cast<int>(0x0C10));
4616 }
4617
4618 JSValue jsWebGLRenderingContextCOLOR_CLEAR_VALUE(ExecState* exec, JSValue, const Identifier&)
4619 {
4620     UNUSED_PARAM(exec);
4621     return jsNumber(static_cast<int>(0x0C22));
4622 }
4623
4624 JSValue jsWebGLRenderingContextCOLOR_WRITEMASK(ExecState* exec, JSValue, const Identifier&)
4625 {
4626     UNUSED_PARAM(exec);
4627     return jsNumber(static_cast<int>(0x0C23));
4628 }
4629
4630 JSValue jsWebGLRenderingContextUNPACK_ALIGNMENT(ExecState* exec, JSValue, const Identifier&)
4631 {
4632     UNUSED_PARAM(exec);
4633     return jsNumber(static_cast<int>(0x0CF5));
4634 }
4635
4636 JSValue jsWebGLRenderingContextPACK_ALIGNMENT(ExecState* exec, JSValue, const Identifier&)
4637 {
4638     UNUSED_PARAM(exec);
4639     return jsNumber(static_cast<int>(0x0D05));
4640 }
4641
4642 JSValue jsWebGLRenderingContextMAX_TEXTURE_SIZE(ExecState* exec, JSValue, const Identifier&)
4643 {
4644     UNUSED_PARAM(exec);
4645     return jsNumber(static_cast<int>(0x0D33));
4646 }
4647
4648 JSValue jsWebGLRenderingContextMAX_VIEWPORT_DIMS(ExecState* exec, JSValue, const Identifier&)
4649 {
4650     UNUSED_PARAM(exec);
4651     return jsNumber(static_cast<int>(0x0D3A));
4652 }
4653
4654 JSValue jsWebGLRenderingContextSUBPIXEL_BITS(ExecState* exec, JSValue, const Identifier&)
4655 {
4656     UNUSED_PARAM(exec);
4657     return jsNumber(static_cast<int>(0x0D50));
4658 }
4659
4660 JSValue jsWebGLRenderingContextRED_BITS(ExecState* exec, JSValue, const Identifier&)
4661 {
4662     UNUSED_PARAM(exec);
4663     return jsNumber(static_cast<int>(0x0D52));
4664 }
4665
4666 JSValue jsWebGLRenderingContextGREEN_BITS(ExecState* exec, JSValue, const Identifier&)
4667 {
4668     UNUSED_PARAM(exec);
4669     return jsNumber(static_cast<int>(0x0D53));
4670 }
4671
4672 JSValue jsWebGLRenderingContextBLUE_BITS(ExecState* exec, JSValue, const Identifier&)
4673 {
4674     UNUSED_PARAM(exec);
4675     return jsNumber(static_cast<int>(0x0D54));
4676 }
4677
4678 JSValue jsWebGLRenderingContextALPHA_BITS(ExecState* exec, JSValue, const Identifier&)
4679 {
4680     UNUSED_PARAM(exec);
4681     return jsNumber(static_cast<int>(0x0D55));
4682 }
4683
4684 JSValue jsWebGLRenderingContextDEPTH_BITS(ExecState* exec, JSValue, const Identifier&)
4685 {
4686     UNUSED_PARAM(exec);
4687     return jsNumber(static_cast<int>(0x0D56));
4688 }
4689
4690 JSValue jsWebGLRenderingContextSTENCIL_BITS(ExecState* exec, JSValue, const Identifier&)
4691 {
4692     UNUSED_PARAM(exec);
4693     return jsNumber(static_cast<int>(0x0D57));
4694 }
4695
4696 JSValue jsWebGLRenderingContextPOLYGON_OFFSET_UNITS(ExecState* exec, JSValue, const Identifier&)
4697 {
4698     UNUSED_PARAM(exec);
4699     return jsNumber(static_cast<int>(0x2A00));
4700 }
4701
4702 JSValue jsWebGLRenderingContextPOLYGON_OFFSET_FACTOR(ExecState* exec, JSValue, const Identifier&)
4703 {
4704     UNUSED_PARAM(exec);
4705     return jsNumber(static_cast<int>(0x8038));
4706 }
4707
4708 JSValue jsWebGLRenderingContextTEXTURE_BINDING_2D(ExecState* exec, JSValue, const Identifier&)
4709 {
4710     UNUSED_PARAM(exec);
4711     return jsNumber(static_cast<int>(0x8069));
4712 }
4713
4714 JSValue jsWebGLRenderingContextSAMPLE_BUFFERS(ExecState* exec, JSValue, const Identifier&)
4715 {
4716     UNUSED_PARAM(exec);
4717     return jsNumber(static_cast<int>(0x80A8));
4718 }
4719
4720 JSValue jsWebGLRenderingContextSAMPLES(ExecState* exec, JSValue, const Identifier&)
4721 {
4722     UNUSED_PARAM(exec);
4723     return jsNumber(static_cast<int>(0x80A9));
4724 }
4725
4726 JSValue jsWebGLRenderingContextSAMPLE_COVERAGE_VALUE(ExecState* exec, JSValue, const Identifier&)
4727 {
4728     UNUSED_PARAM(exec);
4729     return jsNumber(static_cast<int>(0x80AA));
4730 }
4731
4732 JSValue jsWebGLRenderingContextSAMPLE_COVERAGE_INVERT(ExecState* exec, JSValue, const Identifier&)
4733 {
4734     UNUSED_PARAM(exec);
4735     return jsNumber(static_cast<int>(0x80AB));
4736 }
4737
4738 JSValue jsWebGLRenderingContextNUM_COMPRESSED_TEXTURE_FORMATS(ExecState* exec, JSValue, const Identifier&)
4739 {
4740     UNUSED_PARAM(exec);
4741     return jsNumber(static_cast<int>(0x86A2));
4742 }
4743
4744 JSValue jsWebGLRenderingContextCOMPRESSED_TEXTURE_FORMATS(ExecState* exec, JSValue, const Identifier&)
4745 {
4746     UNUSED_PARAM(exec);
4747     return jsNumber(static_cast<int>(0x86A3));
4748 }
4749
4750 JSValue jsWebGLRenderingContextDONT_CARE(ExecState* exec, JSValue, const Identifier&)
4751 {
4752     UNUSED_PARAM(exec);
4753     return jsNumber(static_cast<int>(0x1100));
4754 }
4755
4756 JSValue jsWebGLRenderingContextFASTEST(ExecState* exec, JSValue, const Identifier&)
4757 {
4758     UNUSED_PARAM(exec);
4759     return jsNumber(static_cast<int>(0x1101));
4760 }
4761
4762 JSValue jsWebGLRenderingContextNICEST(ExecState* exec, JSValue, const Identifier&)
4763 {
4764     UNUSED_PARAM(exec);
4765     return jsNumber(static_cast<int>(0x1102));
4766 }
4767
4768 JSValue jsWebGLRenderingContextGENERATE_MIPMAP_HINT(ExecState* exec, JSValue, const Identifier&)
4769 {
4770     UNUSED_PARAM(exec);
4771     return jsNumber(static_cast<int>(0x8192));
4772 }
4773
4774 JSValue jsWebGLRenderingContextBYTE(ExecState* exec, JSValue, const Identifier&)
4775 {
4776     UNUSED_PARAM(exec);
4777     return jsNumber(static_cast<int>(0x1400));
4778 }
4779
4780 JSValue jsWebGLRenderingContextUNSIGNED_BYTE(ExecState* exec, JSValue, const Identifier&)
4781 {
4782     UNUSED_PARAM(exec);
4783     return jsNumber(static_cast<int>(0x1401));
4784 }
4785
4786 JSValue jsWebGLRenderingContextSHORT(ExecState* exec, JSValue, const Identifier&)
4787 {
4788     UNUSED_PARAM(exec);
4789     return jsNumber(static_cast<int>(0x1402));
4790 }
4791
4792 JSValue jsWebGLRenderingContextUNSIGNED_SHORT(ExecState* exec, JSValue, const Identifier&)
4793 {
4794     UNUSED_PARAM(exec);
4795     return jsNumber(static_cast<int>(0x1403));
4796 }
4797
4798 JSValue jsWebGLRenderingContextINT(ExecState* exec, JSValue, const Identifier&)
4799 {
4800     UNUSED_PARAM(exec);
4801     return jsNumber(static_cast<int>(0x1404));
4802 }
4803
4804 JSValue jsWebGLRenderingContextUNSIGNED_INT(ExecState* exec, JSValue, const Identifier&)
4805 {
4806     UNUSED_PARAM(exec);
4807     return jsNumber(static_cast<int>(0x1405));
4808 }
4809
4810 JSValue jsWebGLRenderingContextFLOAT(ExecState* exec, JSValue, const Identifier&)
4811 {
4812     UNUSED_PARAM(exec);
4813     return jsNumber(static_cast<int>(0x1406));
4814 }
4815
4816 JSValue jsWebGLRenderingContextDEPTH_COMPONENT(ExecState* exec, JSValue, const Identifier&)
4817 {
4818     UNUSED_PARAM(exec);
4819     return jsNumber(static_cast<int>(0x1902));
4820 }
4821
4822 JSValue jsWebGLRenderingContextALPHA(ExecState* exec, JSValue, const Identifier&)
4823 {
4824     UNUSED_PARAM(exec);
4825     return jsNumber(static_cast<int>(0x1906));
4826 }
4827
4828 JSValue jsWebGLRenderingContextRGB(ExecState* exec, JSValue, const Identifier&)
4829 {
4830     UNUSED_PARAM(exec);
4831     return jsNumber(static_cast<int>(0x1907));
4832 }
4833
4834 JSValue jsWebGLRenderingContextRGBA(ExecState* exec, JSValue, const Identifier&)
4835 {
4836     UNUSED_PARAM(exec);
4837     return jsNumber(static_cast<int>(0x1908));
4838 }
4839
4840 JSValue jsWebGLRenderingContextLUMINANCE(ExecState* exec, JSValue, const Identifier&)
4841 {
4842     UNUSED_PARAM(exec);
4843     return jsNumber(static_cast<int>(0x1909));
4844 }
4845
4846 JSValue jsWebGLRenderingContextLUMINANCE_ALPHA(ExecState* exec, JSValue, const Identifier&)
4847 {
4848     UNUSED_PARAM(exec);
4849     return jsNumber(static_cast<int>(0x190A));
4850 }
4851
4852 JSValue jsWebGLRenderingContextUNSIGNED_SHORT_4_4_4_4(ExecState* exec, JSValue, const Identifier&)
4853 {
4854     UNUSED_PARAM(exec);
4855     return jsNumber(static_cast<int>(0x8033));
4856 }
4857
4858 JSValue jsWebGLRenderingContextUNSIGNED_SHORT_5_5_5_1(ExecState* exec, JSValue, const Identifier&)
4859 {
4860     UNUSED_PARAM(exec);
4861     return jsNumber(static_cast<int>(0x8034));
4862 }
4863
4864 JSValue jsWebGLRenderingContextUNSIGNED_SHORT_5_6_5(ExecState* exec, JSValue, const Identifier&)
4865 {
4866     UNUSED_PARAM(exec);
4867     return jsNumber(static_cast<int>(0x8363));
4868 }
4869
4870 JSValue jsWebGLRenderingContextFRAGMENT_SHADER(ExecState* exec, JSValue, const Identifier&)
4871 {
4872     UNUSED_PARAM(exec);
4873     return jsNumber(static_cast<int>(0x8B30));
4874 }
4875
4876 JSValue jsWebGLRenderingContextVERTEX_SHADER(ExecState* exec, JSValue, const Identifier&)
4877 {
4878     UNUSED_PARAM(exec);
4879     return jsNumber(static_cast<int>(0x8B31));
4880 }
4881
4882 JSValue jsWebGLRenderingContextMAX_VERTEX_ATTRIBS(ExecState* exec, JSValue, const Identifier&)
4883 {
4884     UNUSED_PARAM(exec);
4885     return jsNumber(static_cast<int>(0x8869));
4886 }
4887
4888 JSValue jsWebGLRenderingContextMAX_VERTEX_UNIFORM_VECTORS(ExecState* exec, JSValue, const Identifier&)
4889 {
4890     UNUSED_PARAM(exec);
4891     return jsNumber(static_cast<int>(0x8DFB));
4892 }
4893
4894 JSValue jsWebGLRenderingContextMAX_VARYING_VECTORS(ExecState* exec, JSValue, const Identifier&)
4895 {
4896     UNUSED_PARAM(exec);
4897     return jsNumber(static_cast<int>(0x8DFC));
4898 }
4899
4900 JSValue jsWebGLRenderingContextMAX_COMBINED_TEXTURE_IMAGE_UNITS(ExecState* exec, JSValue, const Identifier&)
4901 {
4902     UNUSED_PARAM(exec);
4903     return jsNumber(static_cast<int>(0x8B4D));
4904 }
4905
4906 JSValue jsWebGLRenderingContextMAX_VERTEX_TEXTURE_IMAGE_UNITS(ExecState* exec, JSValue, const Identifier&)
4907 {
4908     UNUSED_PARAM(exec);
4909     return jsNumber(static_cast<int>(0x8B4C));
4910 }
4911
4912 JSValue jsWebGLRenderingContextMAX_TEXTURE_IMAGE_UNITS(ExecState* exec, JSValue, const Identifier&)
4913 {
4914     UNUSED_PARAM(exec);
4915     return jsNumber(static_cast<int>(0x8872));
4916 }
4917
4918 JSValue jsWebGLRenderingContextMAX_FRAGMENT_UNIFORM_VECTORS(ExecState* exec, JSValue, const Identifier&)
4919 {
4920     UNUSED_PARAM(exec);
4921     return jsNumber(static_cast<int>(0x8DFD));
4922 }
4923
4924 JSValue jsWebGLRenderingContextSHADER_TYPE(ExecState* exec, JSValue, const Identifier&)
4925 {
4926     UNUSED_PARAM(exec);
4927     return jsNumber(static_cast<int>(0x8B4F));
4928 }
4929
4930 JSValue jsWebGLRenderingContextDELETE_STATUS(ExecState* exec, JSValue, const Identifier&)
4931 {
4932     UNUSED_PARAM(exec);
4933     return jsNumber(static_cast<int>(0x8B80));
4934 }
4935
4936 JSValue jsWebGLRenderingContextLINK_STATUS(ExecState* exec, JSValue, const Identifier&)
4937 {
4938     UNUSED_PARAM(exec);
4939     return jsNumber(static_cast<int>(0x8B82));
4940 }
4941
4942 JSValue jsWebGLRenderingContextVALIDATE_STATUS(ExecState* exec, JSValue, const Identifier&)
4943 {
4944     UNUSED_PARAM(exec);
4945     return jsNumber(static_cast<int>(0x8B83));
4946 }
4947
4948 JSValue jsWebGLRenderingContextATTACHED_SHADERS(ExecState* exec, JSValue, const Identifier&)
4949 {
4950     UNUSED_PARAM(exec);
4951     return jsNumber(static_cast<int>(0x8B85));
4952 }
4953
4954 JSValue jsWebGLRenderingContextACTIVE_UNIFORMS(ExecState* exec, JSValue, const Identifier&)
4955 {
4956     UNUSED_PARAM(exec);
4957     return jsNumber(static_cast<int>(0x8B86));
4958 }
4959
4960 JSValue jsWebGLRenderingContextACTIVE_ATTRIBUTES(ExecState* exec, JSValue, const Identifier&)
4961 {
4962     UNUSED_PARAM(exec);
4963     return jsNumber(static_cast<int>(0x8B89));
4964 }
4965
4966 JSValue jsWebGLRenderingContextSHADING_LANGUAGE_VERSION(ExecState* exec, JSValue, const Identifier&)
4967 {
4968     UNUSED_PARAM(exec);
4969     return jsNumber(static_cast<int>(0x8B8C));
4970 }
4971
4972 JSValue jsWebGLRenderingContextCURRENT_PROGRAM(ExecState* exec, JSValue, const Identifier&)
4973 {
4974     UNUSED_PARAM(exec);
4975     return jsNumber(static_cast<int>(0x8B8D));
4976 }
4977
4978 JSValue jsWebGLRenderingContextNEVER(ExecState* exec, JSValue, const Identifier&)
4979 {
4980     UNUSED_PARAM(exec);
4981     return jsNumber(static_cast<int>(0x0200));
4982 }
4983
4984 JSValue jsWebGLRenderingContextLESS(ExecState* exec, JSValue, const Identifier&)
4985 {
4986     UNUSED_PARAM(exec);
4987     return jsNumber(static_cast<int>(0x0201));
4988 }
4989
4990 JSValue jsWebGLRenderingContextEQUAL(ExecState* exec, JSValue, const Identifier&)
4991 {
4992     UNUSED_PARAM(exec);
4993     return jsNumber(static_cast<int>(0x0202));
4994 }
4995
4996 JSValue jsWebGLRenderingContextLEQUAL(ExecState* exec, JSValue, const Identifier&)
4997 {
4998     UNUSED_PARAM(exec);
4999     return jsNumber(static_cast<int>(0x0203));
5000 }
5001
5002 JSValue jsWebGLRenderingContextGREATER(ExecState* exec, JSValue, const Identifier&)
5003 {
5004     UNUSED_PARAM(exec);
5005     return jsNumber(static_cast<int>(0x0204));
5006 }
5007
5008 JSValue jsWebGLRenderingContextNOTEQUAL(ExecState* exec, JSValue, const Identifier&)
5009 {
5010     UNUSED_PARAM(exec);
5011     return jsNumber(static_cast<int>(0x0205));
5012 }
5013
5014 JSValue jsWebGLRenderingContextGEQUAL(ExecState* exec, JSValue, const Identifier&)
5015 {
5016     UNUSED_PARAM(exec);
5017     return jsNumber(static_cast<int>(0x0206));
5018 }
5019
5020 JSValue jsWebGLRenderingContextALWAYS(ExecState* exec, JSValue, const Identifier&)
5021 {
5022     UNUSED_PARAM(exec);
5023     return jsNumber(static_cast<int>(0x0207));
5024 }
5025
5026 JSValue jsWebGLRenderingContextKEEP(ExecState* exec, JSValue, const Identifier&)
5027 {
5028     UNUSED_PARAM(exec);
5029     return jsNumber(static_cast<int>(0x1E00));
5030 }
5031
5032 JSValue jsWebGLRenderingContextREPLACE(ExecState* exec, JSValue, const Identifier&)
5033 {
5034     UNUSED_PARAM(exec);
5035     return jsNumber(static_cast<int>(0x1E01));
5036 }
5037
5038 JSValue jsWebGLRenderingContextINCR(ExecState* exec, JSValue, const Identifier&)
5039 {
5040     UNUSED_PARAM(exec);
5041     return jsNumber(static_cast<int>(0x1E02));
5042 }
5043
5044 JSValue jsWebGLRenderingContextDECR(ExecState* exec, JSValue, const Identifier&)
5045 {
5046     UNUSED_PARAM(exec);
5047     return jsNumber(static_cast<int>(0x1E03));
5048 }
5049
5050 JSValue jsWebGLRenderingContextINVERT(ExecState* exec, JSValue, const Identifier&)
5051 {
5052     UNUSED_PARAM(exec);
5053     return jsNumber(static_cast<int>(0x150A));
5054 }
5055
5056 JSValue jsWebGLRenderingContextINCR_WRAP(ExecState* exec, JSValue, const Identifier&)
5057 {
5058     UNUSED_PARAM(exec);
5059     return jsNumber(static_cast<int>(0x8507));
5060 }
5061
5062 JSValue jsWebGLRenderingContextDECR_WRAP(ExecState* exec, JSValue, const Identifier&)
5063 {
5064     UNUSED_PARAM(exec);
5065     return jsNumber(static_cast<int>(0x8508));
5066 }
5067
5068 JSValue jsWebGLRenderingContextVENDOR(ExecState* exec, JSValue, const Identifier&)
5069 {
5070     UNUSED_PARAM(exec);
5071     return jsNumber(static_cast<int>(0x1F00));
5072 }
5073
5074 JSValue jsWebGLRenderingContextRENDERER(ExecState* exec, JSValue, const Identifier&)
5075 {
5076     UNUSED_PARAM(exec);
5077     return jsNumber(static_cast<int>(0x1F01));
5078 }
5079
5080 JSValue jsWebGLRenderingContextVERSION(ExecState* exec, JSValue, const Identifier&)
5081 {
5082     UNUSED_PARAM(exec);
5083     return jsNumber(static_cast<int>(0x1F02));
5084 }
5085
5086 JSValue jsWebGLRenderingContextNEAREST(ExecState* exec, JSValue, const Identifier&)
5087 {
5088     UNUSED_PARAM(exec);
5089     return jsNumber(static_cast<int>(0x2600));
5090 }
5091
5092 JSValue jsWebGLRenderingContextLINEAR(ExecState* exec, JSValue, const Identifier&)
5093 {
5094     UNUSED_PARAM(exec);
5095     return jsNumber(static_cast<int>(0x2601));
5096 }
5097
5098 JSValue jsWebGLRenderingContextNEAREST_MIPMAP_NEAREST(ExecState* exec, JSValue, const Identifier&)
5099 {
5100     UNUSED_PARAM(exec);
5101     return jsNumber(static_cast<int>(0x2700));
5102 }
5103
5104 JSValue jsWebGLRenderingContextLINEAR_MIPMAP_NEAREST(ExecState* exec, JSValue, const Identifier&)
5105 {
5106     UNUSED_PARAM(exec);
5107     return jsNumber(static_cast<int>(0x2701));
5108 }
5109
5110 JSValue jsWebGLRenderingContextNEAREST_MIPMAP_LINEAR(ExecState* exec, JSValue, const Identifier&)
5111 {
5112     UNUSED_PARAM(exec);
5113     return jsNumber(static_cast<int>(0x2702));
5114 }
5115
5116 JSValue jsWebGLRenderingContextLINEAR_MIPMAP_LINEAR(ExecState* exec, JSValue, const Identifier&)
5117 {
5118     UNUSED_PARAM(exec);
5119     return jsNumber(static_cast<int>(0x2703));
5120 }
5121
5122 JSValue jsWebGLRenderingContextTEXTURE_MAG_FILTER(ExecState* exec, JSValue, const Identifier&)
5123 {
5124     UNUSED_PARAM(exec);
5125     return jsNumber(static_cast<int>(0x2800));
5126 }
5127
5128 JSValue jsWebGLRenderingContextTEXTURE_MIN_FILTER(ExecState* exec, JSValue, const Identifier&)
5129 {
5130     UNUSED_PARAM(exec);
5131     return jsNumber(static_cast<int>(0x2801));
5132 }
5133
5134 JSValue jsWebGLRenderingContextTEXTURE_WRAP_S(ExecState* exec, JSValue, const Identifier&)
5135 {
5136     UNUSED_PARAM(exec);
5137     return jsNumber(static_cast<int>(0x2802));
5138 }
5139
5140 JSValue jsWebGLRenderingContextTEXTURE_WRAP_T(ExecState* exec, JSValue, const Identifier&)
5141 {
5142     UNUSED_PARAM(exec);
5143     return jsNumber(static_cast<int>(0x2803));
5144 }
5145
5146 JSValue jsWebGLRenderingContextTEXTURE(ExecState* exec, JSValue, const Identifier&)
5147 {
5148     UNUSED_PARAM(exec);
5149     return jsNumber(static_cast<int>(0x1702));
5150 }
5151
5152 JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP(ExecState* exec, JSValue, const Identifier&)
5153 {
5154     UNUSED_PARAM(exec);
5155     return jsNumber(static_cast<int>(0x8513));
5156 }
5157
5158 JSValue jsWebGLRenderingContextTEXTURE_BINDING_CUBE_MAP(ExecState* exec, JSValue, const Identifier&)
5159 {
5160     UNUSED_PARAM(exec);
5161     return jsNumber(static_cast<int>(0x8514));
5162 }
5163
5164 JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_X(ExecState* exec, JSValue, const Identifier&)
5165 {
5166     UNUSED_PARAM(exec);
5167     return jsNumber(static_cast<int>(0x8515));
5168 }
5169
5170 JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_X(ExecState* exec, JSValue, const Identifier&)
5171 {
5172     UNUSED_PARAM(exec);
5173     return jsNumber(static_cast<int>(0x8516));
5174 }
5175
5176 JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Y(ExecState* exec, JSValue, const Identifier&)
5177 {
5178     UNUSED_PARAM(exec);
5179     return jsNumber(static_cast<int>(0x8517));
5180 }
5181
5182 JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Y(ExecState* exec, JSValue, const Identifier&)
5183 {
5184     UNUSED_PARAM(exec);
5185     return jsNumber(static_cast<int>(0x8518));
5186 }
5187
5188 JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Z(ExecState* exec, JSValue, const Identifier&)
5189 {
5190     UNUSED_PARAM(exec);
5191     return jsNumber(static_cast<int>(0x8519));
5192 }
5193
5194 JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Z(ExecState* exec, JSValue, const Identifier&)
5195 {
5196     UNUSED_PARAM(exec);
5197     return jsNumber(static_cast<int>(0x851A));
5198 }
5199
5200 JSValue jsWebGLRenderingContextMAX_CUBE_MAP_TEXTURE_SIZE(ExecState* exec, JSValue, const Identifier&)
5201 {
5202     UNUSED_PARAM(exec);
5203     return jsNumber(static_cast<int>(0x851C));
5204 }
5205
5206 JSValue jsWebGLRenderingContextTEXTURE0(ExecState* exec, JSValue, const Identifier&)
5207 {
5208     UNUSED_PARAM(exec);
5209     return jsNumber(static_cast<int>(0x84C0));
5210 }
5211
5212 JSValue jsWebGLRenderingContextTEXTURE1(ExecState* exec, JSValue, const Identifier&)
5213 {
5214     UNUSED_PARAM(exec);
5215     return jsNumber(static_cast<int>(0x84C1));
5216 }
5217
5218 JSValue jsWebGLRenderingContextTEXTURE2(ExecState* exec, JSValue, const Identifier&)
5219 {
5220     UNUSED_PARAM(exec);
5221     return jsNumber(static_cast<int>(0x84C2));
5222 }
5223
5224 JSValue jsWebGLRenderingContextTEXTURE3(ExecState* exec, JSValue, const Identifier&)
5225 {
5226     UNUSED_PARAM(exec);
5227     return jsNumber(static_cast<int>(0x84C3));
5228 }
5229
5230 JSValue jsWebGLRenderingContextTEXTURE4(ExecState* exec, JSValue, const Identifier&)
5231 {
5232     UNUSED_PARAM(exec);
5233     return jsNumber(static_cast<int>(0x84C4));
5234 }
5235
5236 JSValue jsWebGLRenderingContextTEXTURE5(ExecState* exec, JSValue, const Identifier&)
5237 {
5238     UNUSED_PARAM(exec);
5239     return jsNumber(static_cast<int>(0x84C5));
5240 }
5241
5242 JSValue jsWebGLRenderingContextTEXTURE6(ExecState* exec, JSValue, const Identifier&)
5243 {
5244     UNUSED_PARAM(exec);
5245     return jsNumber(static_cast<int>(0x84C6));
5246 }
5247
5248 JSValue jsWebGLRenderingContextTEXTURE7(ExecState* exec, JSValue, const Identifier&)
5249 {
5250     UNUSED_PARAM(exec);
5251     return jsNumber(static_cast<int>(0x84C7));
5252 }
5253
5254 JSValue jsWebGLRenderingContextTEXTURE8(ExecState* exec, JSValue, const Identifier&)
5255 {
5256     UNUSED_PARAM(exec);
5257     return jsNumber(static_cast<int>(0x84C8));
5258 }
5259
5260 JSValue jsWebGLRenderingContextTEXTURE9(ExecState* exec, JSValue, const Identifier&)
5261 {
5262     UNUSED_PARAM(exec);
5263     return jsNumber(static_cast<int>(0x84C9));
5264 }
5265
5266 JSValue jsWebGLRenderingContextTEXTURE10(ExecState* exec, JSValue, const Identifier&)
5267 {
5268     UNUSED_PARAM(exec);
5269     return jsNumber(static_cast<int>(0x84CA));
5270 }
5271
5272 JSValue jsWebGLRenderingContextTEXTURE11(ExecState* exec, JSValue, const Identifier&)
5273 {
5274     UNUSED_PARAM(exec);
5275     return jsNumber(static_cast<int>(0x84CB));
5276 }
5277
5278 JSValue jsWebGLRenderingContextTEXTURE12(ExecState* exec, JSValue, const Identifier&)
5279 {
5280     UNUSED_PARAM(exec);
5281     return jsNumber(static_cast<int>(0x84CC));
5282 }
5283
5284 JSValue jsWebGLRenderingContextTEXTURE13(ExecState* exec, JSValue, const Identifier&)
5285 {
5286     UNUSED_PARAM(exec);
5287     return jsNumber(static_cast<int>(0x84CD));
5288 }
5289
5290 JSValue jsWebGLRenderingContextTEXTURE14(ExecState* exec, JSValue, const Identifier&)
5291 {
5292     UNUSED_PARAM(exec);
5293     return jsNumber(static_cast<int>(0x84CE));
5294 }
5295
5296 JSValue jsWebGLRenderingContextTEXTURE15(ExecState* exec, JSValue, const Identifier&)
5297 {
5298     UNUSED_PARAM(exec);
5299     return jsNumber(static_cast<int>(0x84CF));
5300 }
5301
5302 JSValue jsWebGLRenderingContextTEXTURE16(ExecState* exec, JSValue, const Identifier&)
5303 {
5304     UNUSED_PARAM(exec);
5305     return jsNumber(static_cast<int>(0x84D0));
5306 }
5307
5308 JSValue jsWebGLRenderingContextTEXTURE17(ExecState* exec, JSValue, const Identifier&)
5309 {
5310     UNUSED_PARAM(exec);
5311     return jsNumber(static_cast<int>(0x84D1));
5312 }
5313
5314 JSValue jsWebGLRenderingContextTEXTURE18(ExecState* exec, JSValue, const Identifier&)
5315 {
5316     UNUSED_PARAM(exec);
5317     return jsNumber(static_cast<int>(0x84D2));
5318 }
5319
5320 JSValue jsWebGLRenderingContextTEXTURE19(ExecState* exec, JSValue, const Identifier&)
5321 {
5322     UNUSED_PARAM(exec);
5323     return jsNumber(static_cast<int>(0x84D3));
5324 }
5325
5326 JSValue jsWebGLRenderingContextTEXTURE20(ExecState* exec, JSValue, const Identifier&)
5327 {
5328     UNUSED_PARAM(exec);
5329     return jsNumber(static_cast<int>(0x84D4));
5330 }
5331
5332 JSValue jsWebGLRenderingContextTEXTURE21(ExecState* exec, JSValue, const Identifier&)
5333 {
5334     UNUSED_PARAM(exec);
5335     return jsNumber(static_cast<int>(0x84D5));
5336 }
5337
5338 JSValue jsWebGLRenderingContextTEXTURE22(ExecState* exec, JSValue, const Identifier&)
5339 {
5340     UNUSED_PARAM(exec);
5341     return jsNumber(static_cast<int>(0x84D6));
5342 }
5343
5344 JSValue jsWebGLRenderingContextTEXTURE23(ExecState* exec, JSValue, const Identifier&)
5345 {
5346     UNUSED_PARAM(exec);
5347     return jsNumber(static_cast<int>(0x84D7));
5348 }
5349
5350 JSValue jsWebGLRenderingContextTEXTURE24(ExecState* exec, JSValue, const Identifier&)
5351 {
5352     UNUSED_PARAM(exec);
5353     return jsNumber(static_cast<int>(0x84D8));
5354 }
5355
5356 JSValue jsWebGLRenderingContextTEXTURE25(ExecState* exec, JSValue, const Identifier&)
5357 {
5358     UNUSED_PARAM(exec);
5359     return jsNumber(static_cast<int>(0x84D9));
5360 }
5361
5362 JSValue jsWebGLRenderingContextTEXTURE26(ExecState* exec, JSValue, const Identifier&)
5363 {
5364     UNUSED_PARAM(exec);
5365     return jsNumber(static_cast<int>(0x84DA));
5366 }
5367
5368 JSValue jsWebGLRenderingContextTEXTURE27(ExecState* exec, JSValue, const Identifier&)
5369 {
5370     UNUSED_PARAM(exec);
5371     return jsNumber(static_cast<int>(0x84DB));
5372 }
5373
5374 JSValue jsWebGLRenderingContextTEXTURE28(ExecState* exec, JSValue, const Identifier&)
5375 {
5376     UNUSED_PARAM(exec);
5377     return jsNumber(static_cast<int>(0x84DC));
5378 }
5379
5380 JSValue jsWebGLRenderingContextTEXTURE29(ExecState* exec, JSValue, const Identifier&)
5381 {
5382     UNUSED_PARAM(exec);
5383     return jsNumber(static_cast<int>(0x84DD));
5384 }
5385
5386 JSValue jsWebGLRenderingContextTEXTURE30(ExecState* exec, JSValue, const Identifier&)
5387 {
5388     UNUSED_PARAM(exec);
5389     return jsNumber(static_cast<int>(0x84DE));
5390 }
5391
5392 JSValue jsWebGLRenderingContextTEXTURE31(ExecState* exec, JSValue, const Identifier&)
5393 {
5394     UNUSED_PARAM(exec);
5395     return jsNumber(static_cast<int>(0x84DF));
5396 }
5397
5398 JSValue jsWebGLRenderingContextACTIVE_TEXTURE(ExecState* exec, JSValue, const Identifier&)
5399 {
5400     UNUSED_PARAM(exec);
5401     return jsNumber(static_cast<int>(0x84E0));
5402 }
5403
5404 JSValue jsWebGLRenderingContextREPEAT(ExecState* exec, JSValue, const Identifier&)
5405 {
5406     UNUSED_PARAM(exec);
5407     return jsNumber(static_cast<int>(0x2901));
5408 }
5409
5410 JSValue jsWebGLRenderingContextCLAMP_TO_EDGE(ExecState* exec, JSValue, const Identifier&)
5411 {
5412     UNUSED_PARAM(exec);
5413     return jsNumber(static_cast<int>(0x812F));
5414 }
5415
5416 JSValue jsWebGLRenderingContextMIRRORED_REPEAT(ExecState* exec, JSValue, const Identifier&)
5417 {
5418     UNUSED_PARAM(exec);
5419     return jsNumber(static_cast<int>(0x8370));
5420 }
5421
5422 JSValue jsWebGLRenderingContextFLOAT_VEC2(ExecState* exec, JSValue, const Identifier&)
5423 {
5424     UNUSED_PARAM(exec);
5425     return jsNumber(static_cast<int>(0x8B50));
5426 }
5427
5428 JSValue jsWebGLRenderingContextFLOAT_VEC3(ExecState* exec, JSValue, const Identifier&)
5429 {
5430     UNUSED_PARAM(exec);
5431     return jsNumber(static_cast<int>(0x8B51));
5432 }
5433
5434 JSValue jsWebGLRenderingContextFLOAT_VEC4(ExecState* exec, JSValue, const Identifier&)
5435 {
5436     UNUSED_PARAM(exec);
5437     return jsNumber(static_cast<int>(0x8B52));
5438 }
5439
5440 JSValue jsWebGLRenderingContextINT_VEC2(ExecState* exec, JSValue, const Identifier&)
5441 {
5442     UNUSED_PARAM(exec);
5443     return jsNumber(static_cast<int>(0x8B53));
5444 }
5445
5446 JSValue jsWebGLRenderingContextINT_VEC3(ExecState* exec, JSValue, const Identifier&)
5447 {
5448     UNUSED_PARAM(exec);
5449     return jsNumber(static_cast<int>(0x8B54));
5450 }
5451
5452 JSValue jsWebGLRenderingContextINT_VEC4(ExecState* exec, JSValue, const Identifier&)
5453 {
5454     UNUSED_PARAM(exec);
5455     return jsNumber(static_cast<int>(0x8B55));
5456 }
5457
5458 JSValue jsWebGLRenderingContextBOOL(ExecState* exec, JSValue, const Identifier&)
5459 {
5460     UNUSED_PARAM(exec);
5461     return jsNumber(static_cast<int>(0x8B56));
5462 }
5463
5464 JSValue jsWebGLRenderingContextBOOL_VEC2(ExecState* exec, JSValue, const Identifier&)
5465 {
5466     UNUSED_PARAM(exec);
5467     return jsNumber(static_cast<int>(0x8B57));
5468 }
5469
5470 JSValue jsWebGLRenderingContextBOOL_VEC3(ExecState* exec, JSValue, const Identifier&)
5471 {
5472     UNUSED_PARAM(exec);
5473     return jsNumber(static_cast<int>(0x8B58));
5474 }
5475
5476 JSValue jsWebGLRenderingContextBOOL_VEC4(ExecState* exec, JSValue, const Identifier&)
5477 {
5478     UNUSED_PARAM(exec);
5479     return jsNumber(static_cast<int>(0x8B59));
5480 }
5481
5482 JSValue jsWebGLRenderingContextFLOAT_MAT2(ExecState* exec, JSValue, const Identifier&)
5483 {
5484     UNUSED_PARAM(exec);
5485     return jsNumber(static_cast<int>(0x8B5A));
5486 }
5487
5488 JSValue jsWebGLRenderingContextFLOAT_MAT3(ExecState* exec, JSValue, const Identifier&)
5489 {
5490     UNUSED_PARAM(exec);
5491     return jsNumber(static_cast<int>(0x8B5B));
5492 }
5493
5494 JSValue jsWebGLRenderingContextFLOAT_MAT4(ExecState* exec, JSValue, const Identifier&)
5495 {
5496     UNUSED_PARAM(exec);
5497     return jsNumber(static_cast<int>(0x8B5C));
5498 }
5499
5500 JSValue jsWebGLRenderingContextSAMPLER_2D(ExecState* exec, JSValue, const Identifier&)
5501 {
5502     UNUSED_PARAM(exec);
5503     return jsNumber(static_cast<int>(0x8B5E));
5504 }
5505
5506 JSValue jsWebGLRenderingContextSAMPLER_CUBE(ExecState* exec, JSValue, const Identifier&)
5507 {
5508     UNUSED_PARAM(exec);
5509     return jsNumber(static_cast<int>(0x8B60));
5510 }
5511
5512 JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_ENABLED(ExecState* exec, JSValue, const Identifier&)
5513 {
5514     UNUSED_PARAM(exec);
5515     return jsNumber(static_cast<int>(0x8622));
5516 }
5517
5518 JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_SIZE(ExecState* exec, JSValue, const Identifier&)
5519 {
5520     UNUSED_PARAM(exec);
5521     return jsNumber(static_cast<int>(0x8623));
5522 }
5523
5524 JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_STRIDE(ExecState* exec, JSValue, const Identifier&)
5525 {
5526     UNUSED_PARAM(exec);
5527     return jsNumber(static_cast<int>(0x8624));
5528 }
5529
5530 JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_TYPE(ExecState* exec, JSValue, const Identifier&)
5531 {
5532     UNUSED_PARAM(exec);
5533     return jsNumber(static_cast<int>(0x8625));
5534 }
5535
5536 JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_NORMALIZED(ExecState* exec, JSValue, const Identifier&)
5537 {
5538     UNUSED_PARAM(exec);
5539     return jsNumber(static_cast<int>(0x886A));
5540 }
5541
5542 JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_POINTER(ExecState* exec, JSValue, const Identifier&)
5543 {
5544     UNUSED_PARAM(exec);
5545     return jsNumber(static_cast<int>(0x8645));
5546 }
5547
5548 JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_BUFFER_BINDING(ExecState* exec, JSValue, const Identifier&)
5549 {
5550     UNUSED_PARAM(exec);
5551     return jsNumber(static_cast<int>(0x889F));
5552 }
5553
5554 JSValue jsWebGLRenderingContextCOMPILE_STATUS(ExecState* exec, JSValue, const Identifier&)
5555 {
5556     UNUSED_PARAM(exec);
5557     return jsNumber(static_cast<int>(0x8B81));
5558 }
5559
5560 JSValue jsWebGLRenderingContextSHADER_COMPILER(ExecState* exec, JSValue, const Identifier&)
5561 {
5562     UNUSED_PARAM(exec);
5563     return jsNumber(static_cast<int>(0x8DFA));
5564 }
5565
5566 JSValue jsWebGLRenderingContextLOW_FLOAT(ExecState* exec, JSValue, const Identifier&)
5567 {
5568     UNUSED_PARAM(exec);
5569     return jsNumber(static_cast<int>(0x8DF0));
5570 }
5571
5572 JSValue jsWebGLRenderingContextMEDIUM_FLOAT(ExecState* exec, JSValue, const Identifier&)
5573 {
5574     UNUSED_PARAM(exec);
5575     return jsNumber(static_cast<int>(0x8DF1));
5576 }
5577
5578 JSValue jsWebGLRenderingContextHIGH_FLOAT(ExecState* exec, JSValue, const Identifier&)
5579 {
5580     UNUSED_PARAM(exec);
5581     return jsNumber(static_cast<int>(0x8DF2));
5582 }
5583
5584 JSValue jsWebGLRenderingContextLOW_INT(ExecState* exec, JSValue, const Identifier&)
5585 {
5586     UNUSED_PARAM(exec);
5587     return jsNumber(static_cast<int>(0x8DF3));
5588 }
5589
5590 JSValue jsWebGLRenderingContextMEDIUM_INT(ExecState* exec, JSValue, const Identifier&)
5591 {
5592     UNUSED_PARAM(exec);
5593     return jsNumber(static_cast<int>(0x8DF4));
5594 }
5595
5596 JSValue jsWebGLRenderingContextHIGH_INT(ExecState* exec, JSValue, const Identifier&)
5597 {
5598     UNUSED_PARAM(exec);
5599     return jsNumber(static_cast<int>(0x8DF5));
5600 }
5601
5602 JSValue jsWebGLRenderingContextFRAMEBUFFER(ExecState* exec, JSValue, const Identifier&)
5603 {
5604     UNUSED_PARAM(exec);
5605     return jsNumber(static_cast<int>(0x8D40));
5606 }
5607
5608 JSValue jsWebGLRenderingContextRENDERBUFFER(ExecState* exec, JSValue, const Identifier&)
5609 {
5610     UNUSED_PARAM(exec);
5611     return jsNumber(static_cast<int>(0x8D41));
5612 }
5613
5614 JSValue jsWebGLRenderingContextRGBA4(ExecState* exec, JSValue, const Identifier&)
5615 {
5616     UNUSED_PARAM(exec);
5617     return jsNumber(static_cast<int>(0x8056));
5618 }
5619
5620 JSValue jsWebGLRenderingContextRGB5_A1(ExecState* exec, JSValue, const Identifier&)
5621 {
5622     UNUSED_PARAM(exec);
5623     return jsNumber(static_cast<int>(0x8057));
5624 }
5625
5626 JSValue jsWebGLRenderingContextRGB565(ExecState* exec, JSValue, const Identifier&)
5627 {
5628     UNUSED_PARAM(exec);
5629     return jsNumber(static_cast<int>(0x8D62));
5630 }
5631
5632 JSValue jsWebGLRenderingContextDEPTH_COMPONENT16(ExecState* exec, JSValue, const Identifier&)
5633 {
5634     UNUSED_PARAM(exec);
5635     return jsNumber(static_cast<int>(0x81A5));
5636 }
5637
5638 JSValue jsWebGLRenderingContextSTENCIL_INDEX(ExecState* exec, JSValue, const Identifier&)
5639 {
5640     UNUSED_PARAM(exec);
5641     return jsNumber(static_cast<int>(0x1901));
5642 }
5643
5644 JSValue jsWebGLRenderingContextSTENCIL_INDEX8(ExecState* exec, JSValue, const Identifier&)
5645 {
5646     UNUSED_PARAM(exec);
5647     return jsNumber(static_cast<int>(0x8D48));
5648 }
5649
5650 JSValue jsWebGLRenderingContextDEPTH_STENCIL(ExecState* exec, JSValue, const Identifier&)
5651 {
5652     UNUSED_PARAM(exec);
5653     return jsNumber(static_cast<int>(0x84F9));
5654 }
5655
5656 JSValue jsWebGLRenderingContextRENDERBUFFER_WIDTH(ExecState* exec, JSValue, const Identifier&)
5657 {
5658     UNUSED_PARAM(exec);
5659     return jsNumber(static_cast<int>(0x8D42));
5660 }
5661
5662 JSValue jsWebGLRenderingContextRENDERBUFFER_HEIGHT(ExecState* exec, JSValue, const Identifier&)
5663 {
5664     UNUSED_PARAM(exec);
5665     return jsNumber(static_cast<int>(0x8D43));
5666 }
5667
5668 JSValue jsWebGLRenderingContextRENDERBUFFER_INTERNAL_FORMAT(ExecState* exec, JSValue, const Identifier&)
5669 {
5670     UNUSED_PARAM(exec);
5671     return jsNumber(static_cast<int>(0x8D44));
5672 }
5673
5674 JSValue jsWebGLRenderingContextRENDERBUFFER_RED_SIZE(ExecState* exec, JSValue, const Identifier&)
5675 {
5676     UNUSED_PARAM(exec);
5677     return jsNumber(static_cast<int>(0x8D50));
5678 }
5679
5680 JSValue jsWebGLRenderingContextRENDERBUFFER_GREEN_SIZE(ExecState* exec, JSValue, const Identifier&)
5681 {
5682     UNUSED_PARAM(exec);
5683     return jsNumber(static_cast<int>(0x8D51));
5684 }
5685
5686 JSValue jsWebGLRenderingContextRENDERBUFFER_BLUE_SIZE(ExecState* exec, JSValue, const Identifier&)
5687 {
5688     UNUSED_PARAM(exec);
5689     return jsNumber(static_cast<int>(0x8D52));
5690 }
5691
5692 JSValue jsWebGLRenderingContextRENDERBUFFER_ALPHA_SIZE(ExecState* exec, JSValue, const Identifier&)
5693 {
5694     UNUSED_PARAM(exec);
5695     return jsNumber(static_cast<int>(0x8D53));
5696 }
5697
5698 JSValue jsWebGLRenderingContextRENDERBUFFER_DEPTH_SIZE(ExecState* exec, JSValue, const Identifier&)
5699 {
5700     UNUSED_PARAM(exec);
5701     return jsNumber(static_cast<int>(0x8D54));
5702 }
5703
5704 JSValue jsWebGLRenderingContextRENDERBUFFER_STENCIL_SIZE(ExecState* exec, JSValue, const Identifier&)
5705 {
5706     UNUSED_PARAM(exec);
5707     return jsNumber(static_cast<int>(0x8D55));
5708 }
5709
5710 JSValue jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_TYPE(ExecState* exec, JSValue, const Identifier&)
5711 {
5712     UNUSED_PARAM(exec);
5713     return jsNumber(static_cast<int>(0x8CD0));
5714 }
5715
5716 JSValue jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_NAME(ExecState* exec, JSValue, const Identifier&)
5717 {
5718     UNUSED_PARAM(exec);
5719     return jsNumber(static_cast<int>(0x8CD1));
5720 }
5721
5722 JSValue jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL(ExecState* exec, JSValue, const Identifier&)
5723 {
5724     UNUSED_PARAM(exec);
5725     return jsNumber(static_cast<int>(0x8CD2));
5726 }
5727
5728 JSValue jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE(ExecState* exec, JSValue, const Identifier&)
5729 {
5730     UNUSED_PARAM(exec);
5731     return jsNumber(static_cast<int>(0x8CD3));
5732 }
5733
5734 JSValue jsWebGLRenderingContextCOLOR_ATTACHMENT0(ExecState* exec, JSValue, const Identifier&)
5735 {
5736     UNUSED_PARAM(exec);
5737     return jsNumber(static_cast<int>(0x8CE0));
5738 }
5739
5740 JSValue jsWebGLRenderingContextDEPTH_ATTACHMENT(ExecState* exec, JSValue, const Identifier&)
5741 {
5742     UNUSED_PARAM(exec);
5743     return jsNumber(static_cast<int>(0x8D00));
5744 }
5745
5746 JSValue jsWebGLRenderingContextSTENCIL_ATTACHMENT(ExecState* exec, JSValue, const Identifier&)
5747 {
5748     UNUSED_PARAM(exec);
5749     return jsNumber(static_cast<int>(0x8D20));
5750 }
5751
5752 JSValue jsWebGLRenderingContextDEPTH_STENCIL_ATTACHMENT(ExecState* exec, JSValue, const Identifier&)
5753 {
5754     UNUSED_PARAM(exec);
5755     return jsNumber(static_cast<int>(0x821A));
5756 }
5757
5758 JSValue jsWebGLRenderingContextNONE(ExecState* exec, JSValue, const Identifier&)
5759 {
5760     UNUSED_PARAM(exec);
5761     return jsNumber(static_cast<int>(0));
5762 }
5763
5764 JSValue jsWebGLRenderingContextFRAMEBUFFER_COMPLETE(ExecState* exec, JSValue, const Identifier&)
5765 {
5766     UNUSED_PARAM(exec);
5767     return jsNumber(static_cast<int>(0x8CD5));
5768 }
5769
5770 JSValue jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_ATTACHMENT(ExecState* exec, JSValue, const Identifier&)
5771 {
5772     UNUSED_PARAM(exec);
5773     return jsNumber(static_cast<int>(0x8CD6));
5774 }
5775
5776 JSValue jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT(ExecState* exec, JSValue, const Identifier&)
5777 {
5778     UNUSED_PARAM(exec);
5779     return jsNumber(static_cast<int>(0x8CD7));
5780 }
5781
5782 JSValue jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_DIMENSIONS(ExecState* exec, JSValue, const Identifier&)
5783 {
5784     UNUSED_PARAM(exec);
5785     return jsNumber(static_cast<int>(0x8CD9));
5786 }
5787
5788 JSValue jsWebGLRenderingContextFRAMEBUFFER_UNSUPPORTED(ExecState* exec, JSValue, const Identifier&)
5789 {
5790     UNUSED_PARAM(exec);
5791     return jsNumber(static_cast<int>(0x8CDD));
5792 }
5793
5794 JSValue jsWebGLRenderingContextFRAMEBUFFER_BINDING(ExecState* exec, JSValue, const Identifier&)
5795 {
5796     UNUSED_PARAM(exec);
5797     return jsNumber(static_cast<int>(0x8CA6));
5798 }
5799
5800 JSValue jsWebGLRenderingContextRENDERBUFFER_BINDING(ExecState* exec, JSValue, const Identifier&)
5801 {
5802     UNUSED_PARAM(exec);
5803     return jsNumber(static_cast<int>(0x8CA7));
5804 }
5805
5806 JSValue jsWebGLRenderingContextMAX_RENDERBUFFER_SIZE(ExecState* exec, JSValue, const Identifier&)
5807 {
5808     UNUSED_PARAM(exec);
5809     return jsNumber(static_cast<int>(0x84E8));
5810 }
5811
5812 JSValue jsWebGLRenderingContextINVALID_FRAMEBUFFER_OPERATION(ExecState* exec, JSValue, const Identifier&)
5813 {
5814     UNUSED_PARAM(exec);
5815     return jsNumber(static_cast<int>(0x0506));
5816 }
5817
5818 JSValue jsWebGLRenderingContextUNPACK_FLIP_Y_WEBGL(ExecState* exec, JSValue, const Identifier&)
5819 {
5820     UNUSED_PARAM(exec);
5821     return jsNumber(static_cast<int>(0x9240));
5822 }
5823
5824 JSValue jsWebGLRenderingContextUNPACK_PREMULTIPLY_ALPHA_WEBGL(ExecState* exec, JSValue, const Identifier&)
5825 {
5826     UNUSED_PARAM(exec);
5827     return jsNumber(static_cast<int>(0x9241));
5828 }
5829
5830 JSValue jsWebGLRenderingContextCONTEXT_LOST_WEBGL(ExecState* exec, JSValue, const Identifier&)
5831 {
5832     UNUSED_PARAM(exec);
5833     return jsNumber(static_cast<int>(0x9242));
5834 }
5835
5836 JSValue jsWebGLRenderingContextUNPACK_COLORSPACE_CONVERSION_WEBGL(ExecState* exec, JSValue, const Identifier&)
5837 {
5838     UNUSED_PARAM(exec);
5839     return jsNumber(static_cast<int>(0x9243));
5840 }
5841
5842 JSValue jsWebGLRenderingContextBROWSER_DEFAULT_WEBGL(ExecState* exec, JSValue, const Identifier&)
5843 {
5844     UNUSED_PARAM(exec);
5845     return jsNumber(static_cast<int>(0x9244));
5846 }
5847
5848
5849 }
5850
5851 #endif // ENABLE(WEBGL)