Drop [StrictTypeChecking] in cases where it is a no-op
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 31 Jul 2016 23:36:20 +0000 (23:36 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 31 Jul 2016 23:36:20 +0000 (23:36 +0000)
https://bugs.webkit.org/show_bug.cgi?id=160387

Reviewed by Darin Adler.

Drop [StrictTypeChecking] in cases where it is a no-op. After r203949 & r203950,
[StrictTypeChecking] only has an impact when used on operation parameters of
string types and is currently used as a workaround for bugs in our overload
resolution algorithm.

* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCRtpSender.idl:
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/TestTypedefs.idl:
* html/canvas/ANGLEInstancedArrays.idl:
* html/canvas/OESVertexArrayObject.idl:
* html/canvas/WebGL2RenderingContext.idl:
* html/canvas/WebGLDebugShaders.idl:
* html/canvas/WebGLLoseContext.idl:
* html/canvas/WebGLRenderingContextBase.idl:
* svg/SVGAngle.idl:
* svg/SVGColor.idl:
* svg/SVGLength.idl:
* svg/SVGLengthList.idl:
* svg/SVGMatrix.idl:
* svg/SVGNumberList.idl:
* svg/SVGPaint.idl:
* svg/SVGPathSegList.idl:
* svg/SVGPoint.idl:
* svg/SVGPointList.idl:
* svg/SVGStringList.idl:
* svg/SVGTransform.idl:
* svg/SVGTransformList.idl:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@203956 268f45cc-cd09-0410-ab3c-d52691b4dbfc

29 files changed:
Source/WebCore/ChangeLog
Source/WebCore/Modules/mediastream/RTCPeerConnection.idl
Source/WebCore/Modules/mediastream/RTCRtpSender.idl
Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp
Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.h
Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.h
Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm
Source/WebCore/bindings/scripts/test/TestObj.idl
Source/WebCore/bindings/scripts/test/TestTypedefs.idl
Source/WebCore/html/canvas/ANGLEInstancedArrays.idl
Source/WebCore/html/canvas/OESVertexArrayObject.idl
Source/WebCore/html/canvas/WebGL2RenderingContext.idl
Source/WebCore/html/canvas/WebGLDebugShaders.idl
Source/WebCore/html/canvas/WebGLLoseContext.idl
Source/WebCore/html/canvas/WebGLRenderingContextBase.idl
Source/WebCore/svg/SVGAngle.idl
Source/WebCore/svg/SVGColor.idl
Source/WebCore/svg/SVGLength.idl
Source/WebCore/svg/SVGLengthList.idl
Source/WebCore/svg/SVGMatrix.idl
Source/WebCore/svg/SVGNumberList.idl
Source/WebCore/svg/SVGPaint.idl
Source/WebCore/svg/SVGPathSegList.idl
Source/WebCore/svg/SVGPoint.idl
Source/WebCore/svg/SVGPointList.idl
Source/WebCore/svg/SVGStringList.idl
Source/WebCore/svg/SVGTransform.idl
Source/WebCore/svg/SVGTransformList.idl

index 102c671..296d22b 100644 (file)
@@ -1,3 +1,39 @@
+2016-07-31  Chris Dumez  <cdumez@apple.com>
+
+        Drop [StrictTypeChecking] in cases where it is a no-op
+        https://bugs.webkit.org/show_bug.cgi?id=160387
+
+        Reviewed by Darin Adler.
+
+        Drop [StrictTypeChecking] in cases where it is a no-op. After r203949 & r203950,
+        [StrictTypeChecking] only has an impact when used on operation parameters of
+        string types and is currently used as a workaround for bugs in our overload
+        resolution algorithm.
+
+        * Modules/mediastream/RTCPeerConnection.idl:
+        * Modules/mediastream/RTCRtpSender.idl:
+        * bindings/scripts/test/TestObj.idl:
+        * bindings/scripts/test/TestTypedefs.idl:
+        * html/canvas/ANGLEInstancedArrays.idl:
+        * html/canvas/OESVertexArrayObject.idl:
+        * html/canvas/WebGL2RenderingContext.idl:
+        * html/canvas/WebGLDebugShaders.idl:
+        * html/canvas/WebGLLoseContext.idl:
+        * html/canvas/WebGLRenderingContextBase.idl:
+        * svg/SVGAngle.idl:
+        * svg/SVGColor.idl:
+        * svg/SVGLength.idl:
+        * svg/SVGLengthList.idl:
+        * svg/SVGMatrix.idl:
+        * svg/SVGNumberList.idl:
+        * svg/SVGPaint.idl:
+        * svg/SVGPathSegList.idl:
+        * svg/SVGPoint.idl:
+        * svg/SVGPointList.idl:
+        * svg/SVGStringList.idl:
+        * svg/SVGTransform.idl:
+        * svg/SVGTransformList.idl:
+
 2016-07-31  Nan Wang  <n_wang@apple.com>
 
         AX: Add a check for touch event listener on iOS accessibility object
index fecdabf..2ad1394 100644 (file)
     sequence<RTCRtpReceiver> getReceivers();
     sequence<RTCRtpTransceiver> getTransceivers();
 
-    [PrivateIdentifier, PublicIdentifier, StrictTypeChecking, RaisesException] RTCRtpSender addTrack(MediaStreamTrack track, MediaStream... streams);
-    [PrivateIdentifier, PublicIdentifier, StrictTypeChecking, RaisesException] void removeTrack(RTCRtpSender sender);
+    [PrivateIdentifier, PublicIdentifier, RaisesException] RTCRtpSender addTrack(MediaStreamTrack track, MediaStream... streams);
+    [PrivateIdentifier, PublicIdentifier, RaisesException] void removeTrack(RTCRtpSender sender);
 
-    [StrictTypeChecking, RaisesException] RTCRtpTransceiver addTransceiver(MediaStreamTrack track, optional RTCRtpTransceiverInit init);
-    [StrictTypeChecking, RaisesException] RTCRtpTransceiver addTransceiver(DOMString kind, optional RTCRtpTransceiverInit init);
+    [RaisesException] RTCRtpTransceiver addTransceiver(MediaStreamTrack track, optional RTCRtpTransceiverInit init);
+    [RaisesException] RTCRtpTransceiver addTransceiver(DOMString kind, optional RTCRtpTransceiverInit init);
 
     // Legacy MediaSream-based API (implemented on top of the RTP Media API)
     [JSBuiltin] sequence<MediaStream> getLocalStreams();
index 434d7a6..e5a3478 100644 (file)
@@ -33,5 +33,5 @@
 ] interface RTCRtpSender {
     readonly attribute MediaStreamTrack? track;
 
-    [StrictTypeChecking, RaisesException] Promise replaceTrack(MediaStreamTrack withTrack);
+    [RaisesException] Promise replaceTrack(MediaStreamTrack withTrack);
 };
index 0bddcbd..cbe0a9c 100644 (file)
@@ -1952,42 +1952,6 @@ void webkit_dom_test_obj_orange(WebKitDOMTestObj* self)
     item->banana();
 }
 
-gboolean webkit_dom_test_obj_strict_function(WebKitDOMTestObj* self, const gchar* str, gfloat a, glong b, GError** error)
-{
-    WebCore::JSMainThreadNullState state;
-    g_return_val_if_fail(WEBKIT_DOM_IS_TEST_OBJ(self), FALSE);
-    g_return_val_if_fail(str, FALSE);
-    g_return_val_if_fail(!error || !*error, FALSE);
-    WebCore::TestObj* item = WebKit::core(self);
-    WTF::String convertedStr = WTF::String::fromUTF8(str);
-    WebCore::ExceptionCode ec = 0;
-    gboolean result = item->strictFunction(convertedStr, a, b, ec);
-    if (ec) {
-        WebCore::ExceptionCodeDescription ecdesc(ec);
-        g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
-    }
-    return result;
-}
-
-gboolean webkit_dom_test_obj_strict_function_with_array(WebKitDOMTestObj* self, WebKitDOMTestObj* objArg, glong array, GError** error)
-{
-    WebCore::JSMainThreadNullState state;
-    g_return_val_if_fail(WEBKIT_DOM_IS_TEST_OBJ(self), FALSE);
-    g_return_val_if_fail(WEBKIT_DOM_IS_TEST_OBJ(objArg), FALSE);
-    g_return_val_if_fail(WEBKIT_DOM_IS_LONG[](array), FALSE);
-    g_return_val_if_fail(!error || !*error, FALSE);
-    WebCore::TestObj* item = WebKit::core(self);
-    WebCore::TestObj* convertedObjArg = WebKit::core(objArg);
-    WebCore::long[]* convertedArray = WebKit::core(array);
-    WebCore::ExceptionCode ec = 0;
-    gboolean result = item->strictFunctionWithArray(*convertedObjArg, array, ec);
-    if (ec) {
-        WebCore::ExceptionCodeDescription ecdesc(ec);
-        g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name);
-    }
-    return result;
-}
-
 void webkit_dom_test_obj_variadic_string_method(WebKitDOMTestObj* self, const gchar* head, ...)
 {
     WebCore::JSMainThreadNullState state;
index 1eea6a5..140edac 100644 (file)
@@ -900,35 +900,6 @@ WEBKIT_API void
 webkit_dom_test_obj_orange(WebKitDOMTestObj* self);
 
 /**
- * webkit_dom_test_obj_strict_function:
- * @self: A #WebKitDOMTestObj
- * @str: A #gchar
- * @a: A #gfloat
- * @b: A #glong
- * @error: #GError
- *
- * Returns: A #gboolean
- *
- * Stability: Unstable
-**/
-WEBKIT_API gboolean
-webkit_dom_test_obj_strict_function(WebKitDOMTestObj* self, const gchar* str, gfloat a, glong b, GError** error);
-
-/**
- * webkit_dom_test_obj_strict_function_with_array:
- * @self: A #WebKitDOMTestObj
- * @objArg: A #WebKitDOMTestObj
- * @array: A #glong
- * @error: #GError
- *
- * Returns: A #gboolean
- *
- * Stability: Unstable
-**/
-WEBKIT_API gboolean
-webkit_dom_test_obj_strict_function_with_array(WebKitDOMTestObj* self, WebKitDOMTestObj* objArg, glong array, GError** error);
-
-/**
  * webkit_dom_test_obj_variadic_string_method:
  * @self: A #WebKitDOMTestObj
  * @head: A #gchar
index 3f336a7..10be464 100644 (file)
@@ -691,9 +691,6 @@ JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionConvert4(JSC::ExecSt
 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMutablePointFunction(JSC::ExecState*);
 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionImmutablePointFunction(JSC::ExecState*);
 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOrange(JSC::ExecState*);
-JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionStrictFunction(JSC::ExecState*);
-JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionStrictFunctionWithSequence(JSC::ExecState*);
-JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionStrictFunctionWithArray(JSC::ExecState*);
 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionVariadicStringMethod(JSC::ExecState*);
 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionVariadicDoubleMethod(JSC::ExecState*);
 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionVariadicNodeMethod(JSC::ExecState*);
@@ -1265,9 +1262,6 @@ static const HashTableValue JSTestObjPrototypeTableValues[] =
     { "mutablePointFunction", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMutablePointFunction), (intptr_t) (0) } },
     { "immutablePointFunction", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionImmutablePointFunction), (intptr_t) (0) } },
     { "orange", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionOrange), (intptr_t) (0) } },
-    { "strictFunction", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionStrictFunction), (intptr_t) (3) } },
-    { "strictFunctionWithSequence", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionStrictFunctionWithSequence), (intptr_t) (2) } },
-    { "strictFunctionWithArray", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionStrictFunctionWithArray), (intptr_t) (2) } },
     { "variadicStringMethod", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionVariadicStringMethod), (intptr_t) (1) } },
     { "variadicDoubleMethod", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionVariadicDoubleMethod), (intptr_t) (1) } },
     { "variadicNodeMethod", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionVariadicNodeMethod), (intptr_t) (1) } },
@@ -5871,81 +5865,6 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOrange(ExecState* state)
     return JSValue::encode(jsUndefined());
 }
 
-EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionStrictFunction(ExecState* state)
-{
-    JSValue thisValue = state->thisValue();
-    auto castedThis = jsDynamicCast<JSTestObj*>(thisValue);
-    if (UNLIKELY(!castedThis))
-        return throwThisTypeError(*state, "TestObject", "strictFunction");
-    ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
-    auto& impl = castedThis->wrapped();
-    if (UNLIKELY(state->argumentCount() < 3))
-        return throwVMError(state, createNotEnoughArgumentsError(state));
-    ExceptionCode ec = 0;
-    auto str = state->argument(0).toWTFString(state);
-    if (UNLIKELY(state->hadException()))
-        return JSValue::encode(jsUndefined());
-    auto a = convert<float>(*state, state->argument(1), ShouldAllowNonFinite::Yes);
-    if (UNLIKELY(state->hadException()))
-        return JSValue::encode(jsUndefined());
-    auto b = convert<int32_t>(*state, state->argument(2), NormalConversion);
-    if (UNLIKELY(state->hadException()))
-        return JSValue::encode(jsUndefined());
-    JSValue result = jsBoolean(impl.strictFunction(WTFMove(str), WTFMove(a), WTFMove(b), ec));
-
-    setDOMException(state, ec);
-    return JSValue::encode(result);
-}
-
-EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionStrictFunctionWithSequence(ExecState* state)
-{
-    JSValue thisValue = state->thisValue();
-    auto castedThis = jsDynamicCast<JSTestObj*>(thisValue);
-    if (UNLIKELY(!castedThis))
-        return throwThisTypeError(*state, "TestObject", "strictFunctionWithSequence");
-    ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
-    auto& impl = castedThis->wrapped();
-    if (UNLIKELY(state->argumentCount() < 2))
-        return throwVMError(state, createNotEnoughArgumentsError(state));
-    ExceptionCode ec = 0;
-    TestObj* objArg = nullptr;
-    if (!state->argument(0).isUndefinedOrNull()) {
-        objArg = JSTestObj::toWrapped(state->uncheckedArgument(0));
-        if (UNLIKELY(!objArg))
-            return throwArgumentTypeError(*state, 0, "objArg", "TestObject", "strictFunctionWithSequence", "TestObj");
-    }
-    auto a = toNativeArray<uint32_t>(*state, state->argument(1));
-    if (UNLIKELY(state->hadException()))
-        return JSValue::encode(jsUndefined());
-    JSValue result = jsBoolean(impl.strictFunctionWithSequence(WTFMove(objArg), WTFMove(a), ec));
-
-    setDOMException(state, ec);
-    return JSValue::encode(result);
-}
-
-EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionStrictFunctionWithArray(ExecState* state)
-{
-    JSValue thisValue = state->thisValue();
-    auto castedThis = jsDynamicCast<JSTestObj*>(thisValue);
-    if (UNLIKELY(!castedThis))
-        return throwThisTypeError(*state, "TestObject", "strictFunctionWithArray");
-    ASSERT_GC_OBJECT_INHERITS(castedThis, JSTestObj::info());
-    auto& impl = castedThis->wrapped();
-    if (UNLIKELY(state->argumentCount() < 2))
-        return throwVMError(state, createNotEnoughArgumentsError(state));
-    ExceptionCode ec = 0;
-    auto objArg = JSTestObj::toWrapped(state->argument(0));
-    if (UNLIKELY(!objArg))
-        return throwArgumentTypeError(*state, 0, "objArg", "TestObject", "strictFunctionWithArray", "TestObj");
-    auto array = toNativeArray<int32_t>(*state, state->argument(1));
-    if (UNLIKELY(state->hadException()))
-        return JSValue::encode(jsUndefined());
-    JSValue result = jsBoolean(impl.strictFunctionWithArray(*objArg, WTFMove(array), ec));
-
-    setDOMException(state, ec);
-    return JSValue::encode(result);
-}
-
 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionVariadicStringMethod(ExecState* state)
 {
     JSValue thisValue = state->thisValue();
index c0c1c8b..2bd0414 100644 (file)
@@ -213,7 +213,6 @@ WEBCORE_EXPORT @interface DOMTestObj : DOMObject
 - (DOMSVGPoint *)mutablePointFunction;
 - (DOMSVGPoint *)immutablePointFunction;
 - (void)orange;
-- (BOOL)strictFunction:(NSString *)str a:(float)a b:(int)b;
 - (void)any:(float)a b:(int)b;
 - (void)attachShadowRoot:(DOMTestDictionary *)init;
 @end
index d4d02ff..ca84774 100644 (file)
     IMPL->banana();
 }
 
-- (BOOL)strictFunction:(NSString *)str a:(float)a b:(int)b
-{
-    WebCore::JSMainThreadNullState state;
-    WebCore::ExceptionCode ec = 0;
-    BOOL result = IMPL->strictFunction(str, a, b, ec);
-    WebCore::raiseOnDOMError(ec);
-    return result;
-}
-
 - (void)any:(float)a b:(int)b
 {
     WebCore::JSMainThreadNullState state;
index 4147a1a..30252a8 100644 (file)
@@ -309,11 +309,6 @@ enum TestConfidence { "high", "kinda-low" };
     [ImplementedAs=banana] void orange();
     [ImplementedAs=blueberry] attribute long strawberry;
 
-    [StrictTypeChecking, RaisesException] boolean strictFunction(DOMString str, unrestricted float a, long b);
-
-    [StrictTypeChecking, RaisesException] boolean strictFunctionWithSequence(TestObj? objArg, sequence<unsigned long> a);
-    [StrictTypeChecking, RaisesException] boolean strictFunctionWithArray(TestObj objArg, long[] array);
-
     // ObjectiveC reserved words.
     readonly attribute long      description;
     attribute long               id;
index 444f1bb..37fc0da 100644 (file)
@@ -40,7 +40,7 @@
     
     static readonly attribute T TestSubObj;
 
-    [StrictTypeChecking] void func(optional ARRAY_OF_LONGS x = []);
+    void func(optional ARRAY_OF_LONGS x = []);
 
     void setShadow(DOUBLE width, DOUBLE height, unrestricted float blur, [StrictTypeChecking] optional STRING color, optional DOUBLE alpha);
 
index 95d7ebd..bf15db1 100644 (file)
@@ -30,7 +30,7 @@
 ] interface ANGLEInstancedArrays {
     const GLenum VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE;
 
-    [StrictTypeChecking] void drawArraysInstancedANGLE(unsigned long mode, long first, long count, long primcount);
-    [StrictTypeChecking] void drawElementsInstancedANGLE(unsigned long mode, long count, unsigned long type, long long offset, long primcount);
-    [StrictTypeChecking] void vertexAttribDivisorANGLE(unsigned long index, unsigned long divisor);
+    void drawArraysInstancedANGLE(unsigned long mode, long first, long count, long primcount);
+    void drawElementsInstancedANGLE(unsigned long mode, long count, unsigned long type, long long offset, long primcount);
+    void vertexAttribDivisorANGLE(unsigned long index, unsigned long divisor);
 };
index 861ed8a..1061257 100644 (file)
@@ -31,8 +31,8 @@
 ] interface OESVertexArrayObject {
     const unsigned long VERTEX_ARRAY_BINDING_OES = 0x85B5;
 
-    [StrictTypeChecking] WebGLVertexArrayObjectOES createVertexArrayOES();
-    [StrictTypeChecking] void deleteVertexArrayOES(optional WebGLVertexArrayObjectOES? arrayObject = null);
-    [StrictTypeChecking] boolean isVertexArrayOES(optional WebGLVertexArrayObjectOES? arrayObject = null);
-    [StrictTypeChecking, RaisesException] void bindVertexArrayOES(optional WebGLVertexArrayObjectOES? arrayObject = null);
+    WebGLVertexArrayObjectOES createVertexArrayOES();
+    void deleteVertexArrayOES(optional WebGLVertexArrayObjectOES? arrayObject = null);
+    boolean isVertexArrayOES(optional WebGLVertexArrayObjectOES? arrayObject = null);
+    [RaisesException] void bindVertexArrayOES(optional WebGLVertexArrayObjectOES? arrayObject = null);
 };
index a641809..cc353e3 100644 (file)
@@ -332,125 +332,125 @@ typedef unrestricted float GLclampf;
     const GLuint64 TIMEOUT_IGNORED                             = 0xFFFFFFFFFFFFFFFF;
 
     /* Buffer objects */
-    [StrictTypeChecking] void copyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+    void copyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
     // MapBufferRange, in particular its read-only and write-only modes,
     // can not be exposed safely to JavaScript. GetBufferSubData
     // replaces it for the purpose of fetching data back from the GPU.
-    [StrictTypeChecking] void getBufferSubData(GLenum target, GLintptr offset, ArrayBuffer? returnedData);
+    void getBufferSubData(GLenum target, GLintptr offset, ArrayBuffer? returnedData);
 
     /* Framebuffer objects */
-    [StrictTypeChecking] void blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-    [StrictTypeChecking] void framebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
-    [StrictTypeChecking, Custom] any getInternalformatParameter(GLenum target, GLenum internalformat, GLenum pname);
-    [StrictTypeChecking] void invalidateFramebuffer(GLenum target, sequence<GLenum> attachments);
-    [StrictTypeChecking] void invalidateSubFramebuffer(GLenum target, sequence<GLenum> attachments, GLint x, GLint y, GLsizei width, GLsizei height);
-    [StrictTypeChecking] void readBuffer(GLenum src);
+    void blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+    void framebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+    [Custom] any getInternalformatParameter(GLenum target, GLenum internalformat, GLenum pname);
+    void invalidateFramebuffer(GLenum target, sequence<GLenum> attachments);
+    void invalidateSubFramebuffer(GLenum target, sequence<GLenum> attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+    void readBuffer(GLenum src);
 
     /* Renderbuffer objects */
-    [StrictTypeChecking] void renderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+    void renderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
 
     /* Texture objects */
-    [StrictTypeChecking] void texStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
-    [StrictTypeChecking] void texStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
-    [StrictTypeChecking] void texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, ArrayBufferView? pixels);
-    [StrictTypeChecking] void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, ArrayBufferView? pixels);
-    [StrictTypeChecking] void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, ImageData? source);
-    [StrictTypeChecking] void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, HTMLImageElement? source);
-    [StrictTypeChecking] void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, HTMLCanvasElement? source);
-    [StrictTypeChecking] void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, HTMLVideoElement? source);
-    [StrictTypeChecking] void copyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-    [StrictTypeChecking] void compressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, ArrayBufferView? data);
-    [StrictTypeChecking] void compressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, ArrayBufferView? data);
+    void texStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+    void texStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+    void texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, ArrayBufferView? pixels);
+    void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, ArrayBufferView? pixels);
+    void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, ImageData? source);
+    void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, HTMLImageElement? source);
+    void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, HTMLCanvasElement? source);
+    void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, HTMLVideoElement? source);
+    void copyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+    void compressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, ArrayBufferView? data);
+    void compressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, ArrayBufferView? data);
 
     /* Programs and shaders */
-    [StrictTypeChecking] GLint getFragDataLocation(WebGLProgram? program, DOMString name);
+    GLint getFragDataLocation(WebGLProgram? program, DOMString name);
 
     /* Uniforms and attributes */
-    [StrictTypeChecking] void uniform1ui(WebGLUniformLocation? location, GLuint v0);
-    [StrictTypeChecking] void uniform2ui(WebGLUniformLocation? location, GLuint v0, GLuint v1);
-    [StrictTypeChecking] void uniform3ui(WebGLUniformLocation? location, GLuint v0, GLuint v1, GLuint v2);
-    [StrictTypeChecking] void uniform4ui(WebGLUniformLocation? location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
-    [StrictTypeChecking] void uniform1uiv(WebGLUniformLocation? location, Uint32Array? value);
-    [StrictTypeChecking] void uniform2uiv(WebGLUniformLocation? location, Uint32Array? value);
-    [StrictTypeChecking] void uniform3uiv(WebGLUniformLocation? location, Uint32Array? value);
-    [StrictTypeChecking] void uniform4uiv(WebGLUniformLocation? location, Uint32Array? value);
-    [StrictTypeChecking] void uniformMatrix2x3fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array? value);
-    [StrictTypeChecking] void uniformMatrix3x2fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array? value);
-    [StrictTypeChecking] void uniformMatrix2x4fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array? value);
-    [StrictTypeChecking] void uniformMatrix4x2fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array? value);
-    [StrictTypeChecking] void uniformMatrix3x4fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array? value);
-    [StrictTypeChecking] void uniformMatrix4x3fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array? value);
-    [StrictTypeChecking] void vertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
-    [StrictTypeChecking] void vertexAttribI4iv(GLuint index, Int32Array? v);
-    [StrictTypeChecking] void vertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
-    [StrictTypeChecking] void vertexAttribI4uiv(GLuint index, Uint32Array? v);
-    [StrictTypeChecking] void vertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+    void uniform1ui(WebGLUniformLocation? location, GLuint v0);
+    void uniform2ui(WebGLUniformLocation? location, GLuint v0, GLuint v1);
+    void uniform3ui(WebGLUniformLocation? location, GLuint v0, GLuint v1, GLuint v2);
+    void uniform4ui(WebGLUniformLocation? location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+    void uniform1uiv(WebGLUniformLocation? location, Uint32Array? value);
+    void uniform2uiv(WebGLUniformLocation? location, Uint32Array? value);
+    void uniform3uiv(WebGLUniformLocation? location, Uint32Array? value);
+    void uniform4uiv(WebGLUniformLocation? location, Uint32Array? value);
+    void uniformMatrix2x3fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array? value);
+    void uniformMatrix3x2fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array? value);
+    void uniformMatrix2x4fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array? value);
+    void uniformMatrix4x2fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array? value);
+    void uniformMatrix3x4fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array? value);
+    void uniformMatrix4x3fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array? value);
+    void vertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
+    void vertexAttribI4iv(GLuint index, Int32Array? v);
+    void vertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+    void vertexAttribI4uiv(GLuint index, Uint32Array? v);
+    void vertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
 
     /* Writing to the drawing buffer */
-    [StrictTypeChecking] void vertexAttribDivisor(GLuint index, GLuint divisor);
-    [StrictTypeChecking] void drawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
-    [StrictTypeChecking] void drawElementsInstanced(GLenum mode, GLsizei count, GLenum type, GLintptr offset, GLsizei instanceCount);
-    [StrictTypeChecking] void drawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLintptr offset);
+    void vertexAttribDivisor(GLuint index, GLuint divisor);
+    void drawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
+    void drawElementsInstanced(GLenum mode, GLsizei count, GLenum type, GLintptr offset, GLsizei instanceCount);
+    void drawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLintptr offset);
 
     /* Multiple Render Targets */
-    [StrictTypeChecking] void drawBuffers(sequence<GLenum> buffers);
-    [StrictTypeChecking] void clearBufferiv(GLenum buffer, GLint drawbuffer, Int32Array? value);
-    [StrictTypeChecking] void clearBufferuiv(GLenum buffer, GLint drawbuffer, Uint32Array? value);
-    [StrictTypeChecking] void clearBufferfv(GLenum buffer, GLint drawbuffer, Float32Array? value);
-    [StrictTypeChecking] void clearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+    void drawBuffers(sequence<GLenum> buffers);
+    void clearBufferiv(GLenum buffer, GLint drawbuffer, Int32Array? value);
+    void clearBufferuiv(GLenum buffer, GLint drawbuffer, Uint32Array? value);
+    void clearBufferfv(GLenum buffer, GLint drawbuffer, Float32Array? value);
+    void clearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
 
     /* Query Objects */
-    [StrictTypeChecking] WebGLQuery createQuery();
-    [StrictTypeChecking] void deleteQuery(WebGLQuery? query);
-    [StrictTypeChecking] GLboolean isQuery(WebGLQuery? query);
-    [StrictTypeChecking] void beginQuery(GLenum target, WebGLQuery? query);
-    [StrictTypeChecking] void endQuery(GLenum target);
-    [StrictTypeChecking] WebGLQuery getQuery(GLenum target, GLenum pname);
-    [StrictTypeChecking, Custom] any getQueryParameter(WebGLQuery? query, GLenum pname);
+    WebGLQuery createQuery();
+    void deleteQuery(WebGLQuery? query);
+    GLboolean isQuery(WebGLQuery? query);
+    void beginQuery(GLenum target, WebGLQuery? query);
+    void endQuery(GLenum target);
+    WebGLQuery getQuery(GLenum target, GLenum pname);
+    [Custom] any getQueryParameter(WebGLQuery? query, GLenum pname);
 
     /* Sampler Objects */
-    [StrictTypeChecking] WebGLSampler createSampler();
-    [StrictTypeChecking] void deleteSampler(WebGLSampler? sampler);
-    [StrictTypeChecking] GLboolean isSampler(WebGLSampler? sampler);
-    [StrictTypeChecking] void bindSampler(GLuint unit, WebGLSampler? sampler);
-    [StrictTypeChecking] void samplerParameteri(WebGLSampler? sampler, GLenum pname, GLint param);
-    [StrictTypeChecking] void samplerParameterf(WebGLSampler? sampler, GLenum pname, GLfloat param);
-    [StrictTypeChecking, Custom] any getSamplerParameter(WebGLSampler? sampler, GLenum pname);
+    WebGLSampler createSampler();
+    void deleteSampler(WebGLSampler? sampler);
+    GLboolean isSampler(WebGLSampler? sampler);
+    void bindSampler(GLuint unit, WebGLSampler? sampler);
+    void samplerParameteri(WebGLSampler? sampler, GLenum pname, GLint param);
+    void samplerParameterf(WebGLSampler? sampler, GLenum pname, GLfloat param);
+    [Custom] any getSamplerParameter(WebGLSampler? sampler, GLenum pname);
 
     /* Sync objects */
-    [StrictTypeChecking] WebGLSync fenceSync(GLenum condition, GLbitfield flags);
-    [StrictTypeChecking] GLboolean isSync(WebGLSync? sync);
-    [StrictTypeChecking] void deleteSync(WebGLSync? sync);
-    [StrictTypeChecking] GLenum clientWaitSync(WebGLSync? sync, GLbitfield flags, GLuint64 timeout);
-    [StrictTypeChecking] void waitSync(WebGLSync? sync, GLbitfield flags, GLuint64 timeout);
-    [StrictTypeChecking, Custom] any getSyncParameter(WebGLSync? sync, GLenum pname);
+    WebGLSync fenceSync(GLenum condition, GLbitfield flags);
+    GLboolean isSync(WebGLSync? sync);
+    void deleteSync(WebGLSync? sync);
+    GLenum clientWaitSync(WebGLSync? sync, GLbitfield flags, GLuint64 timeout);
+    void waitSync(WebGLSync? sync, GLbitfield flags, GLuint64 timeout);
+    [Custom] any getSyncParameter(WebGLSync? sync, GLenum pname);
 
     /* Transform Feedback */
-    [StrictTypeChecking] WebGLTransformFeedback createTransformFeedback();
-    [StrictTypeChecking] void deleteTransformFeedback(WebGLTransformFeedback? id);
-    [StrictTypeChecking] GLboolean isTransformFeedback(WebGLTransformFeedback? id);
-    [StrictTypeChecking] void bindTransformFeedback(GLenum target, WebGLTransformFeedback? id);
-    [StrictTypeChecking] void beginTransformFeedback(GLenum primitiveMode);
-    [StrictTypeChecking] void endTransformFeedback();
-    [StrictTypeChecking] void transformFeedbackVaryings(WebGLProgram? program, sequence<DOMString> varyings, GLenum bufferMode);
-    [StrictTypeChecking] WebGLActiveInfo getTransformFeedbackVarying(WebGLProgram? program, GLuint index);
-    [StrictTypeChecking] void pauseTransformFeedback();
-    [StrictTypeChecking] void resumeTransformFeedback();
+    WebGLTransformFeedback createTransformFeedback();
+    void deleteTransformFeedback(WebGLTransformFeedback? id);
+    GLboolean isTransformFeedback(WebGLTransformFeedback? id);
+    void bindTransformFeedback(GLenum target, WebGLTransformFeedback? id);
+    void beginTransformFeedback(GLenum primitiveMode);
+    void endTransformFeedback();
+    void transformFeedbackVaryings(WebGLProgram? program, sequence<DOMString> varyings, GLenum bufferMode);
+    WebGLActiveInfo getTransformFeedbackVarying(WebGLProgram? program, GLuint index);
+    void pauseTransformFeedback();
+    void resumeTransformFeedback();
 
     /* Uniform Buffer Objects and Transform Feedback Buffers */
-    [StrictTypeChecking] void bindBufferBase(GLenum target, GLuint index, WebGLBuffer? buffer);
-    [StrictTypeChecking] void bindBufferRange(GLenum target, GLuint index, WebGLBuffer? buffer, GLintptr offset, GLsizeiptr size);
-    [StrictTypeChecking, Custom] any getIndexedParameter(GLenum target, GLuint index);
-    [StrictTypeChecking] Uint32Array getUniformIndices(WebGLProgram? program, sequence<DOMString> uniformNames);
-    [StrictTypeChecking] Int32Array getActiveUniforms(WebGLProgram? program, Uint32Array? uniformIndices, GLenum pname);
-    [StrictTypeChecking] GLuint getUniformBlockIndex(WebGLProgram? program, DOMString uniformBlockName);
-    [StrictTypeChecking, Custom] any getActiveUniformBlockParameter(WebGLProgram? program, GLuint uniformBlockIndex, GLenum pname);
-    [StrictTypeChecking, Custom] any getActiveUniformBlockName(WebGLProgram? program, GLuint uniformBlockIndex);
-    [StrictTypeChecking] void uniformBlockBinding(WebGLProgram? program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
+    void bindBufferBase(GLenum target, GLuint index, WebGLBuffer? buffer);
+    void bindBufferRange(GLenum target, GLuint index, WebGLBuffer? buffer, GLintptr offset, GLsizeiptr size);
+    [Custom] any getIndexedParameter(GLenum target, GLuint index);
+    Uint32Array getUniformIndices(WebGLProgram? program, sequence<DOMString> uniformNames);
+    Int32Array getActiveUniforms(WebGLProgram? program, Uint32Array? uniformIndices, GLenum pname);
+    GLuint getUniformBlockIndex(WebGLProgram? program, DOMString uniformBlockName);
+    [Custom] any getActiveUniformBlockParameter(WebGLProgram? program, GLuint uniformBlockIndex, GLenum pname);
+    [Custom] any getActiveUniformBlockName(WebGLProgram? program, GLuint uniformBlockIndex);
+    void uniformBlockBinding(WebGLProgram? program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
 
     /* Vertex Array Objects */
-    [StrictTypeChecking] WebGLVertexArrayObject createVertexArray();
-    [StrictTypeChecking] void deleteVertexArray(WebGLVertexArrayObject? vertexArray);
-    [StrictTypeChecking] GLboolean isVertexArray(WebGLVertexArrayObject? vertexArray);
-    [StrictTypeChecking] void bindVertexArray(WebGLVertexArrayObject? vertexArray);
+    WebGLVertexArrayObject createVertexArray();
+    void deleteVertexArray(WebGLVertexArrayObject? vertexArray);
+    GLboolean isVertexArray(WebGLVertexArrayObject? vertexArray);
+    void bindVertexArray(WebGLVertexArrayObject? vertexArray);
 };
index 6931d47..97c5e36 100644 (file)
@@ -28,5 +28,5 @@
     GenerateIsReachable=ImplWebGLRenderingContext,
     NoInterfaceObject,
 ] interface WebGLDebugShaders {
-    [StrictTypeChecking] DOMString? getTranslatedShaderSource(WebGLShader? shader); // FIXME: The return value and the parameter should not be nullable.
+    DOMString? getTranslatedShaderSource(WebGLShader? shader); // FIXME: The return value and the parameter should not be nullable.
 };
index a56c0d1..8560d86 100644 (file)
@@ -28,6 +28,6 @@
     Conditional=WEBGL,
     GenerateIsReachable=ImplWebGLRenderingContext,
 ] interface WebGLLoseContext {
-    [StrictTypeChecking] void loseContext();
-    [StrictTypeChecking] void restoreContext();
+    void loseContext();
+    void restoreContext();
 };
index 47e8c12..90ce5f2 100644 (file)
@@ -467,207 +467,207 @@ NoInterfaceObject,
     readonly attribute GLsizei drawingBufferWidth;
     readonly attribute GLsizei drawingBufferHeight;
 
-    [StrictTypeChecking, RaisesException] void activeTexture(GLenum texture);
-    [StrictTypeChecking, RaisesException] void attachShader(WebGLProgram? program, WebGLShader? shader);
-    [StrictTypeChecking, RaisesException] void bindAttribLocation(WebGLProgram? program, GLuint index, DOMString name);
-    [StrictTypeChecking, RaisesException] void bindBuffer(GLenum target, WebGLBuffer? buffer);
-    [StrictTypeChecking, RaisesException] void bindFramebuffer(GLenum target, WebGLFramebuffer? framebuffer);
-    [StrictTypeChecking, RaisesException] void bindRenderbuffer(GLenum target, WebGLRenderbuffer? renderbuffer);
-    [StrictTypeChecking, RaisesException] void bindTexture(GLenum target, WebGLTexture? texture);
-    [StrictTypeChecking] void blendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-    [StrictTypeChecking] void blendEquation(GLenum mode);
-    [StrictTypeChecking] void blendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
-    [StrictTypeChecking] void blendFunc(GLenum sfactor, GLenum dfactor);
-    [StrictTypeChecking] void blendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-    [StrictTypeChecking, RaisesException] void bufferData(GLenum target, ArrayBuffer data, GLenum usage);
-    [StrictTypeChecking, RaisesException] void bufferData(GLenum target, ArrayBufferView data, GLenum usage);
-    [StrictTypeChecking, RaisesException] void bufferData(GLenum target, GLsizeiptr size, GLenum usage);
-    [StrictTypeChecking, RaisesException] void bufferSubData(GLenum target, GLintptr offset, ArrayBuffer? data);
-    [StrictTypeChecking, RaisesException] void bufferSubData(GLenum target, GLintptr offset, ArrayBufferView? data);
-
-    [StrictTypeChecking] GLenum checkFramebufferStatus(GLenum target);
-    [StrictTypeChecking] void clear(GLbitfield mask);
-    [StrictTypeChecking] void clearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-    [StrictTypeChecking] void clearDepth(GLclampf depth);
-    [StrictTypeChecking] void clearStencil(GLint s);
-    [StrictTypeChecking] void colorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-    [StrictTypeChecking, RaisesException] void compileShader(WebGLShader? shader);
-
-    [StrictTypeChecking] void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
+    [RaisesException] void activeTexture(GLenum texture);
+    [RaisesException] void attachShader(WebGLProgram? program, WebGLShader? shader);
+    [RaisesException] void bindAttribLocation(WebGLProgram? program, GLuint index, DOMString name);
+    [RaisesException] void bindBuffer(GLenum target, WebGLBuffer? buffer);
+    [RaisesException] void bindFramebuffer(GLenum target, WebGLFramebuffer? framebuffer);
+    [RaisesException] void bindRenderbuffer(GLenum target, WebGLRenderbuffer? renderbuffer);
+    [RaisesException] void bindTexture(GLenum target, WebGLTexture? texture);
+    void blendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+    void blendEquation(GLenum mode);
+    void blendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
+    void blendFunc(GLenum sfactor, GLenum dfactor);
+    void blendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+    [RaisesException] void bufferData(GLenum target, ArrayBuffer data, GLenum usage);
+    [RaisesException] void bufferData(GLenum target, ArrayBufferView data, GLenum usage);
+    [RaisesException] void bufferData(GLenum target, GLsizeiptr size, GLenum usage);
+    [RaisesException] void bufferSubData(GLenum target, GLintptr offset, ArrayBuffer? data);
+    [RaisesException] void bufferSubData(GLenum target, GLintptr offset, ArrayBufferView? data);
+
+    GLenum checkFramebufferStatus(GLenum target);
+    void clear(GLbitfield mask);
+    void clearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+    void clearDepth(GLclampf depth);
+    void clearStencil(GLint s);
+    void colorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+    [RaisesException] void compileShader(WebGLShader? shader);
+
+    void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
     GLsizei width, GLsizei height, GLint border, ArrayBufferView data);
-    [StrictTypeChecking] void compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+    void compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    GLsizei width, GLsizei height, GLenum format, ArrayBufferView data);
     
-    [StrictTypeChecking] void copyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-    [StrictTypeChecking] void copyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-
-    [StrictTypeChecking] WebGLBuffer createBuffer();
-    [StrictTypeChecking] WebGLFramebuffer createFramebuffer();
-    [StrictTypeChecking] WebGLProgram createProgram();
-    [StrictTypeChecking] WebGLRenderbuffer createRenderbuffer();
-    [StrictTypeChecking, RaisesException] WebGLShader createShader(GLenum type);
-    [StrictTypeChecking] WebGLTexture createTexture();
-
-    [StrictTypeChecking] void cullFace(GLenum mode);
-
-    [StrictTypeChecking] void deleteBuffer(WebGLBuffer? buffer);
-    [StrictTypeChecking] void deleteFramebuffer(WebGLFramebuffer? framebuffer);
-    [StrictTypeChecking] void deleteProgram(WebGLProgram? program);
-    [StrictTypeChecking] void deleteRenderbuffer(WebGLRenderbuffer? renderbuffer);
-    [StrictTypeChecking] void deleteShader(WebGLShader? shader);
-    [StrictTypeChecking] void deleteTexture(WebGLTexture? texture);
-
-    [StrictTypeChecking] void depthFunc(GLenum func);
-    [StrictTypeChecking] void depthMask(GLboolean flag);
-    [StrictTypeChecking] void depthRange(GLclampf zNear, GLclampf zFar);
-    [StrictTypeChecking, RaisesException] void detachShader(WebGLProgram? program, WebGLShader? shader);
-    [StrictTypeChecking] void disable(GLenum cap);
-    [StrictTypeChecking, RaisesException] void disableVertexAttribArray(GLuint index);
-    [StrictTypeChecking, RaisesException] void drawArrays(GLenum mode, GLint first, GLsizei count);
-    [StrictTypeChecking, RaisesException] void drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset);
-
-    [StrictTypeChecking] void enable(GLenum cap);
-    [StrictTypeChecking, RaisesException] void enableVertexAttribArray(GLuint index);
-    [StrictTypeChecking] void finish();
-    [StrictTypeChecking] void flush();
-    [StrictTypeChecking, RaisesException] void framebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, WebGLRenderbuffer? renderbuffer);
-    [StrictTypeChecking, RaisesException] void framebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, WebGLTexture? texture, GLint level);
-    [StrictTypeChecking] void frontFace(GLenum mode);
-    [StrictTypeChecking] void generateMipmap(GLenum target);
+    void copyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+    void copyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+    WebGLBuffer createBuffer();
+    WebGLFramebuffer createFramebuffer();
+    WebGLProgram createProgram();
+    WebGLRenderbuffer createRenderbuffer();
+    [RaisesException] WebGLShader createShader(GLenum type);
+    WebGLTexture createTexture();
+
+    void cullFace(GLenum mode);
+
+    void deleteBuffer(WebGLBuffer? buffer);
+    void deleteFramebuffer(WebGLFramebuffer? framebuffer);
+    void deleteProgram(WebGLProgram? program);
+    void deleteRenderbuffer(WebGLRenderbuffer? renderbuffer);
+    void deleteShader(WebGLShader? shader);
+    void deleteTexture(WebGLTexture? texture);
+
+    void depthFunc(GLenum func);
+    void depthMask(GLboolean flag);
+    void depthRange(GLclampf zNear, GLclampf zFar);
+    [RaisesException] void detachShader(WebGLProgram? program, WebGLShader? shader);
+    void disable(GLenum cap);
+    [RaisesException] void disableVertexAttribArray(GLuint index);
+    [RaisesException] void drawArrays(GLenum mode, GLint first, GLsizei count);
+    [RaisesException] void drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset);
+
+    void enable(GLenum cap);
+    [RaisesException] void enableVertexAttribArray(GLuint index);
+    void finish();
+    void flush();
+    [RaisesException] void framebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, WebGLRenderbuffer? renderbuffer);
+    [RaisesException] void framebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, WebGLTexture? texture, GLint level);
+    void frontFace(GLenum mode);
+    void generateMipmap(GLenum target);
     
-    [StrictTypeChecking, RaisesException] WebGLActiveInfo getActiveAttrib(WebGLProgram? program, GLuint index);
-    [StrictTypeChecking, RaisesException] WebGLActiveInfo getActiveUniform(WebGLProgram? program, GLuint index);
+    [RaisesException] WebGLActiveInfo getActiveAttrib(WebGLProgram? program, GLuint index);
+    [RaisesException] WebGLActiveInfo getActiveUniform(WebGLProgram? program, GLuint index);
 
-    [StrictTypeChecking, Custom, RaisesException] void getAttachedShaders(WebGLProgram? program);
+    [Custom, RaisesException] void getAttachedShaders(WebGLProgram? program);
 
-    [StrictTypeChecking] GLint getAttribLocation(WebGLProgram? program, DOMString name);
+    GLint getAttribLocation(WebGLProgram? program, DOMString name);
 
-    [StrictTypeChecking, Custom] any getBufferParameter(GLenum target, GLenum pname);
+    [Custom] any getBufferParameter(GLenum target, GLenum pname);
 
-    [StrictTypeChecking] WebGLContextAttributes getContextAttributes();
+    WebGLContextAttributes getContextAttributes();
 
-    [StrictTypeChecking] GLenum getError();
+    GLenum getError();
 
     // object getExtension(DOMString name);
-    [StrictTypeChecking, Custom] any getExtension(DOMString name);
+    [Custom] any getExtension(DOMString name);
 
-    [StrictTypeChecking, Custom, RaisesException] any getFramebufferAttachmentParameter(GLenum target, GLenum attachment, GLenum pname);
-    [StrictTypeChecking, Custom, RaisesException] any getParameter(GLenum pname);
-    [StrictTypeChecking, Custom, RaisesException] any getProgramParameter(WebGLProgram? program, GLenum pname);
-    [StrictTypeChecking, RaisesException] DOMString? getProgramInfoLog(WebGLProgram? program);
-    [StrictTypeChecking, Custom, RaisesException] any getRenderbufferParameter(GLenum target, GLenum pname);
-    [StrictTypeChecking, Custom, RaisesException] any getShaderParameter(WebGLShader? shader, GLenum pname);
+    [Custom, RaisesException] any getFramebufferAttachmentParameter(GLenum target, GLenum attachment, GLenum pname);
+    [Custom, RaisesException] any getParameter(GLenum pname);
+    [Custom, RaisesException] any getProgramParameter(WebGLProgram? program, GLenum pname);
+    [RaisesException] DOMString? getProgramInfoLog(WebGLProgram? program);
+    [Custom, RaisesException] any getRenderbufferParameter(GLenum target, GLenum pname);
+    [Custom, RaisesException] any getShaderParameter(WebGLShader? shader, GLenum pname);
 
-    [StrictTypeChecking, RaisesException] DOMString? getShaderInfoLog(WebGLShader? shader);
+    [RaisesException] DOMString? getShaderInfoLog(WebGLShader? shader);
 
-    [StrictTypeChecking, RaisesException] WebGLShaderPrecisionFormat getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);
+    [RaisesException] WebGLShaderPrecisionFormat getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);
 
-    [StrictTypeChecking, RaisesException] DOMString? getShaderSource(WebGLShader? shader);
+    [RaisesException] DOMString? getShaderSource(WebGLShader? shader);
 
-    [StrictTypeChecking, Custom] sequence<DOMString> getSupportedExtensions();
+    [Custom] sequence<DOMString> getSupportedExtensions();
 
-    [StrictTypeChecking, Custom, RaisesException] any getTexParameter(GLenum target, GLenum pname);
+    [Custom, RaisesException] any getTexParameter(GLenum target, GLenum pname);
 
-    [StrictTypeChecking, Custom, RaisesException] any getUniform(WebGLProgram? program, WebGLUniformLocation? location);
+    [Custom, RaisesException] any getUniform(WebGLProgram? program, WebGLUniformLocation? location);
 
-    [StrictTypeChecking, RaisesException] WebGLUniformLocation getUniformLocation(WebGLProgram? program, DOMString name);
+    [RaisesException] WebGLUniformLocation getUniformLocation(WebGLProgram? program, DOMString name);
 
-    [StrictTypeChecking, Custom, RaisesException] any getVertexAttrib(GLuint index, GLenum pname);
+    [Custom, RaisesException] any getVertexAttrib(GLuint index, GLenum pname);
 
-    [StrictTypeChecking] GLsizeiptr getVertexAttribOffset(GLuint index, GLenum pname);
+    GLsizeiptr getVertexAttribOffset(GLuint index, GLenum pname);
 
-    [StrictTypeChecking] void hint(GLenum target, GLenum mode);
-    [StrictTypeChecking] GLboolean isBuffer(WebGLBuffer? buffer);
-    [StrictTypeChecking] GLboolean isContextLost();
-    [StrictTypeChecking] GLboolean isEnabled(GLenum cap);
-    [StrictTypeChecking] GLboolean isFramebuffer(WebGLFramebuffer? framebuffer);
-    [StrictTypeChecking] GLboolean isProgram(WebGLProgram? program);
-    [StrictTypeChecking] GLboolean isRenderbuffer(WebGLRenderbuffer? renderbuffer);
-    [StrictTypeChecking] GLboolean isShader(WebGLShader? shader);
-    [StrictTypeChecking] GLboolean isTexture(WebGLTexture? texture);
-    [StrictTypeChecking] void lineWidth(GLfloat width);
-    [StrictTypeChecking, RaisesException] void linkProgram(WebGLProgram? program);
-    [StrictTypeChecking] void pixelStorei(GLenum pname, GLint param);
-    [StrictTypeChecking] void polygonOffset(GLfloat factor, GLfloat units);
+    void hint(GLenum target, GLenum mode);
+    GLboolean isBuffer(WebGLBuffer? buffer);
+    GLboolean isContextLost();
+    GLboolean isEnabled(GLenum cap);
+    GLboolean isFramebuffer(WebGLFramebuffer? framebuffer);
+    GLboolean isProgram(WebGLProgram? program);
+    GLboolean isRenderbuffer(WebGLRenderbuffer? renderbuffer);
+    GLboolean isShader(WebGLShader? shader);
+    GLboolean isTexture(WebGLTexture? texture);
+    void lineWidth(GLfloat width);
+    [RaisesException] void linkProgram(WebGLProgram? program);
+    void pixelStorei(GLenum pname, GLint param);
+    void polygonOffset(GLfloat factor, GLfloat units);
 
-    [StrictTypeChecking, RaisesException] void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, ArrayBufferView pixels);
+    [RaisesException] void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, ArrayBufferView pixels);
     
-    [StrictTypeChecking] void releaseShaderCompiler();
-    [StrictTypeChecking] void renderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-    [StrictTypeChecking] void sampleCoverage(GLclampf value, GLboolean invert);
-    [StrictTypeChecking] void scissor(GLint x, GLint y, GLsizei width, GLsizei height);
-    [StrictTypeChecking, RaisesException] void shaderSource(WebGLShader? shader, DOMString string);
-    [StrictTypeChecking] void stencilFunc(GLenum func, GLint ref, GLuint mask);
-    [StrictTypeChecking] void stencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
-    [StrictTypeChecking] void stencilMask(GLuint mask);
-    [StrictTypeChecking] void stencilMaskSeparate(GLenum face, GLuint mask);
-    [StrictTypeChecking] void stencilOp(GLenum fail, GLenum zfail, GLenum zpass);
-    [StrictTypeChecking] void stencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
-
-    [StrictTypeChecking] void texParameterf(GLenum target, GLenum pname, GLfloat param);
-    [StrictTypeChecking] void texParameteri(GLenum target, GLenum pname, GLint param);
+    void releaseShaderCompiler();
+    void renderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+    void sampleCoverage(GLclampf value, GLboolean invert);
+    void scissor(GLint x, GLint y, GLsizei width, GLsizei height);
+    [RaisesException] void shaderSource(WebGLShader? shader, DOMString string);
+    void stencilFunc(GLenum func, GLint ref, GLuint mask);
+    void stencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
+    void stencilMask(GLuint mask);
+    void stencilMaskSeparate(GLenum face, GLuint mask);
+    void stencilOp(GLenum fail, GLenum zfail, GLenum zpass);
+    void stencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
+
+    void texParameterf(GLenum target, GLenum pname, GLfloat param);
+    void texParameteri(GLenum target, GLenum pname, GLint param);
 
     // Supported forms:
-    [StrictTypeChecking, RaisesException] void texImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height,
+    [RaisesException] void texImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height,
   GLint border, GLenum format, GLenum type, ArrayBufferView? pixels);
-    [StrictTypeChecking, RaisesException] void texImage2D(GLenum target, GLint level, GLenum internalformat,
+    [RaisesException] void texImage2D(GLenum target, GLint level, GLenum internalformat,
   GLenum format, GLenum type, ImageData? pixels);
-    [StrictTypeChecking, RaisesException] void texImage2D(GLenum target, GLint level, GLenum internalformat,
+    [RaisesException] void texImage2D(GLenum target, GLint level, GLenum internalformat,
   GLenum format, GLenum type, HTMLImageElement? image);
-    [StrictTypeChecking, RaisesException] void texImage2D(GLenum target, GLint level, GLenum internalformat,
+    [RaisesException] void texImage2D(GLenum target, GLint level, GLenum internalformat,
   GLenum format, GLenum type, HTMLCanvasElement? canvas);
 #if defined(ENABLE_VIDEO) && ENABLE_VIDEO
-    [StrictTypeChecking, RaisesException] void texImage2D(GLenum target, GLint level, GLenum internalformat,
+    [RaisesException] void texImage2D(GLenum target, GLint level, GLenum internalformat,
   GLenum format, GLenum type, HTMLVideoElement? video);
 #endif
 
-    [StrictTypeChecking, RaisesException] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+    [RaisesException] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
  GLsizei width, GLsizei height,
  GLenum format, GLenum type, ArrayBufferView? pixels);
-    [StrictTypeChecking, RaisesException] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+    [RaisesException] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
  GLenum format, GLenum type, ImageData? pixels);
-    [StrictTypeChecking, RaisesException] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+    [RaisesException] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
  GLenum format, GLenum type, HTMLImageElement? image);
-    [StrictTypeChecking, RaisesException] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+    [RaisesException] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
  GLenum format, GLenum type, HTMLCanvasElement? canvas);
 #if defined(ENABLE_VIDEO) && ENABLE_VIDEO
-    [StrictTypeChecking, RaisesException] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+    [RaisesException] void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
  GLenum format, GLenum type, HTMLVideoElement? video);
 #endif
 
-    [StrictTypeChecking, RaisesException] void uniform1f(WebGLUniformLocation? location, GLfloat x);
-    [StrictTypeChecking, Custom, RaisesException] void uniform1fv(WebGLUniformLocation? location, Float32Array v);
-    [StrictTypeChecking, RaisesException] void uniform1i(WebGLUniformLocation? location, GLint x);
-    [StrictTypeChecking, Custom, RaisesException] void uniform1iv(WebGLUniformLocation? location, Int32Array v);
-    [StrictTypeChecking, RaisesException] void uniform2f(WebGLUniformLocation? location, GLfloat x, GLfloat y);
-    [StrictTypeChecking, Custom, RaisesException] void uniform2fv(WebGLUniformLocation? location, Float32Array v);
-    [StrictTypeChecking, RaisesException] void uniform2i(WebGLUniformLocation? location, GLint x, GLint y);
-    [StrictTypeChecking, Custom, RaisesException] void uniform2iv(WebGLUniformLocation? location, Int32Array v);
-    [StrictTypeChecking, RaisesException] void uniform3f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z);
-    [StrictTypeChecking, Custom, RaisesException] void uniform3fv(WebGLUniformLocation? location, Float32Array v);
-    [StrictTypeChecking, RaisesException] void uniform3i(WebGLUniformLocation? location, GLint x, GLint y, GLint z);
-    [StrictTypeChecking, Custom, RaisesException] void uniform3iv(WebGLUniformLocation? location, Int32Array v);
-    [StrictTypeChecking, RaisesException] void uniform4f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-    [StrictTypeChecking, Custom, RaisesException] void uniform4fv(WebGLUniformLocation? location, Float32Array v);
-    [StrictTypeChecking, RaisesException] void uniform4i(WebGLUniformLocation? location, GLint x, GLint y, GLint z, GLint w);
-    [StrictTypeChecking, Custom, RaisesException] void uniform4iv(WebGLUniformLocation? location, Int32Array v);
-
-    [StrictTypeChecking, Custom, RaisesException] void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array array);
-    [StrictTypeChecking, Custom, RaisesException] void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array array);
-    [StrictTypeChecking, Custom, RaisesException] void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array array);
-
-    [StrictTypeChecking, RaisesException] void useProgram(WebGLProgram? program);
-    [StrictTypeChecking, RaisesException] void validateProgram(WebGLProgram? program);
-
-    [StrictTypeChecking] void vertexAttrib1f(GLuint indx, GLfloat x);
-    [StrictTypeChecking, Custom] void vertexAttrib1fv(GLuint indx, Float32Array values);
-    [StrictTypeChecking] void vertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
-    [StrictTypeChecking, Custom] void vertexAttrib2fv(GLuint indx, Float32Array values);
-    [StrictTypeChecking] void vertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
-    [StrictTypeChecking, Custom] void vertexAttrib3fv(GLuint indx, Float32Array values);
-    [StrictTypeChecking] void vertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-    [StrictTypeChecking, Custom] void vertexAttrib4fv(GLuint indx, Float32Array values);
-    [StrictTypeChecking, RaisesException] void vertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset);
-
-    [StrictTypeChecking] void viewport(GLint x, GLint y, GLsizei width, GLsizei height);
+    [RaisesException] void uniform1f(WebGLUniformLocation? location, GLfloat x);
+    [Custom, RaisesException] void uniform1fv(WebGLUniformLocation? location, Float32Array v);
+    [RaisesException] void uniform1i(WebGLUniformLocation? location, GLint x);
+    [Custom, RaisesException] void uniform1iv(WebGLUniformLocation? location, Int32Array v);
+    [RaisesException] void uniform2f(WebGLUniformLocation? location, GLfloat x, GLfloat y);
+    [Custom, RaisesException] void uniform2fv(WebGLUniformLocation? location, Float32Array v);
+    [RaisesException] void uniform2i(WebGLUniformLocation? location, GLint x, GLint y);
+    [Custom, RaisesException] void uniform2iv(WebGLUniformLocation? location, Int32Array v);
+    [RaisesException] void uniform3f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z);
+    [Custom, RaisesException] void uniform3fv(WebGLUniformLocation? location, Float32Array v);
+    [RaisesException] void uniform3i(WebGLUniformLocation? location, GLint x, GLint y, GLint z);
+    [Custom, RaisesException] void uniform3iv(WebGLUniformLocation? location, Int32Array v);
+    [RaisesException] void uniform4f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+    [Custom, RaisesException] void uniform4fv(WebGLUniformLocation? location, Float32Array v);
+    [RaisesException] void uniform4i(WebGLUniformLocation? location, GLint x, GLint y, GLint z, GLint w);
+    [Custom, RaisesException] void uniform4iv(WebGLUniformLocation? location, Int32Array v);
+
+    [Custom, RaisesException] void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array array);
+    [Custom, RaisesException] void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array array);
+    [Custom, RaisesException] void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array array);
+
+    [RaisesException] void useProgram(WebGLProgram? program);
+    [RaisesException] void validateProgram(WebGLProgram? program);
+
+    void vertexAttrib1f(GLuint indx, GLfloat x);
+    [Custom] void vertexAttrib1fv(GLuint indx, Float32Array values);
+    void vertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
+    [Custom] void vertexAttrib2fv(GLuint indx, Float32Array values);
+    void vertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
+    [Custom] void vertexAttrib3fv(GLuint indx, Float32Array values);
+    void vertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+    [Custom] void vertexAttrib4fv(GLuint indx, Float32Array values);
+    [RaisesException] void vertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset);
+
+    void viewport(GLint x, GLint y, GLsizei width, GLsizei height);
 };
index 89cdbbd..1035714 100644 (file)
@@ -34,8 +34,8 @@ interface SVGAngle {
 
     [SetterRaisesException] attribute DOMString valueAsString;
 
-    [StrictTypeChecking, RaisesException] void newValueSpecifiedUnits(unsigned short unitType, unrestricted float valueInSpecifiedUnits);
+    [RaisesException] void newValueSpecifiedUnits(unsigned short unitType, unrestricted float valueInSpecifiedUnits);
 
-    [StrictTypeChecking, RaisesException] void convertToSpecifiedUnits(unsigned short unitType);
+    [RaisesException] void convertToSpecifiedUnits(unsigned short unitType);
 };
 
index 942e4a0..91d5563 100644 (file)
     readonly attribute RGBColor rgbColor;
     // FIXME: readonly attribute SVGICCColor iccColor;
 
-    [StrictTypeChecking, RaisesException] void setRGBColor(DOMString rgbColor);
+    [RaisesException] void setRGBColor(DOMString rgbColor);
 
-    [StrictTypeChecking, RaisesException] void setRGBColorICCColor(DOMString rgbColor, DOMString iccColor);
+    [RaisesException] void setRGBColorICCColor(DOMString rgbColor, DOMString iccColor);
 
-    [StrictTypeChecking, RaisesException] void setColor(unsigned short colorType, DOMString rgbColor, DOMString iccColor);
+    [RaisesException] void setColor(unsigned short colorType, DOMString rgbColor, DOMString iccColor);
 };
 
index 455d580..1770a9f 100644 (file)
@@ -41,9 +41,9 @@ interface SVGLength {
 
     [SetterRaisesException] attribute DOMString valueAsString;
 
-    [StrictTypeChecking, RaisesException] void newValueSpecifiedUnits(unsigned short unitType, 
+    [RaisesException] void newValueSpecifiedUnits(unsigned short unitType,
                                                      unrestricted float valueInSpecifiedUnits);
 
-    [Custom, StrictTypeChecking, RaisesException] void convertToSpecifiedUnits(unsigned short unitType);
+    [Custom, RaisesException] void convertToSpecifiedUnits(unsigned short unitType);
 };
 
index c523c5c..258d97d 100644 (file)
@@ -28,10 +28,10 @@ interface SVGLengthList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] SVGLength initialize(SVGLength item);
-    [StrictTypeChecking, RaisesException] SVGLength getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGLength insertItemBefore(SVGLength item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGLength replaceItem(SVGLength item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGLength removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGLength appendItem(SVGLength item);
+    [RaisesException] SVGLength initialize(SVGLength item);
+    [RaisesException] SVGLength getItem(unsigned long index);
+    [RaisesException] SVGLength insertItemBefore(SVGLength item, unsigned long index);
+    [RaisesException] SVGLength replaceItem(SVGLength item, unsigned long index);
+    [RaisesException] SVGLength removeItem(unsigned long index);
+    [RaisesException] SVGLength appendItem(SVGLength item);
 };
index 2353b53..c85033d 100644 (file)
@@ -30,16 +30,16 @@ interface SVGMatrix {
     attribute unrestricted double e;
     attribute unrestricted double f;
 
-    [StrictTypeChecking] SVGMatrix multiply(SVGMatrix secondMatrix);
+    SVGMatrix multiply(SVGMatrix secondMatrix);
     [RaisesException] SVGMatrix inverse();
-    [Immutable, StrictTypeChecking] SVGMatrix translate(unrestricted float x, unrestricted float y);
-    [Immutable, StrictTypeChecking] SVGMatrix scale(unrestricted float scaleFactor);
-    [Immutable, StrictTypeChecking] SVGMatrix scaleNonUniform(unrestricted float scaleFactorX, unrestricted float scaleFactorY);
-    [Immutable, StrictTypeChecking] SVGMatrix rotate(unrestricted float angle);
-    [StrictTypeChecking, RaisesException] SVGMatrix rotateFromVector(unrestricted float x, unrestricted float y);
+    [Immutable] SVGMatrix translate(unrestricted float x, unrestricted float y);
+    [Immutable] SVGMatrix scale(unrestricted float scaleFactor);
+    [Immutable] SVGMatrix scaleNonUniform(unrestricted float scaleFactorX, unrestricted float scaleFactorY);
+    [Immutable] SVGMatrix rotate(unrestricted float angle);
+    [RaisesException] SVGMatrix rotateFromVector(unrestricted float x, unrestricted float y);
     [Immutable] SVGMatrix flipX();
     [Immutable] SVGMatrix flipY();
-    [Immutable, StrictTypeChecking] SVGMatrix skewX(unrestricted float angle);
-    [Immutable, StrictTypeChecking] SVGMatrix skewY(unrestricted float angle);
+    [Immutable] SVGMatrix skewX(unrestricted float angle);
+    [Immutable] SVGMatrix skewY(unrestricted float angle);
 };
 
index f9411f9..562f9d5 100644 (file)
@@ -28,10 +28,10 @@ interface SVGNumberList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] SVGNumber initialize(SVGNumber item);
-    [StrictTypeChecking, RaisesException] SVGNumber getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGNumber insertItemBefore(SVGNumber item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGNumber replaceItem(SVGNumber item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGNumber removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGNumber appendItem(SVGNumber item);
+    [RaisesException] SVGNumber initialize(SVGNumber item);
+    [RaisesException] SVGNumber getItem(unsigned long index);
+    [RaisesException] SVGNumber insertItemBefore(SVGNumber item, unsigned long index);
+    [RaisesException] SVGNumber replaceItem(SVGNumber item, unsigned long index);
+    [RaisesException] SVGNumber removeItem(unsigned long index);
+    [RaisesException] SVGNumber appendItem(SVGNumber item);
 };
index 0e1aff8..dba9d9d 100644 (file)
@@ -40,7 +40,7 @@
     readonly attribute unsigned short paintType;
     readonly attribute DOMString uri;
 
-    [StrictTypeChecking] void setUri(DOMString uri);
-    [StrictTypeChecking, RaisesException] void setPaint(unsigned short paintType, DOMString uri, DOMString rgbColor, DOMString iccColor);
+    void setUri(DOMString uri);
+    [RaisesException] void setPaint(unsigned short paintType, DOMString uri, DOMString rgbColor, DOMString iccColor);
 };
 
index adeee3d..22bfb2a 100644 (file)
@@ -28,10 +28,10 @@ interface SVGPathSegList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] SVGPathSeg initialize(SVGPathSeg? newItem); // FIXME: Should not be nullable.
-    [StrictTypeChecking, RaisesException] SVGPathSeg getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPathSeg insertItemBefore(SVGPathSeg? newItem, unsigned long index); // FIXME: Should not be nullable.
-    [StrictTypeChecking, RaisesException] SVGPathSeg replaceItem(SVGPathSeg? newItem, unsigned long index); // FIXME: Should not be nullable.
-    [StrictTypeChecking, RaisesException] SVGPathSeg removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPathSeg appendItem(SVGPathSeg? newItem); // FIXME: Should not be nullable.
+    [RaisesException] SVGPathSeg initialize(SVGPathSeg? newItem); // FIXME: Should not be nullable.
+    [RaisesException] SVGPathSeg getItem(unsigned long index);
+    [RaisesException] SVGPathSeg insertItemBefore(SVGPathSeg? newItem, unsigned long index); // FIXME: Should not be nullable.
+    [RaisesException] SVGPathSeg replaceItem(SVGPathSeg? newItem, unsigned long index); // FIXME: Should not be nullable.
+    [RaisesException] SVGPathSeg removeItem(unsigned long index);
+    [RaisesException] SVGPathSeg appendItem(SVGPathSeg? newItem); // FIXME: Should not be nullable.
 };
index 84d8980..6cdbacc 100644 (file)
@@ -24,6 +24,6 @@ interface SVGPoint {
     attribute unrestricted float x;
     attribute unrestricted float y;
 
-    [StrictTypeChecking] SVGPoint matrixTransform(SVGMatrix matrix);
+    SVGPoint matrixTransform(SVGMatrix matrix);
 };
 
index b511244..7d497aa 100644 (file)
@@ -27,10 +27,10 @@ interface SVGPointList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] SVGPoint initialize(SVGPoint item);
-    [StrictTypeChecking, RaisesException] SVGPoint getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPoint insertItemBefore(SVGPoint item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPoint replaceItem(SVGPoint item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPoint removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPoint appendItem(SVGPoint item);
+    [RaisesException] SVGPoint initialize(SVGPoint item);
+    [RaisesException] SVGPoint getItem(unsigned long index);
+    [RaisesException] SVGPoint insertItemBefore(SVGPoint item, unsigned long index);
+    [RaisesException] SVGPoint replaceItem(SVGPoint item, unsigned long index);
+    [RaisesException] SVGPoint removeItem(unsigned long index);
+    [RaisesException] SVGPoint appendItem(SVGPoint item);
 };
index d3c1923..55f422d 100644 (file)
@@ -27,11 +27,11 @@ interface SVGStringList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] DOMString initialize(DOMString item);
-    [StrictTypeChecking, RaisesException] DOMString getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] DOMString insertItemBefore(DOMString item, unsigned long index);
-    [StrictTypeChecking, RaisesException] DOMString replaceItem(DOMString item, unsigned long index);
-    [StrictTypeChecking, RaisesException] DOMString removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] DOMString appendItem(DOMString item);
+    [RaisesException] DOMString initialize(DOMString item);
+    [RaisesException] DOMString getItem(unsigned long index);
+    [RaisesException] DOMString insertItemBefore(DOMString item, unsigned long index);
+    [RaisesException] DOMString replaceItem(DOMString item, unsigned long index);
+    [RaisesException] DOMString removeItem(unsigned long index);
+    [RaisesException] DOMString appendItem(DOMString item);
 };
 
index 9e2b162..4b45a23 100644 (file)
@@ -33,11 +33,11 @@ interface SVGTransform {
     [ImplementedAs=svgMatrix] readonly attribute SVGMatrix matrix;
     readonly attribute unrestricted float angle;
 
-    [StrictTypeChecking] void setMatrix(SVGMatrix matrix);
-    [StrictTypeChecking] void setTranslate(unrestricted float tx, unrestricted float ty);
-    [StrictTypeChecking] void setScale(unrestricted float sx, unrestricted float sy);
-    [StrictTypeChecking] void setRotate(unrestricted float angle, unrestricted float cx, unrestricted float cy);
-    [StrictTypeChecking] void setSkewX(unrestricted float angle);
-    [StrictTypeChecking] void setSkewY(unrestricted float angle);
+    void setMatrix(SVGMatrix matrix);
+    void setTranslate(unrestricted float tx, unrestricted float ty);
+    void setScale(unrestricted float sx, unrestricted float sy);
+    void setRotate(unrestricted float angle, unrestricted float cx, unrestricted float cy);
+    void setSkewX(unrestricted float angle);
+    void setSkewY(unrestricted float angle);
 };
 
index ac29425..65966a6 100644 (file)
@@ -28,14 +28,14 @@ interface SVGTransformList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] SVGTransform initialize(SVGTransform item);
-    [StrictTypeChecking, RaisesException] SVGTransform getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGTransform insertItemBefore(SVGTransform item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGTransform replaceItem(SVGTransform item, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGTransform removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGTransform appendItem(SVGTransform item);
+    [RaisesException] SVGTransform initialize(SVGTransform item);
+    [RaisesException] SVGTransform getItem(unsigned long index);
+    [RaisesException] SVGTransform insertItemBefore(SVGTransform item, unsigned long index);
+    [RaisesException] SVGTransform replaceItem(SVGTransform item, unsigned long index);
+    [RaisesException] SVGTransform removeItem(unsigned long index);
+    [RaisesException] SVGTransform appendItem(SVGTransform item);
 
-    [StrictTypeChecking, RaisesException] SVGTransform createSVGTransformFromMatrix(SVGMatrix matrix);
+    [RaisesException] SVGTransform createSVGTransformFromMatrix(SVGMatrix matrix);
 
     [RaisesException] SVGTransform consolidate();
 };