bodaEnv.memory.globlProtoObj['WebGLDebugRendererInfo'] = function WebGLDebugRendererInfo() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['WebGLDebugRendererInfo'], "WebGLDebugRendererInfo");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDebugRendererInfo"].prototype, "UNMASKED_VENDOR_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 37445
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDebugRendererInfo"].prototype, "UNMASKED_RENDERER_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 37446
});
delete bodaEnv.memory.globlProtoObj['WebGLDebugRendererInfo'].prototype.constructor;
bodaEnv.memory.globlProtoObj['ANGLEInstancedArrays'] = function ANGLEInstancedArrays() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['ANGLEInstancedArrays'], "ANGLEInstancedArrays");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["ANGLEInstancedArrays"].prototype, "VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 35070
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["ANGLEInstancedArrays"].prototype, "drawArraysInstancedANGLE", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    drawArraysInstancedANGLE() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["ANGLEInstancedArrays"].prototype, "ANGLEInstancedArrays", "drawArraysInstancedANGLE", arguments);
    }
  }.drawArraysInstancedANGLE
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["ANGLEInstancedArrays"].prototype, "drawElementsInstancedANGLE", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    drawElementsInstancedANGLE() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["ANGLEInstancedArrays"].prototype, "ANGLEInstancedArrays", "drawElementsInstancedANGLE", arguments);
    }
  }.drawElementsInstancedANGLE
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["ANGLEInstancedArrays"].prototype, "vertexAttribDivisorANGLE", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    vertexAttribDivisorANGLE() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["ANGLEInstancedArrays"].prototype, "ANGLEInstancedArrays", "vertexAttribDivisorANGLE", arguments);
    }
  }.vertexAttribDivisorANGLE
});
delete bodaEnv.memory.globlProtoObj['ANGLEInstancedArrays'].prototype.constructor;
bodaEnv.memory.globlProtoObj['EXTBlendMinMax'] = function EXTBlendMinMax() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['EXTBlendMinMax'], "EXTBlendMinMax");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTBlendMinMax"].prototype, "MIN_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 32775
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTBlendMinMax"].prototype, "MAX_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 32776
});
delete bodaEnv.memory.globlProtoObj['EXTBlendMinMax'].prototype.constructor;
bodaEnv.memory.globlProtoObj['EXTColorBufferHalfFloat'] = function EXTColorBufferHalfFloat() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['EXTColorBufferHalfFloat'], "EXTColorBufferHalfFloat");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTColorBufferHalfFloat"].prototype, "RGBA16F_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34842
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTColorBufferHalfFloat"].prototype, "RGB16F_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34843
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTColorBufferHalfFloat"].prototype, "FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 33297
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTColorBufferHalfFloat"].prototype, "UNSIGNED_NORMALIZED_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 35863
});
delete bodaEnv.memory.globlProtoObj['EXTColorBufferHalfFloat'].prototype.constructor;
bodaEnv.memory.globlProtoObj['EXTDisjointTimerQuery'] = function EXTDisjointTimerQuery() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['EXTDisjointTimerQuery'], "EXTDisjointTimerQuery");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "QUERY_COUNTER_BITS_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34916
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "CURRENT_QUERY_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34917
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "QUERY_RESULT_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34918
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "QUERY_RESULT_AVAILABLE_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34919
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "TIME_ELAPSED_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 35007
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "TIMESTAMP_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36392
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "GPU_DISJOINT_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36795
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "beginQueryEXT", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    beginQueryEXT() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "EXTDisjointTimerQuery", "beginQueryEXT", arguments);
    }
  }.beginQueryEXT
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "createQueryEXT", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    createQueryEXT() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "EXTDisjointTimerQuery", "createQueryEXT", arguments);
    }
  }.createQueryEXT
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "deleteQueryEXT", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    deleteQueryEXT() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "EXTDisjointTimerQuery", "deleteQueryEXT", arguments);
    }
  }.deleteQueryEXT
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "endQueryEXT", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    endQueryEXT() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "EXTDisjointTimerQuery", "endQueryEXT", arguments);
    }
  }.endQueryEXT
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "getQueryEXT", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    getQueryEXT() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "EXTDisjointTimerQuery", "getQueryEXT", arguments);
    }
  }.getQueryEXT
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "getQueryObjectEXT", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    getQueryObjectEXT() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "EXTDisjointTimerQuery", "getQueryObjectEXT", arguments);
    }
  }.getQueryObjectEXT
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "isQueryEXT", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    isQueryEXT() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "EXTDisjointTimerQuery", "isQueryEXT", arguments);
    }
  }.isQueryEXT
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "queryCounterEXT", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    queryCounterEXT() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["EXTDisjointTimerQuery"].prototype, "EXTDisjointTimerQuery", "queryCounterEXT", arguments);
    }
  }.queryCounterEXT
});
delete bodaEnv.memory.globlProtoObj['EXTDisjointTimerQuery'].prototype.constructor;
bodaEnv.memory.globlProtoObj['EXTFloatBlend'] = function EXTFloatBlend() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['EXTFloatBlend'], "EXTFloatBlend");
delete bodaEnv.memory.globlProtoObj['EXTFloatBlend'].prototype.constructor;
bodaEnv.memory.globlProtoObj['EXTShaderTextureLOD'] = function EXTShaderTextureLOD() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['EXTShaderTextureLOD'], "EXTShaderTextureLOD");
delete bodaEnv.memory.globlProtoObj['EXTShaderTextureLOD'].prototype.constructor;
bodaEnv.memory.globlProtoObj['EXTFragDepth'] = function EXTFragDepth() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['EXTFragDepth'], "EXTFragDepth");
delete bodaEnv.memory.globlProtoObj['EXTFragDepth'].prototype.constructor;
bodaEnv.memory.globlProtoObj['EXTTextureCompressionBPTC'] = function EXTTextureCompressionBPTC() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['EXTTextureCompressionBPTC'], "EXTTextureCompressionBPTC");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTTextureCompressionBPTC"].prototype, "COMPRESSED_RGBA_BPTC_UNORM_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36492
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTTextureCompressionBPTC"].prototype, "COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36493
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTTextureCompressionBPTC"].prototype, "COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36494
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTTextureCompressionBPTC"].prototype, "COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36495
});
delete bodaEnv.memory.globlProtoObj['EXTTextureCompressionBPTC'].prototype.constructor;
bodaEnv.memory.globlProtoObj['EXTTextureCompressionRGTC'] = function EXTTextureCompressionRGTC() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['EXTTextureCompressionRGTC'], "EXTTextureCompressionRGTC");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTTextureCompressionRGTC"].prototype, "COMPRESSED_RED_RGTC1_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36283
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTTextureCompressionRGTC"].prototype, "COMPRESSED_SIGNED_RED_RGTC1_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36284
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTTextureCompressionRGTC"].prototype, "COMPRESSED_RED_GREEN_RGTC2_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36285
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTTextureCompressionRGTC"].prototype, "COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36286
});
delete bodaEnv.memory.globlProtoObj['EXTTextureCompressionRGTC'].prototype.constructor;
bodaEnv.memory.globlProtoObj['EXTTextureFilterAnisotropic'] = function EXTTextureFilterAnisotropic() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['EXTTextureFilterAnisotropic'], "EXTTextureFilterAnisotropic");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTTextureFilterAnisotropic"].prototype, "TEXTURE_MAX_ANISOTROPY_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34046
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTTextureFilterAnisotropic"].prototype, "MAX_TEXTURE_MAX_ANISOTROPY_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34047
});
delete bodaEnv.memory.globlProtoObj['EXTTextureFilterAnisotropic'].prototype.constructor;
bodaEnv.memory.globlProtoObj['EXTsRGB'] = function EXTsRGB() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['EXTsRGB'], "EXTsRGB");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTsRGB"].prototype, "SRGB_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 35904
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTsRGB"].prototype, "SRGB_ALPHA_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 35906
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTsRGB"].prototype, "SRGB8_ALPHA8_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 35907
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["EXTsRGB"].prototype, "FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 33296
});
delete bodaEnv.memory.globlProtoObj['EXTsRGB'].prototype.constructor;
bodaEnv.memory.globlProtoObj['KHRParallelShaderCompile'] = function KHRParallelShaderCompile() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['KHRParallelShaderCompile'], "KHRParallelShaderCompile");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["KHRParallelShaderCompile"].prototype, "COMPLETION_STATUS_KHR", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 37297
});
delete bodaEnv.memory.globlProtoObj['KHRParallelShaderCompile'].prototype.constructor;
bodaEnv.memory.globlProtoObj['OESElementIndexUint'] = function OESElementIndexUint() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['OESElementIndexUint'], "OESElementIndexUint");
delete bodaEnv.memory.globlProtoObj['OESElementIndexUint'].prototype.constructor;
bodaEnv.memory.globlProtoObj['OESFboRenderMipmap'] = function OESFboRenderMipmap() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['OESFboRenderMipmap'], "OESFboRenderMipmap");
delete bodaEnv.memory.globlProtoObj['OESFboRenderMipmap'].prototype.constructor;
bodaEnv.memory.globlProtoObj['OESStandardDerivatives'] = function OESStandardDerivatives() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['OESStandardDerivatives'], "OESStandardDerivatives");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["OESStandardDerivatives"].prototype, "FRAGMENT_SHADER_DERIVATIVE_HINT_OES", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 35723
});
delete bodaEnv.memory.globlProtoObj['OESStandardDerivatives'].prototype.constructor;
bodaEnv.memory.globlProtoObj['OESTextureFloat'] = function OESTextureFloat() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['OESTextureFloat'], "OESTextureFloat");
delete bodaEnv.memory.globlProtoObj['OESTextureFloat'].prototype.constructor;
bodaEnv.memory.globlProtoObj['OESTextureFloatLinear'] = function OESTextureFloatLinear() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['OESTextureFloatLinear'], "OESTextureFloatLinear");
delete bodaEnv.memory.globlProtoObj['OESTextureFloatLinear'].prototype.constructor;
bodaEnv.memory.globlProtoObj['OESTextureHalfFloat'] = function OESTextureHalfFloat() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['OESTextureHalfFloat'], "OESTextureHalfFloat");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["OESTextureHalfFloat"].prototype, "HALF_FLOAT_OES", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36193
});
delete bodaEnv.memory.globlProtoObj['OESTextureHalfFloat'].prototype.constructor;
bodaEnv.memory.globlProtoObj['OESTextureHalfFloatLinear'] = function OESTextureHalfFloatLinear() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['OESTextureHalfFloatLinear'], "OESTextureHalfFloatLinear");
delete bodaEnv.memory.globlProtoObj['OESTextureHalfFloatLinear'].prototype.constructor;
bodaEnv.memory.globlProtoObj['OESVertexArrayObject'] = function OESVertexArrayObject() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['OESVertexArrayObject'], "OESVertexArrayObject");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["OESVertexArrayObject"].prototype, "VERTEX_ARRAY_BINDING_OES", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34229
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["OESVertexArrayObject"].prototype, "bindVertexArrayOES", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    bindVertexArrayOES() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["OESVertexArrayObject"].prototype, "OESVertexArrayObject", "bindVertexArrayOES", arguments);
    }
  }.bindVertexArrayOES
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["OESVertexArrayObject"].prototype, "createVertexArrayOES", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    createVertexArrayOES() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["OESVertexArrayObject"].prototype, "OESVertexArrayObject", "createVertexArrayOES", arguments);
    }
  }.createVertexArrayOES
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["OESVertexArrayObject"].prototype, "deleteVertexArrayOES", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    deleteVertexArrayOES() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["OESVertexArrayObject"].prototype, "OESVertexArrayObject", "deleteVertexArrayOES", arguments);
    }
  }.deleteVertexArrayOES
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["OESVertexArrayObject"].prototype, "isVertexArrayOES", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    isVertexArrayOES() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["OESVertexArrayObject"].prototype, "OESVertexArrayObject", "isVertexArrayOES", arguments);
    }
  }.isVertexArrayOES
});
delete bodaEnv.memory.globlProtoObj['OESVertexArrayObject'].prototype.constructor;
bodaEnv.memory.globlProtoObj['WebGLColorBufferFloat'] = function WebGLColorBufferFloat() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['WebGLColorBufferFloat'], "WebGLColorBufferFloat");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLColorBufferFloat"].prototype, "RGBA32F_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34836
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLColorBufferFloat"].prototype, "FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 33297
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLColorBufferFloat"].prototype, "UNSIGNED_NORMALIZED_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 35863
});
delete bodaEnv.memory.globlProtoObj['WebGLColorBufferFloat'].prototype.constructor;
bodaEnv.memory.globlProtoObj['WebGLCompressedTextureS3TC'] = function WebGLCompressedTextureS3TC() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['WebGLCompressedTextureS3TC'], "WebGLCompressedTextureS3TC");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLCompressedTextureS3TC"].prototype, "COMPRESSED_RGB_S3TC_DXT1_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 33776
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLCompressedTextureS3TC"].prototype, "COMPRESSED_RGBA_S3TC_DXT1_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 33777
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLCompressedTextureS3TC"].prototype, "COMPRESSED_RGBA_S3TC_DXT3_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 33778
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLCompressedTextureS3TC"].prototype, "COMPRESSED_RGBA_S3TC_DXT5_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 33779
});
delete bodaEnv.memory.globlProtoObj['WebGLCompressedTextureS3TC'].prototype.constructor;
bodaEnv.memory.globlProtoObj['WebGLCompressedTextureS3TCsRGB'] = function WebGLCompressedTextureS3TCsRGB() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['WebGLCompressedTextureS3TCsRGB'], "WebGLCompressedTextureS3TCsRGB");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLCompressedTextureS3TCsRGB"].prototype, "COMPRESSED_SRGB_S3TC_DXT1_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 35916
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLCompressedTextureS3TCsRGB"].prototype, "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 35917
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLCompressedTextureS3TCsRGB"].prototype, "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 35918
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLCompressedTextureS3TCsRGB"].prototype, "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 35919
});
delete bodaEnv.memory.globlProtoObj['WebGLCompressedTextureS3TCsRGB'].prototype.constructor;
bodaEnv.memory.globlProtoObj['WebGLDebugShaders'] = function WebGLDebugShaders() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['WebGLDebugShaders'], "WebGLDebugShaders");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDebugShaders"].prototype, "getTranslatedShaderSource", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    getTranslatedShaderSource() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["WebGLDebugShaders"].prototype, "WebGLDebugShaders", "getTranslatedShaderSource", arguments);
    }
  }.getTranslatedShaderSource
});
delete bodaEnv.memory.globlProtoObj['WebGLDebugShaders'].prototype.constructor;
bodaEnv.memory.globlProtoObj['WebGLDepthTexture'] = function WebGLDepthTexture() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['WebGLDepthTexture'], "WebGLDepthTexture");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDepthTexture"].prototype, "UNSIGNED_INT_24_8_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34042
});
delete bodaEnv.memory.globlProtoObj['WebGLDepthTexture'].prototype.constructor;
bodaEnv.memory.globlProtoObj['WebGLDrawBuffers'] = function WebGLDrawBuffers() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['WebGLDrawBuffers'], "WebGLDrawBuffers");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT0_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36064
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT1_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36065
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT2_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36066
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT3_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36067
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT4_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36068
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT5_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36069
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT6_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36070
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT7_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36071
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT8_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36072
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT9_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36073
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT10_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36074
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT11_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36075
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT12_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36076
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT13_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36077
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT14_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36078
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "COLOR_ATTACHMENT15_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36079
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER0_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34853
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER1_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34854
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER2_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34855
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER3_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34856
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER4_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34857
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER5_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34858
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER6_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34859
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER7_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34860
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER8_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34861
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER9_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34862
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER10_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34863
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER11_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34864
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER12_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34865
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER13_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34866
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER14_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34867
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "DRAW_BUFFER15_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34868
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "MAX_COLOR_ATTACHMENTS_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 36063
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "MAX_DRAW_BUFFERS_WEBGL", {
  configurable: false,
  enumerable: true,
  writable: false,
  value: 34852
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "drawBuffersWEBGL", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    drawBuffersWEBGL() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["WebGLDrawBuffers"].prototype, "WebGLDrawBuffers", "drawBuffersWEBGL", arguments);
    }
  }.drawBuffersWEBGL
});
delete bodaEnv.memory.globlProtoObj['WebGLDrawBuffers'].prototype.constructor;
bodaEnv.memory.globlProtoObj['WebGLLoseContext'] = function WebGLLoseContext() {};
delete bodaEnv.memory.globlProtoObj['WebGLLoseContext'].prototype.constructor;
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['WebGLLoseContext'], "WebGLLoseContext");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj['WebGLLoseContext'].prototype, "loseContext", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    loseContext() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj['WebGLLoseContext'].prototype, "WebGLLoseContext", "loseContext", arguments);
    }
  }.loseContext
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj['WebGLLoseContext'].prototype, "restoreContext", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    restoreContext() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj['WebGLLoseContext'].prototype, "WebGLLoseContext", "restoreContext", arguments);
    }
  }.restoreContext
});
bodaEnv.memory.globlProtoObj['WebGLMultiDraw'] = function WebGLMultiDraw() {};
bodaEnv.toolsFunc.safeProto(bodaEnv.memory.globlProtoObj['WebGLMultiDraw'], "WebGLMultiDraw");
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLMultiDraw"].prototype, "multiDrawArraysInstancedWEBGL", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    multiDrawArraysInstancedWEBGL() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["WebGLMultiDraw"].prototype, "WebGLMultiDraw", "multiDrawArraysInstancedWEBGL", arguments);
    }
  }.multiDrawArraysInstancedWEBGL
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLMultiDraw"].prototype, "multiDrawArraysWEBGL", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    multiDrawArraysWEBGL() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["WebGLMultiDraw"].prototype, "WebGLMultiDraw", "multiDrawArraysWEBGL", arguments);
    }
  }.multiDrawArraysWEBGL
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLMultiDraw"].prototype, "multiDrawElementsInstancedWEBGL", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    multiDrawElementsInstancedWEBGL() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["WebGLMultiDraw"].prototype, "WebGLMultiDraw", "multiDrawElementsInstancedWEBGL", arguments);
    }
  }.multiDrawElementsInstancedWEBGL
});
bodaEnv.toolsFunc.defineProperty(bodaEnv.memory.globlProtoObj["WebGLMultiDraw"].prototype, "multiDrawElementsWEBGL", {
  configurable: true,
  enumerable: true,
  writable: true,
  value: {
    multiDrawElementsWEBGL() {
      return bodaEnv.toolsFunc.dispatch(this, bodaEnv.memory.globlProtoObj["WebGLMultiDraw"].prototype, "WebGLMultiDraw", "multiDrawElementsWEBGL", arguments);
    }
  }.multiDrawElementsWEBGL
});
delete bodaEnv.memory.globlProtoObj['WebGLMultiDraw'].prototype.constructor;