/*
    This file is part of the WebKit open source project.
    This file has been generated by generate-bindings.pl. DO NOT MODIFY!

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Library General Public License for more details.

    You should have received a copy of the GNU Library General Public License
    along with this library; see the file COPYING.LIB.  If not, write to
    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    Boston, MA 02110-1301, USA.
*/

#include "config.h"

#if ENABLE(3D_CANVAS)

#include "JSWebGLRenderingContext.h"

#include "JSArrayBuffer.h"
#include "JSArrayBufferView.h"
#include "JSHTMLCanvasElement.h"
#include "JSHTMLImageElement.h"
#include "JSHTMLVideoElement.h"
#include "JSImageData.h"
#include "JSWebGLActiveInfo.h"
#include "JSWebGLBuffer.h"
#include "JSWebGLContextAttributes.h"
#include "JSWebGLFramebuffer.h"
#include "JSWebGLProgram.h"
#include "JSWebGLRenderbuffer.h"
#include "JSWebGLShader.h"
#include "JSWebGLTexture.h"
#include "JSWebGLUniformLocation.h"
#include "KURL.h"
#include "WebGLActiveInfo.h"
#include "WebGLBuffer.h"
#include "WebGLContextAttributes.h"
#include "WebGLFramebuffer.h"
#include "WebGLProgram.h"
#include "WebGLRenderbuffer.h"
#include "WebGLRenderingContext.h"
#include "WebGLShader.h"
#include "WebGLTexture.h"
#include "WebGLUniformLocation.h"
#include <runtime/Error.h>
#include <runtime/JSNumberCell.h>
#include <runtime/JSString.h>
#include <wtf/GetPtr.h>

using namespace JSC;

namespace WebCore {

ASSERT_CLASS_FITS_IN_CELL(JSWebGLRenderingContext);

/* Hash table */
#if ENABLE(JIT)
#define THUNK_GENERATOR(generator) , generator
#else
#define THUNK_GENERATOR(generator)
#endif

static const HashTableValue JSWebGLRenderingContextTableValues[2] =
{
    { "constructor", DontEnum | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextConstructor), (intptr_t)0 THUNK_GENERATOR(0) },
    { 0, 0, 0, 0 THUNK_GENERATOR(0) }
};

#undef THUNK_GENERATOR
static JSC_CONST_HASHTABLE HashTable JSWebGLRenderingContextTable = { 2, 1, JSWebGLRenderingContextTableValues, 0 };
/* Hash table for constructor */
#if ENABLE(JIT)
#define THUNK_GENERATOR(generator) , generator
#else
#define THUNK_GENERATOR(generator)
#endif

static const HashTableValue JSWebGLRenderingContextConstructorTableValues[307] =
{
    { "DEPTH_BUFFER_BIT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_BUFFER_BIT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BUFFER_BIT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BUFFER_BIT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "COLOR_BUFFER_BIT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_BUFFER_BIT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FALSE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFALSE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TRUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRUE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "POINTS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOINTS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINES), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINE_LOOP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINE_LOOP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINE_STRIP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINE_STRIP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TRIANGLES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRIANGLES), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TRIANGLE_STRIP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRIANGLE_STRIP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TRIANGLE_FAN", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRIANGLE_FAN), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ZERO", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextZERO), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SRC_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSRC_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE_MINUS_SRC_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_SRC_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SRC_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSRC_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE_MINUS_SRC_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_SRC_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DST_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDST_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE_MINUS_DST_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_DST_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DST_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDST_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE_MINUS_DST_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_DST_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SRC_ALPHA_SATURATE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSRC_ALPHA_SATURATE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FUNC_ADD", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFUNC_ADD), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_EQUATION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_EQUATION), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_EQUATION_RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_EQUATION_RGB), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_EQUATION_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_EQUATION_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FUNC_SUBTRACT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFUNC_SUBTRACT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FUNC_REVERSE_SUBTRACT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFUNC_REVERSE_SUBTRACT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_DST_RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_DST_RGB), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_SRC_RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_SRC_RGB), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_DST_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_DST_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_SRC_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_SRC_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CONSTANT_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCONSTANT_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE_MINUS_CONSTANT_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_CONSTANT_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CONSTANT_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCONSTANT_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE_MINUS_CONSTANT_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_CONSTANT_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ARRAY_BUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextARRAY_BUFFER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ELEMENT_ARRAY_BUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextELEMENT_ARRAY_BUFFER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ARRAY_BUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextARRAY_BUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ELEMENT_ARRAY_BUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextELEMENT_ARRAY_BUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STREAM_DRAW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTREAM_DRAW), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STATIC_DRAW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTATIC_DRAW), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DYNAMIC_DRAW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDYNAMIC_DRAW), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BUFFER_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBUFFER_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BUFFER_USAGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBUFFER_USAGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CURRENT_VERTEX_ATTRIB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCURRENT_VERTEX_ATTRIB), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRONT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRONT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BACK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBACK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRONT_AND_BACK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRONT_AND_BACK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_2D", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_2D), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CULL_FACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCULL_FACE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DITHER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDITHER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_TEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_TEST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_TEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_TEST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SCISSOR_TEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSCISSOR_TEST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "POLYGON_OFFSET_FILL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOLYGON_OFFSET_FILL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLE_ALPHA_TO_COVERAGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_ALPHA_TO_COVERAGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLE_COVERAGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_COVERAGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NO_ERROR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNO_ERROR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INVALID_ENUM", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_ENUM), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INVALID_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_VALUE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INVALID_OPERATION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_OPERATION), (intptr_t)0 THUNK_GENERATOR(0) },
    { "OUT_OF_MEMORY", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextOUT_OF_MEMORY), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCW), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CCW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCCW), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINE_WIDTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINE_WIDTH), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ALIASED_POINT_SIZE_RANGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALIASED_POINT_SIZE_RANGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ALIASED_LINE_WIDTH_RANGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALIASED_LINE_WIDTH_RANGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CULL_FACE_MODE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCULL_FACE_MODE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRONT_FACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRONT_FACE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_RANGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_RANGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_CLEAR_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_CLEAR_VALUE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_FUNC", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_FUNC), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_CLEAR_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_CLEAR_VALUE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_FUNC", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_FUNC), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_FAIL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_PASS_DEPTH_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_PASS_DEPTH_FAIL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_PASS_DEPTH_PASS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_PASS_DEPTH_PASS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_REF", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_REF), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_VALUE_MASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_VALUE_MASK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_FUNC", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_FUNC), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_FAIL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_PASS_DEPTH_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_FAIL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_PASS_DEPTH_PASS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_PASS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_REF", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_REF), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_VALUE_MASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_VALUE_MASK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VIEWPORT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVIEWPORT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SCISSOR_BOX", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSCISSOR_BOX), (intptr_t)0 THUNK_GENERATOR(0) },
    { "COLOR_CLEAR_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_CLEAR_VALUE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "COLOR_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "UNPACK_ALIGNMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_ALIGNMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "PACK_ALIGNMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPACK_ALIGNMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_TEXTURE_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_TEXTURE_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_VIEWPORT_DIMS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VIEWPORT_DIMS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SUBPIXEL_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSUBPIXEL_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RED_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRED_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "GREEN_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGREEN_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLUE_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLUE_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ALPHA_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALPHA_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "POLYGON_OFFSET_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOLYGON_OFFSET_UNITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "POLYGON_OFFSET_FACTOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOLYGON_OFFSET_FACTOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_BINDING_2D", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_BINDING_2D), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLE_BUFFERS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_BUFFERS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLES), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLE_COVERAGE_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_COVERAGE_VALUE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLE_COVERAGE_INVERT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_COVERAGE_INVERT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NUM_COMPRESSED_TEXTURE_FORMATS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNUM_COMPRESSED_TEXTURE_FORMATS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "COMPRESSED_TEXTURE_FORMATS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOMPRESSED_TEXTURE_FORMATS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DONT_CARE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDONT_CARE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FASTEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFASTEST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NICEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNICEST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "GENERATE_MIPMAP_HINT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGENERATE_MIPMAP_HINT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BYTE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBYTE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "UNSIGNED_BYTE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_BYTE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SHORT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHORT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "UNSIGNED_SHORT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_SHORT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "UNSIGNED_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_INT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FIXED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFIXED), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_COMPONENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_COMPONENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGB), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RGBA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGBA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LUMINANCE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLUMINANCE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LUMINANCE_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLUMINANCE_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "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) },
    { "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) },
    { "UNSIGNED_SHORT_5_6_5", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_SHORT_5_6_5), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAGMENT_SHADER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAGMENT_SHADER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_SHADER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_SHADER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_VERTEX_ATTRIBS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VERTEX_ATTRIBS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_VERTEX_UNIFORM_VECTORS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VERTEX_UNIFORM_VECTORS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_VARYING_VECTORS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VARYING_VECTORS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_COMBINED_TEXTURE_IMAGE_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_COMBINED_TEXTURE_IMAGE_UNITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_VERTEX_TEXTURE_IMAGE_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VERTEX_TEXTURE_IMAGE_UNITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_TEXTURE_IMAGE_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_TEXTURE_IMAGE_UNITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_FRAGMENT_UNIFORM_VECTORS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_FRAGMENT_UNIFORM_VECTORS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SHADER_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADER_TYPE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DELETE_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDELETE_STATUS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINK_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINK_STATUS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VALIDATE_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVALIDATE_STATUS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ATTACHED_SHADERS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextATTACHED_SHADERS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ACTIVE_UNIFORMS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_UNIFORMS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ACTIVE_UNIFORM_MAX_LENGTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_UNIFORM_MAX_LENGTH), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ACTIVE_ATTRIBUTES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_ATTRIBUTES), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ACTIVE_ATTRIBUTE_MAX_LENGTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_ATTRIBUTE_MAX_LENGTH), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SHADING_LANGUAGE_VERSION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADING_LANGUAGE_VERSION), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CURRENT_PROGRAM", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCURRENT_PROGRAM), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NEVER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEVER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LESS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLESS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "EQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextEQUAL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LEQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLEQUAL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "GREATER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGREATER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NOTEQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNOTEQUAL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "GEQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGEQUAL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ALWAYS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALWAYS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "KEEP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextKEEP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "REPLACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextREPLACE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INCR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINCR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DECR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDECR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INVERT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVERT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INCR_WRAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINCR_WRAP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DECR_WRAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDECR_WRAP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VENDOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVENDOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERSION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERSION), (intptr_t)0 THUNK_GENERATOR(0) },
    { "EXTENSIONS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextEXTENSIONS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NEAREST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEAREST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINEAR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINEAR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NEAREST_MIPMAP_NEAREST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEAREST_MIPMAP_NEAREST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINEAR_MIPMAP_NEAREST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINEAR_MIPMAP_NEAREST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NEAREST_MIPMAP_LINEAR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEAREST_MIPMAP_LINEAR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINEAR_MIPMAP_LINEAR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINEAR_MIPMAP_LINEAR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_MAG_FILTER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_MAG_FILTER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_MIN_FILTER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_MIN_FILTER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_WRAP_S", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_WRAP_S), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_WRAP_T", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_WRAP_T), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_BINDING_CUBE_MAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_BINDING_CUBE_MAP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP_POSITIVE_X", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_X), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP_NEGATIVE_X", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_X), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP_POSITIVE_Y", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Y), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP_NEGATIVE_Y", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Y), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP_POSITIVE_Z", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Z), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP_NEGATIVE_Z", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Z), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_CUBE_MAP_TEXTURE_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_CUBE_MAP_TEXTURE_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE0", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE0), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE1), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE2), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE3), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE4), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE5", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE5), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE6", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE6), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE7", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE7), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE8", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE8), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE9", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE9), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE10", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE10), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE11", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE11), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE12", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE12), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE13", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE13), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE14", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE14), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE15", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE15), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE16", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE16), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE17", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE17), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE18", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE18), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE19", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE19), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE20", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE20), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE21", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE21), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE22", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE22), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE23", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE23), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE24", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE24), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE25", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE25), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE26", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE26), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE27", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE27), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE28", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE28), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE29", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE29), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE30", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE30), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE31", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE31), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ACTIVE_TEXTURE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_TEXTURE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "REPEAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextREPEAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CLAMP_TO_EDGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCLAMP_TO_EDGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MIRRORED_REPEAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMIRRORED_REPEAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT_VEC2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_VEC2), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT_VEC3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_VEC3), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT_VEC4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_VEC4), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INT_VEC2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT_VEC2), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INT_VEC3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT_VEC3), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INT_VEC4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT_VEC4), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BOOL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BOOL_VEC2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL_VEC2), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BOOL_VEC3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL_VEC3), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BOOL_VEC4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL_VEC4), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT_MAT2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_MAT2), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT_MAT3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_MAT3), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT_MAT4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_MAT4), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLER_2D", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLER_2D), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLER_CUBE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLER_CUBE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_ENABLED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_ENABLED), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_STRIDE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_STRIDE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_TYPE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_NORMALIZED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_NORMALIZED), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_POINTER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_POINTER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_BUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) },
    { "IMPLEMENTATION_COLOR_READ_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextIMPLEMENTATION_COLOR_READ_TYPE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "IMPLEMENTATION_COLOR_READ_FORMAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextIMPLEMENTATION_COLOR_READ_FORMAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "COMPILE_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOMPILE_STATUS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INFO_LOG_LENGTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINFO_LOG_LENGTH), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SHADER_SOURCE_LENGTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADER_SOURCE_LENGTH), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SHADER_COMPILER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADER_COMPILER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SHADER_BINARY_FORMATS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADER_BINARY_FORMATS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NUM_SHADER_BINARY_FORMATS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNUM_SHADER_BINARY_FORMATS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LOW_FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLOW_FLOAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MEDIUM_FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMEDIUM_FLOAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "HIGH_FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextHIGH_FLOAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LOW_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLOW_INT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MEDIUM_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMEDIUM_INT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "HIGH_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextHIGH_INT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RGBA4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGBA4), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RGB5_A1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGB5_A1), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RGB565", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGB565), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_COMPONENT16", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_COMPONENT16), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_INDEX", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_INDEX), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_INDEX8", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_INDEX8), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_STENCIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_STENCIL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_WIDTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_WIDTH), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_HEIGHT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_HEIGHT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_INTERNAL_FORMAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_INTERNAL_FORMAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_RED_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_RED_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_GREEN_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_GREEN_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_BLUE_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_BLUE_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_ALPHA_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_ALPHA_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_DEPTH_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_DEPTH_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_STENCIL_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_STENCIL_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_TYPE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_NAME), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "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) },
    { "COLOR_ATTACHMENT0", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_ATTACHMENT0), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_STENCIL_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_STENCIL_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NONE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNONE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_COMPLETE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_COMPLETE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_INCOMPLETE_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_INCOMPLETE_DIMENSIONS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_DIMENSIONS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_UNSUPPORTED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_UNSUPPORTED), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_RENDERBUFFER_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_RENDERBUFFER_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INVALID_FRAMEBUFFER_OPERATION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_FRAMEBUFFER_OPERATION), (intptr_t)0 THUNK_GENERATOR(0) },
    { "UNPACK_FLIP_Y_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_FLIP_Y_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "UNPACK_PREMULTIPLY_ALPHA_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_PREMULTIPLY_ALPHA_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) },
    { 0, 0, 0, 0 THUNK_GENERATOR(0) }
};

#undef THUNK_GENERATOR
static JSC_CONST_HASHTABLE HashTable JSWebGLRenderingContextConstructorTable = { 1064, 1023, JSWebGLRenderingContextConstructorTableValues, 0 };
class JSWebGLRenderingContextConstructor : public DOMConstructorObject {
public:
    JSWebGLRenderingContextConstructor(JSC::ExecState*, JSDOMGlobalObject*);

    virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier&, JSC::PropertySlot&);
    virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier&, JSC::PropertyDescriptor&);
    virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
    static const JSC::ClassInfo s_info;
    static PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
    {
        return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount);
    }
protected:
    static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::ImplementsHasInstance | DOMConstructorObject::StructureFlags;
};

const ClassInfo JSWebGLRenderingContextConstructor::s_info = { "WebGLRenderingContextConstructor", 0, &JSWebGLRenderingContextConstructorTable, 0 };

JSWebGLRenderingContextConstructor::JSWebGLRenderingContextConstructor(ExecState* exec, JSDOMGlobalObject* globalObject)
    : DOMConstructorObject(JSWebGLRenderingContextConstructor::createStructure(globalObject->objectPrototype()), globalObject)
{
    putDirect(exec->propertyNames().prototype, JSWebGLRenderingContextPrototype::self(exec, globalObject), DontDelete | ReadOnly);
}

bool JSWebGLRenderingContextConstructor::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
    return getStaticValueSlot<JSWebGLRenderingContextConstructor, DOMObject>(exec, &JSWebGLRenderingContextConstructorTable, this, propertyName, slot);
}

bool JSWebGLRenderingContextConstructor::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
{
    return getStaticValueDescriptor<JSWebGLRenderingContextConstructor, DOMObject>(exec, &JSWebGLRenderingContextConstructorTable, this, propertyName, descriptor);
}

/* Hash table for prototype */
#if ENABLE(JIT)
#define THUNK_GENERATOR(generator) , generator
#else
#define THUNK_GENERATOR(generator)
#endif

static const HashTableValue JSWebGLRenderingContextPrototypeTableValues[440] =
{
    { "DEPTH_BUFFER_BIT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_BUFFER_BIT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BUFFER_BIT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BUFFER_BIT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "COLOR_BUFFER_BIT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_BUFFER_BIT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FALSE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFALSE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TRUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRUE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "POINTS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOINTS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINES), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINE_LOOP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINE_LOOP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINE_STRIP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINE_STRIP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TRIANGLES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRIANGLES), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TRIANGLE_STRIP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRIANGLE_STRIP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TRIANGLE_FAN", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTRIANGLE_FAN), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ZERO", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextZERO), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SRC_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSRC_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE_MINUS_SRC_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_SRC_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SRC_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSRC_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE_MINUS_SRC_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_SRC_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DST_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDST_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE_MINUS_DST_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_DST_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DST_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDST_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE_MINUS_DST_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_DST_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SRC_ALPHA_SATURATE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSRC_ALPHA_SATURATE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FUNC_ADD", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFUNC_ADD), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_EQUATION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_EQUATION), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_EQUATION_RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_EQUATION_RGB), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_EQUATION_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_EQUATION_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FUNC_SUBTRACT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFUNC_SUBTRACT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FUNC_REVERSE_SUBTRACT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFUNC_REVERSE_SUBTRACT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_DST_RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_DST_RGB), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_SRC_RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_SRC_RGB), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_DST_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_DST_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_SRC_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_SRC_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CONSTANT_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCONSTANT_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE_MINUS_CONSTANT_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_CONSTANT_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CONSTANT_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCONSTANT_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ONE_MINUS_CONSTANT_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextONE_MINUS_CONSTANT_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND_COLOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND_COLOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ARRAY_BUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextARRAY_BUFFER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ELEMENT_ARRAY_BUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextELEMENT_ARRAY_BUFFER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ARRAY_BUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextARRAY_BUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ELEMENT_ARRAY_BUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextELEMENT_ARRAY_BUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STREAM_DRAW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTREAM_DRAW), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STATIC_DRAW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTATIC_DRAW), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DYNAMIC_DRAW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDYNAMIC_DRAW), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BUFFER_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBUFFER_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BUFFER_USAGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBUFFER_USAGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CURRENT_VERTEX_ATTRIB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCURRENT_VERTEX_ATTRIB), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRONT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRONT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BACK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBACK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRONT_AND_BACK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRONT_AND_BACK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_2D", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_2D), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CULL_FACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCULL_FACE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLEND", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLEND), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DITHER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDITHER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_TEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_TEST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_TEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_TEST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SCISSOR_TEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSCISSOR_TEST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "POLYGON_OFFSET_FILL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOLYGON_OFFSET_FILL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLE_ALPHA_TO_COVERAGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_ALPHA_TO_COVERAGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLE_COVERAGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_COVERAGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NO_ERROR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNO_ERROR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INVALID_ENUM", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_ENUM), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INVALID_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_VALUE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INVALID_OPERATION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_OPERATION), (intptr_t)0 THUNK_GENERATOR(0) },
    { "OUT_OF_MEMORY", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextOUT_OF_MEMORY), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCW), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CCW", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCCW), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINE_WIDTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINE_WIDTH), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ALIASED_POINT_SIZE_RANGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALIASED_POINT_SIZE_RANGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ALIASED_LINE_WIDTH_RANGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALIASED_LINE_WIDTH_RANGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CULL_FACE_MODE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCULL_FACE_MODE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRONT_FACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRONT_FACE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_RANGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_RANGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_CLEAR_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_CLEAR_VALUE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_FUNC", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_FUNC), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_CLEAR_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_CLEAR_VALUE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_FUNC", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_FUNC), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_FAIL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_PASS_DEPTH_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_PASS_DEPTH_FAIL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_PASS_DEPTH_PASS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_PASS_DEPTH_PASS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_REF", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_REF), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_VALUE_MASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_VALUE_MASK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_FUNC", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_FUNC), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_FAIL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_PASS_DEPTH_FAIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_FAIL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_PASS_DEPTH_PASS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_PASS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_REF", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_REF), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_VALUE_MASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_VALUE_MASK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BACK_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BACK_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VIEWPORT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVIEWPORT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SCISSOR_BOX", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSCISSOR_BOX), (intptr_t)0 THUNK_GENERATOR(0) },
    { "COLOR_CLEAR_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_CLEAR_VALUE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "COLOR_WRITEMASK", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_WRITEMASK), (intptr_t)0 THUNK_GENERATOR(0) },
    { "UNPACK_ALIGNMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_ALIGNMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "PACK_ALIGNMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPACK_ALIGNMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_TEXTURE_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_TEXTURE_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_VIEWPORT_DIMS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VIEWPORT_DIMS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SUBPIXEL_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSUBPIXEL_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RED_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRED_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "GREEN_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGREEN_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BLUE_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBLUE_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ALPHA_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALPHA_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_BITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_BITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "POLYGON_OFFSET_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOLYGON_OFFSET_UNITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "POLYGON_OFFSET_FACTOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextPOLYGON_OFFSET_FACTOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_BINDING_2D", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_BINDING_2D), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLE_BUFFERS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_BUFFERS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLES), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLE_COVERAGE_VALUE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_COVERAGE_VALUE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLE_COVERAGE_INVERT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLE_COVERAGE_INVERT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NUM_COMPRESSED_TEXTURE_FORMATS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNUM_COMPRESSED_TEXTURE_FORMATS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "COMPRESSED_TEXTURE_FORMATS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOMPRESSED_TEXTURE_FORMATS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DONT_CARE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDONT_CARE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FASTEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFASTEST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NICEST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNICEST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "GENERATE_MIPMAP_HINT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGENERATE_MIPMAP_HINT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BYTE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBYTE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "UNSIGNED_BYTE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_BYTE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SHORT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHORT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "UNSIGNED_SHORT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_SHORT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "UNSIGNED_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_INT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FIXED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFIXED), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_COMPONENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_COMPONENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RGB", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGB), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RGBA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGBA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LUMINANCE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLUMINANCE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LUMINANCE_ALPHA", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLUMINANCE_ALPHA), (intptr_t)0 THUNK_GENERATOR(0) },
    { "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) },
    { "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) },
    { "UNSIGNED_SHORT_5_6_5", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNSIGNED_SHORT_5_6_5), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAGMENT_SHADER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAGMENT_SHADER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_SHADER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_SHADER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_VERTEX_ATTRIBS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VERTEX_ATTRIBS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_VERTEX_UNIFORM_VECTORS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VERTEX_UNIFORM_VECTORS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_VARYING_VECTORS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VARYING_VECTORS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_COMBINED_TEXTURE_IMAGE_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_COMBINED_TEXTURE_IMAGE_UNITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_VERTEX_TEXTURE_IMAGE_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_VERTEX_TEXTURE_IMAGE_UNITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_TEXTURE_IMAGE_UNITS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_TEXTURE_IMAGE_UNITS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_FRAGMENT_UNIFORM_VECTORS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_FRAGMENT_UNIFORM_VECTORS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SHADER_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADER_TYPE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DELETE_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDELETE_STATUS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINK_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINK_STATUS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VALIDATE_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVALIDATE_STATUS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ATTACHED_SHADERS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextATTACHED_SHADERS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ACTIVE_UNIFORMS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_UNIFORMS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ACTIVE_UNIFORM_MAX_LENGTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_UNIFORM_MAX_LENGTH), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ACTIVE_ATTRIBUTES", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_ATTRIBUTES), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ACTIVE_ATTRIBUTE_MAX_LENGTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_ATTRIBUTE_MAX_LENGTH), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SHADING_LANGUAGE_VERSION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADING_LANGUAGE_VERSION), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CURRENT_PROGRAM", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCURRENT_PROGRAM), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NEVER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEVER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LESS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLESS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "EQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextEQUAL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LEQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLEQUAL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "GREATER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGREATER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NOTEQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNOTEQUAL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "GEQUAL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextGEQUAL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ALWAYS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextALWAYS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "KEEP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextKEEP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "REPLACE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextREPLACE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INCR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINCR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DECR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDECR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INVERT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVERT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INCR_WRAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINCR_WRAP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DECR_WRAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDECR_WRAP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VENDOR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVENDOR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERSION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERSION), (intptr_t)0 THUNK_GENERATOR(0) },
    { "EXTENSIONS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextEXTENSIONS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NEAREST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEAREST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINEAR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINEAR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NEAREST_MIPMAP_NEAREST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEAREST_MIPMAP_NEAREST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINEAR_MIPMAP_NEAREST", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINEAR_MIPMAP_NEAREST), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NEAREST_MIPMAP_LINEAR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNEAREST_MIPMAP_LINEAR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LINEAR_MIPMAP_LINEAR", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLINEAR_MIPMAP_LINEAR), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_MAG_FILTER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_MAG_FILTER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_MIN_FILTER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_MIN_FILTER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_WRAP_S", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_WRAP_S), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_WRAP_T", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_WRAP_T), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_BINDING_CUBE_MAP", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_BINDING_CUBE_MAP), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP_POSITIVE_X", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_X), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP_NEGATIVE_X", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_X), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP_POSITIVE_Y", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Y), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP_NEGATIVE_Y", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Y), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP_POSITIVE_Z", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Z), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE_CUBE_MAP_NEGATIVE_Z", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Z), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_CUBE_MAP_TEXTURE_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_CUBE_MAP_TEXTURE_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE0", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE0), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE1), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE2), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE3), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE4), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE5", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE5), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE6", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE6), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE7", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE7), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE8", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE8), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE9", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE9), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE10", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE10), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE11", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE11), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE12", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE12), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE13", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE13), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE14", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE14), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE15", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE15), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE16", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE16), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE17", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE17), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE18", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE18), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE19", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE19), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE20", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE20), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE21", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE21), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE22", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE22), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE23", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE23), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE24", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE24), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE25", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE25), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE26", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE26), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE27", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE27), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE28", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE28), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE29", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE29), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE30", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE30), (intptr_t)0 THUNK_GENERATOR(0) },
    { "TEXTURE31", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextTEXTURE31), (intptr_t)0 THUNK_GENERATOR(0) },
    { "ACTIVE_TEXTURE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextACTIVE_TEXTURE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "REPEAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextREPEAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "CLAMP_TO_EDGE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCLAMP_TO_EDGE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MIRRORED_REPEAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMIRRORED_REPEAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT_VEC2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_VEC2), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT_VEC3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_VEC3), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT_VEC4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_VEC4), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INT_VEC2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT_VEC2), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INT_VEC3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT_VEC3), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INT_VEC4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINT_VEC4), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BOOL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BOOL_VEC2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL_VEC2), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BOOL_VEC3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL_VEC3), (intptr_t)0 THUNK_GENERATOR(0) },
    { "BOOL_VEC4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextBOOL_VEC4), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT_MAT2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_MAT2), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT_MAT3", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_MAT3), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FLOAT_MAT4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFLOAT_MAT4), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLER_2D", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLER_2D), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SAMPLER_CUBE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSAMPLER_CUBE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_ENABLED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_ENABLED), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_STRIDE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_STRIDE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_TYPE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_NORMALIZED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_NORMALIZED), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_POINTER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_POINTER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_BUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) },
    { "IMPLEMENTATION_COLOR_READ_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextIMPLEMENTATION_COLOR_READ_TYPE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "IMPLEMENTATION_COLOR_READ_FORMAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextIMPLEMENTATION_COLOR_READ_FORMAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "COMPILE_STATUS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOMPILE_STATUS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INFO_LOG_LENGTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINFO_LOG_LENGTH), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SHADER_SOURCE_LENGTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADER_SOURCE_LENGTH), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SHADER_COMPILER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADER_COMPILER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "SHADER_BINARY_FORMATS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSHADER_BINARY_FORMATS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NUM_SHADER_BINARY_FORMATS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNUM_SHADER_BINARY_FORMATS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LOW_FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLOW_FLOAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MEDIUM_FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMEDIUM_FLOAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "HIGH_FLOAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextHIGH_FLOAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "LOW_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextLOW_INT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MEDIUM_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMEDIUM_INT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "HIGH_INT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextHIGH_INT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RGBA4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGBA4), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RGB5_A1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGB5_A1), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RGB565", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRGB565), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_COMPONENT16", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_COMPONENT16), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_INDEX", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_INDEX), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_INDEX8", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_INDEX8), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_STENCIL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_STENCIL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_WIDTH", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_WIDTH), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_HEIGHT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_HEIGHT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_INTERNAL_FORMAT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_INTERNAL_FORMAT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_RED_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_RED_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_GREEN_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_GREEN_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_BLUE_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_BLUE_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_ALPHA_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_ALPHA_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_DEPTH_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_DEPTH_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_STENCIL_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_STENCIL_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_TYPE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_NAME), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "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) },
    { "COLOR_ATTACHMENT0", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextCOLOR_ATTACHMENT0), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "STENCIL_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextSTENCIL_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "DEPTH_STENCIL_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDEPTH_STENCIL_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "NONE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextNONE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_COMPLETE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_COMPLETE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_INCOMPLETE_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_INCOMPLETE_DIMENSIONS", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_DIMENSIONS), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_UNSUPPORTED", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_UNSUPPORTED), (intptr_t)0 THUNK_GENERATOR(0) },
    { "FRAMEBUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextFRAMEBUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) },
    { "RENDERBUFFER_BINDING", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextRENDERBUFFER_BINDING), (intptr_t)0 THUNK_GENERATOR(0) },
    { "MAX_RENDERBUFFER_SIZE", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextMAX_RENDERBUFFER_SIZE), (intptr_t)0 THUNK_GENERATOR(0) },
    { "INVALID_FRAMEBUFFER_OPERATION", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextINVALID_FRAMEBUFFER_OPERATION), (intptr_t)0 THUNK_GENERATOR(0) },
    { "UNPACK_FLIP_Y_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_FLIP_Y_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "UNPACK_PREMULTIPLY_ALPHA_WEBGL", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextUNPACK_PREMULTIPLY_ALPHA_WEBGL), (intptr_t)0 THUNK_GENERATOR(0) },
    { "sizeInBytes", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionSizeInBytes), (intptr_t)1 THUNK_GENERATOR(0) },
    { "activeTexture", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionActiveTexture), (intptr_t)1 THUNK_GENERATOR(0) },
    { "attachShader", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionAttachShader), (intptr_t)2 THUNK_GENERATOR(0) },
    { "bindAttribLocation", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBindAttribLocation), (intptr_t)3 THUNK_GENERATOR(0) },
    { "bindBuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBindBuffer), (intptr_t)2 THUNK_GENERATOR(0) },
    { "bindFramebuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBindFramebuffer), (intptr_t)2 THUNK_GENERATOR(0) },
    { "bindRenderbuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBindRenderbuffer), (intptr_t)2 THUNK_GENERATOR(0) },
    { "bindTexture", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBindTexture), (intptr_t)2 THUNK_GENERATOR(0) },
    { "blendColor", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBlendColor), (intptr_t)4 THUNK_GENERATOR(0) },
    { "blendEquation", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBlendEquation), (intptr_t)1 THUNK_GENERATOR(0) },
    { "blendEquationSeparate", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBlendEquationSeparate), (intptr_t)2 THUNK_GENERATOR(0) },
    { "blendFunc", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBlendFunc), (intptr_t)2 THUNK_GENERATOR(0) },
    { "blendFuncSeparate", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBlendFuncSeparate), (intptr_t)4 THUNK_GENERATOR(0) },
    { "bufferData", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBufferData), (intptr_t)3 THUNK_GENERATOR(0) },
    { "bufferSubData", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionBufferSubData), (intptr_t)3 THUNK_GENERATOR(0) },
    { "checkFramebufferStatus", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCheckFramebufferStatus), (intptr_t)1 THUNK_GENERATOR(0) },
    { "clear", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionClear), (intptr_t)1 THUNK_GENERATOR(0) },
    { "clearColor", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionClearColor), (intptr_t)4 THUNK_GENERATOR(0) },
    { "clearDepth", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionClearDepth), (intptr_t)1 THUNK_GENERATOR(0) },
    { "clearStencil", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionClearStencil), (intptr_t)1 THUNK_GENERATOR(0) },
    { "colorMask", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionColorMask), (intptr_t)4 THUNK_GENERATOR(0) },
    { "compileShader", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCompileShader), (intptr_t)1 THUNK_GENERATOR(0) },
    { "copyTexImage2D", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCopyTexImage2D), (intptr_t)8 THUNK_GENERATOR(0) },
    { "copyTexSubImage2D", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCopyTexSubImage2D), (intptr_t)8 THUNK_GENERATOR(0) },
    { "createBuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCreateBuffer), (intptr_t)0 THUNK_GENERATOR(0) },
    { "createFramebuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCreateFramebuffer), (intptr_t)0 THUNK_GENERATOR(0) },
    { "createProgram", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCreateProgram), (intptr_t)0 THUNK_GENERATOR(0) },
    { "createRenderbuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCreateRenderbuffer), (intptr_t)0 THUNK_GENERATOR(0) },
    { "createShader", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCreateShader), (intptr_t)1 THUNK_GENERATOR(0) },
    { "createTexture", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCreateTexture), (intptr_t)0 THUNK_GENERATOR(0) },
    { "cullFace", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionCullFace), (intptr_t)1 THUNK_GENERATOR(0) },
    { "deleteBuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDeleteBuffer), (intptr_t)1 THUNK_GENERATOR(0) },
    { "deleteFramebuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDeleteFramebuffer), (intptr_t)1 THUNK_GENERATOR(0) },
    { "deleteProgram", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDeleteProgram), (intptr_t)1 THUNK_GENERATOR(0) },
    { "deleteRenderbuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDeleteRenderbuffer), (intptr_t)1 THUNK_GENERATOR(0) },
    { "deleteShader", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDeleteShader), (intptr_t)1 THUNK_GENERATOR(0) },
    { "deleteTexture", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDeleteTexture), (intptr_t)1 THUNK_GENERATOR(0) },
    { "depthFunc", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDepthFunc), (intptr_t)1 THUNK_GENERATOR(0) },
    { "depthMask", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDepthMask), (intptr_t)1 THUNK_GENERATOR(0) },
    { "depthRange", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDepthRange), (intptr_t)2 THUNK_GENERATOR(0) },
    { "detachShader", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDetachShader), (intptr_t)2 THUNK_GENERATOR(0) },
    { "disable", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDisable), (intptr_t)1 THUNK_GENERATOR(0) },
    { "disableVertexAttribArray", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDisableVertexAttribArray), (intptr_t)1 THUNK_GENERATOR(0) },
    { "drawArrays", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDrawArrays), (intptr_t)3 THUNK_GENERATOR(0) },
    { "drawElements", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionDrawElements), (intptr_t)4 THUNK_GENERATOR(0) },
    { "enable", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionEnable), (intptr_t)1 THUNK_GENERATOR(0) },
    { "enableVertexAttribArray", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionEnableVertexAttribArray), (intptr_t)1 THUNK_GENERATOR(0) },
    { "finish", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionFinish), (intptr_t)0 THUNK_GENERATOR(0) },
    { "flush", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionFlush), (intptr_t)0 THUNK_GENERATOR(0) },
    { "framebufferRenderbuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionFramebufferRenderbuffer), (intptr_t)4 THUNK_GENERATOR(0) },
    { "framebufferTexture2D", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionFramebufferTexture2D), (intptr_t)5 THUNK_GENERATOR(0) },
    { "frontFace", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionFrontFace), (intptr_t)1 THUNK_GENERATOR(0) },
    { "generateMipmap", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGenerateMipmap), (intptr_t)1 THUNK_GENERATOR(0) },
    { "getActiveAttrib", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetActiveAttrib), (intptr_t)2 THUNK_GENERATOR(0) },
    { "getActiveUniform", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetActiveUniform), (intptr_t)2 THUNK_GENERATOR(0) },
    { "getAttachedShaders", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetAttachedShaders), (intptr_t)1 THUNK_GENERATOR(0) },
    { "getAttribLocation", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetAttribLocation), (intptr_t)2 THUNK_GENERATOR(0) },
    { "getBufferParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetBufferParameter), (intptr_t)0 THUNK_GENERATOR(0) },
    { "getContextAttributes", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetContextAttributes), (intptr_t)0 THUNK_GENERATOR(0) },
    { "getError", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetError), (intptr_t)0 THUNK_GENERATOR(0) },
    { "getFramebufferAttachmentParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetFramebufferAttachmentParameter), (intptr_t)0 THUNK_GENERATOR(0) },
    { "getParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetParameter), (intptr_t)0 THUNK_GENERATOR(0) },
    { "getProgramParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetProgramParameter), (intptr_t)0 THUNK_GENERATOR(0) },
    { "getProgramInfoLog", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetProgramInfoLog), (intptr_t)1 THUNK_GENERATOR(0) },
    { "getRenderbufferParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetRenderbufferParameter), (intptr_t)0 THUNK_GENERATOR(0) },
    { "getShaderParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetShaderParameter), (intptr_t)0 THUNK_GENERATOR(0) },
    { "getShaderInfoLog", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetShaderInfoLog), (intptr_t)1 THUNK_GENERATOR(0) },
    { "getShaderSource", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetShaderSource), (intptr_t)1 THUNK_GENERATOR(0) },
    { "getString", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetString), (intptr_t)1 THUNK_GENERATOR(0) },
    { "getTexParameter", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetTexParameter), (intptr_t)0 THUNK_GENERATOR(0) },
    { "getUniform", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetUniform), (intptr_t)0 THUNK_GENERATOR(0) },
    { "getUniformLocation", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetUniformLocation), (intptr_t)2 THUNK_GENERATOR(0) },
    { "getVertexAttrib", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetVertexAttrib), (intptr_t)0 THUNK_GENERATOR(0) },
    { "getVertexAttribOffset", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionGetVertexAttribOffset), (intptr_t)2 THUNK_GENERATOR(0) },
    { "hint", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionHint), (intptr_t)2 THUNK_GENERATOR(0) },
    { "isBuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsBuffer), (intptr_t)1 THUNK_GENERATOR(0) },
    { "isEnabled", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsEnabled), (intptr_t)1 THUNK_GENERATOR(0) },
    { "isFramebuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsFramebuffer), (intptr_t)1 THUNK_GENERATOR(0) },
    { "isProgram", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsProgram), (intptr_t)1 THUNK_GENERATOR(0) },
    { "isRenderbuffer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsRenderbuffer), (intptr_t)1 THUNK_GENERATOR(0) },
    { "isShader", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsShader), (intptr_t)1 THUNK_GENERATOR(0) },
    { "isTexture", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionIsTexture), (intptr_t)1 THUNK_GENERATOR(0) },
    { "lineWidth", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionLineWidth), (intptr_t)1 THUNK_GENERATOR(0) },
    { "linkProgram", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionLinkProgram), (intptr_t)1 THUNK_GENERATOR(0) },
    { "pixelStorei", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionPixelStorei), (intptr_t)2 THUNK_GENERATOR(0) },
    { "polygonOffset", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionPolygonOffset), (intptr_t)2 THUNK_GENERATOR(0) },
    { "readPixels", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionReadPixels), (intptr_t)7 THUNK_GENERATOR(0) },
    { "releaseShaderCompiler", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionReleaseShaderCompiler), (intptr_t)0 THUNK_GENERATOR(0) },
    { "renderbufferStorage", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionRenderbufferStorage), (intptr_t)4 THUNK_GENERATOR(0) },
    { "sampleCoverage", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionSampleCoverage), (intptr_t)2 THUNK_GENERATOR(0) },
    { "scissor", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionScissor), (intptr_t)4 THUNK_GENERATOR(0) },
    { "shaderSource", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionShaderSource), (intptr_t)2 THUNK_GENERATOR(0) },
    { "stencilFunc", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionStencilFunc), (intptr_t)3 THUNK_GENERATOR(0) },
    { "stencilFuncSeparate", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionStencilFuncSeparate), (intptr_t)4 THUNK_GENERATOR(0) },
    { "stencilMask", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionStencilMask), (intptr_t)1 THUNK_GENERATOR(0) },
    { "stencilMaskSeparate", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionStencilMaskSeparate), (intptr_t)2 THUNK_GENERATOR(0) },
    { "stencilOp", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionStencilOp), (intptr_t)3 THUNK_GENERATOR(0) },
    { "stencilOpSeparate", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionStencilOpSeparate), (intptr_t)4 THUNK_GENERATOR(0) },
    { "texParameterf", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionTexParameterf), (intptr_t)3 THUNK_GENERATOR(0) },
    { "texParameteri", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionTexParameteri), (intptr_t)3 THUNK_GENERATOR(0) },
    { "texImage2D", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionTexImage2D), (intptr_t)9 THUNK_GENERATOR(0) },
    { "texSubImage2D", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionTexSubImage2D), (intptr_t)9 THUNK_GENERATOR(0) },
    { "uniform1f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform1f), (intptr_t)2 THUNK_GENERATOR(0) },
    { "uniform1fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform1fv), (intptr_t)2 THUNK_GENERATOR(0) },
    { "uniform1i", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform1i), (intptr_t)2 THUNK_GENERATOR(0) },
    { "uniform1iv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform1iv), (intptr_t)2 THUNK_GENERATOR(0) },
    { "uniform2f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform2f), (intptr_t)3 THUNK_GENERATOR(0) },
    { "uniform2fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform2fv), (intptr_t)2 THUNK_GENERATOR(0) },
    { "uniform2i", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform2i), (intptr_t)3 THUNK_GENERATOR(0) },
    { "uniform2iv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform2iv), (intptr_t)2 THUNK_GENERATOR(0) },
    { "uniform3f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform3f), (intptr_t)4 THUNK_GENERATOR(0) },
    { "uniform3fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform3fv), (intptr_t)2 THUNK_GENERATOR(0) },
    { "uniform3i", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform3i), (intptr_t)4 THUNK_GENERATOR(0) },
    { "uniform3iv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform3iv), (intptr_t)2 THUNK_GENERATOR(0) },
    { "uniform4f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform4f), (intptr_t)5 THUNK_GENERATOR(0) },
    { "uniform4fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform4fv), (intptr_t)2 THUNK_GENERATOR(0) },
    { "uniform4i", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform4i), (intptr_t)5 THUNK_GENERATOR(0) },
    { "uniform4iv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniform4iv), (intptr_t)2 THUNK_GENERATOR(0) },
    { "uniformMatrix2fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniformMatrix2fv), (intptr_t)3 THUNK_GENERATOR(0) },
    { "uniformMatrix3fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniformMatrix3fv), (intptr_t)3 THUNK_GENERATOR(0) },
    { "uniformMatrix4fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUniformMatrix4fv), (intptr_t)3 THUNK_GENERATOR(0) },
    { "useProgram", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionUseProgram), (intptr_t)1 THUNK_GENERATOR(0) },
    { "validateProgram", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionValidateProgram), (intptr_t)1 THUNK_GENERATOR(0) },
    { "vertexAttrib1f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib1f), (intptr_t)2 THUNK_GENERATOR(0) },
    { "vertexAttrib1fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib1fv), (intptr_t)2 THUNK_GENERATOR(0) },
    { "vertexAttrib2f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib2f), (intptr_t)3 THUNK_GENERATOR(0) },
    { "vertexAttrib2fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib2fv), (intptr_t)2 THUNK_GENERATOR(0) },
    { "vertexAttrib3f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib3f), (intptr_t)4 THUNK_GENERATOR(0) },
    { "vertexAttrib3fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib3fv), (intptr_t)2 THUNK_GENERATOR(0) },
    { "vertexAttrib4f", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib4f), (intptr_t)5 THUNK_GENERATOR(0) },
    { "vertexAttrib4fv", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttrib4fv), (intptr_t)2 THUNK_GENERATOR(0) },
    { "vertexAttribPointer", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionVertexAttribPointer), (intptr_t)6 THUNK_GENERATOR(0) },
    { "viewport", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsWebGLRenderingContextPrototypeFunctionViewport), (intptr_t)4 THUNK_GENERATOR(0) },
    { 0, 0, 0, 0 THUNK_GENERATOR(0) }
};

#undef THUNK_GENERATOR
static JSC_CONST_HASHTABLE HashTable JSWebGLRenderingContextPrototypeTable = { 1103, 1023, JSWebGLRenderingContextPrototypeTableValues, 0 };
const ClassInfo JSWebGLRenderingContextPrototype::s_info = { "WebGLRenderingContextPrototype", 0, &JSWebGLRenderingContextPrototypeTable, 0 };

JSObject* JSWebGLRenderingContextPrototype::self(ExecState* exec, JSGlobalObject* globalObject)
{
    return getDOMPrototype<JSWebGLRenderingContext>(exec, globalObject);
}

bool JSWebGLRenderingContextPrototype::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
    return getStaticPropertySlot<JSWebGLRenderingContextPrototype, JSObject>(exec, &JSWebGLRenderingContextPrototypeTable, this, propertyName, slot);
}

bool JSWebGLRenderingContextPrototype::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
{
    return getStaticPropertyDescriptor<JSWebGLRenderingContextPrototype, JSObject>(exec, &JSWebGLRenderingContextPrototypeTable, this, propertyName, descriptor);
}

const ClassInfo JSWebGLRenderingContext::s_info = { "WebGLRenderingContext", &JSCanvasRenderingContext::s_info, &JSWebGLRenderingContextTable, 0 };

JSWebGLRenderingContext::JSWebGLRenderingContext(NonNullPassRefPtr<Structure> structure, JSDOMGlobalObject* globalObject, PassRefPtr<WebGLRenderingContext> impl)
    : JSCanvasRenderingContext(structure, globalObject, impl)
{
}

JSObject* JSWebGLRenderingContext::createPrototype(ExecState* exec, JSGlobalObject* globalObject)
{
    return new (exec) JSWebGLRenderingContextPrototype(globalObject, JSWebGLRenderingContextPrototype::createStructure(JSCanvasRenderingContextPrototype::self(exec, globalObject)));
}

bool JSWebGLRenderingContext::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{
    return getStaticValueSlot<JSWebGLRenderingContext, Base>(exec, &JSWebGLRenderingContextTable, this, propertyName, slot);
}

bool JSWebGLRenderingContext::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
{
    return getStaticValueDescriptor<JSWebGLRenderingContext, Base>(exec, &JSWebGLRenderingContextTable, this, propertyName, descriptor);
}

JSValue jsWebGLRenderingContextConstructor(ExecState* exec, JSValue slotBase, const Identifier&)
{
    JSWebGLRenderingContext* domObject = static_cast<JSWebGLRenderingContext*>(asObject(slotBase));
    return JSWebGLRenderingContext::getConstructor(exec, domObject->globalObject());
}
JSValue JSWebGLRenderingContext::getConstructor(ExecState* exec, JSGlobalObject* globalObject)
{
    return getDOMConstructor<JSWebGLRenderingContextConstructor>(exec, static_cast<JSDOMGlobalObject*>(globalObject));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionSizeInBytes(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned type = exec->argument(0).toInt32(exec);


    JSC::JSValue result = jsNumber(exec, imp->sizeInBytes(type, ec));
    setDOMException(exec, ec);
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionActiveTexture(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned texture = exec->argument(0).toInt32(exec);

    imp->activeTexture(texture, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionAttachShader(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLProgram* program = toWebGLProgram(exec->argument(0));
    WebGLShader* shader = toWebGLShader(exec->argument(1));

    imp->attachShader(program, shader, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBindAttribLocation(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLProgram* program = toWebGLProgram(exec->argument(0));
    unsigned index = exec->argument(1).toInt32(exec);
    const String& name = ustringToString(exec->argument(2).toString(exec));

    imp->bindAttribLocation(program, index, name, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBindBuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    WebGLBuffer* buffer = toWebGLBuffer(exec->argument(1));

    imp->bindBuffer(target, buffer, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBindFramebuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    WebGLFramebuffer* framebuffer = toWebGLFramebuffer(exec->argument(1));

    imp->bindFramebuffer(target, framebuffer, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBindRenderbuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    WebGLRenderbuffer* renderbuffer = toWebGLRenderbuffer(exec->argument(1));

    imp->bindRenderbuffer(target, renderbuffer, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBindTexture(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    WebGLTexture* texture = toWebGLTexture(exec->argument(1));

    imp->bindTexture(target, texture, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBlendColor(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    double red = exec->argument(0).toNumber(exec);
    double green = exec->argument(1).toNumber(exec);
    double blue = exec->argument(2).toNumber(exec);
    double alpha = exec->argument(3).toNumber(exec);

    imp->blendColor(red, green, blue, alpha);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBlendEquation(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned mode = exec->argument(0).toInt32(exec);

    imp->blendEquation(mode);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBlendEquationSeparate(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned modeRGB = exec->argument(0).toInt32(exec);
    unsigned modeAlpha = exec->argument(1).toInt32(exec);

    imp->blendEquationSeparate(modeRGB, modeAlpha);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBlendFunc(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned sfactor = exec->argument(0).toInt32(exec);
    unsigned dfactor = exec->argument(1).toInt32(exec);

    imp->blendFunc(sfactor, dfactor);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBlendFuncSeparate(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned srcRGB = exec->argument(0).toInt32(exec);
    unsigned dstRGB = exec->argument(1).toInt32(exec);
    unsigned srcAlpha = exec->argument(2).toInt32(exec);
    unsigned dstAlpha = exec->argument(3).toInt32(exec);

    imp->blendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferData1(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    ArrayBuffer* data = toArrayBuffer(exec->argument(1));
    unsigned usage = exec->argument(2).toInt32(exec);

    imp->bufferData(target, data, usage, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferData2(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    ArrayBufferView* data = toArrayBufferView(exec->argument(1));
    unsigned usage = exec->argument(2).toInt32(exec);

    imp->bufferData(target, data, usage, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferData3(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int size = exec->argument(1).toInt32(exec);
    unsigned usage = exec->argument(2).toInt32(exec);

    imp->bufferData(target, size, usage, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferData(ExecState* exec)
{
    if ((exec->argumentCount() == 3 && (exec->argument(1).isNull() || exec->argument(1).isObject() && asObject(exec->argument(1))->inherits(&JSArrayBuffer::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionBufferData1(exec);
    if ((exec->argumentCount() == 3 && (exec->argument(1).isNull() || exec->argument(1).isObject() && asObject(exec->argument(1))->inherits(&JSArrayBufferView::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionBufferData2(exec);
    if (exec->argumentCount() == 3)
        return jsWebGLRenderingContextPrototypeFunctionBufferData3(exec);
    return throwVMTypeError(exec);
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferSubData1(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int offset = exec->argument(1).toInt32(exec);
    ArrayBuffer* data = toArrayBuffer(exec->argument(2));

    imp->bufferSubData(target, offset, data, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferSubData2(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int offset = exec->argument(1).toInt32(exec);
    ArrayBufferView* data = toArrayBufferView(exec->argument(2));

    imp->bufferSubData(target, offset, data, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferSubData(ExecState* exec)
{
    if ((exec->argumentCount() == 3 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSArrayBuffer::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionBufferSubData1(exec);
    if ((exec->argumentCount() == 3 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSArrayBufferView::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionBufferSubData2(exec);
    return throwVMTypeError(exec);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCheckFramebufferStatus(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned target = exec->argument(0).toInt32(exec);


    JSC::JSValue result = jsNumber(exec, imp->checkFramebufferStatus(target));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionClear(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned mask = exec->argument(0).toInt32(exec);

    imp->clear(mask);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionClearColor(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    double red = exec->argument(0).toNumber(exec);
    double green = exec->argument(1).toNumber(exec);
    double blue = exec->argument(2).toNumber(exec);
    double alpha = exec->argument(3).toNumber(exec);

    imp->clearColor(red, green, blue, alpha);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionClearDepth(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    double depth = exec->argument(0).toNumber(exec);

    imp->clearDepth(depth);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionClearStencil(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    int s = exec->argument(0).toInt32(exec);

    imp->clearStencil(s);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionColorMask(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    bool red = exec->argument(0).toBoolean(exec);
    bool green = exec->argument(1).toBoolean(exec);
    bool blue = exec->argument(2).toBoolean(exec);
    bool alpha = exec->argument(3).toBoolean(exec);

    imp->colorMask(red, green, blue, alpha);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCompileShader(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLShader* shader = toWebGLShader(exec->argument(0));

    imp->compileShader(shader, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCopyTexImage2D(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    unsigned internalformat = exec->argument(2).toInt32(exec);
    int x = exec->argument(3).toInt32(exec);
    int y = exec->argument(4).toInt32(exec);
    unsigned width = exec->argument(5).toInt32(exec);
    unsigned height = exec->argument(6).toInt32(exec);
    int border = exec->argument(7).toInt32(exec);

    imp->copyTexImage2D(target, level, internalformat, x, y, width, height, border);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCopyTexSubImage2D(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    int xoffset = exec->argument(2).toInt32(exec);
    int yoffset = exec->argument(3).toInt32(exec);
    int x = exec->argument(4).toInt32(exec);
    int y = exec->argument(5).toInt32(exec);
    unsigned width = exec->argument(6).toInt32(exec);
    unsigned height = exec->argument(7).toInt32(exec);

    imp->copyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCreateBuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());


    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createBuffer()));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCreateFramebuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());


    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createFramebuffer()));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCreateProgram(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());


    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createProgram()));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCreateRenderbuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());


    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createRenderbuffer()));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCreateShader(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned type = exec->argument(0).toInt32(exec);


    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createShader(type, ec)));
    setDOMException(exec, ec);
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCreateTexture(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());


    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->createTexture()));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCullFace(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned mode = exec->argument(0).toInt32(exec);

    imp->cullFace(mode);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDeleteBuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLBuffer* buffer = toWebGLBuffer(exec->argument(0));

    imp->deleteBuffer(buffer);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDeleteFramebuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLFramebuffer* framebuffer = toWebGLFramebuffer(exec->argument(0));

    imp->deleteFramebuffer(framebuffer);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDeleteProgram(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLProgram* program = toWebGLProgram(exec->argument(0));

    imp->deleteProgram(program);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDeleteRenderbuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLRenderbuffer* renderbuffer = toWebGLRenderbuffer(exec->argument(0));

    imp->deleteRenderbuffer(renderbuffer);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDeleteShader(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLShader* shader = toWebGLShader(exec->argument(0));

    imp->deleteShader(shader);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDeleteTexture(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLTexture* texture = toWebGLTexture(exec->argument(0));

    imp->deleteTexture(texture);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDepthFunc(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned func = exec->argument(0).toInt32(exec);

    imp->depthFunc(func);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDepthMask(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    bool flag = exec->argument(0).toBoolean(exec);

    imp->depthMask(flag);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDepthRange(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    double zNear = exec->argument(0).toNumber(exec);
    double zFar = exec->argument(1).toNumber(exec);

    imp->depthRange(zNear, zFar);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDetachShader(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLProgram* program = toWebGLProgram(exec->argument(0));
    WebGLShader* shader = toWebGLShader(exec->argument(1));

    imp->detachShader(program, shader, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDisable(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned cap = exec->argument(0).toInt32(exec);

    imp->disable(cap);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDisableVertexAttribArray(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned index = exec->argument(0).toInt32(exec);

    imp->disableVertexAttribArray(index, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDrawArrays(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned mode = exec->argument(0).toInt32(exec);
    int first = exec->argument(1).toInt32(exec);
    int count = exec->argument(2).toInt32(exec);

    imp->drawArrays(mode, first, count, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionDrawElements(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned mode = exec->argument(0).toInt32(exec);
    int count = exec->argument(1).toInt32(exec);
    unsigned type = exec->argument(2).toInt32(exec);
    int offset = exec->argument(3).toInt32(exec);

    imp->drawElements(mode, count, type, offset, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionEnable(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned cap = exec->argument(0).toInt32(exec);

    imp->enable(cap);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionEnableVertexAttribArray(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned index = exec->argument(0).toInt32(exec);

    imp->enableVertexAttribArray(index, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionFinish(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());

    imp->finish();
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionFlush(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());

    imp->flush();
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionFramebufferRenderbuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    unsigned attachment = exec->argument(1).toInt32(exec);
    unsigned renderbuffertarget = exec->argument(2).toInt32(exec);
    WebGLRenderbuffer* renderbuffer = toWebGLRenderbuffer(exec->argument(3));

    imp->framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionFramebufferTexture2D(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    unsigned attachment = exec->argument(1).toInt32(exec);
    unsigned textarget = exec->argument(2).toInt32(exec);
    WebGLTexture* texture = toWebGLTexture(exec->argument(3));
    int level = exec->argument(4).toInt32(exec);

    imp->framebufferTexture2D(target, attachment, textarget, texture, level, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionFrontFace(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned mode = exec->argument(0).toInt32(exec);

    imp->frontFace(mode);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGenerateMipmap(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned target = exec->argument(0).toInt32(exec);

    imp->generateMipmap(target);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetActiveAttrib(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLProgram* program = toWebGLProgram(exec->argument(0));
    unsigned index = exec->argument(1).toInt32(exec);


    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->getActiveAttrib(program, index, ec)));
    setDOMException(exec, ec);
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetActiveUniform(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLProgram* program = toWebGLProgram(exec->argument(0));
    unsigned index = exec->argument(1).toInt32(exec);


    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->getActiveUniform(program, index, ec)));
    setDOMException(exec, ec);
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetAttachedShaders(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->getAttachedShaders(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetAttribLocation(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLProgram* program = toWebGLProgram(exec->argument(0));
    const String& name = ustringToString(exec->argument(1).toString(exec));


    JSC::JSValue result = jsNumber(exec, imp->getAttribLocation(program, name));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetBufferParameter(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->getBufferParameter(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetContextAttributes(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());


    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->getContextAttributes()));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetError(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());


    JSC::JSValue result = jsNumber(exec, imp->getError());
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetFramebufferAttachmentParameter(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->getFramebufferAttachmentParameter(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetParameter(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->getParameter(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetProgramParameter(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->getProgramParameter(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetProgramInfoLog(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLProgram* program = toWebGLProgram(exec->argument(0));


    JSC::JSValue result = jsString(exec, imp->getProgramInfoLog(program, ec));
    setDOMException(exec, ec);
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetRenderbufferParameter(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->getRenderbufferParameter(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetShaderParameter(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->getShaderParameter(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetShaderInfoLog(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLShader* shader = toWebGLShader(exec->argument(0));


    JSC::JSValue result = jsString(exec, imp->getShaderInfoLog(shader, ec));
    setDOMException(exec, ec);
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetShaderSource(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLShader* shader = toWebGLShader(exec->argument(0));


    JSC::JSValue result = jsString(exec, imp->getShaderSource(shader, ec));
    setDOMException(exec, ec);
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetString(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned name = exec->argument(0).toInt32(exec);


    JSC::JSValue result = jsString(exec, imp->getString(name));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetTexParameter(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->getTexParameter(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetUniform(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->getUniform(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetUniformLocation(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLProgram* program = toWebGLProgram(exec->argument(0));
    const String& name = ustringToString(exec->argument(1).toString(exec));


    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->getUniformLocation(program, name, ec)));
    setDOMException(exec, ec);
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetVertexAttrib(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->getVertexAttrib(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetVertexAttribOffset(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned index = exec->argument(0).toInt32(exec);
    unsigned pname = exec->argument(1).toInt32(exec);


    JSC::JSValue result = jsNumber(exec, imp->getVertexAttribOffset(index, pname));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionHint(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned target = exec->argument(0).toInt32(exec);
    unsigned mode = exec->argument(1).toInt32(exec);

    imp->hint(target, mode);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsBuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLBuffer* buffer = toWebGLBuffer(exec->argument(0));


    JSC::JSValue result = jsBoolean(imp->isBuffer(buffer));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsEnabled(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned cap = exec->argument(0).toInt32(exec);


    JSC::JSValue result = jsBoolean(imp->isEnabled(cap));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsFramebuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLFramebuffer* framebuffer = toWebGLFramebuffer(exec->argument(0));


    JSC::JSValue result = jsBoolean(imp->isFramebuffer(framebuffer));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsProgram(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLProgram* program = toWebGLProgram(exec->argument(0));


    JSC::JSValue result = jsBoolean(imp->isProgram(program));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsRenderbuffer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLRenderbuffer* renderbuffer = toWebGLRenderbuffer(exec->argument(0));


    JSC::JSValue result = jsBoolean(imp->isRenderbuffer(renderbuffer));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsShader(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLShader* shader = toWebGLShader(exec->argument(0));


    JSC::JSValue result = jsBoolean(imp->isShader(shader));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionIsTexture(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    WebGLTexture* texture = toWebGLTexture(exec->argument(0));


    JSC::JSValue result = jsBoolean(imp->isTexture(texture));
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionLineWidth(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    double width = exec->argument(0).toNumber(exec);

    imp->lineWidth(width);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionLinkProgram(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLProgram* program = toWebGLProgram(exec->argument(0));

    imp->linkProgram(program, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionPixelStorei(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned pname = exec->argument(0).toInt32(exec);
    int param = exec->argument(1).toInt32(exec);

    imp->pixelStorei(pname, param);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionPolygonOffset(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    double factor = exec->argument(0).toNumber(exec);
    double units = exec->argument(1).toNumber(exec);

    imp->polygonOffset(factor, units);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionReadPixels(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    int x = exec->argument(0).toInt32(exec);
    int y = exec->argument(1).toInt32(exec);
    int width = exec->argument(2).toInt32(exec);
    int height = exec->argument(3).toInt32(exec);
    unsigned format = exec->argument(4).toInt32(exec);
    unsigned type = exec->argument(5).toInt32(exec);
    ArrayBufferView* pixels = toArrayBufferView(exec->argument(6));

    imp->readPixels(x, y, width, height, format, type, pixels);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionReleaseShaderCompiler(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());

    imp->releaseShaderCompiler();
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionRenderbufferStorage(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned target = exec->argument(0).toInt32(exec);
    unsigned internalformat = exec->argument(1).toInt32(exec);
    unsigned width = exec->argument(2).toInt32(exec);
    unsigned height = exec->argument(3).toInt32(exec);

    imp->renderbufferStorage(target, internalformat, width, height);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionSampleCoverage(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    double value = exec->argument(0).toNumber(exec);
    bool invert = exec->argument(1).toBoolean(exec);

    imp->sampleCoverage(value, invert);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionScissor(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    int x = exec->argument(0).toInt32(exec);
    int y = exec->argument(1).toInt32(exec);
    unsigned width = exec->argument(2).toInt32(exec);
    unsigned height = exec->argument(3).toInt32(exec);

    imp->scissor(x, y, width, height);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionShaderSource(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLShader* shader = toWebGLShader(exec->argument(0));
    const String& string = ustringToString(exec->argument(1).toString(exec));

    imp->shaderSource(shader, string, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionStencilFunc(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned func = exec->argument(0).toInt32(exec);
    int ref = exec->argument(1).toInt32(exec);
    unsigned mask = exec->argument(2).toInt32(exec);

    imp->stencilFunc(func, ref, mask);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionStencilFuncSeparate(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned face = exec->argument(0).toInt32(exec);
    unsigned func = exec->argument(1).toInt32(exec);
    int ref = exec->argument(2).toInt32(exec);
    unsigned mask = exec->argument(3).toInt32(exec);

    imp->stencilFuncSeparate(face, func, ref, mask);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionStencilMask(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned mask = exec->argument(0).toInt32(exec);

    imp->stencilMask(mask);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionStencilMaskSeparate(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned face = exec->argument(0).toInt32(exec);
    unsigned mask = exec->argument(1).toInt32(exec);

    imp->stencilMaskSeparate(face, mask);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionStencilOp(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned fail = exec->argument(0).toInt32(exec);
    unsigned zfail = exec->argument(1).toInt32(exec);
    unsigned zpass = exec->argument(2).toInt32(exec);

    imp->stencilOp(fail, zfail, zpass);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionStencilOpSeparate(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned face = exec->argument(0).toInt32(exec);
    unsigned fail = exec->argument(1).toInt32(exec);
    unsigned zfail = exec->argument(2).toInt32(exec);
    unsigned zpass = exec->argument(3).toInt32(exec);

    imp->stencilOpSeparate(face, fail, zfail, zpass);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexParameterf(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned target = exec->argument(0).toInt32(exec);
    unsigned pname = exec->argument(1).toInt32(exec);
    float param = exec->argument(2).toFloat(exec);

    imp->texParameterf(target, pname, param);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexParameteri(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned target = exec->argument(0).toInt32(exec);
    unsigned pname = exec->argument(1).toInt32(exec);
    int param = exec->argument(2).toInt32(exec);

    imp->texParameteri(target, pname, param);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D1(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    unsigned internalformat = exec->argument(2).toInt32(exec);
    int width = exec->argument(3).toInt32(exec);
    int height = exec->argument(4).toInt32(exec);
    int border = exec->argument(5).toInt32(exec);
    unsigned format = exec->argument(6).toInt32(exec);
    unsigned type = exec->argument(7).toInt32(exec);
    ArrayBufferView* pixels = toArrayBufferView(exec->argument(8));

    imp->texImage2D(target, level, internalformat, width, height, border, format, type, pixels, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D2(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    unsigned internalformat = exec->argument(2).toInt32(exec);
    unsigned format = exec->argument(3).toInt32(exec);
    unsigned type = exec->argument(4).toInt32(exec);
    ImageData* pixels = toImageData(exec->argument(5));

    imp->texImage2D(target, level, internalformat, format, type, pixels, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D3(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    unsigned internalformat = exec->argument(2).toInt32(exec);
    unsigned format = exec->argument(3).toInt32(exec);
    unsigned type = exec->argument(4).toInt32(exec);
    HTMLImageElement* image = toHTMLImageElement(exec->argument(5));

    imp->texImage2D(target, level, internalformat, format, type, image, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D4(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    unsigned internalformat = exec->argument(2).toInt32(exec);
    unsigned format = exec->argument(3).toInt32(exec);
    unsigned type = exec->argument(4).toInt32(exec);
    HTMLCanvasElement* canvas = toHTMLCanvasElement(exec->argument(5));

    imp->texImage2D(target, level, internalformat, format, type, canvas, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D5(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    unsigned internalformat = exec->argument(2).toInt32(exec);
    unsigned format = exec->argument(3).toInt32(exec);
    unsigned type = exec->argument(4).toInt32(exec);
    HTMLVideoElement* video = toHTMLVideoElement(exec->argument(5));

    imp->texImage2D(target, level, internalformat, format, type, video, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D6(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    ImageData* pixels = toImageData(exec->argument(2));

    int argsCount = exec->argumentCount();
    if (argsCount < 4) {
        imp->texImage2D(target, level, pixels, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool flipY = exec->argument(3).toBoolean(exec);
    if (argsCount < 5) {
        imp->texImage2D(target, level, pixels, flipY, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool premultiplyAlpha = exec->argument(4).toBoolean(exec);

    imp->texImage2D(target, level, pixels, flipY, premultiplyAlpha, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D7(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    HTMLImageElement* image = toHTMLImageElement(exec->argument(2));

    int argsCount = exec->argumentCount();
    if (argsCount < 4) {
        imp->texImage2D(target, level, image, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool flipY = exec->argument(3).toBoolean(exec);
    if (argsCount < 5) {
        imp->texImage2D(target, level, image, flipY, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool premultiplyAlpha = exec->argument(4).toBoolean(exec);

    imp->texImage2D(target, level, image, flipY, premultiplyAlpha, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D8(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    HTMLCanvasElement* canvas = toHTMLCanvasElement(exec->argument(2));

    int argsCount = exec->argumentCount();
    if (argsCount < 4) {
        imp->texImage2D(target, level, canvas, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool flipY = exec->argument(3).toBoolean(exec);
    if (argsCount < 5) {
        imp->texImage2D(target, level, canvas, flipY, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool premultiplyAlpha = exec->argument(4).toBoolean(exec);

    imp->texImage2D(target, level, canvas, flipY, premultiplyAlpha, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D9(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    HTMLVideoElement* video = toHTMLVideoElement(exec->argument(2));

    int argsCount = exec->argumentCount();
    if (argsCount < 4) {
        imp->texImage2D(target, level, video, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool flipY = exec->argument(3).toBoolean(exec);
    if (argsCount < 5) {
        imp->texImage2D(target, level, video, flipY, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool premultiplyAlpha = exec->argument(4).toBoolean(exec);

    imp->texImage2D(target, level, video, flipY, premultiplyAlpha, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D(ExecState* exec)
{
    if ((exec->argumentCount() == 9 && (exec->argument(8).isNull() || exec->argument(8).isObject() && asObject(exec->argument(8))->inherits(&JSArrayBufferView::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D1(exec);
    if ((exec->argumentCount() == 6 && (exec->argument(5).isNull() || exec->argument(5).isObject() && asObject(exec->argument(5))->inherits(&JSImageData::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D2(exec);
    if ((exec->argumentCount() == 6 && (exec->argument(5).isNull() || exec->argument(5).isObject() && asObject(exec->argument(5))->inherits(&JSHTMLImageElement::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D3(exec);
    if ((exec->argumentCount() == 6 && (exec->argument(5).isNull() || exec->argument(5).isObject() && asObject(exec->argument(5))->inherits(&JSHTMLCanvasElement::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D4(exec);
    if ((exec->argumentCount() == 6 && (exec->argument(5).isNull() || exec->argument(5).isObject() && asObject(exec->argument(5))->inherits(&JSHTMLVideoElement::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D5(exec);
    if ((exec->argumentCount() == 3 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSImageData::s_info))) || (exec->argumentCount() == 4 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSImageData::s_info))) || (exec->argumentCount() == 5 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSImageData::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D6(exec);
    if ((exec->argumentCount() == 3 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSHTMLImageElement::s_info))) || (exec->argumentCount() == 4 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSHTMLImageElement::s_info))) || (exec->argumentCount() == 5 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSHTMLImageElement::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D7(exec);
    if ((exec->argumentCount() == 3 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSHTMLCanvasElement::s_info))) || (exec->argumentCount() == 4 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSHTMLCanvasElement::s_info))) || (exec->argumentCount() == 5 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSHTMLCanvasElement::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D8(exec);
    if ((exec->argumentCount() == 3 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSHTMLVideoElement::s_info))) || (exec->argumentCount() == 4 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSHTMLVideoElement::s_info))) || (exec->argumentCount() == 5 && (exec->argument(2).isNull() || exec->argument(2).isObject() && asObject(exec->argument(2))->inherits(&JSHTMLVideoElement::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D9(exec);
    return throwVMTypeError(exec);
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D1(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    int xoffset = exec->argument(2).toInt32(exec);
    int yoffset = exec->argument(3).toInt32(exec);
    int width = exec->argument(4).toInt32(exec);
    int height = exec->argument(5).toInt32(exec);
    unsigned format = exec->argument(6).toInt32(exec);
    unsigned type = exec->argument(7).toInt32(exec);
    ArrayBufferView* pixels = toArrayBufferView(exec->argument(8));

    imp->texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D2(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    int xoffset = exec->argument(2).toInt32(exec);
    int yoffset = exec->argument(3).toInt32(exec);
    unsigned format = exec->argument(4).toInt32(exec);
    unsigned type = exec->argument(5).toInt32(exec);
    ImageData* pixels = toImageData(exec->argument(6));

    imp->texSubImage2D(target, level, xoffset, yoffset, format, type, pixels, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D3(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    int xoffset = exec->argument(2).toInt32(exec);
    int yoffset = exec->argument(3).toInt32(exec);
    unsigned format = exec->argument(4).toInt32(exec);
    unsigned type = exec->argument(5).toInt32(exec);
    HTMLImageElement* image = toHTMLImageElement(exec->argument(6));

    imp->texSubImage2D(target, level, xoffset, yoffset, format, type, image, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D4(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    int xoffset = exec->argument(2).toInt32(exec);
    int yoffset = exec->argument(3).toInt32(exec);
    unsigned format = exec->argument(4).toInt32(exec);
    unsigned type = exec->argument(5).toInt32(exec);
    HTMLCanvasElement* canvas = toHTMLCanvasElement(exec->argument(6));

    imp->texSubImage2D(target, level, xoffset, yoffset, format, type, canvas, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D5(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    int xoffset = exec->argument(2).toInt32(exec);
    int yoffset = exec->argument(3).toInt32(exec);
    unsigned format = exec->argument(4).toInt32(exec);
    unsigned type = exec->argument(5).toInt32(exec);
    HTMLVideoElement* video = toHTMLVideoElement(exec->argument(6));

    imp->texSubImage2D(target, level, xoffset, yoffset, format, type, video, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D6(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    int xoffset = exec->argument(2).toInt32(exec);
    int yoffset = exec->argument(3).toInt32(exec);
    ImageData* pixels = toImageData(exec->argument(4));

    int argsCount = exec->argumentCount();
    if (argsCount < 6) {
        imp->texSubImage2D(target, level, xoffset, yoffset, pixels, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool flipY = exec->argument(5).toBoolean(exec);
    if (argsCount < 7) {
        imp->texSubImage2D(target, level, xoffset, yoffset, pixels, flipY, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool premultiplyAlpha = exec->argument(6).toBoolean(exec);

    imp->texSubImage2D(target, level, xoffset, yoffset, pixels, flipY, premultiplyAlpha, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D7(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    int xoffset = exec->argument(2).toInt32(exec);
    int yoffset = exec->argument(3).toInt32(exec);
    HTMLImageElement* image = toHTMLImageElement(exec->argument(4));

    int argsCount = exec->argumentCount();
    if (argsCount < 6) {
        imp->texSubImage2D(target, level, xoffset, yoffset, image, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool flipY = exec->argument(5).toBoolean(exec);
    if (argsCount < 7) {
        imp->texSubImage2D(target, level, xoffset, yoffset, image, flipY, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool premultiplyAlpha = exec->argument(6).toBoolean(exec);

    imp->texSubImage2D(target, level, xoffset, yoffset, image, flipY, premultiplyAlpha, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D8(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    int xoffset = exec->argument(2).toInt32(exec);
    int yoffset = exec->argument(3).toInt32(exec);
    HTMLCanvasElement* canvas = toHTMLCanvasElement(exec->argument(4));

    int argsCount = exec->argumentCount();
    if (argsCount < 6) {
        imp->texSubImage2D(target, level, xoffset, yoffset, canvas, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool flipY = exec->argument(5).toBoolean(exec);
    if (argsCount < 7) {
        imp->texSubImage2D(target, level, xoffset, yoffset, canvas, flipY, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool premultiplyAlpha = exec->argument(6).toBoolean(exec);

    imp->texSubImage2D(target, level, xoffset, yoffset, canvas, flipY, premultiplyAlpha, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D9(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned target = exec->argument(0).toInt32(exec);
    int level = exec->argument(1).toInt32(exec);
    int xoffset = exec->argument(2).toInt32(exec);
    int yoffset = exec->argument(3).toInt32(exec);
    HTMLVideoElement* video = toHTMLVideoElement(exec->argument(4));

    int argsCount = exec->argumentCount();
    if (argsCount < 6) {
        imp->texSubImage2D(target, level, xoffset, yoffset, video, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool flipY = exec->argument(5).toBoolean(exec);
    if (argsCount < 7) {
        imp->texSubImage2D(target, level, xoffset, yoffset, video, flipY, ec);
        setDOMException(exec, ec);
        return JSValue::encode(jsUndefined());
    }

    bool premultiplyAlpha = exec->argument(6).toBoolean(exec);

    imp->texSubImage2D(target, level, xoffset, yoffset, video, flipY, premultiplyAlpha, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D(ExecState* exec)
{
    if ((exec->argumentCount() == 9 && (exec->argument(8).isNull() || exec->argument(8).isObject() && asObject(exec->argument(8))->inherits(&JSArrayBufferView::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D1(exec);
    if ((exec->argumentCount() == 7 && (exec->argument(6).isNull() || exec->argument(6).isObject() && asObject(exec->argument(6))->inherits(&JSImageData::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D2(exec);
    if ((exec->argumentCount() == 7 && (exec->argument(6).isNull() || exec->argument(6).isObject() && asObject(exec->argument(6))->inherits(&JSHTMLImageElement::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D3(exec);
    if ((exec->argumentCount() == 7 && (exec->argument(6).isNull() || exec->argument(6).isObject() && asObject(exec->argument(6))->inherits(&JSHTMLCanvasElement::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D4(exec);
    if ((exec->argumentCount() == 7 && (exec->argument(6).isNull() || exec->argument(6).isObject() && asObject(exec->argument(6))->inherits(&JSHTMLVideoElement::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D5(exec);
    if ((exec->argumentCount() == 5 && (exec->argument(4).isNull() || exec->argument(4).isObject() && asObject(exec->argument(4))->inherits(&JSImageData::s_info))) || (exec->argumentCount() == 6 && (exec->argument(4).isNull() || exec->argument(4).isObject() && asObject(exec->argument(4))->inherits(&JSImageData::s_info))) || (exec->argumentCount() == 7 && (exec->argument(4).isNull() || exec->argument(4).isObject() && asObject(exec->argument(4))->inherits(&JSImageData::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D6(exec);
    if ((exec->argumentCount() == 5 && (exec->argument(4).isNull() || exec->argument(4).isObject() && asObject(exec->argument(4))->inherits(&JSHTMLImageElement::s_info))) || (exec->argumentCount() == 6 && (exec->argument(4).isNull() || exec->argument(4).isObject() && asObject(exec->argument(4))->inherits(&JSHTMLImageElement::s_info))) || (exec->argumentCount() == 7 && (exec->argument(4).isNull() || exec->argument(4).isObject() && asObject(exec->argument(4))->inherits(&JSHTMLImageElement::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D7(exec);
    if ((exec->argumentCount() == 5 && (exec->argument(4).isNull() || exec->argument(4).isObject() && asObject(exec->argument(4))->inherits(&JSHTMLCanvasElement::s_info))) || (exec->argumentCount() == 6 && (exec->argument(4).isNull() || exec->argument(4).isObject() && asObject(exec->argument(4))->inherits(&JSHTMLCanvasElement::s_info))) || (exec->argumentCount() == 7 && (exec->argument(4).isNull() || exec->argument(4).isObject() && asObject(exec->argument(4))->inherits(&JSHTMLCanvasElement::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D8(exec);
    if ((exec->argumentCount() == 5 && (exec->argument(4).isNull() || exec->argument(4).isObject() && asObject(exec->argument(4))->inherits(&JSHTMLVideoElement::s_info))) || (exec->argumentCount() == 6 && (exec->argument(4).isNull() || exec->argument(4).isObject() && asObject(exec->argument(4))->inherits(&JSHTMLVideoElement::s_info))) || (exec->argumentCount() == 7 && (exec->argument(4).isNull() || exec->argument(4).isObject() && asObject(exec->argument(4))->inherits(&JSHTMLVideoElement::s_info))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D9(exec);
    return throwVMTypeError(exec);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform1f(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLUniformLocation* location = toWebGLUniformLocation(exec->argument(0));
    float x = exec->argument(1).toFloat(exec);

    imp->uniform1f(location, x, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform1fv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->uniform1fv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform1i(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLUniformLocation* location = toWebGLUniformLocation(exec->argument(0));
    int x = exec->argument(1).toInt32(exec);

    imp->uniform1i(location, x, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform1iv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->uniform1iv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform2f(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLUniformLocation* location = toWebGLUniformLocation(exec->argument(0));
    float x = exec->argument(1).toFloat(exec);
    float y = exec->argument(2).toFloat(exec);

    imp->uniform2f(location, x, y, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform2fv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->uniform2fv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform2i(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLUniformLocation* location = toWebGLUniformLocation(exec->argument(0));
    int x = exec->argument(1).toInt32(exec);
    int y = exec->argument(2).toInt32(exec);

    imp->uniform2i(location, x, y, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform2iv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->uniform2iv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform3f(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLUniformLocation* location = toWebGLUniformLocation(exec->argument(0));
    float x = exec->argument(1).toFloat(exec);
    float y = exec->argument(2).toFloat(exec);
    float z = exec->argument(3).toFloat(exec);

    imp->uniform3f(location, x, y, z, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform3fv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->uniform3fv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform3i(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLUniformLocation* location = toWebGLUniformLocation(exec->argument(0));
    int x = exec->argument(1).toInt32(exec);
    int y = exec->argument(2).toInt32(exec);
    int z = exec->argument(3).toInt32(exec);

    imp->uniform3i(location, x, y, z, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform3iv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->uniform3iv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform4f(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLUniformLocation* location = toWebGLUniformLocation(exec->argument(0));
    float x = exec->argument(1).toFloat(exec);
    float y = exec->argument(2).toFloat(exec);
    float z = exec->argument(3).toFloat(exec);
    float w = exec->argument(4).toFloat(exec);

    imp->uniform4f(location, x, y, z, w, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform4fv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->uniform4fv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform4i(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLUniformLocation* location = toWebGLUniformLocation(exec->argument(0));
    int x = exec->argument(1).toInt32(exec);
    int y = exec->argument(2).toInt32(exec);
    int z = exec->argument(3).toInt32(exec);
    int w = exec->argument(4).toInt32(exec);

    imp->uniform4i(location, x, y, z, w, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniform4iv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->uniform4iv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniformMatrix2fv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->uniformMatrix2fv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniformMatrix3fv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->uniformMatrix3fv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUniformMatrix4fv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->uniformMatrix4fv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionUseProgram(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLProgram* program = toWebGLProgram(exec->argument(0));

    imp->useProgram(program, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionValidateProgram(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    WebGLProgram* program = toWebGLProgram(exec->argument(0));

    imp->validateProgram(program, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib1f(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned indx = exec->argument(0).toInt32(exec);
    float x = exec->argument(1).toFloat(exec);

    imp->vertexAttrib1f(indx, x);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib1fv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->vertexAttrib1fv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib2f(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned indx = exec->argument(0).toInt32(exec);
    float x = exec->argument(1).toFloat(exec);
    float y = exec->argument(2).toFloat(exec);

    imp->vertexAttrib2f(indx, x, y);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib2fv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->vertexAttrib2fv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib3f(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned indx = exec->argument(0).toInt32(exec);
    float x = exec->argument(1).toFloat(exec);
    float y = exec->argument(2).toFloat(exec);
    float z = exec->argument(3).toFloat(exec);

    imp->vertexAttrib3f(indx, x, y, z);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib3fv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->vertexAttrib3fv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib4f(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    unsigned indx = exec->argument(0).toInt32(exec);
    float x = exec->argument(1).toFloat(exec);
    float y = exec->argument(2).toFloat(exec);
    float z = exec->argument(3).toFloat(exec);
    float w = exec->argument(4).toFloat(exec);

    imp->vertexAttrib4f(indx, x, y, z, w);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttrib4fv(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    return JSValue::encode(castedThis->vertexAttrib4fv(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionVertexAttribPointer(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    ExceptionCode ec = 0;
    unsigned indx = exec->argument(0).toInt32(exec);
    int size = exec->argument(1).toInt32(exec);
    unsigned type = exec->argument(2).toInt32(exec);
    bool normalized = exec->argument(3).toBoolean(exec);
    int stride = exec->argument(4).toInt32(exec);
    unsigned offset = exec->argument(5).toInt32(exec);

    imp->vertexAttribPointer(indx, size, type, normalized, stride, offset, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionViewport(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue));
    WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl());
    int x = exec->argument(0).toInt32(exec);
    int y = exec->argument(1).toInt32(exec);
    unsigned width = exec->argument(2).toInt32(exec);
    unsigned height = exec->argument(3).toInt32(exec);

    imp->viewport(x, y, width, height);
    return JSValue::encode(jsUndefined());
}

// Constant getters

JSValue jsWebGLRenderingContextDEPTH_BUFFER_BIT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x00000100));
}

JSValue jsWebGLRenderingContextSTENCIL_BUFFER_BIT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x00000400));
}

JSValue jsWebGLRenderingContextCOLOR_BUFFER_BIT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x00004000));
}

JSValue jsWebGLRenderingContextFALSE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0));
}

JSValue jsWebGLRenderingContextTRUE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(1));
}

JSValue jsWebGLRenderingContextPOINTS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0000));
}

JSValue jsWebGLRenderingContextLINES(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0001));
}

JSValue jsWebGLRenderingContextLINE_LOOP(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0002));
}

JSValue jsWebGLRenderingContextLINE_STRIP(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0003));
}

JSValue jsWebGLRenderingContextTRIANGLES(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0004));
}

JSValue jsWebGLRenderingContextTRIANGLE_STRIP(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0005));
}

JSValue jsWebGLRenderingContextTRIANGLE_FAN(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0006));
}

JSValue jsWebGLRenderingContextZERO(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0));
}

JSValue jsWebGLRenderingContextONE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(1));
}

JSValue jsWebGLRenderingContextSRC_COLOR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0300));
}

JSValue jsWebGLRenderingContextONE_MINUS_SRC_COLOR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0301));
}

JSValue jsWebGLRenderingContextSRC_ALPHA(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0302));
}

JSValue jsWebGLRenderingContextONE_MINUS_SRC_ALPHA(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0303));
}

JSValue jsWebGLRenderingContextDST_ALPHA(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0304));
}

JSValue jsWebGLRenderingContextONE_MINUS_DST_ALPHA(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0305));
}

JSValue jsWebGLRenderingContextDST_COLOR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0306));
}

JSValue jsWebGLRenderingContextONE_MINUS_DST_COLOR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0307));
}

JSValue jsWebGLRenderingContextSRC_ALPHA_SATURATE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0308));
}

JSValue jsWebGLRenderingContextFUNC_ADD(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8006));
}

JSValue jsWebGLRenderingContextBLEND_EQUATION(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8009));
}

JSValue jsWebGLRenderingContextBLEND_EQUATION_RGB(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8009));
}

JSValue jsWebGLRenderingContextBLEND_EQUATION_ALPHA(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x883D));
}

JSValue jsWebGLRenderingContextFUNC_SUBTRACT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x800A));
}

JSValue jsWebGLRenderingContextFUNC_REVERSE_SUBTRACT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x800B));
}

JSValue jsWebGLRenderingContextBLEND_DST_RGB(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x80C8));
}

JSValue jsWebGLRenderingContextBLEND_SRC_RGB(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x80C9));
}

JSValue jsWebGLRenderingContextBLEND_DST_ALPHA(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x80CA));
}

JSValue jsWebGLRenderingContextBLEND_SRC_ALPHA(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x80CB));
}

JSValue jsWebGLRenderingContextCONSTANT_COLOR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8001));
}

JSValue jsWebGLRenderingContextONE_MINUS_CONSTANT_COLOR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8002));
}

JSValue jsWebGLRenderingContextCONSTANT_ALPHA(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8003));
}

JSValue jsWebGLRenderingContextONE_MINUS_CONSTANT_ALPHA(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8004));
}

JSValue jsWebGLRenderingContextBLEND_COLOR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8005));
}

JSValue jsWebGLRenderingContextARRAY_BUFFER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8892));
}

JSValue jsWebGLRenderingContextELEMENT_ARRAY_BUFFER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8893));
}

JSValue jsWebGLRenderingContextARRAY_BUFFER_BINDING(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8894));
}

JSValue jsWebGLRenderingContextELEMENT_ARRAY_BUFFER_BINDING(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8895));
}

JSValue jsWebGLRenderingContextSTREAM_DRAW(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x88E0));
}

JSValue jsWebGLRenderingContextSTATIC_DRAW(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x88E4));
}

JSValue jsWebGLRenderingContextDYNAMIC_DRAW(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x88E8));
}

JSValue jsWebGLRenderingContextBUFFER_SIZE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8764));
}

JSValue jsWebGLRenderingContextBUFFER_USAGE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8765));
}

JSValue jsWebGLRenderingContextCURRENT_VERTEX_ATTRIB(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8626));
}

JSValue jsWebGLRenderingContextFRONT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0404));
}

JSValue jsWebGLRenderingContextBACK(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0405));
}

JSValue jsWebGLRenderingContextFRONT_AND_BACK(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0408));
}

JSValue jsWebGLRenderingContextTEXTURE_2D(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0DE1));
}

JSValue jsWebGLRenderingContextCULL_FACE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B44));
}

JSValue jsWebGLRenderingContextBLEND(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0BE2));
}

JSValue jsWebGLRenderingContextDITHER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0BD0));
}

JSValue jsWebGLRenderingContextSTENCIL_TEST(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B90));
}

JSValue jsWebGLRenderingContextDEPTH_TEST(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B71));
}

JSValue jsWebGLRenderingContextSCISSOR_TEST(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0C11));
}

JSValue jsWebGLRenderingContextPOLYGON_OFFSET_FILL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8037));
}

JSValue jsWebGLRenderingContextSAMPLE_ALPHA_TO_COVERAGE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x809E));
}

JSValue jsWebGLRenderingContextSAMPLE_COVERAGE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x80A0));
}

JSValue jsWebGLRenderingContextNO_ERROR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0));
}

JSValue jsWebGLRenderingContextINVALID_ENUM(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0500));
}

JSValue jsWebGLRenderingContextINVALID_VALUE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0501));
}

JSValue jsWebGLRenderingContextINVALID_OPERATION(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0502));
}

JSValue jsWebGLRenderingContextOUT_OF_MEMORY(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0505));
}

JSValue jsWebGLRenderingContextCW(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0900));
}

JSValue jsWebGLRenderingContextCCW(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0901));
}

JSValue jsWebGLRenderingContextLINE_WIDTH(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B21));
}

JSValue jsWebGLRenderingContextALIASED_POINT_SIZE_RANGE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x846D));
}

JSValue jsWebGLRenderingContextALIASED_LINE_WIDTH_RANGE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x846E));
}

JSValue jsWebGLRenderingContextCULL_FACE_MODE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B45));
}

JSValue jsWebGLRenderingContextFRONT_FACE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B46));
}

JSValue jsWebGLRenderingContextDEPTH_RANGE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B70));
}

JSValue jsWebGLRenderingContextDEPTH_WRITEMASK(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B72));
}

JSValue jsWebGLRenderingContextDEPTH_CLEAR_VALUE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B73));
}

JSValue jsWebGLRenderingContextDEPTH_FUNC(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B74));
}

JSValue jsWebGLRenderingContextSTENCIL_CLEAR_VALUE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B91));
}

JSValue jsWebGLRenderingContextSTENCIL_FUNC(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B92));
}

JSValue jsWebGLRenderingContextSTENCIL_FAIL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B94));
}

JSValue jsWebGLRenderingContextSTENCIL_PASS_DEPTH_FAIL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B95));
}

JSValue jsWebGLRenderingContextSTENCIL_PASS_DEPTH_PASS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B96));
}

JSValue jsWebGLRenderingContextSTENCIL_REF(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B97));
}

JSValue jsWebGLRenderingContextSTENCIL_VALUE_MASK(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B93));
}

JSValue jsWebGLRenderingContextSTENCIL_WRITEMASK(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0B98));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_FUNC(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8800));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_FAIL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8801));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_FAIL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8802));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_PASS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8803));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_REF(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CA3));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_VALUE_MASK(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CA4));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_WRITEMASK(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CA5));
}

JSValue jsWebGLRenderingContextVIEWPORT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0BA2));
}

JSValue jsWebGLRenderingContextSCISSOR_BOX(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0C10));
}

JSValue jsWebGLRenderingContextCOLOR_CLEAR_VALUE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0C22));
}

JSValue jsWebGLRenderingContextCOLOR_WRITEMASK(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0C23));
}

JSValue jsWebGLRenderingContextUNPACK_ALIGNMENT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0CF5));
}

JSValue jsWebGLRenderingContextPACK_ALIGNMENT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0D05));
}

JSValue jsWebGLRenderingContextMAX_TEXTURE_SIZE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0D33));
}

JSValue jsWebGLRenderingContextMAX_VIEWPORT_DIMS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0D3A));
}

JSValue jsWebGLRenderingContextSUBPIXEL_BITS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0D50));
}

JSValue jsWebGLRenderingContextRED_BITS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0D52));
}

JSValue jsWebGLRenderingContextGREEN_BITS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0D53));
}

JSValue jsWebGLRenderingContextBLUE_BITS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0D54));
}

JSValue jsWebGLRenderingContextALPHA_BITS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0D55));
}

JSValue jsWebGLRenderingContextDEPTH_BITS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0D56));
}

JSValue jsWebGLRenderingContextSTENCIL_BITS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0D57));
}

JSValue jsWebGLRenderingContextPOLYGON_OFFSET_UNITS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x2A00));
}

JSValue jsWebGLRenderingContextPOLYGON_OFFSET_FACTOR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8038));
}

JSValue jsWebGLRenderingContextTEXTURE_BINDING_2D(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8069));
}

JSValue jsWebGLRenderingContextSAMPLE_BUFFERS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x80A8));
}

JSValue jsWebGLRenderingContextSAMPLES(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x80A9));
}

JSValue jsWebGLRenderingContextSAMPLE_COVERAGE_VALUE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x80AA));
}

JSValue jsWebGLRenderingContextSAMPLE_COVERAGE_INVERT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x80AB));
}

JSValue jsWebGLRenderingContextNUM_COMPRESSED_TEXTURE_FORMATS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x86A2));
}

JSValue jsWebGLRenderingContextCOMPRESSED_TEXTURE_FORMATS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x86A3));
}

JSValue jsWebGLRenderingContextDONT_CARE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1100));
}

JSValue jsWebGLRenderingContextFASTEST(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1101));
}

JSValue jsWebGLRenderingContextNICEST(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1102));
}

JSValue jsWebGLRenderingContextGENERATE_MIPMAP_HINT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8192));
}

JSValue jsWebGLRenderingContextBYTE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1400));
}

JSValue jsWebGLRenderingContextUNSIGNED_BYTE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1401));
}

JSValue jsWebGLRenderingContextSHORT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1402));
}

JSValue jsWebGLRenderingContextUNSIGNED_SHORT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1403));
}

JSValue jsWebGLRenderingContextINT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1404));
}

JSValue jsWebGLRenderingContextUNSIGNED_INT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1405));
}

JSValue jsWebGLRenderingContextFLOAT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1406));
}

JSValue jsWebGLRenderingContextFIXED(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x140C));
}

JSValue jsWebGLRenderingContextDEPTH_COMPONENT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1902));
}

JSValue jsWebGLRenderingContextALPHA(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1906));
}

JSValue jsWebGLRenderingContextRGB(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1907));
}

JSValue jsWebGLRenderingContextRGBA(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1908));
}

JSValue jsWebGLRenderingContextLUMINANCE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1909));
}

JSValue jsWebGLRenderingContextLUMINANCE_ALPHA(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x190A));
}

JSValue jsWebGLRenderingContextUNSIGNED_SHORT_4_4_4_4(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8033));
}

JSValue jsWebGLRenderingContextUNSIGNED_SHORT_5_5_5_1(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8034));
}

JSValue jsWebGLRenderingContextUNSIGNED_SHORT_5_6_5(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8363));
}

JSValue jsWebGLRenderingContextFRAGMENT_SHADER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B30));
}

JSValue jsWebGLRenderingContextVERTEX_SHADER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B31));
}

JSValue jsWebGLRenderingContextMAX_VERTEX_ATTRIBS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8869));
}

JSValue jsWebGLRenderingContextMAX_VERTEX_UNIFORM_VECTORS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8DFB));
}

JSValue jsWebGLRenderingContextMAX_VARYING_VECTORS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8DFC));
}

JSValue jsWebGLRenderingContextMAX_COMBINED_TEXTURE_IMAGE_UNITS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B4D));
}

JSValue jsWebGLRenderingContextMAX_VERTEX_TEXTURE_IMAGE_UNITS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B4C));
}

JSValue jsWebGLRenderingContextMAX_TEXTURE_IMAGE_UNITS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8872));
}

JSValue jsWebGLRenderingContextMAX_FRAGMENT_UNIFORM_VECTORS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8DFD));
}

JSValue jsWebGLRenderingContextSHADER_TYPE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B4F));
}

JSValue jsWebGLRenderingContextDELETE_STATUS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B80));
}

JSValue jsWebGLRenderingContextLINK_STATUS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B82));
}

JSValue jsWebGLRenderingContextVALIDATE_STATUS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B83));
}

JSValue jsWebGLRenderingContextATTACHED_SHADERS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B85));
}

JSValue jsWebGLRenderingContextACTIVE_UNIFORMS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B86));
}

JSValue jsWebGLRenderingContextACTIVE_UNIFORM_MAX_LENGTH(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B87));
}

JSValue jsWebGLRenderingContextACTIVE_ATTRIBUTES(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B89));
}

JSValue jsWebGLRenderingContextACTIVE_ATTRIBUTE_MAX_LENGTH(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B8A));
}

JSValue jsWebGLRenderingContextSHADING_LANGUAGE_VERSION(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B8C));
}

JSValue jsWebGLRenderingContextCURRENT_PROGRAM(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B8D));
}

JSValue jsWebGLRenderingContextNEVER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0200));
}

JSValue jsWebGLRenderingContextLESS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0201));
}

JSValue jsWebGLRenderingContextEQUAL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0202));
}

JSValue jsWebGLRenderingContextLEQUAL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0203));
}

JSValue jsWebGLRenderingContextGREATER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0204));
}

JSValue jsWebGLRenderingContextNOTEQUAL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0205));
}

JSValue jsWebGLRenderingContextGEQUAL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0206));
}

JSValue jsWebGLRenderingContextALWAYS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0207));
}

JSValue jsWebGLRenderingContextKEEP(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1E00));
}

JSValue jsWebGLRenderingContextREPLACE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1E01));
}

JSValue jsWebGLRenderingContextINCR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1E02));
}

JSValue jsWebGLRenderingContextDECR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1E03));
}

JSValue jsWebGLRenderingContextINVERT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x150A));
}

JSValue jsWebGLRenderingContextINCR_WRAP(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8507));
}

JSValue jsWebGLRenderingContextDECR_WRAP(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8508));
}

JSValue jsWebGLRenderingContextVENDOR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1F00));
}

JSValue jsWebGLRenderingContextRENDERER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1F01));
}

JSValue jsWebGLRenderingContextVERSION(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1F02));
}

JSValue jsWebGLRenderingContextEXTENSIONS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1F03));
}

JSValue jsWebGLRenderingContextNEAREST(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x2600));
}

JSValue jsWebGLRenderingContextLINEAR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x2601));
}

JSValue jsWebGLRenderingContextNEAREST_MIPMAP_NEAREST(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x2700));
}

JSValue jsWebGLRenderingContextLINEAR_MIPMAP_NEAREST(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x2701));
}

JSValue jsWebGLRenderingContextNEAREST_MIPMAP_LINEAR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x2702));
}

JSValue jsWebGLRenderingContextLINEAR_MIPMAP_LINEAR(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x2703));
}

JSValue jsWebGLRenderingContextTEXTURE_MAG_FILTER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x2800));
}

JSValue jsWebGLRenderingContextTEXTURE_MIN_FILTER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x2801));
}

JSValue jsWebGLRenderingContextTEXTURE_WRAP_S(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x2802));
}

JSValue jsWebGLRenderingContextTEXTURE_WRAP_T(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x2803));
}

JSValue jsWebGLRenderingContextTEXTURE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1702));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8513));
}

JSValue jsWebGLRenderingContextTEXTURE_BINDING_CUBE_MAP(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8514));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_X(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8515));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_X(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8516));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Y(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8517));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Y(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8518));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Z(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8519));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Z(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x851A));
}

JSValue jsWebGLRenderingContextMAX_CUBE_MAP_TEXTURE_SIZE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x851C));
}

JSValue jsWebGLRenderingContextTEXTURE0(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84C0));
}

JSValue jsWebGLRenderingContextTEXTURE1(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84C1));
}

JSValue jsWebGLRenderingContextTEXTURE2(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84C2));
}

JSValue jsWebGLRenderingContextTEXTURE3(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84C3));
}

JSValue jsWebGLRenderingContextTEXTURE4(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84C4));
}

JSValue jsWebGLRenderingContextTEXTURE5(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84C5));
}

JSValue jsWebGLRenderingContextTEXTURE6(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84C6));
}

JSValue jsWebGLRenderingContextTEXTURE7(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84C7));
}

JSValue jsWebGLRenderingContextTEXTURE8(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84C8));
}

JSValue jsWebGLRenderingContextTEXTURE9(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84C9));
}

JSValue jsWebGLRenderingContextTEXTURE10(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84CA));
}

JSValue jsWebGLRenderingContextTEXTURE11(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84CB));
}

JSValue jsWebGLRenderingContextTEXTURE12(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84CC));
}

JSValue jsWebGLRenderingContextTEXTURE13(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84CD));
}

JSValue jsWebGLRenderingContextTEXTURE14(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84CE));
}

JSValue jsWebGLRenderingContextTEXTURE15(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84CF));
}

JSValue jsWebGLRenderingContextTEXTURE16(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84D0));
}

JSValue jsWebGLRenderingContextTEXTURE17(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84D1));
}

JSValue jsWebGLRenderingContextTEXTURE18(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84D2));
}

JSValue jsWebGLRenderingContextTEXTURE19(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84D3));
}

JSValue jsWebGLRenderingContextTEXTURE20(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84D4));
}

JSValue jsWebGLRenderingContextTEXTURE21(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84D5));
}

JSValue jsWebGLRenderingContextTEXTURE22(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84D6));
}

JSValue jsWebGLRenderingContextTEXTURE23(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84D7));
}

JSValue jsWebGLRenderingContextTEXTURE24(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84D8));
}

JSValue jsWebGLRenderingContextTEXTURE25(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84D9));
}

JSValue jsWebGLRenderingContextTEXTURE26(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84DA));
}

JSValue jsWebGLRenderingContextTEXTURE27(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84DB));
}

JSValue jsWebGLRenderingContextTEXTURE28(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84DC));
}

JSValue jsWebGLRenderingContextTEXTURE29(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84DD));
}

JSValue jsWebGLRenderingContextTEXTURE30(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84DE));
}

JSValue jsWebGLRenderingContextTEXTURE31(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84DF));
}

JSValue jsWebGLRenderingContextACTIVE_TEXTURE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84E0));
}

JSValue jsWebGLRenderingContextREPEAT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x2901));
}

JSValue jsWebGLRenderingContextCLAMP_TO_EDGE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x812F));
}

JSValue jsWebGLRenderingContextMIRRORED_REPEAT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8370));
}

JSValue jsWebGLRenderingContextFLOAT_VEC2(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B50));
}

JSValue jsWebGLRenderingContextFLOAT_VEC3(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B51));
}

JSValue jsWebGLRenderingContextFLOAT_VEC4(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B52));
}

JSValue jsWebGLRenderingContextINT_VEC2(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B53));
}

JSValue jsWebGLRenderingContextINT_VEC3(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B54));
}

JSValue jsWebGLRenderingContextINT_VEC4(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B55));
}

JSValue jsWebGLRenderingContextBOOL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B56));
}

JSValue jsWebGLRenderingContextBOOL_VEC2(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B57));
}

JSValue jsWebGLRenderingContextBOOL_VEC3(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B58));
}

JSValue jsWebGLRenderingContextBOOL_VEC4(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B59));
}

JSValue jsWebGLRenderingContextFLOAT_MAT2(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B5A));
}

JSValue jsWebGLRenderingContextFLOAT_MAT3(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B5B));
}

JSValue jsWebGLRenderingContextFLOAT_MAT4(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B5C));
}

JSValue jsWebGLRenderingContextSAMPLER_2D(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B5E));
}

JSValue jsWebGLRenderingContextSAMPLER_CUBE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B60));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_ENABLED(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8622));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_SIZE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8623));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_STRIDE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8624));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_TYPE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8625));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_NORMALIZED(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x886A));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_POINTER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8645));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_BUFFER_BINDING(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x889F));
}

JSValue jsWebGLRenderingContextIMPLEMENTATION_COLOR_READ_TYPE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B9A));
}

JSValue jsWebGLRenderingContextIMPLEMENTATION_COLOR_READ_FORMAT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B9B));
}

JSValue jsWebGLRenderingContextCOMPILE_STATUS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B81));
}

JSValue jsWebGLRenderingContextINFO_LOG_LENGTH(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B84));
}

JSValue jsWebGLRenderingContextSHADER_SOURCE_LENGTH(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8B88));
}

JSValue jsWebGLRenderingContextSHADER_COMPILER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8DFA));
}

JSValue jsWebGLRenderingContextSHADER_BINARY_FORMATS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8DF8));
}

JSValue jsWebGLRenderingContextNUM_SHADER_BINARY_FORMATS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8DF9));
}

JSValue jsWebGLRenderingContextLOW_FLOAT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8DF0));
}

JSValue jsWebGLRenderingContextMEDIUM_FLOAT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8DF1));
}

JSValue jsWebGLRenderingContextHIGH_FLOAT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8DF2));
}

JSValue jsWebGLRenderingContextLOW_INT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8DF3));
}

JSValue jsWebGLRenderingContextMEDIUM_INT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8DF4));
}

JSValue jsWebGLRenderingContextHIGH_INT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8DF5));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D40));
}

JSValue jsWebGLRenderingContextRENDERBUFFER(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D41));
}

JSValue jsWebGLRenderingContextRGBA4(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8056));
}

JSValue jsWebGLRenderingContextRGB5_A1(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8057));
}

JSValue jsWebGLRenderingContextRGB565(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D62));
}

JSValue jsWebGLRenderingContextDEPTH_COMPONENT16(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x81A5));
}

JSValue jsWebGLRenderingContextSTENCIL_INDEX(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x1901));
}

JSValue jsWebGLRenderingContextSTENCIL_INDEX8(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D48));
}

JSValue jsWebGLRenderingContextDEPTH_STENCIL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84F9));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_WIDTH(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D42));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_HEIGHT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D43));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_INTERNAL_FORMAT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D44));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_RED_SIZE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D50));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_GREEN_SIZE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D51));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_BLUE_SIZE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D52));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_ALPHA_SIZE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D53));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_DEPTH_SIZE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D54));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_STENCIL_SIZE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D55));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_TYPE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CD0));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_NAME(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CD1));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CD2));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CD3));
}

JSValue jsWebGLRenderingContextCOLOR_ATTACHMENT0(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CE0));
}

JSValue jsWebGLRenderingContextDEPTH_ATTACHMENT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D00));
}

JSValue jsWebGLRenderingContextSTENCIL_ATTACHMENT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8D20));
}

JSValue jsWebGLRenderingContextDEPTH_STENCIL_ATTACHMENT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x821A));
}

JSValue jsWebGLRenderingContextNONE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_COMPLETE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CD5));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_ATTACHMENT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CD6));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CD7));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_DIMENSIONS(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CD9));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_UNSUPPORTED(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CDD));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_BINDING(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CA6));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_BINDING(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x8CA7));
}

JSValue jsWebGLRenderingContextMAX_RENDERBUFFER_SIZE(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x84E8));
}

JSValue jsWebGLRenderingContextINVALID_FRAMEBUFFER_OPERATION(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x0506));
}

JSValue jsWebGLRenderingContextUNPACK_FLIP_Y_WEBGL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x9240));
}

JSValue jsWebGLRenderingContextUNPACK_PREMULTIPLY_ALPHA_WEBGL(ExecState* exec, JSValue, const Identifier&)
{
    return jsNumber(exec, static_cast<int>(0x9241));
}


}

#endif // ENABLE(3D_CANVAS)
