/*
    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(WEBGL)

#include "JSWebGLRenderingContext.h"

#include "ExceptionCode.h"
#include "JSArrayBuffer.h"
#include "JSArrayBufferView.h"
#include "JSDOMBinding.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 "JSWebGLShaderPrecisionFormat.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 "WebGLShaderPrecisionFormat.h"
#include "WebGLTexture.h"
#include "WebGLUniformLocation.h"
#include <runtime/Error.h>
#include <wtf/GetPtr.h>

using namespace JSC;

namespace WebCore {

/* Hash table */

static const HashTableValue JSWebGLRenderingContextTableValues[] =
{
    { "drawingBufferWidth", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDrawingBufferWidth), (intptr_t)0, NoIntrinsic },
    { "drawingBufferHeight", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextDrawingBufferHeight), (intptr_t)0, NoIntrinsic },
    { "constructor", DontEnum | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsWebGLRenderingContextConstructor), (intptr_t)0, NoIntrinsic },
    { 0, 0, 0, 0, NoIntrinsic }
};

static const HashTable JSWebGLRenderingContextTable = { 8, 7, JSWebGLRenderingContextTableValues, 0 };
/* Hash table for constructor */

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

static const HashTable JSWebGLRenderingContextConstructorTable = { 1057, 1023, JSWebGLRenderingContextConstructorTableValues, 0 };
const ClassInfo JSWebGLRenderingContextConstructor::s_info = { "WebGLRenderingContextConstructor", &Base::s_info, &JSWebGLRenderingContextConstructorTable, 0, CREATE_METHOD_TABLE(JSWebGLRenderingContextConstructor) };

JSWebGLRenderingContextConstructor::JSWebGLRenderingContextConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
    : DOMConstructorObject(structure, globalObject)
{
}

void JSWebGLRenderingContextConstructor::finishCreation(ExecState* exec, JSDOMGlobalObject* globalObject)
{
    Base::finishCreation(exec->globalData());
    ASSERT(inherits(&s_info));
    putDirect(exec->globalData(), exec->propertyNames().prototype, JSWebGLRenderingContextPrototype::self(exec, globalObject), DontDelete | ReadOnly);
}

bool JSWebGLRenderingContextConstructor::getOwnPropertySlot(JSCell* cell, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
{
    return getStaticValueSlot<JSWebGLRenderingContextConstructor, JSDOMWrapper>(exec, &JSWebGLRenderingContextConstructorTable, jsCast<JSWebGLRenderingContextConstructor*>(cell), propertyName, slot);
}

bool JSWebGLRenderingContextConstructor::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, PropertyName propertyName, PropertyDescriptor& descriptor)
{
    return getStaticValueDescriptor<JSWebGLRenderingContextConstructor, JSDOMWrapper>(exec, &JSWebGLRenderingContextConstructorTable, jsCast<JSWebGLRenderingContextConstructor*>(object), propertyName, descriptor);
}

/* Hash table for prototype */

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

static const HashTable JSWebGLRenderingContextPrototypeTable = { 1099, 1023, JSWebGLRenderingContextPrototypeTableValues, 0 };
const ClassInfo JSWebGLRenderingContextPrototype::s_info = { "WebGLRenderingContextPrototype", &Base::s_info, &JSWebGLRenderingContextPrototypeTable, 0, CREATE_METHOD_TABLE(JSWebGLRenderingContextPrototype) };

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

bool JSWebGLRenderingContextPrototype::getOwnPropertySlot(JSCell* cell, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
{
    JSWebGLRenderingContextPrototype* thisObject = jsCast<JSWebGLRenderingContextPrototype*>(cell);
    return getStaticPropertySlot<JSWebGLRenderingContextPrototype, JSObject>(exec, &JSWebGLRenderingContextPrototypeTable, thisObject, propertyName, slot);
}

bool JSWebGLRenderingContextPrototype::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, PropertyName propertyName, PropertyDescriptor& descriptor)
{
    JSWebGLRenderingContextPrototype* thisObject = jsCast<JSWebGLRenderingContextPrototype*>(object);
    return getStaticPropertyDescriptor<JSWebGLRenderingContextPrototype, JSObject>(exec, &JSWebGLRenderingContextPrototypeTable, thisObject, propertyName, descriptor);
}

const ClassInfo JSWebGLRenderingContext::s_info = { "WebGLRenderingContext", &Base::s_info, &JSWebGLRenderingContextTable, 0 , CREATE_METHOD_TABLE(JSWebGLRenderingContext) };

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

void JSWebGLRenderingContext::finishCreation(JSGlobalData& globalData)
{
    Base::finishCreation(globalData);
    ASSERT(inherits(&s_info));
}

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

bool JSWebGLRenderingContext::getOwnPropertySlot(JSCell* cell, ExecState* exec, PropertyName propertyName, PropertySlot& slot)
{
    JSWebGLRenderingContext* thisObject = jsCast<JSWebGLRenderingContext*>(cell);
    ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
    return getStaticValueSlot<JSWebGLRenderingContext, Base>(exec, &JSWebGLRenderingContextTable, thisObject, propertyName, slot);
}

bool JSWebGLRenderingContext::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, PropertyName propertyName, PropertyDescriptor& descriptor)
{
    JSWebGLRenderingContext* thisObject = jsCast<JSWebGLRenderingContext*>(object);
    ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
    return getStaticValueDescriptor<JSWebGLRenderingContext, Base>(exec, &JSWebGLRenderingContextTable, thisObject, propertyName, descriptor);
}

JSValue jsWebGLRenderingContextDrawingBufferWidth(ExecState* exec, JSValue slotBase, PropertyName)
{
    JSWebGLRenderingContext* castedThis = jsCast<JSWebGLRenderingContext*>(asObject(slotBase));
    UNUSED_PARAM(exec);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    JSValue result = jsNumber(impl->drawingBufferWidth());
    return result;
}


JSValue jsWebGLRenderingContextDrawingBufferHeight(ExecState* exec, JSValue slotBase, PropertyName)
{
    JSWebGLRenderingContext* castedThis = jsCast<JSWebGLRenderingContext*>(asObject(slotBase));
    UNUSED_PARAM(exec);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    JSValue result = jsNumber(impl->drawingBufferHeight());
    return result;
}


JSValue jsWebGLRenderingContextConstructor(ExecState* exec, JSValue slotBase, PropertyName)
{
    JSWebGLRenderingContext* domObject = jsCast<JSWebGLRenderingContext*>(asObject(slotBase));
    return JSWebGLRenderingContext::getConstructor(exec, domObject->globalObject());
}

JSValue JSWebGLRenderingContext::getConstructor(ExecState* exec, JSGlobalObject* globalObject)
{
    return getDOMConstructor<JSWebGLRenderingContextConstructor>(exec, jsCast<JSDOMGlobalObject*>(globalObject));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionActiveTexture(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned texture(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLShader::s_info))
        return throwVMTypeError(exec);
    WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned index(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    const String& name(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).isEmpty() ? String() : MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toString(exec)->value(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLBuffer::s_info))
        return throwVMTypeError(exec);
    WebGLBuffer* buffer(toWebGLBuffer(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLFramebuffer::s_info))
        return throwVMTypeError(exec);
    WebGLFramebuffer* framebuffer(toWebGLFramebuffer(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLRenderbuffer::s_info))
        return throwVMTypeError(exec);
    WebGLRenderbuffer* renderbuffer(toWebGLRenderbuffer(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLTexture::s_info))
        return throwVMTypeError(exec);
    WebGLTexture* texture(toWebGLTexture(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    float red(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float green(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float blue(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float alpha(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned mode(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned modeRGB(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned modeAlpha(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned sfactor(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned dfactor(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned srcRGB(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned dstRGB(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned srcAlpha(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned dstAlpha(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSArrayBuffer::s_info))
        return throwVMTypeError(exec);
    ArrayBuffer* data(toArrayBuffer(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned usage(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSArrayBufferView::s_info))
        return throwVMTypeError(exec);
    ArrayBufferView* data(toArrayBufferView(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned usage(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    long long size(static_cast<long long>(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInteger(exec)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned usage(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->bufferData(target, size, usage, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferData(ExecState* exec)
{
    size_t argsCount = exec->argumentCount();
    JSValue arg1(exec->argument(1));
    if ((argsCount == 3 && (arg1.isNull() || (arg1.isObject() && asObject(arg1)->inherits(&JSArrayBuffer::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionBufferData1(exec);
    if ((argsCount == 3 && (arg1.isNull() || (arg1.isObject() && asObject(arg1)->inherits(&JSArrayBufferView::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionBufferData2(exec);
    if (argsCount == 3)
        return jsWebGLRenderingContextPrototypeFunctionBufferData3(exec);
    if (argsCount < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    long long offset(static_cast<long long>(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInteger(exec)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 2 && !exec->argument(2).isUndefinedOrNull() && !exec->argument(2).inherits(&JSArrayBuffer::s_info))
        return throwVMTypeError(exec);
    ArrayBuffer* data(toArrayBuffer(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    long long offset(static_cast<long long>(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInteger(exec)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 2 && !exec->argument(2).isUndefinedOrNull() && !exec->argument(2).inherits(&JSArrayBufferView::s_info))
        return throwVMTypeError(exec);
    ArrayBufferView* data(toArrayBufferView(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->bufferSubData(target, offset, data, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionBufferSubData(ExecState* exec)
{
    size_t argsCount = exec->argumentCount();
    JSValue arg2(exec->argument(2));
    if ((argsCount == 3 && (arg2.isNull() || (arg2.isObject() && asObject(arg2)->inherits(&JSArrayBuffer::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionBufferSubData1(exec);
    if ((argsCount == 3 && (arg2.isNull() || (arg2.isObject() && asObject(arg2)->inherits(&JSArrayBufferView::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionBufferSubData2(exec);
    if (argsCount < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = jsNumber(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned mask(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    float red(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float green(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float blue(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float alpha(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    float depth(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    int s(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    bool red(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toBoolean(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    bool green(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toBoolean(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    bool blue(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toBoolean(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    bool alpha(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toBoolean(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
        return throwVMTypeError(exec);
    WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->compileShader(shader, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCompressedTexImage2D(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 7)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int width(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int height(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int border(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 6 && !exec->argument(6).isUndefinedOrNull() && !exec->argument(6).inherits(&JSArrayBufferView::s_info))
        return throwVMTypeError(exec);
    ArrayBufferView* data(toArrayBufferView(MAYBE_MISSING_PARAMETER(exec, 6, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->compressedTexImage2D(target, level, internalformat, width, height, border, data);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionCompressedTexSubImage2D(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 8)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int width(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int height(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned format(MAYBE_MISSING_PARAMETER(exec, 6, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 7 && !exec->argument(7).isUndefinedOrNull() && !exec->argument(7).inherits(&JSArrayBufferView::s_info))
        return throwVMTypeError(exec);
    ArrayBufferView* data(toArrayBufferView(MAYBE_MISSING_PARAMETER(exec, 7, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, data);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 8)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int x(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int y(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int width(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int height(MAYBE_MISSING_PARAMETER(exec, 6, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int border(MAYBE_MISSING_PARAMETER(exec, 7, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 8)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int x(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int y(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int width(MAYBE_MISSING_PARAMETER(exec, 6, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int height(MAYBE_MISSING_PARAMETER(exec, 7, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());

    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());

    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());

    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());

    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());

    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned mode(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLBuffer::s_info))
        return throwVMTypeError(exec);
    WebGLBuffer* buffer(toWebGLBuffer(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLFramebuffer::s_info))
        return throwVMTypeError(exec);
    WebGLFramebuffer* framebuffer(toWebGLFramebuffer(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLRenderbuffer::s_info))
        return throwVMTypeError(exec);
    WebGLRenderbuffer* renderbuffer(toWebGLRenderbuffer(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
        return throwVMTypeError(exec);
    WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLTexture::s_info))
        return throwVMTypeError(exec);
    WebGLTexture* texture(toWebGLTexture(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned func(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    bool flag(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toBoolean(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    float zNear(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float zFar(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 1 && !exec->argument(1).isUndefinedOrNull() && !exec->argument(1).inherits(&JSWebGLShader::s_info))
        return throwVMTypeError(exec);
    WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned cap(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned index(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned mode(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int first(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int count(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned mode(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int count(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    long long offset(static_cast<long long>(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInteger(exec)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned cap(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned index(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned attachment(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned renderbuffertarget(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 3 && !exec->argument(3).isUndefinedOrNull() && !exec->argument(3).inherits(&JSWebGLRenderbuffer::s_info))
        return throwVMTypeError(exec);
    WebGLRenderbuffer* renderbuffer(toWebGLRenderbuffer(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 5)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned attachment(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned textarget(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 3 && !exec->argument(3).isUndefinedOrNull() && !exec->argument(3).inherits(&JSWebGLTexture::s_info))
        return throwVMTypeError(exec);
    WebGLTexture* texture(toWebGLTexture(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned mode(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned index(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned index(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    const String& name(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).isEmpty() ? String() : MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toString(exec)->value(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = jsNumber(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());

    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());

    JSC::JSValue result = jsNumber(impl->getError());
    return JSValue::encode(result);
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetExtension(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    return JSValue::encode(castedThis->getExtension(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetFramebufferAttachmentParameter(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = jsStringOrNull(exec, impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
        return throwVMTypeError(exec);
    WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

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

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetShaderPrecisionFormat(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned shadertype(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned precisiontype(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->getShaderPrecisionFormat(shadertype, precisiontype, 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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
        return throwVMTypeError(exec);
    WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

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

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetSupportedExtensions(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    return JSValue::encode(castedThis->getSupportedExtensions(exec));
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionGetTexParameter(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSWebGLRenderingContext::s_info))
        return throwVMTypeError(exec);
    JSWebGLRenderingContext* castedThis = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    const String& name(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).isEmpty() ? String() : MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toString(exec)->value(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned index(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned pname(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = jsNumber(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned mode(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLBuffer::s_info))
        return throwVMTypeError(exec);
    WebGLBuffer* buffer(toWebGLBuffer(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

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

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

    JSC::JSValue result = jsBoolean(impl->isContextLost());
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned cap(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = jsBoolean(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLFramebuffer::s_info))
        return throwVMTypeError(exec);
    WebGLFramebuffer* framebuffer(toWebGLFramebuffer(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = jsBoolean(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = jsBoolean(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLRenderbuffer::s_info))
        return throwVMTypeError(exec);
    WebGLRenderbuffer* renderbuffer(toWebGLRenderbuffer(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = jsBoolean(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
        return throwVMTypeError(exec);
    WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = jsBoolean(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLTexture::s_info))
        return throwVMTypeError(exec);
    WebGLTexture* texture(toWebGLTexture(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = jsBoolean(impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    float width(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned pname(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int param(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    float factor(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float units(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 7)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    int x(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int y(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int width(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int height(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned format(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 6 && !exec->argument(6).isUndefinedOrNull() && !exec->argument(6).inherits(&JSArrayBufferView::s_info))
        return throwVMTypeError(exec);
    ArrayBufferView* pixels(toArrayBufferView(MAYBE_MISSING_PARAMETER(exec, 6, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->readPixels(x, y, width, height, format, type, pixels, ec);
    setDOMException(exec, ec);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int width(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int height(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    float value(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    bool invert(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toBoolean(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    int x(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int y(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int width(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int height(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLShader::s_info))
        return throwVMTypeError(exec);
    WebGLShader* shader(toWebGLShader(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    const String& string(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).isEmpty() ? String() : MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toString(exec)->value(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned func(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int ref(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned mask(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned face(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned func(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int ref(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned mask(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned mask(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned face(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned mask(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned fail(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned zfail(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned zpass(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned face(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned fail(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned zfail(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned zpass(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned pname(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float param(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned pname(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int param(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 9)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int width(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int height(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int border(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned format(MAYBE_MISSING_PARAMETER(exec, 6, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 7, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 8 && !exec->argument(8).isUndefinedOrNull() && !exec->argument(8).inherits(&JSArrayBufferView::s_info))
        return throwVMTypeError(exec);
    ArrayBufferView* pixels(toArrayBufferView(MAYBE_MISSING_PARAMETER(exec, 8, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 6)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned format(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 5 && !exec->argument(5).isUndefinedOrNull() && !exec->argument(5).inherits(&JSImageData::s_info))
        return throwVMTypeError(exec);
    ImageData* pixels(toImageData(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 6)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned format(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 5 && !exec->argument(5).isUndefinedOrNull() && !exec->argument(5).inherits(&JSHTMLImageElement::s_info))
        return throwVMTypeError(exec);
    HTMLImageElement* image(toHTMLImageElement(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 6)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned format(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 5 && !exec->argument(5).isUndefinedOrNull() && !exec->argument(5).inherits(&JSHTMLCanvasElement::s_info))
        return throwVMTypeError(exec);
    HTMLCanvasElement* canvas(toHTMLCanvasElement(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 6)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned internalformat(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned format(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 5 && !exec->argument(5).isUndefinedOrNull() && !exec->argument(5).inherits(&JSHTMLVideoElement::s_info))
        return throwVMTypeError(exec);
    HTMLVideoElement* video(toHTMLVideoElement(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->texImage2D(target, level, internalformat, format, type, video, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D(ExecState* exec)
{
    size_t argsCount = exec->argumentCount();
    JSValue arg8(exec->argument(8));
    if ((argsCount == 9 && (arg8.isNull() || (arg8.isObject() && asObject(arg8)->inherits(&JSArrayBufferView::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D1(exec);
    JSValue arg5(exec->argument(5));
    if ((argsCount == 6 && (arg5.isNull() || (arg5.isObject() && asObject(arg5)->inherits(&JSImageData::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D2(exec);
    if ((argsCount == 6 && (arg5.isNull() || (arg5.isObject() && asObject(arg5)->inherits(&JSHTMLImageElement::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D3(exec);
    if ((argsCount == 6 && (arg5.isNull() || (arg5.isObject() && asObject(arg5)->inherits(&JSHTMLCanvasElement::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D4(exec);
    if ((argsCount == 6 && (arg5.isNull() || (arg5.isObject() && asObject(arg5)->inherits(&JSHTMLVideoElement::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionTexImage2D5(exec);
    if (argsCount < 6)
        return throwVMError(exec, createNotEnoughArgumentsError(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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 9)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int width(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int height(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned format(MAYBE_MISSING_PARAMETER(exec, 6, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 7, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 8 && !exec->argument(8).isUndefinedOrNull() && !exec->argument(8).inherits(&JSArrayBufferView::s_info))
        return throwVMTypeError(exec);
    ArrayBufferView* pixels(toArrayBufferView(MAYBE_MISSING_PARAMETER(exec, 8, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 7)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned format(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 6 && !exec->argument(6).isUndefinedOrNull() && !exec->argument(6).inherits(&JSImageData::s_info))
        return throwVMTypeError(exec);
    ImageData* pixels(toImageData(MAYBE_MISSING_PARAMETER(exec, 6, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 7)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned format(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 6 && !exec->argument(6).isUndefinedOrNull() && !exec->argument(6).inherits(&JSHTMLImageElement::s_info))
        return throwVMTypeError(exec);
    HTMLImageElement* image(toHTMLImageElement(MAYBE_MISSING_PARAMETER(exec, 6, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 7)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned format(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 6 && !exec->argument(6).isUndefinedOrNull() && !exec->argument(6).inherits(&JSHTMLCanvasElement::s_info))
        return throwVMTypeError(exec);
    HTMLCanvasElement* canvas(toHTMLCanvasElement(MAYBE_MISSING_PARAMETER(exec, 6, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 7)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned target(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int level(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int xoffset(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int yoffset(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned format(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    if (exec->argumentCount() > 6 && !exec->argument(6).isUndefinedOrNull() && !exec->argument(6).inherits(&JSHTMLVideoElement::s_info))
        return throwVMTypeError(exec);
    HTMLVideoElement* video(toHTMLVideoElement(MAYBE_MISSING_PARAMETER(exec, 6, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->texSubImage2D(target, level, xoffset, yoffset, format, type, video, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D(ExecState* exec)
{
    size_t argsCount = exec->argumentCount();
    JSValue arg8(exec->argument(8));
    if ((argsCount == 9 && (arg8.isNull() || (arg8.isObject() && asObject(arg8)->inherits(&JSArrayBufferView::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D1(exec);
    JSValue arg6(exec->argument(6));
    if ((argsCount == 7 && (arg6.isNull() || (arg6.isObject() && asObject(arg6)->inherits(&JSImageData::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D2(exec);
    if ((argsCount == 7 && (arg6.isNull() || (arg6.isObject() && asObject(arg6)->inherits(&JSHTMLImageElement::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D3(exec);
    if ((argsCount == 7 && (arg6.isNull() || (arg6.isObject() && asObject(arg6)->inherits(&JSHTMLCanvasElement::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D4(exec);
    if ((argsCount == 7 && (arg6.isNull() || (arg6.isObject() && asObject(arg6)->inherits(&JSHTMLVideoElement::s_info)))))
        return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D5(exec);
    if (argsCount < 7)
        return throwVMError(exec, createNotEnoughArgumentsError(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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
        return throwVMTypeError(exec);
    WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float x(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
        return throwVMTypeError(exec);
    WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int x(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
        return throwVMTypeError(exec);
    WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float x(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float y(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
        return throwVMTypeError(exec);
    WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int x(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int y(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
        return throwVMTypeError(exec);
    WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float x(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float y(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float z(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
        return throwVMTypeError(exec);
    WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int x(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int y(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int z(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 5)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
        return throwVMTypeError(exec);
    WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float x(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float y(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float z(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float w(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 5)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLUniformLocation::s_info))
        return throwVMTypeError(exec);
    WebGLUniformLocation* location(toWebGLUniformLocation(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int x(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int y(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int z(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int w(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    if (exec->argumentCount() > 0 && !exec->argument(0).isUndefinedOrNull() && !exec->argument(0).inherits(&JSWebGLProgram::s_info))
        return throwVMTypeError(exec);
    WebGLProgram* program(toWebGLProgram(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 2)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned indx(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float x(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 3)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned indx(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float x(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float y(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned indx(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float x(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float y(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float z(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 5)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    unsigned indx(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float x(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float y(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float z(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    float w(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toFloat(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 6)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    unsigned indx(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int size(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    unsigned type(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toUInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    bool normalized(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toBoolean(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int stride(MAYBE_MISSING_PARAMETER(exec, 4, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    long long offset(static_cast<long long>(MAYBE_MISSING_PARAMETER(exec, 5, DefaultIsUndefined).toInteger(exec)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->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 = jsCast<JSWebGLRenderingContext*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSWebGLRenderingContext::s_info);
    WebGLRenderingContext* impl = static_cast<WebGLRenderingContext*>(castedThis->impl());
    if (exec->argumentCount() < 4)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    int x(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int y(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int width(MAYBE_MISSING_PARAMETER(exec, 2, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    int height(MAYBE_MISSING_PARAMETER(exec, 3, DefaultIsUndefined).toInt32(exec));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());
    impl->viewport(x, y, width, height);
    return JSValue::encode(jsUndefined());
}

// Constant getters

JSValue jsWebGLRenderingContextDEPTH_BUFFER_BIT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x00000100));
}

JSValue jsWebGLRenderingContextSTENCIL_BUFFER_BIT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x00000400));
}

JSValue jsWebGLRenderingContextCOLOR_BUFFER_BIT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x00004000));
}

JSValue jsWebGLRenderingContextPOINTS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0000));
}

JSValue jsWebGLRenderingContextLINES(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0001));
}

JSValue jsWebGLRenderingContextLINE_LOOP(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0002));
}

JSValue jsWebGLRenderingContextLINE_STRIP(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0003));
}

JSValue jsWebGLRenderingContextTRIANGLES(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0004));
}

JSValue jsWebGLRenderingContextTRIANGLE_STRIP(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0005));
}

JSValue jsWebGLRenderingContextTRIANGLE_FAN(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0006));
}

JSValue jsWebGLRenderingContextZERO(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0));
}

JSValue jsWebGLRenderingContextONE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(1));
}

JSValue jsWebGLRenderingContextSRC_COLOR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0300));
}

JSValue jsWebGLRenderingContextONE_MINUS_SRC_COLOR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0301));
}

JSValue jsWebGLRenderingContextSRC_ALPHA(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0302));
}

JSValue jsWebGLRenderingContextONE_MINUS_SRC_ALPHA(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0303));
}

JSValue jsWebGLRenderingContextDST_ALPHA(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0304));
}

JSValue jsWebGLRenderingContextONE_MINUS_DST_ALPHA(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0305));
}

JSValue jsWebGLRenderingContextDST_COLOR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0306));
}

JSValue jsWebGLRenderingContextONE_MINUS_DST_COLOR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0307));
}

JSValue jsWebGLRenderingContextSRC_ALPHA_SATURATE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0308));
}

JSValue jsWebGLRenderingContextFUNC_ADD(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8006));
}

JSValue jsWebGLRenderingContextBLEND_EQUATION(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8009));
}

JSValue jsWebGLRenderingContextBLEND_EQUATION_RGB(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8009));
}

JSValue jsWebGLRenderingContextBLEND_EQUATION_ALPHA(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x883D));
}

JSValue jsWebGLRenderingContextFUNC_SUBTRACT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x800A));
}

JSValue jsWebGLRenderingContextFUNC_REVERSE_SUBTRACT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x800B));
}

JSValue jsWebGLRenderingContextBLEND_DST_RGB(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x80C8));
}

JSValue jsWebGLRenderingContextBLEND_SRC_RGB(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x80C9));
}

JSValue jsWebGLRenderingContextBLEND_DST_ALPHA(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x80CA));
}

JSValue jsWebGLRenderingContextBLEND_SRC_ALPHA(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x80CB));
}

JSValue jsWebGLRenderingContextCONSTANT_COLOR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8001));
}

JSValue jsWebGLRenderingContextONE_MINUS_CONSTANT_COLOR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8002));
}

JSValue jsWebGLRenderingContextCONSTANT_ALPHA(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8003));
}

JSValue jsWebGLRenderingContextONE_MINUS_CONSTANT_ALPHA(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8004));
}

JSValue jsWebGLRenderingContextBLEND_COLOR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8005));
}

JSValue jsWebGLRenderingContextARRAY_BUFFER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8892));
}

JSValue jsWebGLRenderingContextELEMENT_ARRAY_BUFFER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8893));
}

JSValue jsWebGLRenderingContextARRAY_BUFFER_BINDING(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8894));
}

JSValue jsWebGLRenderingContextELEMENT_ARRAY_BUFFER_BINDING(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8895));
}

JSValue jsWebGLRenderingContextSTREAM_DRAW(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x88E0));
}

JSValue jsWebGLRenderingContextSTATIC_DRAW(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x88E4));
}

JSValue jsWebGLRenderingContextDYNAMIC_DRAW(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x88E8));
}

JSValue jsWebGLRenderingContextBUFFER_SIZE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8764));
}

JSValue jsWebGLRenderingContextBUFFER_USAGE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8765));
}

JSValue jsWebGLRenderingContextCURRENT_VERTEX_ATTRIB(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8626));
}

JSValue jsWebGLRenderingContextFRONT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0404));
}

JSValue jsWebGLRenderingContextBACK(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0405));
}

JSValue jsWebGLRenderingContextFRONT_AND_BACK(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0408));
}

JSValue jsWebGLRenderingContextTEXTURE_2D(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0DE1));
}

JSValue jsWebGLRenderingContextCULL_FACE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B44));
}

JSValue jsWebGLRenderingContextBLEND(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0BE2));
}

JSValue jsWebGLRenderingContextDITHER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0BD0));
}

JSValue jsWebGLRenderingContextSTENCIL_TEST(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B90));
}

JSValue jsWebGLRenderingContextDEPTH_TEST(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B71));
}

JSValue jsWebGLRenderingContextSCISSOR_TEST(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0C11));
}

JSValue jsWebGLRenderingContextPOLYGON_OFFSET_FILL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8037));
}

JSValue jsWebGLRenderingContextSAMPLE_ALPHA_TO_COVERAGE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x809E));
}

JSValue jsWebGLRenderingContextSAMPLE_COVERAGE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x80A0));
}

JSValue jsWebGLRenderingContextNO_ERROR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0));
}

JSValue jsWebGLRenderingContextINVALID_ENUM(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0500));
}

JSValue jsWebGLRenderingContextINVALID_VALUE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0501));
}

JSValue jsWebGLRenderingContextINVALID_OPERATION(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0502));
}

JSValue jsWebGLRenderingContextOUT_OF_MEMORY(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0505));
}

JSValue jsWebGLRenderingContextCW(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0900));
}

JSValue jsWebGLRenderingContextCCW(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0901));
}

JSValue jsWebGLRenderingContextLINE_WIDTH(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B21));
}

JSValue jsWebGLRenderingContextALIASED_POINT_SIZE_RANGE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x846D));
}

JSValue jsWebGLRenderingContextALIASED_LINE_WIDTH_RANGE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x846E));
}

JSValue jsWebGLRenderingContextCULL_FACE_MODE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B45));
}

JSValue jsWebGLRenderingContextFRONT_FACE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B46));
}

JSValue jsWebGLRenderingContextDEPTH_RANGE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B70));
}

JSValue jsWebGLRenderingContextDEPTH_WRITEMASK(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B72));
}

JSValue jsWebGLRenderingContextDEPTH_CLEAR_VALUE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B73));
}

JSValue jsWebGLRenderingContextDEPTH_FUNC(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B74));
}

JSValue jsWebGLRenderingContextSTENCIL_CLEAR_VALUE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B91));
}

JSValue jsWebGLRenderingContextSTENCIL_FUNC(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B92));
}

JSValue jsWebGLRenderingContextSTENCIL_FAIL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B94));
}

JSValue jsWebGLRenderingContextSTENCIL_PASS_DEPTH_FAIL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B95));
}

JSValue jsWebGLRenderingContextSTENCIL_PASS_DEPTH_PASS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B96));
}

JSValue jsWebGLRenderingContextSTENCIL_REF(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B97));
}

JSValue jsWebGLRenderingContextSTENCIL_VALUE_MASK(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B93));
}

JSValue jsWebGLRenderingContextSTENCIL_WRITEMASK(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0B98));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_FUNC(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8800));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_FAIL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8801));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_FAIL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8802));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_PASS_DEPTH_PASS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8803));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_REF(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CA3));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_VALUE_MASK(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CA4));
}

JSValue jsWebGLRenderingContextSTENCIL_BACK_WRITEMASK(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CA5));
}

JSValue jsWebGLRenderingContextVIEWPORT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0BA2));
}

JSValue jsWebGLRenderingContextSCISSOR_BOX(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0C10));
}

JSValue jsWebGLRenderingContextCOLOR_CLEAR_VALUE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0C22));
}

JSValue jsWebGLRenderingContextCOLOR_WRITEMASK(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0C23));
}

JSValue jsWebGLRenderingContextUNPACK_ALIGNMENT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0CF5));
}

JSValue jsWebGLRenderingContextPACK_ALIGNMENT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0D05));
}

JSValue jsWebGLRenderingContextMAX_TEXTURE_SIZE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0D33));
}

JSValue jsWebGLRenderingContextMAX_VIEWPORT_DIMS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0D3A));
}

JSValue jsWebGLRenderingContextSUBPIXEL_BITS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0D50));
}

JSValue jsWebGLRenderingContextRED_BITS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0D52));
}

JSValue jsWebGLRenderingContextGREEN_BITS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0D53));
}

JSValue jsWebGLRenderingContextBLUE_BITS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0D54));
}

JSValue jsWebGLRenderingContextALPHA_BITS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0D55));
}

JSValue jsWebGLRenderingContextDEPTH_BITS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0D56));
}

JSValue jsWebGLRenderingContextSTENCIL_BITS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0D57));
}

JSValue jsWebGLRenderingContextPOLYGON_OFFSET_UNITS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x2A00));
}

JSValue jsWebGLRenderingContextPOLYGON_OFFSET_FACTOR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8038));
}

JSValue jsWebGLRenderingContextTEXTURE_BINDING_2D(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8069));
}

JSValue jsWebGLRenderingContextSAMPLE_BUFFERS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x80A8));
}

JSValue jsWebGLRenderingContextSAMPLES(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x80A9));
}

JSValue jsWebGLRenderingContextSAMPLE_COVERAGE_VALUE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x80AA));
}

JSValue jsWebGLRenderingContextSAMPLE_COVERAGE_INVERT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x80AB));
}

JSValue jsWebGLRenderingContextCOMPRESSED_TEXTURE_FORMATS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x86A3));
}

JSValue jsWebGLRenderingContextDONT_CARE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1100));
}

JSValue jsWebGLRenderingContextFASTEST(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1101));
}

JSValue jsWebGLRenderingContextNICEST(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1102));
}

JSValue jsWebGLRenderingContextGENERATE_MIPMAP_HINT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8192));
}

JSValue jsWebGLRenderingContextBYTE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1400));
}

JSValue jsWebGLRenderingContextUNSIGNED_BYTE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1401));
}

JSValue jsWebGLRenderingContextSHORT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1402));
}

JSValue jsWebGLRenderingContextUNSIGNED_SHORT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1403));
}

JSValue jsWebGLRenderingContextINT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1404));
}

JSValue jsWebGLRenderingContextUNSIGNED_INT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1405));
}

JSValue jsWebGLRenderingContextFLOAT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1406));
}

JSValue jsWebGLRenderingContextDEPTH_COMPONENT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1902));
}

JSValue jsWebGLRenderingContextALPHA(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1906));
}

JSValue jsWebGLRenderingContextRGB(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1907));
}

JSValue jsWebGLRenderingContextRGBA(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1908));
}

JSValue jsWebGLRenderingContextLUMINANCE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1909));
}

JSValue jsWebGLRenderingContextLUMINANCE_ALPHA(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x190A));
}

JSValue jsWebGLRenderingContextUNSIGNED_SHORT_4_4_4_4(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8033));
}

JSValue jsWebGLRenderingContextUNSIGNED_SHORT_5_5_5_1(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8034));
}

JSValue jsWebGLRenderingContextUNSIGNED_SHORT_5_6_5(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8363));
}

JSValue jsWebGLRenderingContextFRAGMENT_SHADER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B30));
}

JSValue jsWebGLRenderingContextVERTEX_SHADER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B31));
}

JSValue jsWebGLRenderingContextMAX_VERTEX_ATTRIBS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8869));
}

JSValue jsWebGLRenderingContextMAX_VERTEX_UNIFORM_VECTORS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8DFB));
}

JSValue jsWebGLRenderingContextMAX_VARYING_VECTORS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8DFC));
}

JSValue jsWebGLRenderingContextMAX_COMBINED_TEXTURE_IMAGE_UNITS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B4D));
}

JSValue jsWebGLRenderingContextMAX_VERTEX_TEXTURE_IMAGE_UNITS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B4C));
}

JSValue jsWebGLRenderingContextMAX_TEXTURE_IMAGE_UNITS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8872));
}

JSValue jsWebGLRenderingContextMAX_FRAGMENT_UNIFORM_VECTORS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8DFD));
}

JSValue jsWebGLRenderingContextSHADER_TYPE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B4F));
}

JSValue jsWebGLRenderingContextDELETE_STATUS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B80));
}

JSValue jsWebGLRenderingContextLINK_STATUS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B82));
}

JSValue jsWebGLRenderingContextVALIDATE_STATUS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B83));
}

JSValue jsWebGLRenderingContextATTACHED_SHADERS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B85));
}

JSValue jsWebGLRenderingContextACTIVE_UNIFORMS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B86));
}

JSValue jsWebGLRenderingContextACTIVE_ATTRIBUTES(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B89));
}

JSValue jsWebGLRenderingContextSHADING_LANGUAGE_VERSION(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B8C));
}

JSValue jsWebGLRenderingContextCURRENT_PROGRAM(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B8D));
}

JSValue jsWebGLRenderingContextNEVER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0200));
}

JSValue jsWebGLRenderingContextLESS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0201));
}

JSValue jsWebGLRenderingContextEQUAL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0202));
}

JSValue jsWebGLRenderingContextLEQUAL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0203));
}

JSValue jsWebGLRenderingContextGREATER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0204));
}

JSValue jsWebGLRenderingContextNOTEQUAL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0205));
}

JSValue jsWebGLRenderingContextGEQUAL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0206));
}

JSValue jsWebGLRenderingContextALWAYS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0207));
}

JSValue jsWebGLRenderingContextKEEP(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1E00));
}

JSValue jsWebGLRenderingContextREPLACE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1E01));
}

JSValue jsWebGLRenderingContextINCR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1E02));
}

JSValue jsWebGLRenderingContextDECR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1E03));
}

JSValue jsWebGLRenderingContextINVERT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x150A));
}

JSValue jsWebGLRenderingContextINCR_WRAP(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8507));
}

JSValue jsWebGLRenderingContextDECR_WRAP(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8508));
}

JSValue jsWebGLRenderingContextVENDOR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1F00));
}

JSValue jsWebGLRenderingContextRENDERER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1F01));
}

JSValue jsWebGLRenderingContextVERSION(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1F02));
}

JSValue jsWebGLRenderingContextNEAREST(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x2600));
}

JSValue jsWebGLRenderingContextLINEAR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x2601));
}

JSValue jsWebGLRenderingContextNEAREST_MIPMAP_NEAREST(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x2700));
}

JSValue jsWebGLRenderingContextLINEAR_MIPMAP_NEAREST(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x2701));
}

JSValue jsWebGLRenderingContextNEAREST_MIPMAP_LINEAR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x2702));
}

JSValue jsWebGLRenderingContextLINEAR_MIPMAP_LINEAR(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x2703));
}

JSValue jsWebGLRenderingContextTEXTURE_MAG_FILTER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x2800));
}

JSValue jsWebGLRenderingContextTEXTURE_MIN_FILTER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x2801));
}

JSValue jsWebGLRenderingContextTEXTURE_WRAP_S(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x2802));
}

JSValue jsWebGLRenderingContextTEXTURE_WRAP_T(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x2803));
}

JSValue jsWebGLRenderingContextTEXTURE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1702));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8513));
}

JSValue jsWebGLRenderingContextTEXTURE_BINDING_CUBE_MAP(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8514));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_X(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8515));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_X(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8516));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Y(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8517));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Y(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8518));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_POSITIVE_Z(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8519));
}

JSValue jsWebGLRenderingContextTEXTURE_CUBE_MAP_NEGATIVE_Z(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x851A));
}

JSValue jsWebGLRenderingContextMAX_CUBE_MAP_TEXTURE_SIZE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x851C));
}

JSValue jsWebGLRenderingContextTEXTURE0(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84C0));
}

JSValue jsWebGLRenderingContextTEXTURE1(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84C1));
}

JSValue jsWebGLRenderingContextTEXTURE2(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84C2));
}

JSValue jsWebGLRenderingContextTEXTURE3(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84C3));
}

JSValue jsWebGLRenderingContextTEXTURE4(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84C4));
}

JSValue jsWebGLRenderingContextTEXTURE5(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84C5));
}

JSValue jsWebGLRenderingContextTEXTURE6(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84C6));
}

JSValue jsWebGLRenderingContextTEXTURE7(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84C7));
}

JSValue jsWebGLRenderingContextTEXTURE8(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84C8));
}

JSValue jsWebGLRenderingContextTEXTURE9(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84C9));
}

JSValue jsWebGLRenderingContextTEXTURE10(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84CA));
}

JSValue jsWebGLRenderingContextTEXTURE11(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84CB));
}

JSValue jsWebGLRenderingContextTEXTURE12(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84CC));
}

JSValue jsWebGLRenderingContextTEXTURE13(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84CD));
}

JSValue jsWebGLRenderingContextTEXTURE14(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84CE));
}

JSValue jsWebGLRenderingContextTEXTURE15(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84CF));
}

JSValue jsWebGLRenderingContextTEXTURE16(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84D0));
}

JSValue jsWebGLRenderingContextTEXTURE17(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84D1));
}

JSValue jsWebGLRenderingContextTEXTURE18(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84D2));
}

JSValue jsWebGLRenderingContextTEXTURE19(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84D3));
}

JSValue jsWebGLRenderingContextTEXTURE20(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84D4));
}

JSValue jsWebGLRenderingContextTEXTURE21(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84D5));
}

JSValue jsWebGLRenderingContextTEXTURE22(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84D6));
}

JSValue jsWebGLRenderingContextTEXTURE23(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84D7));
}

JSValue jsWebGLRenderingContextTEXTURE24(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84D8));
}

JSValue jsWebGLRenderingContextTEXTURE25(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84D9));
}

JSValue jsWebGLRenderingContextTEXTURE26(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84DA));
}

JSValue jsWebGLRenderingContextTEXTURE27(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84DB));
}

JSValue jsWebGLRenderingContextTEXTURE28(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84DC));
}

JSValue jsWebGLRenderingContextTEXTURE29(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84DD));
}

JSValue jsWebGLRenderingContextTEXTURE30(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84DE));
}

JSValue jsWebGLRenderingContextTEXTURE31(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84DF));
}

JSValue jsWebGLRenderingContextACTIVE_TEXTURE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84E0));
}

JSValue jsWebGLRenderingContextREPEAT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x2901));
}

JSValue jsWebGLRenderingContextCLAMP_TO_EDGE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x812F));
}

JSValue jsWebGLRenderingContextMIRRORED_REPEAT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8370));
}

JSValue jsWebGLRenderingContextFLOAT_VEC2(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B50));
}

JSValue jsWebGLRenderingContextFLOAT_VEC3(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B51));
}

JSValue jsWebGLRenderingContextFLOAT_VEC4(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B52));
}

JSValue jsWebGLRenderingContextINT_VEC2(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B53));
}

JSValue jsWebGLRenderingContextINT_VEC3(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B54));
}

JSValue jsWebGLRenderingContextINT_VEC4(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B55));
}

JSValue jsWebGLRenderingContextBOOL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B56));
}

JSValue jsWebGLRenderingContextBOOL_VEC2(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B57));
}

JSValue jsWebGLRenderingContextBOOL_VEC3(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B58));
}

JSValue jsWebGLRenderingContextBOOL_VEC4(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B59));
}

JSValue jsWebGLRenderingContextFLOAT_MAT2(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B5A));
}

JSValue jsWebGLRenderingContextFLOAT_MAT3(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B5B));
}

JSValue jsWebGLRenderingContextFLOAT_MAT4(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B5C));
}

JSValue jsWebGLRenderingContextSAMPLER_2D(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B5E));
}

JSValue jsWebGLRenderingContextSAMPLER_CUBE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B60));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_ENABLED(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8622));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_SIZE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8623));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_STRIDE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8624));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_TYPE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8625));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_NORMALIZED(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x886A));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_POINTER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8645));
}

JSValue jsWebGLRenderingContextVERTEX_ATTRIB_ARRAY_BUFFER_BINDING(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x889F));
}

JSValue jsWebGLRenderingContextCOMPILE_STATUS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8B81));
}

JSValue jsWebGLRenderingContextLOW_FLOAT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8DF0));
}

JSValue jsWebGLRenderingContextMEDIUM_FLOAT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8DF1));
}

JSValue jsWebGLRenderingContextHIGH_FLOAT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8DF2));
}

JSValue jsWebGLRenderingContextLOW_INT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8DF3));
}

JSValue jsWebGLRenderingContextMEDIUM_INT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8DF4));
}

JSValue jsWebGLRenderingContextHIGH_INT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8DF5));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D40));
}

JSValue jsWebGLRenderingContextRENDERBUFFER(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D41));
}

JSValue jsWebGLRenderingContextRGBA4(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8056));
}

JSValue jsWebGLRenderingContextRGB5_A1(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8057));
}

JSValue jsWebGLRenderingContextRGB565(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D62));
}

JSValue jsWebGLRenderingContextDEPTH_COMPONENT16(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x81A5));
}

JSValue jsWebGLRenderingContextSTENCIL_INDEX(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x1901));
}

JSValue jsWebGLRenderingContextSTENCIL_INDEX8(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D48));
}

JSValue jsWebGLRenderingContextDEPTH_STENCIL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84F9));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_WIDTH(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D42));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_HEIGHT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D43));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_INTERNAL_FORMAT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D44));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_RED_SIZE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D50));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_GREEN_SIZE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D51));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_BLUE_SIZE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D52));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_ALPHA_SIZE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D53));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_DEPTH_SIZE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D54));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_STENCIL_SIZE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D55));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_TYPE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CD0));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_OBJECT_NAME(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CD1));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CD2));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CD3));
}

JSValue jsWebGLRenderingContextCOLOR_ATTACHMENT0(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CE0));
}

JSValue jsWebGLRenderingContextDEPTH_ATTACHMENT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D00));
}

JSValue jsWebGLRenderingContextSTENCIL_ATTACHMENT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8D20));
}

JSValue jsWebGLRenderingContextDEPTH_STENCIL_ATTACHMENT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x821A));
}

JSValue jsWebGLRenderingContextNONE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_COMPLETE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CD5));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_ATTACHMENT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CD6));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CD7));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_INCOMPLETE_DIMENSIONS(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CD9));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_UNSUPPORTED(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CDD));
}

JSValue jsWebGLRenderingContextFRAMEBUFFER_BINDING(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CA6));
}

JSValue jsWebGLRenderingContextRENDERBUFFER_BINDING(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x8CA7));
}

JSValue jsWebGLRenderingContextMAX_RENDERBUFFER_SIZE(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x84E8));
}

JSValue jsWebGLRenderingContextINVALID_FRAMEBUFFER_OPERATION(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x0506));
}

JSValue jsWebGLRenderingContextUNPACK_FLIP_Y_WEBGL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x9240));
}

JSValue jsWebGLRenderingContextUNPACK_PREMULTIPLY_ALPHA_WEBGL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x9241));
}

JSValue jsWebGLRenderingContextCONTEXT_LOST_WEBGL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x9242));
}

JSValue jsWebGLRenderingContextUNPACK_COLORSPACE_CONVERSION_WEBGL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x9243));
}

JSValue jsWebGLRenderingContextBROWSER_DEFAULT_WEBGL(ExecState* exec, JSValue, PropertyName)
{
    UNUSED_PARAM(exec);
    return jsNumber(static_cast<int>(0x9244));
}


}

#endif // ENABLE(WEBGL)
