[Web IDL] Pass even more types by reference
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 30 Apr 2016 22:06:21 +0000 (22:06 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 30 Apr 2016 22:06:21 +0000 (22:06 +0000)
https://bugs.webkit.org/show_bug.cgi?id=157231

Reviewed by Darin Adler.

Source/WebCore:

Pass even more types by reference when the parameters are not marked as
nullable in the IDL.

* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::generateKeyRequest):
(WebCore::MediaKeySession::keyRequestTimerFired):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::addKeyTimerFired):
* Modules/encryptedmedia/MediaKeySession.h:
* Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::createSession):
* Modules/encryptedmedia/MediaKeys.h:
* Modules/encryptedmedia/MediaKeys.idl:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBuffer):
(WebCore::SourceBuffer::resetParserState): Deleted.
* Modules/mediasource/SourceBuffer.h:
* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::send):
* Modules/mediastream/RTCDataChannel.h:
* Modules/webaudio/AnalyserNode.h:
(WebCore::AnalyserNode::getFloatFrequencyData):
(WebCore::AnalyserNode::getByteFrequencyData):
(WebCore::AnalyserNode::getByteTimeDomainData):
* Modules/webaudio/AnalyserNode.idl:
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createPeriodicWave):
* Modules/webaudio/AudioContext.h:
* Modules/webaudio/AudioParam.h:
(WebCore::AudioParam::setValueCurveAtTime):
* Modules/webaudio/AudioParam.idl:
* Modules/webaudio/BiquadFilterNode.cpp:
(WebCore::BiquadFilterNode::getFrequencyResponse):
* Modules/webaudio/BiquadFilterNode.h:
* Modules/webaudio/BiquadFilterNode.idl:
* Modules/webaudio/PeriodicWave.cpp:
(WebCore::PeriodicWave::create):
(WebCore::PeriodicWave::createSine): Deleted.
* Modules/webaudio/PeriodicWave.h:
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::send):
* Modules/websockets/WebSocket.h:
* bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
(WebCore::dataFunctionf):
(WebCore::dataFunctioni):
(WebCore::dataFunctionMatrix):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
(ShouldPassWrapperByReference):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::constructJSTestOverloadedConstructors2):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::webkitAddKey):
(WebCore::HTMLMediaElement::webkitCancelKeyRequest): Deleted.
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
* html/ImageData.cpp:
(WebCore::ImageData::create):
(WebCore::ImageData::ImageData):
* html/ImageData.h:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::getImageData):
* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::texImage3D):
(WebCore::WebGL2RenderingContext::texSubImage3D):
(WebCore::WebGL2RenderingContext::compressedTexImage3D):
(WebCore::WebGL2RenderingContext::compressedTexSubImage3D):
(WebCore::WebGL2RenderingContext::uniform1uiv):
(WebCore::WebGL2RenderingContext::uniform2uiv):
(WebCore::WebGL2RenderingContext::uniform3uiv):
(WebCore::WebGL2RenderingContext::uniform4uiv):
(WebCore::WebGL2RenderingContext::uniformMatrix2x3fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3x2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix2x4fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4x2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3x4fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4x3fv):
(WebCore::WebGL2RenderingContext::vertexAttribI4iv):
(WebCore::WebGL2RenderingContext::vertexAttribI4uiv):
(WebCore::WebGL2RenderingContext::clearBufferiv):
(WebCore::WebGL2RenderingContext::clearBufferuiv):
(WebCore::WebGL2RenderingContext::clearBufferfv):
(WebCore::WebGL2RenderingContext::getActiveUniforms):
(WebCore::WebGL2RenderingContext::texSubImage2D):
* html/canvas/WebGL2RenderingContext.h:
* html/canvas/WebGL2RenderingContext.idl:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::texSubImage2D):
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::bufferData):
(WebCore::WebGLRenderingContextBase::bufferSubData):
(WebCore::WebGLRenderingContextBase::compressedTexImage2D):
(WebCore::WebGLRenderingContextBase::compressedTexSubImage2D):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::texImage2D):
(WebCore::WebGLRenderingContextBase::uniform1fv):
(WebCore::WebGLRenderingContextBase::uniform1iv):
(WebCore::WebGLRenderingContextBase::uniform2fv):
(WebCore::WebGLRenderingContextBase::uniform2iv):
(WebCore::WebGLRenderingContextBase::uniform3fv):
(WebCore::WebGLRenderingContextBase::uniform3iv):
(WebCore::WebGLRenderingContextBase::uniform4fv):
(WebCore::WebGLRenderingContextBase::uniform4iv):
(WebCore::WebGLRenderingContextBase::uniformMatrix2fv):
(WebCore::WebGLRenderingContextBase::uniformMatrix3fv):
(WebCore::WebGLRenderingContextBase::uniformMatrix4fv):
(WebCore::WebGLRenderingContextBase::vertexAttrib1fv):
(WebCore::WebGLRenderingContextBase::vertexAttrib2fv):
(WebCore::WebGLRenderingContextBase::vertexAttrib3fv):
(WebCore::WebGLRenderingContextBase::vertexAttrib4fv):
(WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData):
(WebCore::WebGLRenderingContextBase::validateUniformParameters):
(WebCore::WebGLRenderingContextBase::validateUniformMatrixParameters):
(WebCore::WebGLRenderingContextBase::vertexAttribfvImpl):
(WebCore::WebGLRenderingContextBase::validateSettableTexFormat): Deleted.
(WebCore::WebGLRenderingContextBase::uniform1i): Deleted.
(WebCore::WebGLRenderingContextBase::uniform2i): Deleted.
(WebCore::WebGLRenderingContextBase::uniform3f): Deleted.
(WebCore::WebGLRenderingContextBase::uniform3i): Deleted.
(WebCore::WebGLRenderingContextBase::uniform4f): Deleted.
(WebCore::WebGLRenderingContextBase::uniform4i): Deleted.
(WebCore::WebGLRenderingContextBase::useProgram): Deleted.
(WebCore::WebGLRenderingContextBase::vertexAttribPointer): Deleted.
(WebCore::WebGLRenderingContextBase::validateCompressedTexDimensions): Deleted.
(WebCore::WebGLRenderingContextBase::validateBufferDataParameters): Deleted.
* html/canvas/WebGLRenderingContextBase.h:
* html/canvas/WebGLRenderingContextBase.idl:
* testing/Internals.cpp:
(WebCore::Internals::createTimeRanges):
* testing/Internals.h:

LayoutTests:

Update test now that slightly different exceptions are thrown.

* media/encrypted-media/encrypted-media-v2-syntax-expected.txt:
* media/encrypted-media/encrypted-media-v2-syntax.html:

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

46 files changed:
LayoutTests/ChangeLog
LayoutTests/media/encrypted-media/encrypted-media-v2-syntax-expected.txt
LayoutTests/media/encrypted-media/encrypted-media-v2-syntax.html
Source/WebCore/ChangeLog
Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp
Source/WebCore/Modules/encryptedmedia/MediaKeySession.h
Source/WebCore/Modules/encryptedmedia/MediaKeys.cpp
Source/WebCore/Modules/encryptedmedia/MediaKeys.h
Source/WebCore/Modules/encryptedmedia/MediaKeys.idl
Source/WebCore/Modules/mediasource/SourceBuffer.cpp
Source/WebCore/Modules/mediasource/SourceBuffer.h
Source/WebCore/Modules/mediastream/RTCDataChannel.cpp
Source/WebCore/Modules/mediastream/RTCDataChannel.h
Source/WebCore/Modules/webaudio/AnalyserNode.h
Source/WebCore/Modules/webaudio/AnalyserNode.idl
Source/WebCore/Modules/webaudio/AudioContext.cpp
Source/WebCore/Modules/webaudio/AudioContext.h
Source/WebCore/Modules/webaudio/AudioParam.h
Source/WebCore/Modules/webaudio/AudioParam.idl
Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp
Source/WebCore/Modules/webaudio/BiquadFilterNode.h
Source/WebCore/Modules/webaudio/BiquadFilterNode.idl
Source/WebCore/Modules/webaudio/PeriodicWave.cpp
Source/WebCore/Modules/webaudio/PeriodicWave.h
Source/WebCore/Modules/websockets/WebSocket.cpp
Source/WebCore/Modules/websockets/WebSocket.h
Source/WebCore/bindings/js/JSWebGLRenderingContextBaseCustom.cpp
Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp
Source/WebCore/html/HTMLMediaElement.cpp
Source/WebCore/html/HTMLMediaElement.h
Source/WebCore/html/HTMLMediaElement.idl
Source/WebCore/html/ImageData.cpp
Source/WebCore/html/ImageData.h
Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
Source/WebCore/html/canvas/WebGL2RenderingContext.cpp
Source/WebCore/html/canvas/WebGL2RenderingContext.h
Source/WebCore/html/canvas/WebGL2RenderingContext.idl
Source/WebCore/html/canvas/WebGLRenderingContext.cpp
Source/WebCore/html/canvas/WebGLRenderingContext.h
Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
Source/WebCore/html/canvas/WebGLRenderingContextBase.h
Source/WebCore/html/canvas/WebGLRenderingContextBase.idl
Source/WebCore/testing/Internals.cpp
Source/WebCore/testing/Internals.h

index ef97fb8..69f9861 100644 (file)
@@ -1,3 +1,15 @@
+2016-04-30  Chris Dumez  <cdumez@apple.com>
+
+        [Web IDL] Pass even more types by reference
+        https://bugs.webkit.org/show_bug.cgi?id=157231
+
+        Reviewed by Darin Adler.
+
+        Update test now that slightly different exceptions are thrown.
+
+        * media/encrypted-media/encrypted-media-v2-syntax-expected.txt:
+        * media/encrypted-media/encrypted-media-v2-syntax.html:
+
 2016-04-30  Ryosuke Niwa  <rniwa@webkit.org>
 
         Node.prototype.rootNode is not Web compatible
 2016-04-30  Ryosuke Niwa  <rniwa@webkit.org>
 
         Node.prototype.rootNode is not Web compatible
index e51de0c..02a1830 100644 (file)
@@ -8,7 +8,7 @@ RUN(mediaKeys = new WebKitMediaKeys("com.webcore.mock"))
 EXPECTED (mediaKeys.keySystem == 'com.webcore.mock') OK
 EXPECTED (typeof mediaKeys.createSession == 'function') OK
 TEST(mediaKeys.createSession("", new Uint8Array(1))) THROWS(DOMException.INVALID_ACCESS_ERR) OK
 EXPECTED (mediaKeys.keySystem == 'com.webcore.mock') OK
 EXPECTED (typeof mediaKeys.createSession == 'function') OK
 TEST(mediaKeys.createSession("", new Uint8Array(1))) THROWS(DOMException.INVALID_ACCESS_ERR) OK
-TEST(mediaKeys.createSession("unsupported/type")) THROWS(DOMException.INVALID_ACCESS_ERR) OK
+TEST(mediaKeys.createSession("unsupported/type")) THROWS('TypeError: Not enough arguments') OK
 TEST(mediaKeys.createSession("unsupported/type", new Uint8Array(1))) THROWS(DOMException.NOT_SUPPORTED_ERR) OK
 
 Test WebKitMediaKeySession.
 TEST(mediaKeys.createSession("unsupported/type", new Uint8Array(1))) THROWS(DOMException.NOT_SUPPORTED_ERR) OK
 
 Test WebKitMediaKeySession.
@@ -22,6 +22,6 @@ EXPECTED (mediaKeySession.sessionId != 'null') OK
 EXPECTED (mediaKeySession.onwebkitkeyadded == 'null') OK
 EXPECTED (mediaKeySession.onwebkitkeyerror == 'null') OK
 EXPECTED (mediaKeySession.onwebkitkeymessage == 'null') OK
 EXPECTED (mediaKeySession.onwebkitkeyadded == 'null') OK
 EXPECTED (mediaKeySession.onwebkitkeyerror == 'null') OK
 EXPECTED (mediaKeySession.onwebkitkeymessage == 'null') OK
-TEST(mediaKeySession.update(null)) THROWS(DOMException.INVALID_ACCESS_ERR) OK
+TEST(mediaKeySession.update(null)) THROWS('TypeError: Type error') OK
 END OF TEST
 
 END OF TEST
 
index bff16e4..104cbbe 100644 (file)
@@ -32,7 +32,7 @@
                 testExpected('mediaKeys.keySystem', 'com.webcore.mock');
                 testExpected('typeof mediaKeys.createSession', 'function');
                 testDOMException('mediaKeys.createSession("", new Uint8Array(1))', "DOMException.INVALID_ACCESS_ERR");
                 testExpected('mediaKeys.keySystem', 'com.webcore.mock');
                 testExpected('typeof mediaKeys.createSession', 'function');
                 testDOMException('mediaKeys.createSession("", new Uint8Array(1))', "DOMException.INVALID_ACCESS_ERR");
-                testDOMException('mediaKeys.createSession("unsupported/type")', "DOMException.INVALID_ACCESS_ERR");
+                testException('mediaKeys.createSession("unsupported/type")', "'TypeError: Not enough arguments'");
                 testDOMException('mediaKeys.createSession("unsupported/type", new Uint8Array(1))', "DOMException.NOT_SUPPORTED_ERR");
                 consoleWrite("");
 
                 testDOMException('mediaKeys.createSession("unsupported/type", new Uint8Array(1))', "DOMException.NOT_SUPPORTED_ERR");
                 consoleWrite("");
 
@@ -47,7 +47,7 @@
                 testExpected('mediaKeySession.onwebkitkeyadded', null);
                 testExpected('mediaKeySession.onwebkitkeyerror', null);
                 testExpected('mediaKeySession.onwebkitkeymessage', null);
                 testExpected('mediaKeySession.onwebkitkeyadded', null);
                 testExpected('mediaKeySession.onwebkitkeyerror', null);
                 testExpected('mediaKeySession.onwebkitkeymessage', null);
-                testDOMException('mediaKeySession.update(null)', "DOMException.INVALID_ACCESS_ERR");
+                testException('mediaKeySession.update(null)', "'TypeError: Type error'");
                 endTest();
             }
         </script>
                 endTest();
             }
         </script>
index f6529d6..fc927e3 100644 (file)
@@ -1,3 +1,144 @@
+2016-04-30  Chris Dumez  <cdumez@apple.com>
+
+        [Web IDL] Pass even more types by reference
+        https://bugs.webkit.org/show_bug.cgi?id=157231
+
+        Reviewed by Darin Adler.
+
+        Pass even more types by reference when the parameters are not marked as
+        nullable in the IDL.
+
+        * Modules/encryptedmedia/MediaKeySession.cpp:
+        (WebCore::MediaKeySession::generateKeyRequest):
+        (WebCore::MediaKeySession::keyRequestTimerFired):
+        (WebCore::MediaKeySession::update):
+        (WebCore::MediaKeySession::addKeyTimerFired):
+        * Modules/encryptedmedia/MediaKeySession.h:
+        * Modules/encryptedmedia/MediaKeys.cpp:
+        (WebCore::MediaKeys::createSession):
+        * Modules/encryptedmedia/MediaKeys.h:
+        * Modules/encryptedmedia/MediaKeys.idl:
+        * Modules/mediasource/SourceBuffer.cpp:
+        (WebCore::SourceBuffer::appendBuffer):
+        (WebCore::SourceBuffer::resetParserState): Deleted.
+        * Modules/mediasource/SourceBuffer.h:
+        * Modules/mediastream/RTCDataChannel.cpp:
+        (WebCore::RTCDataChannel::send):
+        * Modules/mediastream/RTCDataChannel.h:
+        * Modules/webaudio/AnalyserNode.h:
+        (WebCore::AnalyserNode::getFloatFrequencyData):
+        (WebCore::AnalyserNode::getByteFrequencyData):
+        (WebCore::AnalyserNode::getByteTimeDomainData):
+        * Modules/webaudio/AnalyserNode.idl:
+        * Modules/webaudio/AudioContext.cpp:
+        (WebCore::AudioContext::createPeriodicWave):
+        * Modules/webaudio/AudioContext.h:
+        * Modules/webaudio/AudioParam.h:
+        (WebCore::AudioParam::setValueCurveAtTime):
+        * Modules/webaudio/AudioParam.idl:
+        * Modules/webaudio/BiquadFilterNode.cpp:
+        (WebCore::BiquadFilterNode::getFrequencyResponse):
+        * Modules/webaudio/BiquadFilterNode.h:
+        * Modules/webaudio/BiquadFilterNode.idl:
+        * Modules/webaudio/PeriodicWave.cpp:
+        (WebCore::PeriodicWave::create):
+        (WebCore::PeriodicWave::createSine): Deleted.
+        * Modules/webaudio/PeriodicWave.h:
+        * Modules/websockets/WebSocket.cpp:
+        (WebCore::WebSocket::send):
+        * Modules/websockets/WebSocket.h:
+        * bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
+        (WebCore::dataFunctionf):
+        (WebCore::dataFunctioni):
+        (WebCore::dataFunctionMatrix):
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateParametersCheck):
+        (ShouldPassWrapperByReference):
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+        (WebCore::constructJSTestOverloadedConstructors2):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::webkitAddKey):
+        (WebCore::HTMLMediaElement::webkitCancelKeyRequest): Deleted.
+        * html/HTMLMediaElement.h:
+        * html/HTMLMediaElement.idl:
+        * html/ImageData.cpp:
+        (WebCore::ImageData::create):
+        (WebCore::ImageData::ImageData):
+        * html/ImageData.h:
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::getImageData):
+        * html/canvas/WebGL2RenderingContext.cpp:
+        (WebCore::WebGL2RenderingContext::texImage3D):
+        (WebCore::WebGL2RenderingContext::texSubImage3D):
+        (WebCore::WebGL2RenderingContext::compressedTexImage3D):
+        (WebCore::WebGL2RenderingContext::compressedTexSubImage3D):
+        (WebCore::WebGL2RenderingContext::uniform1uiv):
+        (WebCore::WebGL2RenderingContext::uniform2uiv):
+        (WebCore::WebGL2RenderingContext::uniform3uiv):
+        (WebCore::WebGL2RenderingContext::uniform4uiv):
+        (WebCore::WebGL2RenderingContext::uniformMatrix2x3fv):
+        (WebCore::WebGL2RenderingContext::uniformMatrix3x2fv):
+        (WebCore::WebGL2RenderingContext::uniformMatrix2x4fv):
+        (WebCore::WebGL2RenderingContext::uniformMatrix4x2fv):
+        (WebCore::WebGL2RenderingContext::uniformMatrix3x4fv):
+        (WebCore::WebGL2RenderingContext::uniformMatrix4x3fv):
+        (WebCore::WebGL2RenderingContext::vertexAttribI4iv):
+        (WebCore::WebGL2RenderingContext::vertexAttribI4uiv):
+        (WebCore::WebGL2RenderingContext::clearBufferiv):
+        (WebCore::WebGL2RenderingContext::clearBufferuiv):
+        (WebCore::WebGL2RenderingContext::clearBufferfv):
+        (WebCore::WebGL2RenderingContext::getActiveUniforms):
+        (WebCore::WebGL2RenderingContext::texSubImage2D):
+        * html/canvas/WebGL2RenderingContext.h:
+        * html/canvas/WebGL2RenderingContext.idl:
+        * html/canvas/WebGLRenderingContext.cpp:
+        (WebCore::WebGLRenderingContext::texSubImage2D):
+        * html/canvas/WebGLRenderingContext.h:
+        * html/canvas/WebGLRenderingContextBase.cpp:
+        (WebCore::WebGLRenderingContextBase::bufferData):
+        (WebCore::WebGLRenderingContextBase::bufferSubData):
+        (WebCore::WebGLRenderingContextBase::compressedTexImage2D):
+        (WebCore::WebGLRenderingContextBase::compressedTexSubImage2D):
+        (WebCore::WebGLRenderingContextBase::readPixels):
+        (WebCore::WebGLRenderingContextBase::texImage2D):
+        (WebCore::WebGLRenderingContextBase::uniform1fv):
+        (WebCore::WebGLRenderingContextBase::uniform1iv):
+        (WebCore::WebGLRenderingContextBase::uniform2fv):
+        (WebCore::WebGLRenderingContextBase::uniform2iv):
+        (WebCore::WebGLRenderingContextBase::uniform3fv):
+        (WebCore::WebGLRenderingContextBase::uniform3iv):
+        (WebCore::WebGLRenderingContextBase::uniform4fv):
+        (WebCore::WebGLRenderingContextBase::uniform4iv):
+        (WebCore::WebGLRenderingContextBase::uniformMatrix2fv):
+        (WebCore::WebGLRenderingContextBase::uniformMatrix3fv):
+        (WebCore::WebGLRenderingContextBase::uniformMatrix4fv):
+        (WebCore::WebGLRenderingContextBase::vertexAttrib1fv):
+        (WebCore::WebGLRenderingContextBase::vertexAttrib2fv):
+        (WebCore::WebGLRenderingContextBase::vertexAttrib3fv):
+        (WebCore::WebGLRenderingContextBase::vertexAttrib4fv):
+        (WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData):
+        (WebCore::WebGLRenderingContextBase::validateUniformParameters):
+        (WebCore::WebGLRenderingContextBase::validateUniformMatrixParameters):
+        (WebCore::WebGLRenderingContextBase::vertexAttribfvImpl):
+        (WebCore::WebGLRenderingContextBase::validateSettableTexFormat): Deleted.
+        (WebCore::WebGLRenderingContextBase::uniform1i): Deleted.
+        (WebCore::WebGLRenderingContextBase::uniform2i): Deleted.
+        (WebCore::WebGLRenderingContextBase::uniform3f): Deleted.
+        (WebCore::WebGLRenderingContextBase::uniform3i): Deleted.
+        (WebCore::WebGLRenderingContextBase::uniform4f): Deleted.
+        (WebCore::WebGLRenderingContextBase::uniform4i): Deleted.
+        (WebCore::WebGLRenderingContextBase::useProgram): Deleted.
+        (WebCore::WebGLRenderingContextBase::vertexAttribPointer): Deleted.
+        (WebCore::WebGLRenderingContextBase::validateCompressedTexDimensions): Deleted.
+        (WebCore::WebGLRenderingContextBase::validateBufferDataParameters): Deleted.
+        * html/canvas/WebGLRenderingContextBase.h:
+        * html/canvas/WebGLRenderingContextBase.idl:
+        * testing/Internals.cpp:
+        (WebCore::Internals::createTimeRanges):
+        * testing/Internals.h:
+
 2016-04-30  Ryosuke Niwa  <rniwa@webkit.org>
 
         Node.prototype.rootNode is not Web compatible
 2016-04-30  Ryosuke Niwa  <rniwa@webkit.org>
 
         Node.prototype.rootNode is not Web compatible
index 4162505..91ac0bc 100644 (file)
@@ -89,9 +89,9 @@ const String& MediaKeySession::sessionId() const
     return m_session->sessionId();
 }
 
     return m_session->sessionId();
 }
 
-void MediaKeySession::generateKeyRequest(const String& mimeType, Uint8Array* initData)
+void MediaKeySession::generateKeyRequest(const String& mimeType, Ref<Uint8Array>&& initData)
 {
 {
-    m_pendingKeyRequests.append(PendingKeyRequest(mimeType, initData));
+    m_pendingKeyRequests.append({ mimeType, WTFMove(initData) });
     m_keyRequestTimer.startOneShot(0);
 }
 
     m_keyRequestTimer.startOneShot(0);
 }
 
@@ -115,7 +115,7 @@ void MediaKeySession::keyRequestTimerFired()
 
         // 3. Use cdm to generate a key request and follow the steps for the first matching condition from the following list:
 
 
         // 3. Use cdm to generate a key request and follow the steps for the first matching condition from the following list:
 
-        RefPtr<Uint8Array> keyRequest = m_session->generateKeyRequest(request.mimeType, request.initData.get(), destinationURL, errorCode, systemCode);
+        RefPtr<Uint8Array> keyRequest = m_session->generateKeyRequest(request.mimeType, request.initData.ptr(), destinationURL, errorCode, systemCode);
 
         // Otherwise [if a request is not successfully generated]:
         if (errorCode) {
 
         // Otherwise [if a request is not successfully generated]:
         if (errorCode) {
@@ -138,19 +138,19 @@ void MediaKeySession::keyRequestTimerFired()
     }
 }
 
     }
 }
 
-void MediaKeySession::update(Uint8Array* key, ExceptionCode& ec)
+void MediaKeySession::update(Ref<Uint8Array>&& key, ExceptionCode& ec)
 {
     // From <http://dvcs.w3.org/hg/html-media/raw-file/tip/encrypted-media/encrypted-media.html#dom-addkey>:
     // The addKey(key) method must run the following steps:
 {
     // From <http://dvcs.w3.org/hg/html-media/raw-file/tip/encrypted-media/encrypted-media.html#dom-addkey>:
     // The addKey(key) method must run the following steps:
-    // 1. If the first or second argument [sic] is null or an empty array, throw an INVALID_ACCESS_ERR.
+    // 1. If the first or second argument [sic] is an empty array, throw an INVALID_ACCESS_ERR.
     // NOTE: the reference to a "second argument" is a spec bug.
     // NOTE: the reference to a "second argument" is a spec bug.
-    if (!key || !key->length()) {
+    if (!key->length()) {
         ec = INVALID_ACCESS_ERR;
         return;
     }
 
     // 2. Schedule a task to handle the call, providing key.
         ec = INVALID_ACCESS_ERR;
         return;
     }
 
     // 2. Schedule a task to handle the call, providing key.
-    m_pendingKeys.append(key);
+    m_pendingKeys.append(WTFMove(key));
     m_addKeyTimer.startOneShot(0);
 }
 
     m_addKeyTimer.startOneShot(0);
 }
 
@@ -161,7 +161,7 @@ void MediaKeySession::addKeyTimerFired()
         return;
 
     while (!m_pendingKeys.isEmpty()) {
         return;
 
     while (!m_pendingKeys.isEmpty()) {
-        RefPtr<Uint8Array> pendingKey = m_pendingKeys.takeFirst();
+        auto pendingKey = m_pendingKeys.takeFirst();
         unsigned short errorCode = 0;
         uint32_t systemCode = 0;
 
         unsigned short errorCode = 0;
         uint32_t systemCode = 0;
 
@@ -173,7 +173,7 @@ void MediaKeySession::addKeyTimerFired()
         // 2.3. Let 'next message' be null.
         RefPtr<Uint8Array> nextMessage;
         // 2.4. Use cdm to handle key.
         // 2.3. Let 'next message' be null.
         RefPtr<Uint8Array> nextMessage;
         // 2.4. Use cdm to handle key.
-        didStoreKey = m_session->update(pendingKey.get(), nextMessage, errorCode, systemCode);
+        didStoreKey = m_session->update(pendingKey.ptr(), nextMessage, errorCode, systemCode);
         // 2.5. If did store key is true and the media element is waiting for a key, queue a task to attempt to resume playback.
         // TODO: Find and restart the media element
 
         // 2.5. If did store key is true and the media element is waiting for a key, queue a task to attempt to resume playback.
         // TODO: Find and restart the media element
 
index 1d085ed..39c9f8c 100644 (file)
@@ -60,8 +60,8 @@ public:
     void setKeys(MediaKeys* keys) { m_keys = keys; }
     MediaKeys* keys() const { return m_keys; }
 
     void setKeys(MediaKeys* keys) { m_keys = keys; }
     MediaKeys* keys() const { return m_keys; }
 
-    void generateKeyRequest(const String& mimeType, Uint8Array* initData);
-    void update(Uint8Array* key, ExceptionCode&);
+    void generateKeyRequest(const String& mimeType, Ref<Uint8Array>&& initData);
+    void update(Ref<Uint8Array>&& key, ExceptionCode&);
 
     bool isClosed() const { return !m_session; }
     void close();
 
     bool isClosed() const { return !m_session; }
     void close();
@@ -97,14 +97,13 @@ protected:
     std::unique_ptr<CDMSession> m_session;
 
     struct PendingKeyRequest {
     std::unique_ptr<CDMSession> m_session;
 
     struct PendingKeyRequest {
-        PendingKeyRequest(const String& mimeType, Uint8Array* initData) : mimeType(mimeType), initData(initData) { }
         String mimeType;
         String mimeType;
-        RefPtr<Uint8Array> initData;
+        Ref<Uint8Array> initData;
     };
     Deque<PendingKeyRequest> m_pendingKeyRequests;
     Timer m_keyRequestTimer;
 
     };
     Deque<PendingKeyRequest> m_pendingKeyRequests;
     Timer m_keyRequestTimer;
 
-    Deque<RefPtr<Uint8Array>> m_pendingKeys;
+    Deque<Ref<Uint8Array>> m_pendingKeys;
     Timer m_addKeyTimer;
 
 private:
     Timer m_addKeyTimer;
 
 private:
index df51270..cba3ea7 100644 (file)
@@ -83,7 +83,7 @@ MediaKeys::~MediaKeys()
     }
 }
 
     }
 }
 
-RefPtr<MediaKeySession> MediaKeys::createSession(ScriptExecutionContext& context, const String& type, Uint8Array* initData, ExceptionCode& ec)
+RefPtr<MediaKeySession> MediaKeys::createSession(ScriptExecutionContext& context, const String& type, Ref<Uint8Array>&& initData, ExceptionCode& ec)
 {
     // From <http://www.w3.org/TR/2014/WD-encrypted-media-20140218/#dom-createsession>:
     // The createSession(type, initData) method must run the following steps:
 {
     // From <http://www.w3.org/TR/2014/WD-encrypted-media-20140218/#dom-createsession>:
     // The createSession(type, initData) method must run the following steps:
@@ -95,8 +95,8 @@ RefPtr<MediaKeySession> MediaKeys::createSession(ScriptExecutionContext& context
         return nullptr;
     }
 
         return nullptr;
     }
 
-    // 2. If initData is null or an empty array, throw an INVALID_ACCESS_ERR exception and abort these steps.
-    if (!initData || !initData->length()) {
+    // 2. If initData is an empty array, throw an INVALID_ACCESS_ERR exception and abort these steps.
+    if (!initData->length()) {
         ec = INVALID_ACCESS_ERR;
         return nullptr;
     }
         ec = INVALID_ACCESS_ERR;
         return nullptr;
     }
@@ -111,15 +111,15 @@ RefPtr<MediaKeySession> MediaKeys::createSession(ScriptExecutionContext& context
     // 4. Create a new MediaKeySession object.
     // 4.1 Let the keySystem attribute be keySystem.
     // 4.2 Let the sessionId attribute be a unique Session ID string. It may be generated by cdm.
     // 4. Create a new MediaKeySession object.
     // 4.1 Let the keySystem attribute be keySystem.
     // 4.2 Let the sessionId attribute be a unique Session ID string. It may be generated by cdm.
-    RefPtr<MediaKeySession> session = MediaKeySession::create(context, this, keySystem());
+    auto session = MediaKeySession::create(context, this, keySystem());
 
 
-    m_sessions.append(session);
+    m_sessions.append(session.copyRef());
 
     // 5. Schedule a task to initialize the session, providing contentType, initData, and the new object.
 
     // 5. Schedule a task to initialize the session, providing contentType, initData, and the new object.
-    session->generateKeyRequest(type, initData);
+    session->generateKeyRequest(type, WTFMove(initData));
 
     // 6. Return the new object to the caller.
 
     // 6. Return the new object to the caller.
-    return session;
+    return WTFMove(session);
 }
 
 bool MediaKeys::isTypeSupported(const String& keySystem, const String& mimeType)
 }
 
 bool MediaKeys::isTypeSupported(const String& keySystem, const String& mimeType)
index 962d89e..7cf0633 100644 (file)
@@ -47,7 +47,7 @@ public:
     static RefPtr<MediaKeys> create(const String& keySystem, ExceptionCode&);
     virtual ~MediaKeys();
 
     static RefPtr<MediaKeys> create(const String& keySystem, ExceptionCode&);
     virtual ~MediaKeys();
 
-    RefPtr<MediaKeySession> createSession(ScriptExecutionContext&, const String& mimeType, Uint8Array* initData, ExceptionCode&);
+    RefPtr<MediaKeySession> createSession(ScriptExecutionContext&, const String& mimeType, Ref<Uint8Array>&& initData, ExceptionCode&);
 
     static bool isTypeSupported(const String& keySystem, const String& mimeType);
 
 
     static bool isTypeSupported(const String& keySystem, const String& mimeType);
 
@@ -66,7 +66,7 @@ protected:
 
     MediaKeys(const String& keySystem, std::unique_ptr<CDM>);
 
 
     MediaKeys(const String& keySystem, std::unique_ptr<CDM>);
 
-    Vector<RefPtr<MediaKeySession>> m_sessions;
+    Vector<Ref<MediaKeySession>> m_sessions;
 
     HTMLMediaElement* m_mediaElement;
     String m_keySystem;
 
     HTMLMediaElement* m_mediaElement;
     String m_keySystem;
index 7816e2e..c8688fe 100644 (file)
@@ -29,8 +29,7 @@
     ConstructorRaisesException,
     InterfaceName=WebKitMediaKeys,
 ] interface MediaKeys {
     ConstructorRaisesException,
     InterfaceName=WebKitMediaKeys,
 ] interface MediaKeys {
-    // FIXME: The default value for the 'type' parameter is wrong.
-    [CallWith=ScriptExecutionContext, RaisesException] MediaKeySession createSession(optional DOMString type = "undefined", optional Uint8Array initData = null);
+    [CallWith=ScriptExecutionContext, RaisesException] MediaKeySession createSession(DOMString type, Uint8Array initData);
     static boolean isTypeSupported(DOMString keySystem, optional DOMString type);
     readonly attribute DOMString keySystem;
 };
     static boolean isTypeSupported(DOMString keySystem, optional DOMString type);
     readonly attribute DOMString keySystem;
 };
index 0507a95..b488b35 100644 (file)
@@ -252,14 +252,9 @@ void SourceBuffer::appendBuffer(ArrayBuffer& data, ExceptionCode& ec)
     appendBufferInternal(static_cast<unsigned char*>(data.data()), data.byteLength(), ec);
 }
 
     appendBufferInternal(static_cast<unsigned char*>(data.data()), data.byteLength(), ec);
 }
 
-void SourceBuffer::appendBuffer(ArrayBufferView* data, ExceptionCode& ec)
+void SourceBuffer::appendBuffer(ArrayBufferView& data, ExceptionCode& ec)
 {
 {
-    if (!data) {
-        ec = TypeError;
-        return;
-    }
-
-    appendBufferInternal(static_cast<unsigned char*>(data->baseAddress()), data->byteLength(), ec);
+    appendBufferInternal(static_cast<unsigned char*>(data.baseAddress()), data.byteLength(), ec);
 }
 
 void SourceBuffer::resetParserState()
 }
 
 void SourceBuffer::resetParserState()
index 6bcb64a..487dfc8 100644 (file)
@@ -87,7 +87,7 @@ public:
     void setAppendWindowEnd(double, ExceptionCode&);
 
     void appendBuffer(ArrayBuffer&, ExceptionCode&);
     void setAppendWindowEnd(double, ExceptionCode&);
 
     void appendBuffer(ArrayBuffer&, ExceptionCode&);
-    void appendBuffer(ArrayBufferView*, ExceptionCode&);
+    void appendBuffer(ArrayBufferView&, ExceptionCode&);
     void abort(ExceptionCode&);
     void remove(double start, double end, ExceptionCode&);
     void remove(const MediaTime&, const MediaTime&, ExceptionCode&);
     void abort(ExceptionCode&);
     void remove(double start, double end, ExceptionCode&);
     void remove(const MediaTime&, const MediaTime&, ExceptionCode&);
index 1de39eb..c79c9c0 100644 (file)
@@ -221,12 +221,9 @@ void RTCDataChannel::send(ArrayBuffer& data, ExceptionCode& ec)
     }
 }
 
     }
 }
 
-void RTCDataChannel::send(ArrayBufferView* data, ExceptionCode& ec)
+void RTCDataChannel::send(ArrayBufferView& data, ExceptionCode& ec)
 {
 {
-    ASSERT(data);
-    RefPtr<ArrayBuffer> arrayBuffer(data->buffer());
-    ASSERT(arrayBuffer);
-    send(*arrayBuffer, ec);
+    send(*data.buffer(), ec);
 }
 
 void RTCDataChannel::send(Blob&, ExceptionCode& ec)
 }
 
 void RTCDataChannel::send(Blob&, ExceptionCode& ec)
index 0f8d601..c919dea 100644 (file)
@@ -66,7 +66,7 @@ public:
 
     void send(const String&, ExceptionCode&);
     void send(JSC::ArrayBuffer&, ExceptionCode&);
 
     void send(const String&, ExceptionCode&);
     void send(JSC::ArrayBuffer&, ExceptionCode&);
-    void send(JSC::ArrayBufferView*, ExceptionCode&);
+    void send(JSC::ArrayBufferView&, ExceptionCode&);
     void send(Blob&, ExceptionCode&);
 
     void close();
     void send(Blob&, ExceptionCode&);
 
     void close();
index bc8314c..2014932 100644 (file)
@@ -59,9 +59,9 @@ public:
     void setSmoothingTimeConstant(double k, ExceptionCode&);
     double smoothingTimeConstant() const { return m_analyser.smoothingTimeConstant(); }
 
     void setSmoothingTimeConstant(double k, ExceptionCode&);
     double smoothingTimeConstant() const { return m_analyser.smoothingTimeConstant(); }
 
-    void getFloatFrequencyData(JSC::Float32Array* array) { m_analyser.getFloatFrequencyData(array); }
-    void getByteFrequencyData(JSC::Uint8Array* array) { m_analyser.getByteFrequencyData(array); }
-    void getByteTimeDomainData(JSC::Uint8Array* array) { m_analyser.getByteTimeDomainData(array); }
+    void getFloatFrequencyData(const RefPtr<JSC::Float32Array>& array) { m_analyser.getFloatFrequencyData(array.get()); }
+    void getByteFrequencyData(const RefPtr<JSC::Uint8Array>& array) { m_analyser.getByteFrequencyData(array.get()); }
+    void getByteTimeDomainData(const RefPtr<JSC::Uint8Array>& array) { m_analyser.getByteTimeDomainData(array.get()); }
 
 private:
     double tailTime() const override { return 0; }
 
 private:
     double tailTime() const override { return 0; }
index 84a8652..bb06a98 100644 (file)
@@ -38,9 +38,9 @@
 
     // Copies the current frequency data into the passed array.
     // If the array has fewer elements than the frequencyBinCount, the excess elements will be dropped.
 
     // Copies the current frequency data into the passed array.
     // If the array has fewer elements than the frequencyBinCount, the excess elements will be dropped.
-    void getFloatFrequencyData(Float32Array array);
-    void getByteFrequencyData(Uint8Array array);
+    void getFloatFrequencyData(Float32Array? array); // FIXME: The parameter should not be nullable.
+    void getByteFrequencyData(Uint8Array? array); // FIXME: The parameter should not be nullable.
 
     // Real-time waveform data
 
     // Real-time waveform data
-    void getByteTimeDomainData(Uint8Array array);
+    void getByteTimeDomainData(Uint8Array? array); // FIXME: The parameter should not be nullable.
 };
 };
index f9003a2..3c8df2b 100644 (file)
@@ -577,17 +577,17 @@ Ref<OscillatorNode> AudioContext::createOscillator()
     return node;
 }
 
     return node;
 }
 
-RefPtr<PeriodicWave> AudioContext::createPeriodicWave(Float32Array* real, Float32Array* imag, ExceptionCode& ec)
+RefPtr<PeriodicWave> AudioContext::createPeriodicWave(Float32Array& real, Float32Array& imaginary, ExceptionCode& ec)
 {
     ASSERT(isMainThread());
     
 {
     ASSERT(isMainThread());
     
-    if (!real || !imag || (real->length() != imag->length() || (real->length() > MaxPeriodicWaveLength) || (real->length() <= 0))) {
+    if (real.length() != imaginary.length() || (real.length() > MaxPeriodicWaveLength) || !real.length()) {
         ec = INDEX_SIZE_ERR;
         return nullptr;
     }
     
     lazyInitialize();
         ec = INDEX_SIZE_ERR;
         return nullptr;
     }
     
     lazyInitialize();
-    return PeriodicWave::create(sampleRate(), real, imag);
+    return PeriodicWave::create(sampleRate(), real, imaginary);
 }
 
 void AudioContext::notifyNodeFinishedProcessing(AudioNode* node)
 }
 
 void AudioContext::notifyNodeFinishedProcessing(AudioNode* node)
index f1ded8e..b09da16 100644 (file)
@@ -141,7 +141,7 @@ public:
     RefPtr<ChannelSplitterNode> createChannelSplitter(size_t numberOfOutputs, ExceptionCode&);
     RefPtr<ChannelMergerNode> createChannelMerger(size_t numberOfInputs, ExceptionCode&);
     Ref<OscillatorNode> createOscillator();
     RefPtr<ChannelSplitterNode> createChannelSplitter(size_t numberOfOutputs, ExceptionCode&);
     RefPtr<ChannelMergerNode> createChannelMerger(size_t numberOfInputs, ExceptionCode&);
     Ref<OscillatorNode> createOscillator();
-    RefPtr<PeriodicWave> createPeriodicWave(Float32Array* real, Float32Array* imag, ExceptionCode&);
+    RefPtr<PeriodicWave> createPeriodicWave(Float32Array& real, Float32Array& imaginary, ExceptionCode&);
 
     // When a source node has no more processing to do (has finished playing), then it tells the context to dereference it.
     void notifyNodeFinishedProcessing(AudioNode*);
 
     // When a source node has no more processing to do (has finished playing), then it tells the context to dereference it.
     void notifyNodeFinishedProcessing(AudioNode*);
index 6ef55d2..882d037 100644 (file)
@@ -89,7 +89,7 @@ public:
     void linearRampToValueAtTime(float value, float time) { m_timeline.linearRampToValueAtTime(value, time); }
     void exponentialRampToValueAtTime(float value, float time) { m_timeline.exponentialRampToValueAtTime(value, time); }
     void setTargetAtTime(float target, float time, float timeConstant) { m_timeline.setTargetAtTime(target, time, timeConstant); }
     void linearRampToValueAtTime(float value, float time) { m_timeline.linearRampToValueAtTime(value, time); }
     void exponentialRampToValueAtTime(float value, float time) { m_timeline.exponentialRampToValueAtTime(value, time); }
     void setTargetAtTime(float target, float time, float timeConstant) { m_timeline.setTargetAtTime(target, time, timeConstant); }
-    void setValueCurveAtTime(Float32Array* curve, float time, float duration) { m_timeline.setValueCurveAtTime(curve, time, duration); }
+    void setValueCurveAtTime(const RefPtr<Float32Array>& curve, float time, float duration) { m_timeline.setValueCurveAtTime(curve.get(), time, duration); }
     void cancelScheduledValues(float startTime) { m_timeline.cancelScheduledValues(startTime); }
 
     bool hasSampleAccurateValues() { return m_timeline.hasValues() || numberOfRenderingConnections(); }
     void cancelScheduledValues(float startTime) { m_timeline.cancelScheduledValues(startTime); }
 
     bool hasSampleAccurateValues() { return m_timeline.hasValues() || numberOfRenderingConnections(); }
index 81c1875..12d4c89 100644 (file)
@@ -49,7 +49,7 @@
 
     // Sets an array of arbitrary parameter values starting at time for the given duration.
     // The number of values will be scaled to fit into the desired duration.
 
     // Sets an array of arbitrary parameter values starting at time for the given duration.
     // The number of values will be scaled to fit into the desired duration.
-    void setValueCurveAtTime(Float32Array values, unrestricted float time, unrestricted float duration);
+    void setValueCurveAtTime(Float32Array? values, unrestricted float time, unrestricted float duration); // FIXME: values should not be nullable.
 
     // Cancels all scheduled parameter changes with times greater than or equal to startTime.
     void cancelScheduledValues(unrestricted float startTime);
 
     // Cancels all scheduled parameter changes with times greater than or equal to startTime.
     void cancelScheduledValues(unrestricted float startTime);
index ce2eac3..793064d 100644 (file)
@@ -96,9 +96,7 @@ bool BiquadFilterNode::setType(unsigned type)
     return true;
 }
 
     return true;
 }
 
-void BiquadFilterNode::getFrequencyResponse(const Float32Array* frequencyHz,
-                                            Float32Array* magResponse,
-                                            Float32Array* phaseResponse)
+void BiquadFilterNode::getFrequencyResponse(const RefPtr<Float32Array>& frequencyHz, const RefPtr<Float32Array>& magResponse, const RefPtr<Float32Array>& phaseResponse)
 {
     if (!frequencyHz || !magResponse || !phaseResponse)
         return;
 {
     if (!frequencyHz || !magResponse || !phaseResponse)
         return;
index 2c59b0b..b37534b 100644 (file)
@@ -62,9 +62,7 @@ public:
 
     // Get the magnitude and phase response of the filter at the given
     // set of frequencies (in Hz). The phase response is in radians.
 
     // Get the magnitude and phase response of the filter at the given
     // set of frequencies (in Hz). The phase response is in radians.
-    void getFrequencyResponse(const Float32Array* frequencyHz,
-                              Float32Array* magResponse,
-                              Float32Array* phaseResponse);
+    void getFrequencyResponse(const RefPtr<Float32Array>& frequencyHz, const RefPtr<Float32Array>& magResponse, const RefPtr<Float32Array>& phaseResponse);
 
 private:
     BiquadFilterNode(AudioContext&, float sampleRate);
 
 private:
     BiquadFilterNode(AudioContext&, float sampleRate);
index 40424ef..21323c9 100644 (file)
@@ -43,7 +43,6 @@
     readonly attribute AudioParam Q; // Quality factor
     readonly attribute AudioParam gain; // in Decibels
 
     readonly attribute AudioParam Q; // Quality factor
     readonly attribute AudioParam gain; // in Decibels
 
-    void getFrequencyResponse(Float32Array frequencyHz,
-                              Float32Array magResponse,
-                              Float32Array phaseResponse);
+    // FIXME: the parameters should not be nullable.
+    void getFrequencyResponse(Float32Array? frequencyHz, Float32Array? magResponse, Float32Array? phaseResponse);
 };
 };
index 383af60..a2335c8 100644 (file)
@@ -45,17 +45,13 @@ namespace WebCore {
     
 using namespace VectorMath;
 
     
 using namespace VectorMath;
 
-RefPtr<PeriodicWave> PeriodicWave::create(float sampleRate, Float32Array* real, Float32Array* imag)
+Ref<PeriodicWave> PeriodicWave::create(float sampleRate, Float32Array& real, Float32Array& imaginary)
 {
 {
-    bool isGood = real && imag && real->length() == imag->length();
-    ASSERT(isGood);
-    if (isGood) {
-        RefPtr<PeriodicWave> waveTable = adoptRef(new PeriodicWave(sampleRate));
-        size_t numberOfComponents = real->length();
-        waveTable->createBandLimitedTables(real->data(), imag->data(), numberOfComponents);
-        return waveTable;
-    }
-    return nullptr;
+    ASSERT(real.length() == imaginary.length());
+
+    auto waveTable = adoptRef(*new PeriodicWave(sampleRate));
+    waveTable->createBandLimitedTables(real.data(), imaginary.data(), real.length());
+    return waveTable;
 }
 
 Ref<PeriodicWave> PeriodicWave::createSine(float sampleRate)
 }
 
 Ref<PeriodicWave> PeriodicWave::createSine(float sampleRate)
index 0b774a8..6ebfecb 100644 (file)
@@ -47,7 +47,7 @@ public:
     static Ref<PeriodicWave> createTriangle(float sampleRate);
 
     // Creates an arbitrary wave given the frequency components (Fourier coefficients).
     static Ref<PeriodicWave> createTriangle(float sampleRate);
 
     // Creates an arbitrary wave given the frequency components (Fourier coefficients).
-    static RefPtr<PeriodicWave> create(float sampleRate, Float32Array* real, Float32Array* imag);
+    static Ref<PeriodicWave> create(float sampleRate, Float32Array& real, Float32Array& imag);
 
     // Returns pointers to the lower and higher wave data for the pitch range containing
     // the given fundamental frequency. These two tables are in adjacent "pitch" ranges
 
     // Returns pointers to the lower and higher wave data for the pitch range containing
     // the given fundamental frequency. These two tables are in adjacent "pitch" ranges
index 30b0c59..9daea52 100644 (file)
@@ -339,23 +339,22 @@ void WebSocket::send(ArrayBuffer& binaryData, ExceptionCode& ec)
     m_channel->send(binaryData, 0, binaryData.byteLength());
 }
 
     m_channel->send(binaryData, 0, binaryData.byteLength());
 }
 
-void WebSocket::send(ArrayBufferView* arrayBufferView, ExceptionCode& ec)
+void WebSocket::send(ArrayBufferView& arrayBufferView, ExceptionCode& ec)
 {
 {
-    LOG(Network, "WebSocket %p send() Sending ArrayBufferView %p", this, arrayBufferView);
-    ASSERT(arrayBufferView);
+    LOG(Network, "WebSocket %p send() Sending ArrayBufferView %p", this, &arrayBufferView);
+
     if (m_state == CONNECTING) {
         ec = INVALID_STATE_ERR;
         return;
     }
     if (m_state == CLOSING || m_state == CLOSED) {
     if (m_state == CONNECTING) {
         ec = INVALID_STATE_ERR;
         return;
     }
     if (m_state == CLOSING || m_state == CLOSED) {
-        unsigned payloadSize = arrayBufferView->byteLength();
+        unsigned payloadSize = arrayBufferView.byteLength();
         m_bufferedAmountAfterClose = saturateAdd(m_bufferedAmountAfterClose, payloadSize);
         m_bufferedAmountAfterClose = saturateAdd(m_bufferedAmountAfterClose, getFramingOverhead(payloadSize));
         return;
     }
     ASSERT(m_channel);
         m_bufferedAmountAfterClose = saturateAdd(m_bufferedAmountAfterClose, payloadSize);
         m_bufferedAmountAfterClose = saturateAdd(m_bufferedAmountAfterClose, getFramingOverhead(payloadSize));
         return;
     }
     ASSERT(m_channel);
-    RefPtr<ArrayBuffer> arrayBuffer(arrayBufferView->buffer());
-    m_channel->send(*arrayBuffer, arrayBufferView->byteOffset(), arrayBufferView->byteLength());
+    m_channel->send(*arrayBufferView.buffer(), arrayBufferView.byteOffset(), arrayBufferView.byteLength());
 }
 
 void WebSocket::send(Blob& binaryData, ExceptionCode& ec)
 }
 
 void WebSocket::send(Blob& binaryData, ExceptionCode& ec)
index e38d103..584f40a 100644 (file)
@@ -73,7 +73,7 @@ public:
 
     void send(const String& message, ExceptionCode&);
     void send(JSC::ArrayBuffer&, ExceptionCode&);
 
     void send(const String& message, ExceptionCode&);
     void send(JSC::ArrayBuffer&, ExceptionCode&);
-    void send(JSC::ArrayBufferView*, ExceptionCode&);
+    void send(JSC::ArrayBufferView&, ExceptionCode&);
     void send(Blob&, ExceptionCode&);
 
     void close(Optional<unsigned short> code, const String& reason, ExceptionCode&);
     void send(Blob&, ExceptionCode&);
 
     void close(Optional<unsigned short> code, const String& reason, ExceptionCode&);
index 831cf59..8a60d97 100644 (file)
@@ -512,28 +512,28 @@ static JSC::JSValue dataFunctionf(DataFunctionToCall f, JSC::ExecState& state, W
     if (webGLArray) {
         switch (f) {
         case f_uniform1v:
     if (webGLArray) {
         switch (f) {
         case f_uniform1v:
-            context.uniform1fv(location, webGLArray.get(), ec);
+            context.uniform1fv(location, *webGLArray, ec);
             break;
         case f_uniform2v:
             break;
         case f_uniform2v:
-            context.uniform2fv(location, webGLArray.get(), ec);
+            context.uniform2fv(location, *webGLArray, ec);
             break;
         case f_uniform3v:
             break;
         case f_uniform3v:
-            context.uniform3fv(location, webGLArray.get(), ec);
+            context.uniform3fv(location, *webGLArray, ec);
             break;
         case f_uniform4v:
             break;
         case f_uniform4v:
-            context.uniform4fv(location, webGLArray.get(), ec);
+            context.uniform4fv(location, *webGLArray, ec);
             break;
         case f_vertexAttrib1v:
             break;
         case f_vertexAttrib1v:
-            context.vertexAttrib1fv(index, webGLArray.get());
+            context.vertexAttrib1fv(index, *webGLArray);
             break;
         case f_vertexAttrib2v:
             break;
         case f_vertexAttrib2v:
-            context.vertexAttrib2fv(index, webGLArray.get());
+            context.vertexAttrib2fv(index, *webGLArray);
             break;
         case f_vertexAttrib3v:
             break;
         case f_vertexAttrib3v:
-            context.vertexAttrib3fv(index, webGLArray.get());
+            context.vertexAttrib3fv(index, *webGLArray);
             break;
         case f_vertexAttrib4v:
             break;
         case f_vertexAttrib4v:
-            context.vertexAttrib4fv(index, webGLArray.get());
+            context.vertexAttrib4fv(index, *webGLArray);
             break;
         }
         
             break;
         }
         
@@ -591,16 +591,16 @@ static JSC::JSValue dataFunctioni(DataFunctionToCall f, JSC::ExecState& state, W
     if (webGLArray) {
         switch (f) {
         case f_uniform1v:
     if (webGLArray) {
         switch (f) {
         case f_uniform1v:
-            context.uniform1iv(location, webGLArray.get(), ec);
+            context.uniform1iv(location, *webGLArray, ec);
             break;
         case f_uniform2v:
             break;
         case f_uniform2v:
-            context.uniform2iv(location, webGLArray.get(), ec);
+            context.uniform2iv(location, *webGLArray, ec);
             break;
         case f_uniform3v:
             break;
         case f_uniform3v:
-            context.uniform3iv(location, webGLArray.get(), ec);
+            context.uniform3iv(location, *webGLArray, ec);
             break;
         case f_uniform4v:
             break;
         case f_uniform4v:
-            context.uniform4iv(location, webGLArray.get(), ec);
+            context.uniform4iv(location, *webGLArray, ec);
             break;
         default:
             break;
             break;
         default:
             break;
@@ -655,13 +655,13 @@ static JSC::JSValue dataFunctionMatrix(DataFunctionMatrixToCall f, JSC::ExecStat
     if (webGLArray) {
         switch (f) {
         case f_uniformMatrix2fv:
     if (webGLArray) {
         switch (f) {
         case f_uniformMatrix2fv:
-            context.uniformMatrix2fv(location, transpose, webGLArray.get(), ec);
+            context.uniformMatrix2fv(location, transpose, *webGLArray, ec);
             break;
         case f_uniformMatrix3fv:
             break;
         case f_uniformMatrix3fv:
-            context.uniformMatrix3fv(location, transpose, webGLArray.get(), ec);
+            context.uniformMatrix3fv(location, transpose, *webGLArray, ec);
             break;
         case f_uniformMatrix4fv:
             break;
         case f_uniformMatrix4fv:
-            context.uniformMatrix4fv(location, transpose, webGLArray.get(), ec);
+            context.uniformMatrix4fv(location, transpose, *webGLArray, ec);
             break;
         }
         
             break;
         }
         
index 26ecd1e..c7e3e0b 100644 (file)
@@ -3810,18 +3810,21 @@ sub GenerateParametersCheck
             push(@$outputArray, "        return JSValue::encode(jsUndefined());\n");
 
             my $isTearOff = $codeGenerator->IsSVGTypeNeedingTearOff($argType) && $interfaceName !~ /List$/;
             push(@$outputArray, "        return JSValue::encode(jsUndefined());\n");
 
             my $isTearOff = $codeGenerator->IsSVGTypeNeedingTearOff($argType) && $interfaceName !~ /List$/;
-            if ($isTearOff or ShouldPassWrapperByReference($parameter, $interface)) {
+            my $shouldPassByReference = ShouldPassWrapperByReference($parameter, $interface);
+            if ($isTearOff or $shouldPassByReference) {
                 push(@$outputArray, "    if (UNLIKELY(!$name))\n");
                 push(@$outputArray, "        return throwVMTypeError(state);\n");
                 $value = $isTearOff ? "$name->propertyReference()" : "*$name";
             }
 
                 push(@$outputArray, "    if (UNLIKELY(!$name))\n");
                 push(@$outputArray, "        return throwVMTypeError(state);\n");
                 $value = $isTearOff ? "$name->propertyReference()" : "*$name";
             }
 
+            if ($codeGenerator->IsTypedArrayType($argType) and $argType ne "ArrayBuffer") {
+               $value = $shouldPassByReference ? "$name.releaseNonNull()" : "WTFMove($name)";
+            }
+
             if ($argType eq "double" or $argType eq "float") {
                 push(@$outputArray, "    if (UNLIKELY(!std::isfinite($name)))\n");
                 push(@$outputArray, "        return throwVMTypeError(state);\n");
             }
             if ($argType eq "double" or $argType eq "float") {
                 push(@$outputArray, "    if (UNLIKELY(!std::isfinite($name)))\n");
                 push(@$outputArray, "        return throwVMTypeError(state);\n");
             }
-
-            $value = "$name.get()" if $codeGenerator->IsTypedArrayType($argType) and $argType ne "ArrayBuffer";
         }
 
         push(@arguments, $value);
         }
 
         push(@arguments, $value);
@@ -4312,7 +4315,10 @@ sub ShouldPassWrapperByReference
 {
     my $parameter = shift;
     my $interface = shift;
 {
     my $parameter = shift;
     my $interface = shift;
-    return $codeGenerator->ShouldPassWrapperByReference($parameter, $interface) && substr(GetNativeType($parameter->type), -1) eq '*';
+
+    my $nativeType = GetNativeType($parameter->type);
+
+    return $codeGenerator->ShouldPassWrapperByReference($parameter, $interface) && (substr($nativeType, -1) eq '*' || $nativeType =~ /^RefPtr/);
 }
 
 sub GetNativeVectorInnerType
 }
 
 sub GetNativeVectorInnerType
index a09f970..97a1e6e 100644 (file)
@@ -5294,7 +5294,9 @@ EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionDomStringListFunction(Exe
     RefPtr<DOMStringList> values = toDOMStringList(state, state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
     RefPtr<DOMStringList> values = toDOMStringList(state, state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(impl.domStringListFunction(values, ec)));
+    if (UNLIKELY(!values))
+        return throwVMTypeError(state);
+    JSValue result = toJS(state, castedThis->globalObject(), WTF::getPtr(impl.domStringListFunction(*values, ec)));
 
     setDOMException(state, ec);
     return JSValue::encode(result);
 
     setDOMException(state, ec);
     return JSValue::encode(result);
index 34673cc..93229ea 100644 (file)
@@ -87,7 +87,9 @@ static inline EncodedJSValue constructJSTestOverloadedConstructors2(ExecState* s
     RefPtr<ArrayBufferView> arrayBufferView = toArrayBufferView(state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
     RefPtr<ArrayBufferView> arrayBufferView = toArrayBufferView(state->argument(0));
     if (UNLIKELY(state->hadException()))
         return JSValue::encode(jsUndefined());
-    RefPtr<TestOverloadedConstructors> object = TestOverloadedConstructors::create(arrayBufferView);
+    if (UNLIKELY(!arrayBufferView))
+        return throwVMTypeError(state);
+    RefPtr<TestOverloadedConstructors> object = TestOverloadedConstructors::create(*arrayBufferView);
     return JSValue::encode(asObject(toJS(state, castedThis->globalObject(), object.get())));
 }
 
     return JSValue::encode(asObject(toJS(state, castedThis->globalObject(), object.get())));
 }
 
index 62b8b36..920153c 100644 (file)
@@ -3114,7 +3114,7 @@ void HTMLMediaElement::closeMediaSource()
 #endif
 
 #if ENABLE(ENCRYPTED_MEDIA)
 #endif
 
 #if ENABLE(ENCRYPTED_MEDIA)
-void HTMLMediaElement::webkitGenerateKeyRequest(const String& keySystem, RefPtr<Uint8Array>&& initData, ExceptionCode& ec)
+void HTMLMediaElement::webkitGenerateKeyRequest(const String& keySystem, const RefPtr<Uint8Array>& initData, ExceptionCode& ec)
 {
 #if ENABLE(ENCRYPTED_MEDIA_V2)
     static bool firstTime = true;
 {
 #if ENABLE(ENCRYPTED_MEDIA_V2)
     static bool firstTime = true;
@@ -3145,7 +3145,7 @@ void HTMLMediaElement::webkitGenerateKeyRequest(const String& keySystem, RefPtr<
     ec = exceptionCodeForMediaKeyException(result);
 }
 
     ec = exceptionCodeForMediaKeyException(result);
 }
 
-void HTMLMediaElement::webkitAddKey(const String& keySystem, PassRefPtr<Uint8Array> key, PassRefPtr<Uint8Array> initData, const String& sessionId, ExceptionCode& ec)
+void HTMLMediaElement::webkitAddKey(const String& keySystem, Uint8Array& key, const RefPtr<Uint8Array>& initData, const String& sessionId, ExceptionCode& ec)
 {
 #if ENABLE(ENCRYPTED_MEDIA_V2)
     static bool firstTime = true;
 {
 #if ENABLE(ENCRYPTED_MEDIA_V2)
     static bool firstTime = true;
@@ -3160,12 +3160,7 @@ void HTMLMediaElement::webkitAddKey(const String& keySystem, PassRefPtr<Uint8Arr
         return;
     }
 
         return;
     }
 
-    if (!key) {
-        ec = SYNTAX_ERR;
-        return;
-    }
-
-    if (!key->length()) {
+    if (!key.length()) {
         ec = TYPE_MISMATCH_ERR;
         return;
     }
         ec = TYPE_MISMATCH_ERR;
         return;
     }
@@ -3182,7 +3177,7 @@ void HTMLMediaElement::webkitAddKey(const String& keySystem, PassRefPtr<Uint8Arr
         initDataLength = initData->length();
     }
 
         initDataLength = initData->length();
     }
 
-    MediaPlayer::MediaKeyException result = m_player->addKey(keySystem, key->data(), key->length(), initDataPointer, initDataLength, sessionId);
+    MediaPlayer::MediaKeyException result = m_player->addKey(keySystem, key.data(), key.length(), initDataPointer, initDataLength, sessionId);
     ec = exceptionCodeForMediaKeyException(result);
 }
 
     ec = exceptionCodeForMediaKeyException(result);
 }
 
index 93ef47d..624e539 100644 (file)
@@ -234,8 +234,8 @@ public:
 #endif
 
 #if ENABLE(ENCRYPTED_MEDIA)
 #endif
 
 #if ENABLE(ENCRYPTED_MEDIA)
-    void webkitGenerateKeyRequest(const String& keySystem, RefPtr<Uint8Array>&& initData, ExceptionCode&);
-    void webkitAddKey(const String& keySystem, PassRefPtr<Uint8Array> key, PassRefPtr<Uint8Array> initData, const String& sessionId, ExceptionCode&);
+    void webkitGenerateKeyRequest(const String& keySystem, const RefPtr<Uint8Array>& initData, ExceptionCode&);
+    void webkitAddKey(const String& keySystem, Uint8Array& key, const RefPtr<Uint8Array>& initData, const String& sessionId, ExceptionCode&);
     void webkitCancelKeyRequest(const String& keySystem, const String& sessionId, ExceptionCode&);
 #endif
 
     void webkitCancelKeyRequest(const String& keySystem, const String& sessionId, ExceptionCode&);
 #endif
 
index b1d02ec..9766e7f 100644 (file)
@@ -98,8 +98,8 @@
 #endif
 
 #if (!defined(LANGUAGE_GOBJECT) || !LANGUAGE_GOBJECT) && (!defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C)
 #endif
 
 #if (!defined(LANGUAGE_GOBJECT) || !LANGUAGE_GOBJECT) && (!defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C)
-    [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitGenerateKeyRequest(DOMString? keySystem, optional Uint8Array initData = null);
-    [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitAddKey(DOMString? keySystem, Uint8Array key, optional Uint8Array initData = null, optional DOMString sessionId);
+    [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitGenerateKeyRequest(DOMString? keySystem, optional Uint8Array? initData = null);
+    [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitAddKey(DOMString? keySystem, Uint8Array key, optional Uint8Array? initData = null, optional DOMString sessionId);
     [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitCancelKeyRequest(DOMString? keySystem, optional DOMString sessionId);
 
     [Conditional=ENCRYPTED_MEDIA_V2, ImplementedAs=keys] readonly attribute MediaKeys webkitKeys;
     [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitCancelKeyRequest(DOMString? keySystem, optional DOMString sessionId);
 
     [Conditional=ENCRYPTED_MEDIA_V2, ImplementedAs=keys] readonly attribute MediaKeys webkitKeys;
index 27b57c3..8808c72 100644 (file)
@@ -36,7 +36,7 @@
 
 namespace WebCore {
 
 
 namespace WebCore {
 
-PassRefPtr<ImageData> ImageData::create(unsigned sw, unsigned sh, ExceptionCode& ec)
+RefPtr<ImageData> ImageData::create(unsigned sw, unsigned sh, ExceptionCode& ec)
 {
     if (!sw || !sh) {
         ec = INDEX_SIZE_ERR;
 {
     if (!sw || !sh) {
         ec = INDEX_SIZE_ERR;
@@ -52,38 +52,38 @@ PassRefPtr<ImageData> ImageData::create(unsigned sw, unsigned sh, ExceptionCode&
     }
 
     IntSize size(sw, sh);
     }
 
     IntSize size(sw, sh);
-    RefPtr<ImageData> data = adoptRef(new ImageData(size));
+    auto data = adoptRef(*new ImageData(size));
     data->data()->zeroFill();
     data->data()->zeroFill();
-    return data.release();
+    return WTFMove(data);
 }
 
 }
 
-PassRefPtr<ImageData> ImageData::create(const IntSize& size)
+RefPtr<ImageData> ImageData::create(const IntSize& size)
 {
     Checked<int, RecordOverflow> dataSize = 4;
     dataSize *= size.width();
     dataSize *= size.height();
     if (dataSize.hasOverflowed())
 {
     Checked<int, RecordOverflow> dataSize = 4;
     dataSize *= size.width();
     dataSize *= size.height();
     if (dataSize.hasOverflowed())
-        return 0;
+        return nullptr;
 
 
-    return adoptRef(new ImageData(size));
+    return adoptRef(*new ImageData(size));
 }
 
 }
 
-PassRefPtr<ImageData> ImageData::create(const IntSize& size, PassRefPtr<Uint8ClampedArray> byteArray)
+RefPtr<ImageData> ImageData::create(const IntSize& size, Ref<Uint8ClampedArray>&& byteArray)
 {
     Checked<int, RecordOverflow> dataSize = 4;
     dataSize *= size.width();
     dataSize *= size.height();
     if (dataSize.hasOverflowed())
 {
     Checked<int, RecordOverflow> dataSize = 4;
     dataSize *= size.width();
     dataSize *= size.height();
     if (dataSize.hasOverflowed())
-        return 0;
+        return nullptr;
 
     if (dataSize.unsafeGet() < 0
         || static_cast<unsigned>(dataSize.unsafeGet()) > byteArray->length())
 
     if (dataSize.unsafeGet() < 0
         || static_cast<unsigned>(dataSize.unsafeGet()) > byteArray->length())
-        return 0;
+        return nullptr;
 
 
-    return adoptRef(new ImageData(size, byteArray));
+    return adoptRef(*new ImageData(size, WTFMove(byteArray)));
 }
 
 }
 
-PassRefPtr<ImageData> ImageData::create(PassRefPtr<Uint8ClampedArray> byteArray, unsigned sw, unsigned sh, ExceptionCode& ec)
+RefPtr<ImageData> ImageData::create(Ref<Uint8ClampedArray>&& byteArray, unsigned sw, unsigned sh, ExceptionCode& ec)
 {
     unsigned length = byteArray->length();
     if (!length || length % 4 != 0) {
 {
     unsigned length = byteArray->length();
     if (!length || length % 4 != 0) {
@@ -108,7 +108,7 @@ PassRefPtr<ImageData> ImageData::create(PassRefPtr<Uint8ClampedArray> byteArray,
         return nullptr;
     }
 
         return nullptr;
     }
 
-    return create(IntSize(sw, height), byteArray);
+    return create(IntSize(sw, height), WTFMove(byteArray));
 }
 
 ImageData::ImageData(const IntSize& size)
 }
 
 ImageData::ImageData(const IntSize& size)
@@ -117,9 +117,9 @@ ImageData::ImageData(const IntSize& size)
 {
 }
 
 {
 }
 
-ImageData::ImageData(const IntSize& size, PassRefPtr<Uint8ClampedArray> byteArray)
+ImageData::ImageData(const IntSize& size, Ref<Uint8ClampedArray>&& byteArray)
     : m_size(size)
     : m_size(size)
-    , m_data(byteArray)
+    , m_data(WTFMove(byteArray))
 {
     ASSERT_WITH_SECURITY_IMPLICATION(static_cast<unsigned>(size.width() * size.height() * 4) <= m_data->length());
 }
 {
     ASSERT_WITH_SECURITY_IMPLICATION(static_cast<unsigned>(size.width() * size.height() * 4) <= m_data->length());
 }
index 7d121d1..fc27030 100644 (file)
@@ -40,19 +40,20 @@ typedef int ExceptionCode;
 
 class ImageData : public RefCounted<ImageData> {
 public:
 
 class ImageData : public RefCounted<ImageData> {
 public:
-    static PassRefPtr<ImageData> create(unsigned sw, unsigned sh, ExceptionCode&);
-    static PassRefPtr<ImageData> create(const IntSize&);
-    static PassRefPtr<ImageData> create(const IntSize&, PassRefPtr<Uint8ClampedArray>);
-    static PassRefPtr<ImageData> create(PassRefPtr<Uint8ClampedArray>, unsigned sw, unsigned sh, ExceptionCode&);
+    static RefPtr<ImageData> create(unsigned sw, unsigned sh, ExceptionCode&);
+    static RefPtr<ImageData> create(const IntSize&);
+    static RefPtr<ImageData> create(const IntSize&, Ref<Uint8ClampedArray>&&);
+    static RefPtr<ImageData> create(Ref<Uint8ClampedArray>&&, unsigned sw, unsigned sh, ExceptionCode&);
 
     IntSize size() const { return m_size; }
     int width() const { return m_size.width(); }
     int height() const { return m_size.height(); }
 
     IntSize size() const { return m_size; }
     int width() const { return m_size.width(); }
     int height() const { return m_size.height(); }
+
     Uint8ClampedArray* data() const { return m_data.get(); }
 
 private:
     explicit ImageData(const IntSize&);
     Uint8ClampedArray* data() const { return m_data.get(); }
 
 private:
     explicit ImageData(const IntSize&);
-    ImageData(const IntSize&, PassRefPtr<Uint8ClampedArray>);
+    ImageData(const IntSize&, Ref<Uint8ClampedArray>&&);
 
     IntSize m_size;
     RefPtr<Uint8ClampedArray> m_data;
 
     IntSize m_size;
     RefPtr<Uint8ClampedArray> m_data;
index 6e6b2d5..7ea7e45 100644 (file)
@@ -2013,7 +2013,7 @@ RefPtr<ImageData> CanvasRenderingContext2D::getImageData(ImageBuffer::Coordinate
     if (!byteArray)
         return nullptr;
 
     if (!byteArray)
         return nullptr;
 
-    return ImageData::create(imageDataRect.size(), byteArray.release());
+    return ImageData::create(imageDataRect.size(), byteArray.releaseNonNull());
 }
 
 void CanvasRenderingContext2D::putImageData(ImageData* data, float dx, float dy, ExceptionCode& ec)
 }
 
 void CanvasRenderingContext2D::putImageData(ImageData* data, float dx, float dy, ExceptionCode& ec)
index 6251eb8..2d711ac 100644 (file)
@@ -64,8 +64,8 @@ WebGL2RenderingContext::WebGL2RenderingContext(HTMLCanvasElement* passedCanvas,
 {
 }
 
 {
 }
 
-WebGL2RenderingContext::WebGL2RenderingContext(HTMLCanvasElement* passedCanvas, PassRefPtr<GraphicsContext3D> context,
-    GraphicsContext3D::Attributes attributes) : WebGLRenderingContextBase(passedCanvas, context, attributes)
+WebGL2RenderingContext::WebGL2RenderingContext(HTMLCanvasElement* passedCanvas, RefPtr<GraphicsContext3D>&& context,
+    GraphicsContext3D::Attributes attributes) : WebGLRenderingContextBase(passedCanvas, WTFMove(context), attributes)
 {
     initializeShaderExtensions();
     initializeVertexArrayObjects();
 {
     initializeShaderExtensions();
     initializeVertexArrayObjects();
@@ -88,360 +88,166 @@ void WebGL2RenderingContext::initializeShaderExtensions()
     m_context->getExtensions()->ensureEnabled("GL_EXT_frag_depth");
 }
 
     m_context->getExtensions()->ensureEnabled("GL_EXT_frag_depth");
 }
 
-void WebGL2RenderingContext::copyBufferSubData(GC3Denum readTarget, GC3Denum writeTarget, GC3Dint64 readOffset, GC3Dint64 writeOffset, GC3Dint64 size)
+void WebGL2RenderingContext::copyBufferSubData(GC3Denum, GC3Denum, GC3Dint64, GC3Dint64, GC3Dint64)
 {
 {
-    UNUSED_PARAM(readTarget);
-    UNUSED_PARAM(writeTarget);
-    UNUSED_PARAM(readOffset);
-    UNUSED_PARAM(writeOffset);
-    UNUSED_PARAM(size);
 }
 
 }
 
-void WebGL2RenderingContext::getBufferSubData(GC3Denum target, GC3Dint64 offset, ArrayBuffer* returnedData)
+void WebGL2RenderingContext::getBufferSubData(GC3Denum, GC3Dint64, ArrayBuffer*)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(offset);
-    UNUSED_PARAM(returnedData);
 }
 
 }
 
-void WebGL2RenderingContext::blitFramebuffer(GC3Dint srcX0, GC3Dint srcY0, GC3Dint srcX1, GC3Dint srcY1, GC3Dint dstX0, GC3Dint dstY0, GC3Dint dstX1, GC3Dint dstY1, GC3Dbitfield mask, GC3Denum filter)
+void WebGL2RenderingContext::blitFramebuffer(GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dbitfield, GC3Denum)
 {
 {
-    UNUSED_PARAM(srcX0);
-    UNUSED_PARAM(srcX1);
-    UNUSED_PARAM(srcY0);
-    UNUSED_PARAM(srcY1);
-    UNUSED_PARAM(dstX0);
-    UNUSED_PARAM(dstX1);
-    UNUSED_PARAM(dstY0);
-    UNUSED_PARAM(dstY1);
-    UNUSED_PARAM(mask);
-    UNUSED_PARAM(filter);
 }
 
 }
 
-void WebGL2RenderingContext::framebufferTextureLayer(GC3Denum target, GC3Denum attachment, GC3Duint texture, GC3Dint level, GC3Dint layer)
+void WebGL2RenderingContext::framebufferTextureLayer(GC3Denum, GC3Denum, GC3Duint, GC3Dint, GC3Dint)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(attachment);
-    UNUSED_PARAM(texture);
-    UNUSED_PARAM(level);
-    UNUSED_PARAM(layer);
 }
 
 }
 
-WebGLGetInfo WebGL2RenderingContext::getInternalformatParameter(GC3Denum target, GC3Denum internalformat, GC3Denum pname)
+WebGLGetInfo WebGL2RenderingContext::getInternalformatParameter(GC3Denum, GC3Denum, GC3Denum)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(internalformat);
-    UNUSED_PARAM(pname);
     return WebGLGetInfo();
 }
 
     return WebGLGetInfo();
 }
 
-void WebGL2RenderingContext::invalidateFramebuffer(GC3Denum target, Vector<GC3Denum> attachments)
+void WebGL2RenderingContext::invalidateFramebuffer(GC3Denum, Vector<GC3Denum>)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(attachments);
 }
 
 }
 
-void WebGL2RenderingContext::invalidateSubFramebuffer(GC3Denum target, Vector<GC3Denum> attachments, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height)
+void WebGL2RenderingContext::invalidateSubFramebuffer(GC3Denum, Vector<GC3Denum>, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(attachments);
-    UNUSED_PARAM(x);
-    UNUSED_PARAM(y);
-    UNUSED_PARAM(width);
-    UNUSED_PARAM(height);
 }
 
 }
 
-void WebGL2RenderingContext::readBuffer(GC3Denum src)
+void WebGL2RenderingContext::readBuffer(GC3Denum)
 {
 {
-    UNUSED_PARAM(src);
 }
 
 }
 
-void WebGL2RenderingContext::renderbufferStorageMultisample(GC3Denum target, GC3Dsizei samples, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height)
+void WebGL2RenderingContext::renderbufferStorageMultisample(GC3Denum, GC3Dsizei, GC3Denum, GC3Dsizei, GC3Dsizei)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(samples);
-    UNUSED_PARAM(internalformat);
-    UNUSED_PARAM(width);
-    UNUSED_PARAM(height);
 }
 
 }
 
-void WebGL2RenderingContext::texStorage2D(GC3Denum target, GC3Dsizei levels, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height)
+void WebGL2RenderingContext::texStorage2D(GC3Denum, GC3Dsizei, GC3Denum, GC3Dsizei, GC3Dsizei)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(levels);
-    UNUSED_PARAM(internalformat);
-    UNUSED_PARAM(width);
-    UNUSED_PARAM(height);
 }
 
 }
 
-void WebGL2RenderingContext::texStorage3D(GC3Denum target, GC3Dsizei levels, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth)
+void WebGL2RenderingContext::texStorage3D(GC3Denum, GC3Dsizei, GC3Denum, GC3Dsizei, GC3Dsizei, GC3Dsizei)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(levels);
-    UNUSED_PARAM(internalformat);
-    UNUSED_PARAM(width);
-    UNUSED_PARAM(height);
-    UNUSED_PARAM(depth);
 }
 
 }
 
-void WebGL2RenderingContext::texImage3D(GC3Denum target, GC3Dint level, GC3Dint internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth, GC3Dint border, GC3Denum format, GC3Denum type, ArrayBufferView* pixels)
+void WebGL2RenderingContext::texImage3D(GC3Denum, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei, GC3Dsizei, GC3Dint, GC3Denum, GC3Denum, RefPtr<ArrayBufferView>&&)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(level);
-    UNUSED_PARAM(internalformat);
-    UNUSED_PARAM(width);
-    UNUSED_PARAM(height);
-    UNUSED_PARAM(depth);
-    UNUSED_PARAM(border);
-    UNUSED_PARAM(format);
-    UNUSED_PARAM(type);
-    UNUSED_PARAM(pixels);
 }
 
 }
 
-void WebGL2RenderingContext::texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth, GC3Denum format, GC3Denum type, ArrayBufferView* pixels)
+void WebGL2RenderingContext::texSubImage3D(GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei, GC3Dsizei, GC3Denum, GC3Denum, RefPtr<ArrayBufferView>&&)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(level);
-    UNUSED_PARAM(xoffset);
-    UNUSED_PARAM(yoffset);
-    UNUSED_PARAM(zoffset);
-    UNUSED_PARAM(width);
-    UNUSED_PARAM(height);
-    UNUSED_PARAM(depth);
-    UNUSED_PARAM(format);
-    UNUSED_PARAM(type);
-    UNUSED_PARAM(pixels);
 }
 
 }
 
-void WebGL2RenderingContext::texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Denum format, GC3Denum type, ImageData* source)
+void WebGL2RenderingContext::texSubImage3D(GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Denum, GC3Denum, ImageData*)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(level);
-    UNUSED_PARAM(xoffset);
-    UNUSED_PARAM(yoffset);
-    UNUSED_PARAM(zoffset);
-    UNUSED_PARAM(format);
-    UNUSED_PARAM(type);
-    UNUSED_PARAM(source);
 }
 
 }
 
-void WebGL2RenderingContext::texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Denum format, GC3Denum type, HTMLImageElement* source)
+void WebGL2RenderingContext::texSubImage3D(GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Denum, GC3Denum, HTMLImageElement*)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(level);
-    UNUSED_PARAM(xoffset);
-    UNUSED_PARAM(yoffset);
-    UNUSED_PARAM(zoffset);
-    UNUSED_PARAM(format);
-    UNUSED_PARAM(type);
-    UNUSED_PARAM(source);
 }
 
 }
 
-void WebGL2RenderingContext::texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Denum format, GC3Denum type, HTMLCanvasElement* source)
+void WebGL2RenderingContext::texSubImage3D(GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Denum, GC3Denum, HTMLCanvasElement*)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(level);
-    UNUSED_PARAM(xoffset);
-    UNUSED_PARAM(yoffset);
-    UNUSED_PARAM(zoffset);
-    UNUSED_PARAM(format);
-    UNUSED_PARAM(type);
-    UNUSED_PARAM(source);
 }
 
 }
 
-void WebGL2RenderingContext::texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Denum format, GC3Denum type, HTMLVideoElement* source)
+void WebGL2RenderingContext::texSubImage3D(GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Denum, GC3Denum, HTMLVideoElement*)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(level);
-    UNUSED_PARAM(xoffset);
-    UNUSED_PARAM(yoffset);
-    UNUSED_PARAM(zoffset);
-    UNUSED_PARAM(format);
-    UNUSED_PARAM(type);
-    UNUSED_PARAM(source);
 }
 
 }
 
-void WebGL2RenderingContext::copyTexSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height)
+void WebGL2RenderingContext::copyTexSubImage3D(GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(level);
-    UNUSED_PARAM(xoffset);
-    UNUSED_PARAM(yoffset);
-    UNUSED_PARAM(zoffset);
-    UNUSED_PARAM(x);
-    UNUSED_PARAM(y);
-    UNUSED_PARAM(width);
-    UNUSED_PARAM(height);
 }
 }
-
-void WebGL2RenderingContext::compressedTexImage3D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth, GC3Dint border, GC3Dsizei imageSize, ArrayBufferView* data)
-{
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(level);
-    UNUSED_PARAM(internalformat);
-    UNUSED_PARAM(width);
-    UNUSED_PARAM(height);
-    UNUSED_PARAM(depth);
-    UNUSED_PARAM(border);
-    UNUSED_PARAM(imageSize);
-    UNUSED_PARAM(data);
-}
-
-void WebGL2RenderingContext::compressedTexSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth, GC3Denum format, GC3Dsizei imageSize, ArrayBufferView* data)
-{
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(level);
-    UNUSED_PARAM(xoffset);
-    UNUSED_PARAM(yoffset);
-    UNUSED_PARAM(zoffset);
-    UNUSED_PARAM(width);
-    UNUSED_PARAM(height);
-    UNUSED_PARAM(depth);
-    UNUSED_PARAM(format);
-    UNUSED_PARAM(imageSize);
-    UNUSED_PARAM(data);
-}
-
-GC3Dint WebGL2RenderingContext::getFragDataLocation(WebGLProgram* program, String name)
-{
-    UNUSED_PARAM(program);
-    UNUSED_PARAM(name);
+
+void WebGL2RenderingContext::compressedTexImage3D(GC3Denum, GC3Dint, GC3Denum, GC3Dsizei, GC3Dsizei, GC3Dsizei, GC3Dint, GC3Dsizei, RefPtr<ArrayBufferView>&&)
+{
+}
+
+void WebGL2RenderingContext::compressedTexSubImage3D(GC3Denum, GC3Dint, GC3Dint, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei, GC3Dsizei, GC3Denum, GC3Dsizei, RefPtr<ArrayBufferView>&&)
+{
+}
+
+GC3Dint WebGL2RenderingContext::getFragDataLocation(WebGLProgram*, String)
+{
     return 0;
 }
 
     return 0;
 }
 
-void WebGL2RenderingContext::uniform1ui(WebGLUniformLocation* location, GC3Duint v0)
+void WebGL2RenderingContext::uniform1ui(WebGLUniformLocation*, GC3Duint)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(v0);
 }
 
 }
 
-void WebGL2RenderingContext::uniform2ui(WebGLUniformLocation* location, GC3Duint v0, GC3Duint v1)
+void WebGL2RenderingContext::uniform2ui(WebGLUniformLocation*, GC3Duint, GC3Duint)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(v0);
-    UNUSED_PARAM(v1);
 }
 
 }
 
-void WebGL2RenderingContext::uniform3ui(WebGLUniformLocation* location, GC3Duint v0, GC3Duint v1, GC3Duint v2)
+void WebGL2RenderingContext::uniform3ui(WebGLUniformLocation*, GC3Duint, GC3Duint, GC3Duint)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(v0);
-    UNUSED_PARAM(v1);
-    UNUSED_PARAM(v2);
 }
 
 }
 
-void WebGL2RenderingContext::uniform4ui(WebGLUniformLocation* location, GC3Duint v0, GC3Duint v1, GC3Duint v2, GC3Duint v3)
+void WebGL2RenderingContext::uniform4ui(WebGLUniformLocation*, GC3Duint, GC3Duint, GC3Duint, GC3Duint)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(v0);
-    UNUSED_PARAM(v1);
-    UNUSED_PARAM(v2);
-    UNUSED_PARAM(v3);
 }
 
 }
 
-void WebGL2RenderingContext::uniform1uiv(WebGLUniformLocation* location, Uint32Array* value)
+void WebGL2RenderingContext::uniform1uiv(WebGLUniformLocation*, RefPtr<Uint32Array>&&)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(value);
 }
 
 }
 
-void WebGL2RenderingContext::uniform2uiv(WebGLUniformLocation* location, Uint32Array* value)
+void WebGL2RenderingContext::uniform2uiv(WebGLUniformLocation*, RefPtr<Uint32Array>&&)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(value);
 }
 
 }
 
-void WebGL2RenderingContext::uniform3uiv(WebGLUniformLocation* location, Uint32Array* value)
+void WebGL2RenderingContext::uniform3uiv(WebGLUniformLocation*, RefPtr<Uint32Array>&&)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(value);
 }
 
 }
 
-void WebGL2RenderingContext::uniform4uiv(WebGLUniformLocation* location, Uint32Array* value)
+void WebGL2RenderingContext::uniform4uiv(WebGLUniformLocation*, RefPtr<Uint32Array>&&)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(value);
 }
 
 }
 
-void WebGL2RenderingContext::uniformMatrix2x3fv(WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value)
+void WebGL2RenderingContext::uniformMatrix2x3fv(WebGLUniformLocation*, GC3Dboolean, RefPtr<Float32Array>&&)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(transpose);
-    UNUSED_PARAM(value);
 }
 
 }
 
-void WebGL2RenderingContext::uniformMatrix3x2fv(WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value)
+void WebGL2RenderingContext::uniformMatrix3x2fv(WebGLUniformLocation*, GC3Dboolean, RefPtr<Float32Array>&&)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(transpose);
-    UNUSED_PARAM(value);
 }
 
 }
 
-void WebGL2RenderingContext::uniformMatrix2x4fv(WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value)
+void WebGL2RenderingContext::uniformMatrix2x4fv(WebGLUniformLocation*, GC3Dboolean, RefPtr<Float32Array>&&)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(transpose);
-    UNUSED_PARAM(value);
 }
 
 }
 
-void WebGL2RenderingContext::uniformMatrix4x2fv(WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value)
+void WebGL2RenderingContext::uniformMatrix4x2fv(WebGLUniformLocation*, GC3Dboolean, RefPtr<Float32Array>&&)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(transpose);
-    UNUSED_PARAM(value);
 }
 
 }
 
-void WebGL2RenderingContext::uniformMatrix3x4fv(WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value)
+void WebGL2RenderingContext::uniformMatrix3x4fv(WebGLUniformLocation*, GC3Dboolean, RefPtr<Float32Array>&&)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(transpose);
-    UNUSED_PARAM(value);
 }
 
 }
 
-void WebGL2RenderingContext::uniformMatrix4x3fv(WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value)
+void WebGL2RenderingContext::uniformMatrix4x3fv(WebGLUniformLocation*, GC3Dboolean, RefPtr<Float32Array>&&)
 {
 {
-    UNUSED_PARAM(location);
-    UNUSED_PARAM(transpose);
-    UNUSED_PARAM(value);
 }
 
 }
 
-void WebGL2RenderingContext::vertexAttribI4i(GC3Duint index, GC3Dint x, GC3Dint y, GC3Dint z, GC3Dint w)
+void WebGL2RenderingContext::vertexAttribI4i(GC3Duint, GC3Dint, GC3Dint, GC3Dint, GC3Dint)
 {
 {
-    UNUSED_PARAM(index);
-    UNUSED_PARAM(x);
-    UNUSED_PARAM(y);
-    UNUSED_PARAM(z);
-    UNUSED_PARAM(w);
 }
 
 }
 
-void WebGL2RenderingContext::vertexAttribI4iv(GC3Duint index, Int32Array* v)
+void WebGL2RenderingContext::vertexAttribI4iv(GC3Duint, RefPtr<Int32Array>&&)
 {
 {
-    UNUSED_PARAM(index);
-    UNUSED_PARAM(v);
 }
 
 }
 
-void WebGL2RenderingContext::vertexAttribI4ui(GC3Duint index, GC3Duint x, GC3Duint y, GC3Duint z, GC3Duint w)
+void WebGL2RenderingContext::vertexAttribI4ui(GC3Duint, GC3Duint, GC3Duint, GC3Duint, GC3Duint)
 {
 {
-    UNUSED_PARAM(index);
-    UNUSED_PARAM(x);
-    UNUSED_PARAM(y);
-    UNUSED_PARAM(z);
-    UNUSED_PARAM(w);
 }
 
 }
 
-void WebGL2RenderingContext::vertexAttribI4uiv(GC3Duint index, Uint32Array* v)
+void WebGL2RenderingContext::vertexAttribI4uiv(GC3Duint, RefPtr<Uint32Array>&&)
 {
 {
-    UNUSED_PARAM(index);
-    UNUSED_PARAM(v);
 }
 
 }
 
-void WebGL2RenderingContext::vertexAttribIPointer(GC3Duint index, GC3Dint size, GC3Denum type, GC3Dsizei stride, GC3Dint64 offset)
+void WebGL2RenderingContext::vertexAttribIPointer(GC3Duint, GC3Dint, GC3Denum, GC3Dsizei, GC3Dint64)
 {
 {
-    UNUSED_PARAM(index);
-    UNUSED_PARAM(size);
-    UNUSED_PARAM(type);
-    UNUSED_PARAM(stride);
-    UNUSED_PARAM(offset);
 }
 
 void WebGL2RenderingContext::clear(GC3Dbitfield mask)
 }
 
 void WebGL2RenderingContext::clear(GC3Dbitfield mask)
@@ -490,14 +296,8 @@ void WebGL2RenderingContext::drawElementsInstanced(GC3Denum mode, GC3Dsizei coun
     WebGLRenderingContextBase::drawElementsInstanced(mode, count, type, offset, instanceCount);
 }
 
     WebGLRenderingContextBase::drawElementsInstanced(mode, count, type, offset, instanceCount);
 }
 
-void WebGL2RenderingContext::drawRangeElements(GC3Denum mode, GC3Duint start, GC3Duint end, GC3Dsizei count, GC3Denum type, GC3Dint64 offset)
+void WebGL2RenderingContext::drawRangeElements(GC3Denum, GC3Duint, GC3Duint, GC3Dsizei, GC3Denum, GC3Dint64)
 {
 {
-    UNUSED_PARAM(mode);
-    UNUSED_PARAM(start);
-    UNUSED_PARAM(end);
-    UNUSED_PARAM(count);
-    UNUSED_PARAM(type);
-    UNUSED_PARAM(offset);
 }
 
 void WebGL2RenderingContext::drawBuffers(Vector<GC3Denum> buffers)
 }
 
 void WebGL2RenderingContext::drawBuffers(Vector<GC3Denum> buffers)
@@ -534,9 +334,8 @@ void WebGL2RenderingContext::drawBuffers(Vector<GC3Denum> buffers)
     }
 }
 
     }
 }
 
-void WebGL2RenderingContext::clearBufferiv(GC3Denum buffer, GC3Dint drawbuffer, Int32Array* value)
+void WebGL2RenderingContext::clearBufferiv(GC3Denum buffer, GC3Dint drawbuffer, RefPtr<Int32Array>&&)
 {
 {
-    UNUSED_PARAM(value);
     switch (buffer) {
     case GraphicsContext3D::COLOR:
         if (drawbuffer < 0 || drawbuffer >= getMaxDrawBuffers()) {
     switch (buffer) {
     case GraphicsContext3D::COLOR:
         if (drawbuffer < 0 || drawbuffer >= getMaxDrawBuffers()) {
@@ -560,9 +359,8 @@ void WebGL2RenderingContext::clearBufferiv(GC3Denum buffer, GC3Dint drawbuffer,
     }
 }
 
     }
 }
 
-void WebGL2RenderingContext::clearBufferuiv(GC3Denum buffer, GC3Dint drawbuffer, Uint32Array* value)
+void WebGL2RenderingContext::clearBufferuiv(GC3Denum buffer, GC3Dint drawbuffer, RefPtr<Uint32Array>&&)
 {
 {
-    UNUSED_PARAM(value);
     switch (buffer) {
     case GraphicsContext3D::COLOR:
         if (drawbuffer < 0 || drawbuffer >= getMaxDrawBuffers()) {
     switch (buffer) {
     case GraphicsContext3D::COLOR:
         if (drawbuffer < 0 || drawbuffer >= getMaxDrawBuffers()) {
@@ -580,9 +378,8 @@ void WebGL2RenderingContext::clearBufferuiv(GC3Denum buffer, GC3Dint drawbuffer,
     }
 }
 
     }
 }
 
-void WebGL2RenderingContext::clearBufferfv(GC3Denum buffer, GC3Dint drawbuffer, Float32Array* value)
+void WebGL2RenderingContext::clearBufferfv(GC3Denum buffer, GC3Dint drawbuffer, RefPtr<Float32Array>&&)
 {
 {
-    UNUSED_PARAM(value);
     switch (buffer) {
     case GraphicsContext3D::COLOR:
         if (drawbuffer < 0 || drawbuffer >= getMaxDrawBuffers()) {
     switch (buffer) {
     case GraphicsContext3D::COLOR:
         if (drawbuffer < 0 || drawbuffer >= getMaxDrawBuffers()) {
@@ -606,10 +403,8 @@ void WebGL2RenderingContext::clearBufferfv(GC3Denum buffer, GC3Dint drawbuffer,
     }
 }
 
     }
 }
 
-void WebGL2RenderingContext::clearBufferfi(GC3Denum buffer, GC3Dint drawbuffer, GC3Dfloat depth, GC3Dint stencil)
+void WebGL2RenderingContext::clearBufferfi(GC3Denum buffer, GC3Dint drawbuffer, GC3Dfloat, GC3Dint)
 {
 {
-    UNUSED_PARAM(depth);
-    UNUSED_PARAM(stencil);
     switch (buffer) {
     case GraphicsContext3D::DEPTH_STENCIL:
         if (drawbuffer) {
     switch (buffer) {
     case GraphicsContext3D::DEPTH_STENCIL:
         if (drawbuffer) {
@@ -627,172 +422,129 @@ void WebGL2RenderingContext::clearBufferfi(GC3Denum buffer, GC3Dint drawbuffer,
     }
 }
 
     }
 }
 
-PassRefPtr<WebGLQuery> WebGL2RenderingContext::createQuery()
+RefPtr<WebGLQuery> WebGL2RenderingContext::createQuery()
 {
     return nullptr;
 }
 
 {
     return nullptr;
 }
 
-void WebGL2RenderingContext::deleteQuery(WebGLQuery* query)
+void WebGL2RenderingContext::deleteQuery(WebGLQuery*)
 {
 {
-    UNUSED_PARAM(query);
 }
 
 }
 
-GC3Dboolean WebGL2RenderingContext::isQuery(WebGLQuery* query)
+GC3Dboolean WebGL2RenderingContext::isQuery(WebGLQuery*)
 {
 {
-    UNUSED_PARAM(query);
     return false;
 }
 
     return false;
 }
 
-void WebGL2RenderingContext::beginQuery(GC3Denum target, WebGLQuery* query)
+void WebGL2RenderingContext::beginQuery(GC3Denum, WebGLQuery*)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(query);
 }
 
 }
 
-void WebGL2RenderingContext::endQuery(GC3Denum target)
+void WebGL2RenderingContext::endQuery(GC3Denum)
 {
 {
-    UNUSED_PARAM(target);
 }
 
 }
 
-PassRefPtr<WebGLQuery> WebGL2RenderingContext::getQuery(GC3Denum target, GC3Denum pname)
+RefPtr<WebGLQuery> WebGL2RenderingContext::getQuery(GC3Denum, GC3Denum)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(pname);
     return nullptr;
 }
 
     return nullptr;
 }
 
-WebGLGetInfo WebGL2RenderingContext::getQueryParameter(WebGLQuery* query, GC3Denum pname)
+WebGLGetInfo WebGL2RenderingContext::getQueryParameter(WebGLQuery*, GC3Denum)
 {
 {
-    UNUSED_PARAM(query);
-    UNUSED_PARAM(pname);
     return WebGLGetInfo();
 }
 
     return WebGLGetInfo();
 }
 
-PassRefPtr<WebGLSampler> WebGL2RenderingContext::createSampler()
+RefPtr<WebGLSampler> WebGL2RenderingContext::createSampler()
 {
     return nullptr;
 }
 
 {
     return nullptr;
 }
 
-void WebGL2RenderingContext::deleteSampler(WebGLSampler* sampler)
+void WebGL2RenderingContext::deleteSampler(WebGLSampler*)
 {
 {
-    UNUSED_PARAM(sampler);
 }
 
 }
 
-GC3Dboolean WebGL2RenderingContext::isSampler(WebGLSampler* sampler)
+GC3Dboolean WebGL2RenderingContext::isSampler(WebGLSampler*)
 {
 {
-    UNUSED_PARAM(sampler);
     return false;
 }
 
     return false;
 }
 
-void WebGL2RenderingContext::bindSampler(GC3Duint unit, WebGLSampler* sampler)
+void WebGL2RenderingContext::bindSampler(GC3Duint, WebGLSampler*)
 {
 {
-    UNUSED_PARAM(unit);
-    UNUSED_PARAM(sampler);
 }
 
 }
 
-void WebGL2RenderingContext::samplerParameteri(WebGLSampler* sampler, GC3Denum pname, GC3Dint param)
+void WebGL2RenderingContext::samplerParameteri(WebGLSampler*, GC3Denum, GC3Dint)
 {
 {
-    UNUSED_PARAM(sampler);
-    UNUSED_PARAM(pname);
-    UNUSED_PARAM(param);
 }
 
 }
 
-void WebGL2RenderingContext::samplerParameterf(WebGLSampler* sampler, GC3Denum pname, GC3Dfloat param)
+void WebGL2RenderingContext::samplerParameterf(WebGLSampler*, GC3Denum, GC3Dfloat)
 {
 {
-    UNUSED_PARAM(sampler);
-    UNUSED_PARAM(pname);
-    UNUSED_PARAM(param);
 }
 
 }
 
-WebGLGetInfo WebGL2RenderingContext::getSamplerParameter(WebGLSampler* sampler, GC3Denum pname)
+WebGLGetInfo WebGL2RenderingContext::getSamplerParameter(WebGLSampler*, GC3Denum)
 {
 {
-    UNUSED_PARAM(sampler);
-    UNUSED_PARAM(pname);
     return WebGLGetInfo();
 }
 
     return WebGLGetInfo();
 }
 
-PassRefPtr<WebGLSync> WebGL2RenderingContext::fenceSync(GC3Denum condition, GC3Dbitfield flags)
+RefPtr<WebGLSync> WebGL2RenderingContext::fenceSync(GC3Denum, GC3Dbitfield)
 {
 {
-    UNUSED_PARAM(condition);
-    UNUSED_PARAM(flags);
     return nullptr;
 }
 
     return nullptr;
 }
 
-GC3Dboolean WebGL2RenderingContext::isSync(WebGLSync* sync)
+GC3Dboolean WebGL2RenderingContext::isSync(WebGLSync*)
 {
 {
-    UNUSED_PARAM(sync);
     return false;
 }
 
     return false;
 }
 
-void WebGL2RenderingContext::deleteSync(WebGLSync* sync)
+void WebGL2RenderingContext::deleteSync(WebGLSync*)
 {
 {
-    UNUSED_PARAM(sync);
 }
 
 }
 
-GC3Denum WebGL2RenderingContext::clientWaitSync(WebGLSync* sync, GC3Dbitfield flags, GC3Duint64 timeout)
+GC3Denum WebGL2RenderingContext::clientWaitSync(WebGLSync*, GC3Dbitfield, GC3Duint64)
 {
 {
-    UNUSED_PARAM(sync);
-    UNUSED_PARAM(flags);
-    UNUSED_PARAM(timeout);
     return 0;
 }
 
     return 0;
 }
 
-void WebGL2RenderingContext::waitSync(WebGLSync* sync, GC3Dbitfield flags, GC3Duint64 timeout)
+void WebGL2RenderingContext::waitSync(WebGLSync*, GC3Dbitfield, GC3Duint64)
 {
 {
-    UNUSED_PARAM(sync);
-    UNUSED_PARAM(flags);
-    UNUSED_PARAM(timeout);
 }
 
 }
 
-WebGLGetInfo WebGL2RenderingContext::getSyncParameter(WebGLSync* sync, GC3Denum pname)
+WebGLGetInfo WebGL2RenderingContext::getSyncParameter(WebGLSync*, GC3Denum)
 {
 {
-    UNUSED_PARAM(sync);
-    UNUSED_PARAM(pname);
     return WebGLGetInfo();
 }
 
     return WebGLGetInfo();
 }
 
-PassRefPtr<WebGLTransformFeedback> WebGL2RenderingContext::createTransformFeedback()
+RefPtr<WebGLTransformFeedback> WebGL2RenderingContext::createTransformFeedback()
 {
     return nullptr;
 }
 
 {
     return nullptr;
 }
 
-void WebGL2RenderingContext::deleteTransformFeedback(WebGLTransformFeedback* id)
+void WebGL2RenderingContext::deleteTransformFeedback(WebGLTransformFeedback*)
 {
 {
-    UNUSED_PARAM(id);
 }
 
 }
 
-GC3Dboolean WebGL2RenderingContext::isTransformFeedback(WebGLTransformFeedback* id)
+GC3Dboolean WebGL2RenderingContext::isTransformFeedback(WebGLTransformFeedback*)
 {
 {
-    UNUSED_PARAM(id);
     return false;
 }
 
     return false;
 }
 
-void WebGL2RenderingContext::bindTransformFeedback(GC3Denum target, WebGLTransformFeedback* id)
+void WebGL2RenderingContext::bindTransformFeedback(GC3Denum, WebGLTransformFeedback*)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(id);
 }
 
 }
 
-void WebGL2RenderingContext::beginTransformFeedback(GC3Denum primitiveMode)
+void WebGL2RenderingContext::beginTransformFeedback(GC3Denum)
 {
 {
-    UNUSED_PARAM(primitiveMode);
 }
 
 void WebGL2RenderingContext::endTransformFeedback()
 {
 }
 
 }
 
 void WebGL2RenderingContext::endTransformFeedback()
 {
 }
 
-void WebGL2RenderingContext::transformFeedbackVaryings(WebGLProgram* program, Vector<String> varyings, GC3Denum bufferMode)
+void WebGL2RenderingContext::transformFeedbackVaryings(WebGLProgram*, Vector<String>, GC3Denum)
 {
 {
-    UNUSED_PARAM(program);
-    UNUSED_PARAM(varyings);
-    UNUSED_PARAM(bufferMode);
 }
 
 }
 
-PassRefPtr<WebGLActiveInfo> WebGL2RenderingContext::getTransformFeedbackVarying(WebGLProgram* program, GC3Duint index)
+RefPtr<WebGLActiveInfo> WebGL2RenderingContext::getTransformFeedbackVarying(WebGLProgram*, GC3Duint)
 {
 {
-    UNUSED_PARAM(program);
-    UNUSED_PARAM(index);
     return nullptr;
 }
 
     return nullptr;
 }
 
@@ -804,26 +556,16 @@ void WebGL2RenderingContext::resumeTransformFeedback()
 {
 }
 
 {
 }
 
-void WebGL2RenderingContext::bindBufferBase(GC3Denum target, GC3Duint index, WebGLBuffer* buffer)
+void WebGL2RenderingContext::bindBufferBase(GC3Denum, GC3Duint, WebGLBuffer*)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(index);
-    UNUSED_PARAM(buffer);
 }
 
 }
 
-void WebGL2RenderingContext::bindBufferRange(GC3Denum target, GC3Duint index, WebGLBuffer* buffer, GC3Dint64 offset, GC3Dint64 size)
+void WebGL2RenderingContext::bindBufferRange(GC3Denum, GC3Duint, WebGLBuffer*, GC3Dint64, GC3Dint64)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(index);
-    UNUSED_PARAM(buffer);
-    UNUSED_PARAM(offset);
-    UNUSED_PARAM(size);
 }
 
 }
 
-WebGLGetInfo WebGL2RenderingContext::getIndexedParameter(GC3Denum target, GC3Duint index)
+WebGLGetInfo WebGL2RenderingContext::getIndexedParameter(GC3Denum target, GC3Duint)
 {
 {
-    UNUSED_PARAM(target);
-    UNUSED_PARAM(index);
     switch (target) {
     case GraphicsContext3D::TRANSFORM_FEEDBACK_BUFFER_BINDING:
     case GraphicsContext3D::TRANSFORM_FEEDBACK_BUFFER_SIZE:
     switch (target) {
     case GraphicsContext3D::TRANSFORM_FEEDBACK_BUFFER_BINDING:
     case GraphicsContext3D::TRANSFORM_FEEDBACK_BUFFER_SIZE:
@@ -841,58 +583,43 @@ WebGLGetInfo WebGL2RenderingContext::getIndexedParameter(GC3Denum target, GC3Dui
     return WebGLGetInfo();
 }
 
     return WebGLGetInfo();
 }
 
-Uint32Array* WebGL2RenderingContext::getUniformIndices(WebGLProgram* program, Vector<String> uniformNames)
+Uint32Array* WebGL2RenderingContext::getUniformIndices(WebGLProgram*, Vector<String>)
 {
 {
-    UNUSED_PARAM(program);
-    UNUSED_PARAM(uniformNames);
     return nullptr;
 }
 
     return nullptr;
 }
 
-Int32Array* WebGL2RenderingContext::getActiveUniforms(WebGLProgram* program, Uint32Array* uniformIndices, GC3Denum pname)
+Int32Array* WebGL2RenderingContext::getActiveUniforms(WebGLProgram*, RefPtr<Uint32Array>&&, GC3Denum)
 {
 {
-    UNUSED_PARAM(program);
-    UNUSED_PARAM(uniformIndices);
-    UNUSED_PARAM(pname);
     return nullptr;
 }
 
     return nullptr;
 }
 
-GC3Duint WebGL2RenderingContext::getUniformBlockIndex(WebGLProgram* program, String uniformBlockName)
+GC3Duint WebGL2RenderingContext::getUniformBlockIndex(WebGLProgram*, String)
 {
 {
-    UNUSED_PARAM(program);
-    UNUSED_PARAM(uniformBlockName);
     return 0;
 }
 
     return 0;
 }
 
-WebGLGetInfo WebGL2RenderingContext::getActiveUniformBlockParameter(WebGLProgram* program, GC3Duint uniformBlockIndex, GC3Denum pname)
+WebGLGetInfo WebGL2RenderingContext::getActiveUniformBlockParameter(WebGLProgram*, GC3Duint, GC3Denum)
 {
 {
-    UNUSED_PARAM(program);
-    UNUSED_PARAM(uniformBlockIndex);
-    UNUSED_PARAM(pname);
     return WebGLGetInfo();
 }
 
     return WebGLGetInfo();
 }
 
-WebGLGetInfo WebGL2RenderingContext::getActiveUniformBlockName(WebGLProgram* program, GC3Duint uniformBlockIndex)
+WebGLGetInfo WebGL2RenderingContext::getActiveUniformBlockName(WebGLProgram*, GC3Duint)
 {
 {
-    UNUSED_PARAM(program);
-    UNUSED_PARAM(uniformBlockIndex);
     return WebGLGetInfo();
 }
 
     return WebGLGetInfo();
 }
 
-void WebGL2RenderingContext::uniformBlockBinding(WebGLProgram* program, GC3Duint uniformBlockIndex, GC3Duint uniformBlockBinding)
+void WebGL2RenderingContext::uniformBlockBinding(WebGLProgram*, GC3Duint, GC3Duint)
 {
 {
-    UNUSED_PARAM(program);
-    UNUSED_PARAM(uniformBlockIndex);
-    UNUSED_PARAM(uniformBlockBinding);
 }
 
 }
 
-PassRefPtr<WebGLVertexArrayObject> WebGL2RenderingContext::createVertexArray()
+RefPtr<WebGLVertexArrayObject> WebGL2RenderingContext::createVertexArray()
 {
     if (isContextLost())
 {
     if (isContextLost())
-        return 0;
+        return nullptr;
     
     
-    RefPtr<WebGLVertexArrayObject> o = WebGLVertexArrayObject::create(this, WebGLVertexArrayObject::VAOTypeUser);
-    addContextObject(o.get());
-    return o.release();
+    auto object = WebGLVertexArrayObject::create(this, WebGLVertexArrayObject::VAOTypeUser);
+    addContextObject(object.ptr());
+    return WTFMove(object);
 }
 
 void WebGL2RenderingContext::deleteVertexArray(WebGLVertexArrayObject* arrayObject)
 }
 
 void WebGL2RenderingContext::deleteVertexArray(WebGLVertexArrayObject* arrayObject)
@@ -1064,9 +791,8 @@ Vector<String> WebGL2RenderingContext::getSupportedExtensions()
     return result;
 }
 
     return result;
 }
 
-WebGLGetInfo WebGL2RenderingContext::getFramebufferAttachmentParameter(GC3Denum target, GC3Denum attachment, GC3Denum pname, ExceptionCode& ec)
+WebGLGetInfo WebGL2RenderingContext::getFramebufferAttachmentParameter(GC3Denum target, GC3Denum attachment, GC3Denum pname, ExceptionCode&)
 {
 {
-    UNUSED_PARAM(ec);
     if (isContextLostOrPending() || !validateFramebufferFuncParameters("getFramebufferAttachmentParameter", target, attachment))
         return WebGLGetInfo();
     
     if (isContextLostOrPending() || !validateFramebufferFuncParameters("getFramebufferAttachmentParameter", target, attachment))
         return WebGLGetInfo();
     
@@ -1091,7 +817,7 @@ WebGLGetInfo WebGL2RenderingContext::getFramebufferAttachmentParameter(GC3Denum
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:
             return WebGLGetInfo(GraphicsContext3D::TEXTURE);
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:
             return WebGLGetInfo(GraphicsContext3D::TEXTURE);
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:
-            return WebGLGetInfo(PassRefPtr<WebGLTexture>(reinterpret_cast<WebGLTexture*>(object)));
+            return WebGLGetInfo(reinterpret_cast<WebGLTexture*>(object));
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: {
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: {
@@ -1108,7 +834,7 @@ WebGLGetInfo WebGL2RenderingContext::getFramebufferAttachmentParameter(GC3Denum
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:
             return WebGLGetInfo(GraphicsContext3D::RENDERBUFFER);
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:
             return WebGLGetInfo(GraphicsContext3D::RENDERBUFFER);
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:
-            return WebGLGetInfo(PassRefPtr<WebGLRenderbuffer>(reinterpret_cast<WebGLRenderbuffer*>(object)));
+            return WebGLGetInfo(reinterpret_cast<WebGLRenderbuffer*>(object));
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING : {
             WebGLRenderbuffer* renderBuffer = reinterpret_cast<WebGLRenderbuffer*>(object);
             GC3Denum renderBufferFormat = renderBuffer->getInternalFormat();
         case GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING : {
             WebGLRenderbuffer* renderBuffer = reinterpret_cast<WebGLRenderbuffer*>(object);
             GC3Denum renderBufferFormat = renderBuffer->getInternalFormat();
@@ -1352,9 +1078,9 @@ void WebGL2RenderingContext::texSubImage2DImpl(GC3Denum target, GC3Dint level, G
         m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlignment);
 }
 
         m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlignment);
 }
 
-void WebGL2RenderingContext::texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, ArrayBufferView* pixels, ExceptionCode& ec)
+void WebGL2RenderingContext::texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, RefPtr<ArrayBufferView>&& pixels, ExceptionCode& ec)
 {
 {
-    if (isContextLostOrPending() || !validateTexFuncData("texSubImage2D", level, width, height, GraphicsContext3D::NONE, format, type, pixels, NullNotAllowed) || !validateTexFunc("texSubImage2D", TexSubImage, SourceArrayBufferView, target, level, GraphicsContext3D::NONE, width, height, 0, format, type, xoffset, yoffset))
+    if (isContextLostOrPending() || !validateTexFuncData("texSubImage2D", level, width, height, GraphicsContext3D::NONE, format, type, pixels.get(), NullNotAllowed) || !validateTexFunc("texSubImage2D", TexSubImage, SourceArrayBufferView, target, level, GraphicsContext3D::NONE, width, height, 0, format, type, xoffset, yoffset))
         return;
     
     void* data = pixels->baseAddress();
         return;
     
     void* data = pixels->baseAddress();
@@ -2071,9 +1797,8 @@ bool WebGL2RenderingContext::isIntegerFormat(GC3Denum internalformat)
     return false;
 }
 
     return false;
 }
 
-WebGLGetInfo WebGL2RenderingContext::getParameter(GC3Denum pname, ExceptionCode& ec)
+WebGLGetInfo WebGL2RenderingContext::getParameter(GC3Denum pname, ExceptionCode&)
 {
 {
-    UNUSED_PARAM(ec);
     if (isContextLostOrPending())
         return WebGLGetInfo();
     const int intZero = 0;
     if (isContextLostOrPending())
         return WebGLGetInfo();
     const int intZero = 0;
@@ -2087,7 +1812,7 @@ WebGLGetInfo WebGL2RenderingContext::getParameter(GC3Denum pname, ExceptionCode&
     case GraphicsContext3D::ALPHA_BITS:
         return getIntParameter(pname);
     case GraphicsContext3D::ARRAY_BUFFER_BINDING:
     case GraphicsContext3D::ALPHA_BITS:
         return getIntParameter(pname);
     case GraphicsContext3D::ARRAY_BUFFER_BINDING:
-        return WebGLGetInfo(PassRefPtr<WebGLBuffer>(m_boundArrayBuffer));
+        return WebGLGetInfo(m_boundArrayBuffer.get());
     case GraphicsContext3D::BLEND:
         return getBooleanParameter(pname);
     case GraphicsContext3D::BLEND_COLOR:
     case GraphicsContext3D::BLEND:
         return getBooleanParameter(pname);
     case GraphicsContext3D::BLEND_COLOR:
@@ -2117,7 +1842,7 @@ WebGLGetInfo WebGL2RenderingContext::getParameter(GC3Denum pname, ExceptionCode&
     case GraphicsContext3D::CULL_FACE_MODE:
         return getUnsignedIntParameter(pname);
     case GraphicsContext3D::CURRENT_PROGRAM:
     case GraphicsContext3D::CULL_FACE_MODE:
         return getUnsignedIntParameter(pname);
     case GraphicsContext3D::CURRENT_PROGRAM:
-        return WebGLGetInfo(PassRefPtr<WebGLProgram>(m_currentProgram));
+        return WebGLGetInfo(m_currentProgram.get());
     case GraphicsContext3D::DEPTH_BITS:
         if (!m_framebufferBinding && !m_attributes.depth)
             return WebGLGetInfo(intZero);
     case GraphicsContext3D::DEPTH_BITS:
         if (!m_framebufferBinding && !m_attributes.depth)
             return WebGLGetInfo(intZero);
@@ -2135,9 +1860,9 @@ WebGLGetInfo WebGL2RenderingContext::getParameter(GC3Denum pname, ExceptionCode&
     case GraphicsContext3D::DITHER:
         return getBooleanParameter(pname);
     case GraphicsContext3D::ELEMENT_ARRAY_BUFFER_BINDING:
     case GraphicsContext3D::DITHER:
         return getBooleanParameter(pname);
     case GraphicsContext3D::ELEMENT_ARRAY_BUFFER_BINDING:
-        return WebGLGetInfo(PassRefPtr<WebGLBuffer>(m_boundVertexArrayObject->getElementArrayBuffer()));
+        return WebGLGetInfo(m_boundVertexArrayObject->getElementArrayBuffer());
     case GraphicsContext3D::FRAMEBUFFER_BINDING:
     case GraphicsContext3D::FRAMEBUFFER_BINDING:
-        return WebGLGetInfo(PassRefPtr<WebGLFramebuffer>(m_framebufferBinding));
+        return WebGLGetInfo(m_framebufferBinding.get());
     case GraphicsContext3D::FRONT_FACE:
         return getUnsignedIntParameter(pname);
     case GraphicsContext3D::GENERATE_MIPMAP_HINT:
     case GraphicsContext3D::FRONT_FACE:
         return getUnsignedIntParameter(pname);
     case GraphicsContext3D::GENERATE_MIPMAP_HINT:
@@ -2185,7 +1910,7 @@ WebGLGetInfo WebGL2RenderingContext::getParameter(GC3Denum pname, ExceptionCode&
     case GraphicsContext3D::RED_BITS:
         return getIntParameter(pname);
     case GraphicsContext3D::RENDERBUFFER_BINDING:
     case GraphicsContext3D::RED_BITS:
         return getIntParameter(pname);
     case GraphicsContext3D::RENDERBUFFER_BINDING:
-        return WebGLGetInfo(PassRefPtr<WebGLRenderbuffer>(m_renderbufferBinding));
+        return WebGLGetInfo(m_renderbufferBinding.get());
     case GraphicsContext3D::RENDERER:
         return WebGLGetInfo(String("WebKit WebGL"));
     case GraphicsContext3D::SAMPLE_BUFFERS:
     case GraphicsContext3D::RENDERER:
         return WebGLGetInfo(String("WebKit WebGL"));
     case GraphicsContext3D::SAMPLE_BUFFERS:
@@ -2241,9 +1966,9 @@ WebGLGetInfo WebGL2RenderingContext::getParameter(GC3Denum pname, ExceptionCode&
     case GraphicsContext3D::SUBPIXEL_BITS:
         return getIntParameter(pname);
     case GraphicsContext3D::TEXTURE_BINDING_2D:
     case GraphicsContext3D::SUBPIXEL_BITS:
         return getIntParameter(pname);
     case GraphicsContext3D::TEXTURE_BINDING_2D:
-        return WebGLGetInfo(PassRefPtr<WebGLTexture>(m_textureUnits[m_activeTextureUnit].texture2DBinding));
+        return WebGLGetInfo(m_textureUnits[m_activeTextureUnit].texture2DBinding.get());
     case GraphicsContext3D::TEXTURE_BINDING_CUBE_MAP:
     case GraphicsContext3D::TEXTURE_BINDING_CUBE_MAP:
-        return WebGLGetInfo(PassRefPtr<WebGLTexture>(m_textureUnits[m_activeTextureUnit].textureCubeMapBinding));
+        return WebGLGetInfo(m_textureUnits[m_activeTextureUnit].textureCubeMapBinding.get());
     case GraphicsContext3D::UNPACK_ALIGNMENT:
         return getIntParameter(pname);
     case GraphicsContext3D::UNPACK_FLIP_Y_WEBGL:
     case GraphicsContext3D::UNPACK_ALIGNMENT:
         return getIntParameter(pname);
     case GraphicsContext3D::UNPACK_FLIP_Y_WEBGL:
@@ -2357,7 +2082,7 @@ WebGLGetInfo WebGL2RenderingContext::getParameter(GC3Denum pname, ExceptionCode&
         return getIntParameter(pname);
     case GraphicsContext3D::VERTEX_ARRAY_BINDING: {
         if (!m_boundVertexArrayObject->isDefaultObject())
         return getIntParameter(pname);
     case GraphicsContext3D::VERTEX_ARRAY_BINDING: {
         if (!m_boundVertexArrayObject->isDefaultObject())
-            return WebGLGetInfo(PassRefPtr<WebGLVertexArrayObject>(static_cast<WebGLVertexArrayObject*>(m_boundVertexArrayObject.get())));
+            return WebGLGetInfo(static_cast<WebGLVertexArrayObject*>(m_boundVertexArrayObject.get()));
         return WebGLGetInfo();
         }
         break;
         return WebGLGetInfo();
         }
         break;
index 735fbd4..1f17f30 100644 (file)
@@ -41,12 +41,12 @@ class WebGLVertexArrayObject;
 class WebGL2RenderingContext final : public WebGLRenderingContextBase {
 public:
     WebGL2RenderingContext(HTMLCanvasElement*, GraphicsContext3D::Attributes);
 class WebGL2RenderingContext final : public WebGLRenderingContextBase {
 public:
     WebGL2RenderingContext(HTMLCanvasElement*, GraphicsContext3D::Attributes);
-    WebGL2RenderingContext(HTMLCanvasElement*, PassRefPtr<GraphicsContext3D>, GraphicsContext3D::Attributes);
+    WebGL2RenderingContext(HTMLCanvasElement*, RefPtr<GraphicsContext3D>&&, GraphicsContext3D::Attributes);
     bool isWebGL2() const override { return true; }
 
     /* Buffer objects */
     void copyBufferSubData(GC3Denum readTarget, GC3Denum writeTarget, GC3Dint64 readOffset, GC3Dint64 writeOffset, GC3Dint64 size);
     bool isWebGL2() const override { return true; }
 
     /* Buffer objects */
     void copyBufferSubData(GC3Denum readTarget, GC3Denum writeTarget, GC3Dint64 readOffset, GC3Dint64 writeOffset, GC3Dint64 size);
-    void getBufferSubData(GC3Denum target, GC3Dint64 offset, ArrayBufferView* returnedData);
+    void getBufferSubData(GC3Denum target, GC3Dint64 offset, RefPtr<ArrayBufferView>&& returnedData);
     void getBufferSubData(GC3Denum target, GC3Dint64 offset, ArrayBuffer* returnedData);
     
     /* Framebuffer objects */
     void getBufferSubData(GC3Denum target, GC3Dint64 offset, ArrayBuffer* returnedData);
     
     /* Framebuffer objects */
@@ -64,38 +64,38 @@ public:
     /* Texture objects */
     void texStorage2D(GC3Denum target, GC3Dsizei levels, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height);
     void texStorage3D(GC3Denum target, GC3Dsizei levels, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth);
     /* Texture objects */
     void texStorage2D(GC3Denum target, GC3Dsizei levels, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height);
     void texStorage3D(GC3Denum target, GC3Dsizei levels, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth);
-    void texImage3D(GC3Denum target, GC3Dint level, GC3Dint internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth, GC3Dint border, GC3Denum format, GC3Denum type, ArrayBufferView* pixels);
-    void texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth, GC3Denum format, GC3Denum type, ArrayBufferView* pixels);
+    void texImage3D(GC3Denum target, GC3Dint level, GC3Dint internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth, GC3Dint border, GC3Denum format, GC3Denum type, RefPtr<ArrayBufferView>&& pixels);
+    void texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth, GC3Denum format, GC3Denum type, RefPtr<ArrayBufferView>&& pixels);
     void texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Denum format, GC3Denum type, ImageData* source);
     void texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Denum format, GC3Denum type, HTMLImageElement* source);
     void texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Denum format, GC3Denum type, HTMLCanvasElement* source);
     void texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Denum format, GC3Denum type, HTMLVideoElement* source);
     void copyTexSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height);
     void texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Denum format, GC3Denum type, ImageData* source);
     void texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Denum format, GC3Denum type, HTMLImageElement* source);
     void texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Denum format, GC3Denum type, HTMLCanvasElement* source);
     void texSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Denum format, GC3Denum type, HTMLVideoElement* source);
     void copyTexSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height);
-    void compressedTexImage3D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth, GC3Dint border, GC3Dsizei imageSize, ArrayBufferView* data);
-    void compressedTexSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth, GC3Denum format, GC3Dsizei imageSize, ArrayBufferView* data);
+    void compressedTexImage3D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth, GC3Dint border, GC3Dsizei imageSize, RefPtr<ArrayBufferView>&& data);
+    void compressedTexSubImage3D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint zoffset, GC3Dsizei width, GC3Dsizei height, GC3Dsizei depth, GC3Denum format, GC3Dsizei imageSize, RefPtr<ArrayBufferView>&& data);
     
     /* Programs and shaders */
     GC3Dint getFragDataLocation(WebGLProgram* program, String name);
     
     /* Uniforms and attributes */
     
     /* Programs and shaders */
     GC3Dint getFragDataLocation(WebGLProgram* program, String name);
     
     /* Uniforms and attributes */
-    void uniform1ui(WebGLUniformLocation* location, GC3Duint v0);
-    void uniform2ui(WebGLUniformLocation* location, GC3Duint v0, GC3Duint v1);
-    void uniform3ui(WebGLUniformLocation* location, GC3Duint v0, GC3Duint v1, GC3Duint v2);
-    void uniform4ui(WebGLUniformLocation* location, GC3Duint v0, GC3Duint v1, GC3Duint v2, GC3Duint 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, GC3Dboolean transpose, Float32Array* value);
-    void uniformMatrix3x2fv(WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value);
-    void uniformMatrix2x4fv(WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value);
-    void uniformMatrix4x2fv(WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value);
-    void uniformMatrix3x4fv(WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value);
-    void uniformMatrix4x3fv(WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value);
+    void uniform1ui(WebGLUniformLocation*, GC3Duint v0);
+    void uniform2ui(WebGLUniformLocation*, GC3Duint v0, GC3Duint v1);
+    void uniform3ui(WebGLUniformLocation*, GC3Duint v0, GC3Duint v1, GC3Duint v2);
+    void uniform4ui(WebGLUniformLocation*, GC3Duint v0, GC3Duint v1, GC3Duint v2, GC3Duint v3);
+    void uniform1uiv(WebGLUniformLocation*, RefPtr<Uint32Array>&& value);
+    void uniform2uiv(WebGLUniformLocation*, RefPtr<Uint32Array>&& value);
+    void uniform3uiv(WebGLUniformLocation*, RefPtr<Uint32Array>&& value);
+    void uniform4uiv(WebGLUniformLocation*, RefPtr<Uint32Array>&& value);
+    void uniformMatrix2x3fv(WebGLUniformLocation*, GC3Dboolean transpose, RefPtr<Float32Array>&& value);
+    void uniformMatrix3x2fv(WebGLUniformLocation*, GC3Dboolean transpose, RefPtr<Float32Array>&& value);
+    void uniformMatrix2x4fv(WebGLUniformLocation*, GC3Dboolean transpose, RefPtr<Float32Array>&& value);
+    void uniformMatrix4x2fv(WebGLUniformLocation*, GC3Dboolean transpose, RefPtr<Float32Array>&& value);
+    void uniformMatrix3x4fv(WebGLUniformLocation*, GC3Dboolean transpose, RefPtr<Float32Array>&& value);
+    void uniformMatrix4x3fv(WebGLUniformLocation*, GC3Dboolean transpose, RefPtr<Float32Array>&& value);
     void vertexAttribI4i(GC3Duint index, GC3Dint x, GC3Dint y, GC3Dint z, GC3Dint w);
     void vertexAttribI4i(GC3Duint index, GC3Dint x, GC3Dint y, GC3Dint z, GC3Dint w);
-    void vertexAttribI4iv(GC3Duint index, Int32Array* v);
+    void vertexAttribI4iv(GC3Duint index, RefPtr<Int32Array>&& v);
     void vertexAttribI4ui(GC3Duint index, GC3Duint x, GC3Duint y, GC3Duint z, GC3Duint w);
     void vertexAttribI4ui(GC3Duint index, GC3Duint x, GC3Duint y, GC3Duint z, GC3Duint w);
-    void vertexAttribI4uiv(GC3Duint index, Uint32Array* v);
+    void vertexAttribI4uiv(GC3Duint index, RefPtr<Uint32Array>&& v);
     void vertexAttribIPointer(GC3Duint index, GC3Dint size, GC3Denum type, GC3Dsizei stride, GC3Dint64 offset);
     
     /* Writing to the drawing buffer */
     void vertexAttribIPointer(GC3Duint index, GC3Dint size, GC3Denum type, GC3Dsizei stride, GC3Dint64 offset);
     
     /* Writing to the drawing buffer */
@@ -107,22 +107,22 @@ public:
     
     /* Multiple Render Targets */
     void drawBuffers(Vector<GC3Denum> buffers);
     
     /* Multiple Render Targets */
     void drawBuffers(Vector<GC3Denum> buffers);
-    void clearBufferiv(GC3Denum buffer, GC3Dint drawbuffer, Int32Array* value);
-    void clearBufferuiv(GC3Denum buffer, GC3Dint drawbuffer, Uint32Array* value);
-    void clearBufferfv(GC3Denum buffer, GC3Dint drawbuffer, Float32Array* value);
+    void clearBufferiv(GC3Denum buffer, GC3Dint drawbuffer, RefPtr<Int32Array>&& value);
+    void clearBufferuiv(GC3Denum buffer, GC3Dint drawbuffer, RefPtr<Uint32Array>&& value);
+    void clearBufferfv(GC3Denum buffer, GC3Dint drawbuffer, RefPtr<Float32Array>&& value);
     void clearBufferfi(GC3Denum buffer, GC3Dint drawbuffer, GC3Dfloat depth, GC3Dint stencil);
     
     /* Query Objects */
     void clearBufferfi(GC3Denum buffer, GC3Dint drawbuffer, GC3Dfloat depth, GC3Dint stencil);
     
     /* Query Objects */
-    PassRefPtr<WebGLQuery> createQuery();
+    RefPtr<WebGLQuery> createQuery();
     void deleteQuery(WebGLQuery* query);
     GC3Dboolean isQuery(WebGLQuery* query);
     void beginQuery(GC3Denum target, WebGLQuery* query);
     void endQuery(GC3Denum target);
     void deleteQuery(WebGLQuery* query);
     GC3Dboolean isQuery(WebGLQuery* query);
     void beginQuery(GC3Denum target, WebGLQuery* query);
     void endQuery(GC3Denum target);
-    PassRefPtr<WebGLQuery> getQuery(GC3Denum target, GC3Denum pname);
+    RefPtr<WebGLQuery> getQuery(GC3Denum target, GC3Denum pname);
     WebGLGetInfo getQueryParameter(WebGLQuery* query, GC3Denum pname);
     
     /* Sampler Objects */
     WebGLGetInfo getQueryParameter(WebGLQuery* query, GC3Denum pname);
     
     /* Sampler Objects */
-    PassRefPtr<WebGLSampler> createSampler();
+    RefPtr<WebGLSampler> createSampler();
     void deleteSampler(WebGLSampler* sampler);
     GC3Dboolean isSampler(WebGLSampler* sampler);
     void bindSampler(GC3Duint unit, WebGLSampler* sampler);
     void deleteSampler(WebGLSampler* sampler);
     GC3Dboolean isSampler(WebGLSampler* sampler);
     void bindSampler(GC3Duint unit, WebGLSampler* sampler);
@@ -131,7 +131,7 @@ public:
     WebGLGetInfo getSamplerParameter(WebGLSampler* sampler, GC3Denum pname);
     
     /* Sync objects */
     WebGLGetInfo getSamplerParameter(WebGLSampler* sampler, GC3Denum pname);
     
     /* Sync objects */
-    PassRefPtr<WebGLSync> fenceSync(GC3Denum condition, GC3Dbitfield flags);
+    RefPtr<WebGLSync> fenceSync(GC3Denum condition, GC3Dbitfield flags);
     GC3Dboolean isSync(WebGLSync* sync);
     void deleteSync(WebGLSync* sync);
     GC3Denum clientWaitSync(WebGLSync* sync, GC3Dbitfield flags, GC3Duint64 timeout);
     GC3Dboolean isSync(WebGLSync* sync);
     void deleteSync(WebGLSync* sync);
     GC3Denum clientWaitSync(WebGLSync* sync, GC3Dbitfield flags, GC3Duint64 timeout);
@@ -139,14 +139,14 @@ public:
     WebGLGetInfo getSyncParameter(WebGLSync* sync, GC3Denum pname);
     
     /* Transform Feedback */
     WebGLGetInfo getSyncParameter(WebGLSync* sync, GC3Denum pname);
     
     /* Transform Feedback */
-    PassRefPtr<WebGLTransformFeedback> createTransformFeedback();
+    RefPtr<WebGLTransformFeedback> createTransformFeedback();
     void deleteTransformFeedback(WebGLTransformFeedback* id);
     GC3Dboolean isTransformFeedback(WebGLTransformFeedback* id);
     void bindTransformFeedback(GC3Denum target, WebGLTransformFeedback* id);
     void beginTransformFeedback(GC3Denum primitiveMode);
     void endTransformFeedback();
     void deleteTransformFeedback(WebGLTransformFeedback* id);
     GC3Dboolean isTransformFeedback(WebGLTransformFeedback* id);
     void bindTransformFeedback(GC3Denum target, WebGLTransformFeedback* id);
     void beginTransformFeedback(GC3Denum primitiveMode);
     void endTransformFeedback();
-    void transformFeedbackVaryings(WebGLProgram* program, Vector<String> varyings, GC3Denum bufferMode);
-    PassRefPtr<WebGLActiveInfo> getTransformFeedbackVarying(WebGLProgram* program, GC3Duint index);
+    void transformFeedbackVaryings(WebGLProgram*, Vector<String> varyings, GC3Denum bufferMode);
+    RefPtr<WebGLActiveInfo> getTransformFeedbackVarying(WebGLProgram*, GC3Duint index);
     void pauseTransformFeedback();
     void resumeTransformFeedback();
     
     void pauseTransformFeedback();
     void resumeTransformFeedback();
     
@@ -154,15 +154,15 @@ public:
     void bindBufferBase(GC3Denum target, GC3Duint index, WebGLBuffer* buffer);
     void bindBufferRange(GC3Denum target, GC3Duint index, WebGLBuffer* buffer, GC3Dint64 offset, GC3Dint64 size);
     WebGLGetInfo getIndexedParameter(GC3Denum target, GC3Duint index);
     void bindBufferBase(GC3Denum target, GC3Duint index, WebGLBuffer* buffer);
     void bindBufferRange(GC3Denum target, GC3Duint index, WebGLBuffer* buffer, GC3Dint64 offset, GC3Dint64 size);
     WebGLGetInfo getIndexedParameter(GC3Denum target, GC3Duint index);
-    Uint32Array* getUniformIndices(WebGLProgram* program, Vector<String> uniformNames);
-    Int32Array* getActiveUniforms(WebGLProgram* program, Uint32Array* uniformIndices, GC3Denum pname);
-    GC3Duint getUniformBlockIndex(WebGLProgram* program, String uniformBlockName);
-    WebGLGetInfo getActiveUniformBlockParameter(WebGLProgram* program, GC3Duint uniformBlockIndex, GC3Denum pname);
-    WebGLGetInfo getActiveUniformBlockName(WebGLProgram* program, GC3Duint uniformBlockIndex);
-    void uniformBlockBinding(WebGLProgram* program, GC3Duint uniformBlockIndex, GC3Duint uniformBlockBinding);
+    Uint32Array* getUniformIndices(WebGLProgram*, Vector<String> uniformNames);
+    Int32Array* getActiveUniforms(WebGLProgram*, RefPtr<Uint32Array>&& uniformIndices, GC3Denum pname);
+    GC3Duint getUniformBlockIndex(WebGLProgram*, String uniformBlockName);
+    WebGLGetInfo getActiveUniformBlockParameter(WebGLProgram*, GC3Duint uniformBlockIndex, GC3Denum pname);
+    WebGLGetInfo getActiveUniformBlockName(WebGLProgram*, GC3Duint uniformBlockIndex);
+    void uniformBlockBinding(WebGLProgram*, GC3Duint uniformBlockIndex, GC3Duint uniformBlockBinding);
     
     /* Vertex Array Objects */
     
     /* Vertex Array Objects */
-    PassRefPtr<WebGLVertexArrayObject> createVertexArray();
+    RefPtr<WebGLVertexArrayObject> createVertexArray();
     void deleteVertexArray(WebGLVertexArrayObject* vertexArray);
     GC3Dboolean isVertexArray(WebGLVertexArrayObject* vertexArray);
     void bindVertexArray(WebGLVertexArrayObject* vertexArray);
     void deleteVertexArray(WebGLVertexArrayObject* vertexArray);
     GC3Dboolean isVertexArray(WebGLVertexArrayObject* vertexArray);
     void bindVertexArray(WebGLVertexArrayObject* vertexArray);
@@ -179,7 +179,7 @@ public:
     void texSubImage2DImpl(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Denum format, GC3Denum type, Image*, GraphicsContext3D::ImageHtmlDomSource, bool flipY, bool premultiplyAlpha, ExceptionCode&) override;
     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Dsizei width, GC3Dsizei height,
     void texSubImage2DImpl(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Denum format, GC3Denum type, Image*, GraphicsContext3D::ImageHtmlDomSource, bool flipY, bool premultiplyAlpha, ExceptionCode&) override;
     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Dsizei width, GC3Dsizei height,
-        GC3Denum format, GC3Denum type, ArrayBufferView*, ExceptionCode&) override;
+        GC3Denum format, GC3Denum type, RefPtr<ArrayBufferView>&&, ExceptionCode&) override;
     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, ImageData*, ExceptionCode&) override;
     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, ImageData*, ExceptionCode&) override;
     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
index 636cc94..a641809 100644 (file)
@@ -359,8 +359,8 @@ typedef unrestricted float GLclampf;
     [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 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);
+    [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);
 
     /* Programs and shaders */
     [StrictTypeChecking] GLint getFragDataLocation(WebGLProgram? program, DOMString name);
 
     /* Programs and shaders */
     [StrictTypeChecking] GLint getFragDataLocation(WebGLProgram? program, DOMString name);
@@ -370,20 +370,20 @@ typedef unrestricted float GLclampf;
     [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 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 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 vertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
-    [StrictTypeChecking] void vertexAttribI4iv(GLuint index, Int32Array v);
+    [StrictTypeChecking] void vertexAttribI4iv(GLuint index, Int32Array? v);
     [StrictTypeChecking] void vertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
     [StrictTypeChecking] void vertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
-    [StrictTypeChecking] void vertexAttribI4uiv(GLuint index, Uint32Array v);
+    [StrictTypeChecking] void vertexAttribI4uiv(GLuint index, Uint32Array? v);
     [StrictTypeChecking] void vertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
 
     /* Writing to the drawing buffer */
     [StrictTypeChecking] void vertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
 
     /* Writing to the drawing buffer */
@@ -394,9 +394,9 @@ typedef unrestricted float GLclampf;
 
     /* Multiple Render Targets */
     [StrictTypeChecking] void drawBuffers(sequence<GLenum> buffers);
 
     /* 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 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);
 
     /* Query Objects */
     [StrictTypeChecking] void clearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
 
     /* Query Objects */
@@ -442,7 +442,7 @@ typedef unrestricted float GLclampf;
     [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] 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] 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] GLuint getUniformBlockIndex(WebGLProgram? program, DOMString uniformBlockName);
     [StrictTypeChecking, Custom] any getActiveUniformBlockParameter(WebGLProgram? program, GLuint uniformBlockIndex, GLenum pname);
     [StrictTypeChecking, Custom] any getActiveUniformBlockName(WebGLProgram? program, GLuint uniformBlockIndex);
index 11e13e1..e956713 100644 (file)
@@ -564,9 +564,9 @@ void WebGLRenderingContext::texSubImage2DImpl(GC3Denum target, GC3Dint level, GC
         m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlignment);
 }
 
         m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlignment);
 }
 
-void WebGLRenderingContext::texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, ArrayBufferView* pixels, ExceptionCode& ec)
+void WebGLRenderingContext::texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, RefPtr<ArrayBufferView>&& pixels, ExceptionCode& ec)
 {
 {
-    if (isContextLostOrPending() || !validateTexFuncData("texSubImage2D", level, width, height, format, format, type, pixels, NullNotAllowed) || !validateTexFunc("texSubImage2D", TexSubImage, SourceArrayBufferView, target, level, format, width, height, 0, format, type, xoffset, yoffset))
+    if (isContextLostOrPending() || !validateTexFuncData("texSubImage2D", level, width, height, format, format, type, pixels.get(), NullNotAllowed) || !validateTexFunc("texSubImage2D", TexSubImage, SourceArrayBufferView, target, level, format, width, height, 0, format, type, xoffset, yoffset))
         return;
     
     void* data = pixels->baseAddress();
         return;
     
     void* data = pixels->baseAddress();
index 6448fd0..2037929 100644 (file)
@@ -50,7 +50,7 @@ public:
     void texSubImage2DImpl(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Denum format, GC3Denum type, Image*, GraphicsContext3D::ImageHtmlDomSource, bool flipY, bool premultiplyAlpha, ExceptionCode&) override;
     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Dsizei width, GC3Dsizei height,
     void texSubImage2DImpl(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Denum format, GC3Denum type, Image*, GraphicsContext3D::ImageHtmlDomSource, bool flipY, bool premultiplyAlpha, ExceptionCode&) override;
     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Dsizei width, GC3Dsizei height,
-        GC3Denum format, GC3Denum type, ArrayBufferView*, ExceptionCode&) override;
+        GC3Denum format, GC3Denum type, RefPtr<ArrayBufferView>&&, ExceptionCode&) override;
     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, ImageData*, ExceptionCode&) override;
     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, ImageData*, ExceptionCode&) override;
     void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
index 882cd60..697cc82 100644 (file)
@@ -433,10 +433,10 @@ std::unique_ptr<WebGLRenderingContextBase> WebGLRenderingContextBase::create(HTM
     std::unique_ptr<WebGLRenderingContextBase> renderingContext = nullptr;
 #if ENABLE(WEBGL2)
     if (type == "webgl2")
     std::unique_ptr<WebGLRenderingContextBase> renderingContext = nullptr;
 #if ENABLE(WEBGL2)
     if (type == "webgl2")
-        renderingContext = std::unique_ptr<WebGL2RenderingContext>(new WebGL2RenderingContext(canvas, context, attributes));
+        renderingContext = std::unique_ptr<WebGL2RenderingContext>(new WebGL2RenderingContext(canvas, WTFMove(context), attributes));
     else
 #endif
     else
 #endif
-        renderingContext = std::unique_ptr<WebGLRenderingContext>(new WebGLRenderingContext(canvas, context, attributes));
+        renderingContext = std::unique_ptr<WebGLRenderingContext>(new WebGLRenderingContext(canvas, WTFMove(context), attributes));
     renderingContext->suspendIfNeeded();
 
     return renderingContext;
     renderingContext->suspendIfNeeded();
 
     return renderingContext;
@@ -445,7 +445,7 @@ std::unique_ptr<WebGLRenderingContextBase> WebGLRenderingContextBase::create(HTM
 WebGLRenderingContextBase::WebGLRenderingContextBase(HTMLCanvasElement* passedCanvas, GraphicsContext3D::Attributes attributes)
     : CanvasRenderingContext(passedCanvas)
     , ActiveDOMObject(&passedCanvas->document())
 WebGLRenderingContextBase::WebGLRenderingContextBase(HTMLCanvasElement* passedCanvas, GraphicsContext3D::Attributes attributes)
     : CanvasRenderingContext(passedCanvas)
     , ActiveDOMObject(&passedCanvas->document())
-    , m_context(0)
+    , m_context(nullptr)
     , m_dispatchContextLostEventTimer(*this, &WebGLRenderingContextBase::dispatchContextLostEvent)
     , m_restoreAllowed(false)
     , m_restoreTimer(*this, &WebGLRenderingContextBase::maybeRestoreContext)
     , m_dispatchContextLostEventTimer(*this, &WebGLRenderingContextBase::dispatchContextLostEvent)
     , m_restoreAllowed(false)
     , m_restoreTimer(*this, &WebGLRenderingContextBase::maybeRestoreContext)
@@ -460,10 +460,10 @@ WebGLRenderingContextBase::WebGLRenderingContextBase(HTMLCanvasElement* passedCa
 {
 }
 
 {
 }
 
-WebGLRenderingContextBase::WebGLRenderingContextBase(HTMLCanvasElement* passedCanvas, PassRefPtr<GraphicsContext3D> context, GraphicsContext3D::Attributes attributes)
+WebGLRenderingContextBase::WebGLRenderingContextBase(HTMLCanvasElement* passedCanvas, RefPtr<GraphicsContext3D>&& context, GraphicsContext3D::Attributes attributes)
     : CanvasRenderingContext(passedCanvas)
     , ActiveDOMObject(&passedCanvas->document())
     : CanvasRenderingContext(passedCanvas)
     , ActiveDOMObject(&passedCanvas->document())
-    , m_context(context)
+    , m_context(WTFMove(context))
     , m_dispatchContextLostEventTimer(*this, &WebGLRenderingContextBase::dispatchContextLostEvent)
     , m_restoreAllowed(false)
     , m_restoreTimer(*this, &WebGLRenderingContextBase::maybeRestoreContext)
     , m_dispatchContextLostEventTimer(*this, &WebGLRenderingContextBase::dispatchContextLostEvent)
     , m_restoreAllowed(false)
     , m_restoreTimer(*this, &WebGLRenderingContextBase::maybeRestoreContext)
@@ -1065,52 +1065,44 @@ void WebGLRenderingContextBase::bufferData(GC3Denum target, long long size, GC3D
     }
 }
 
     }
 }
 
-void WebGLRenderingContextBase::bufferData(GC3Denum target, ArrayBuffer* data, GC3Denum usage, ExceptionCode&)
+void WebGLRenderingContextBase::bufferData(GC3Denum target, ArrayBuffer& data, GC3Denum usage, ExceptionCode&)
 {
     if (isContextLostOrPending())
         return;
     WebGLBuffer* buffer = validateBufferDataParameters("bufferData", target, usage);
     if (!buffer)
         return;
 {
     if (isContextLostOrPending())
         return;
     WebGLBuffer* buffer = validateBufferDataParameters("bufferData", target, usage);
     if (!buffer)
         return;
-    if (!data) {
-        synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "bufferData", "no data");
-        return;
-    }
     if (!isErrorGeneratedOnOutOfBoundsAccesses()) {
     if (!isErrorGeneratedOnOutOfBoundsAccesses()) {
-        if (!buffer->associateBufferData(data)) {
+        if (!buffer->associateBufferData(&data)) {
             synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "bufferData", "invalid buffer");
             return;
         }
     }
 
     m_context->moveErrorsToSyntheticErrorList();
             synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "bufferData", "invalid buffer");
             return;
         }
     }
 
     m_context->moveErrorsToSyntheticErrorList();
-    m_context->bufferData(target, data->byteLength(), data->data(), usage);
+    m_context->bufferData(target, data.byteLength(), data.data(), usage);
     if (m_context->moveErrorsToSyntheticErrorList()) {
         // The bufferData function failed. Tell the buffer it doesn't have the data it thinks it does.
         buffer->disassociateBufferData();
     }
 }
 
     if (m_context->moveErrorsToSyntheticErrorList()) {
         // The bufferData function failed. Tell the buffer it doesn't have the data it thinks it does.
         buffer->disassociateBufferData();
     }
 }
 
-void WebGLRenderingContextBase::bufferData(GC3Denum target, ArrayBufferView* data, GC3Denum usage, ExceptionCode&)
+void WebGLRenderingContextBase::bufferData(GC3Denum target, ArrayBufferView& data, GC3Denum usage, ExceptionCode&)
 {
     if (isContextLostOrPending())
         return;
     WebGLBuffer* buffer = validateBufferDataParameters("bufferData", target, usage);
     if (!buffer)
         return;
 {
     if (isContextLostOrPending())
         return;
     WebGLBuffer* buffer = validateBufferDataParameters("bufferData", target, usage);
     if (!buffer)
         return;
-    if (!data) {
-        synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "bufferData", "no data");
-        return;
-    }
     if (!isErrorGeneratedOnOutOfBoundsAccesses()) {
     if (!isErrorGeneratedOnOutOfBoundsAccesses()) {
-        if (!buffer->associateBufferData(data)) {
+        if (!buffer->associateBufferData(&data)) {
             synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "bufferData", "invalid buffer");
             return;
         }
     }
 
     m_context->moveErrorsToSyntheticErrorList();
             synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "bufferData", "invalid buffer");
             return;
         }
     }
 
     m_context->moveErrorsToSyntheticErrorList();
-    m_context->bufferData(target, data->byteLength(), data->baseAddress(), usage);
+    m_context->bufferData(target, data.byteLength(), data.baseAddress(), usage);
     if (m_context->moveErrorsToSyntheticErrorList()) {
         // The bufferData function failed. Tell the buffer it doesn't have the data it thinks it does.
         buffer->disassociateBufferData();
     if (m_context->moveErrorsToSyntheticErrorList()) {
         // The bufferData function failed. Tell the buffer it doesn't have the data it thinks it does.
         buffer->disassociateBufferData();
@@ -1145,7 +1137,7 @@ void WebGLRenderingContextBase::bufferSubData(GC3Denum target, long long offset,
     }
 }
 
     }
 }
 
-void WebGLRenderingContextBase::bufferSubData(GC3Denum target, long long offset, ArrayBufferView* data, ExceptionCode&)
+void WebGLRenderingContextBase::bufferSubData(GC3Denum target, long long offset, RefPtr<ArrayBufferView>&& data, ExceptionCode&)
 {
     if (isContextLostOrPending())
         return;
 {
     if (isContextLostOrPending())
         return;
@@ -1159,7 +1151,7 @@ void WebGLRenderingContextBase::bufferSubData(GC3Denum target, long long offset,
     if (!data)
         return;
     if (!isErrorGeneratedOnOutOfBoundsAccesses()) {
     if (!data)
         return;
     if (!isErrorGeneratedOnOutOfBoundsAccesses()) {
-        if (!buffer->associateBufferSubData(static_cast<GC3Dintptr>(offset), data)) {
+        if (!buffer->associateBufferSubData(static_cast<GC3Dintptr>(offset), data.get())) {
             synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "bufferSubData", "offset out of range");
             return;
         }
             synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "bufferSubData", "offset out of range");
             return;
         }
@@ -1249,8 +1241,7 @@ void WebGLRenderingContextBase::compileShader(WebGLShader* shader, ExceptionCode
     shader->setValid(value);
 }
 
     shader->setValid(value);
 }
 
-void WebGLRenderingContextBase::compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width,
-                                                 GC3Dsizei height, GC3Dint border, ArrayBufferView* data)
+void WebGLRenderingContextBase::compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, ArrayBufferView& data)
 {
     if (isContextLostOrPending())
         return;
 {
     if (isContextLostOrPending())
         return;
@@ -1277,7 +1268,7 @@ void WebGLRenderingContextBase::compressedTexImage2D(GC3Denum target, GC3Dint le
         return;
     m_context->moveErrorsToSyntheticErrorList();
     m_context->compressedTexImage2D(target, level, internalformat, width, height,
         return;
     m_context->moveErrorsToSyntheticErrorList();
     m_context->compressedTexImage2D(target, level, internalformat, width, height,
-        border, data->byteLength(), data->baseAddress());
+        border, data.byteLength(), data.baseAddress());
     if (m_context->moveErrorsToSyntheticErrorList()) {
         // The compressedTexImage2D function failed. Tell the WebGLTexture it doesn't have the data for this level.
         tex->markInvalid(target, level);
     if (m_context->moveErrorsToSyntheticErrorList()) {
         // The compressedTexImage2D function failed. Tell the WebGLTexture it doesn't have the data for this level.
         tex->markInvalid(target, level);
@@ -1288,8 +1279,7 @@ void WebGLRenderingContextBase::compressedTexImage2D(GC3Denum target, GC3Dint le
     tex->setCompressed();
 }
 
     tex->setCompressed();
 }
 
-void WebGLRenderingContextBase::compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
-                                                    GC3Dsizei width, GC3Dsizei height, GC3Denum format, ArrayBufferView* data)
+void WebGLRenderingContextBase::compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, ArrayBufferView& data)
 {
     if (isContextLostOrPending())
         return;
 {
     if (isContextLostOrPending())
         return;
@@ -1314,8 +1304,7 @@ void WebGLRenderingContextBase::compressedTexSubImage2D(GC3Denum target, GC3Dint
     if (!validateCompressedTexSubDimensions("compressedTexSubImage2D", target, level, xoffset, yoffset, width, height, format, tex))
         return;
 
     if (!validateCompressedTexSubDimensions("compressedTexSubImage2D", target, level, xoffset, yoffset, width, height, format, tex))
         return;
 
-    graphicsContext3D()->compressedTexSubImage2D(target, level, xoffset, yoffset,
-                                                 width, height, format, data->byteLength(), data->baseAddress());
+    graphicsContext3D()->compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, data.byteLength(), data.baseAddress());
     tex->setCompressed();
 }
 
     tex->setCompressed();
 }
 
@@ -2797,7 +2786,7 @@ void WebGLRenderingContextBase::polygonOffset(GC3Dfloat factor, GC3Dfloat units)
     m_context->polygonOffset(factor, units);
 }
 
     m_context->polygonOffset(factor, units);
 }
 
-void WebGLRenderingContextBase::readPixels(GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, ArrayBufferView* pixels, ExceptionCode&)
+void WebGLRenderingContextBase::readPixels(GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, ArrayBufferView& pixels, ExceptionCode&)
 {
     if (isContextLostOrPending())
         return;
 {
     if (isContextLostOrPending())
         return;
@@ -2805,10 +2794,6 @@ void WebGLRenderingContextBase::readPixels(GC3Dint x, GC3Dint y, GC3Dsizei width
     // taint the origin using the WebGL API.
     ASSERT(canvas()->originClean());
     // Validate input parameters.
     // taint the origin using the WebGL API.
     ASSERT(canvas()->originClean());
     // Validate input parameters.
-    if (!pixels) {
-        synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "readPixels", "no destination ArrayBufferView");
-        return;
-    }
     switch (format) {
     case GraphicsContext3D::ALPHA:
     case GraphicsContext3D::RGB:
     switch (format) {
     case GraphicsContext3D::ALPHA:
     case GraphicsContext3D::RGB:
@@ -2833,7 +2818,7 @@ void WebGLRenderingContextBase::readPixels(GC3Dint x, GC3Dint y, GC3Dsizei width
         return;
     }
     // Validate array type against pixel type.
         return;
     }
     // Validate array type against pixel type.
-    if (pixels->getType() != JSC::TypeUint8) {
+    if (pixels.getType() != JSC::TypeUint8) {
         synthesizeGLError(GraphicsContext3D::INVALID_OPERATION, "readPixels", "ArrayBufferView not Uint8Array");
         return;
     }
         synthesizeGLError(GraphicsContext3D::INVALID_OPERATION, "readPixels", "ArrayBufferView not Uint8Array");
         return;
     }
@@ -2851,18 +2836,18 @@ void WebGLRenderingContextBase::readPixels(GC3Dint x, GC3Dint y, GC3Dsizei width
             synthesizeGLError(error, "readPixels", "invalid dimensions");
             return;
         }
             synthesizeGLError(error, "readPixels", "invalid dimensions");
             return;
         }
-        if (pixels->byteLength() < totalBytesRequired) {
+        if (pixels.byteLength() < totalBytesRequired) {
             synthesizeGLError(GraphicsContext3D::INVALID_OPERATION, "readPixels", "ArrayBufferView not large enough for dimensions");
             return;
         }
     }
 
     clearIfComposited();
             synthesizeGLError(GraphicsContext3D::INVALID_OPERATION, "readPixels", "ArrayBufferView not large enough for dimensions");
             return;
         }
     }
 
     clearIfComposited();
-    void* data = pixels->baseAddress();
+    void* data = pixels.baseAddress();
 
     {
         if (m_isRobustnessEXTSupported)
 
     {
         if (m_isRobustnessEXTSupported)
-            m_context->getExtensions()->readnPixelsEXT(x, y, width, height, format, type, pixels->byteLength(), data);
+            m_context->getExtensions()->readnPixelsEXT(x, y, width, height, format, type, pixels.byteLength(), data);
         else
             m_context->readPixels(x, y, width, height, format, type, data);
     }
         else
             m_context->readPixels(x, y, width, height, format, type, data);
     }
@@ -3112,11 +3097,9 @@ bool WebGLRenderingContextBase::validateTexFunc(const char* functionName, TexFun
     return true;
 }
 
     return true;
 }
 
-void WebGLRenderingContextBase::texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
-                                       GC3Dsizei width, GC3Dsizei height, GC3Dint border,
-                                       GC3Denum format, GC3Denum type, ArrayBufferView* pixels, ExceptionCode& ec)
+void WebGLRenderingContextBase::texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Denum format, GC3Denum type, RefPtr<ArrayBufferView>&& pixels, ExceptionCode& ec)
 {
 {
-    if (isContextLostOrPending() || !validateTexFuncData("texImage2D", level, width, height, internalformat, format, type, pixels, NullAllowed)
+    if (isContextLostOrPending() || !validateTexFuncData("texImage2D", level, width, height, internalformat, format, type, pixels.get(), NullAllowed)
         || !validateTexFunc("texImage2D", TexImage, SourceArrayBufferView, target, level, internalformat, width, height, border, format, type, 0, 0))
         return;
     void* data = pixels ? pixels->baseAddress() : 0;
         || !validateTexFunc("texImage2D", TexImage, SourceArrayBufferView, target, level, internalformat, width, height, border, format, type, 0, 0))
         return;
     void* data = pixels ? pixels->baseAddress() : 0;
@@ -3340,12 +3323,12 @@ void WebGLRenderingContextBase::uniform1f(const WebGLUniformLocation* location,
     m_context->uniform1f(location->location(), x);
 }
 
     m_context->uniform1f(location->location(), x);
 }
 
-void WebGLRenderingContextBase::uniform1fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&)
+void WebGLRenderingContextBase::uniform1fv(const WebGLUniformLocation* location, Float32Array& v, ExceptionCode&)
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform1fv", location, v, 1))
         return;
 
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform1fv", location, v, 1))
         return;
 
-    m_context->uniform1fv(location->location(), v->length(), v->data());
+    m_context->uniform1fv(location->location(), v.length(), v.data());
 }
 
 void WebGLRenderingContextBase::uniform1fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
 }
 
 void WebGLRenderingContextBase::uniform1fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
@@ -3374,21 +3357,21 @@ void WebGLRenderingContextBase::uniform1i(const WebGLUniformLocation* location,
     m_context->uniform1i(location->location(), x);
 }
 
     m_context->uniform1i(location->location(), x);
 }
 
-void WebGLRenderingContextBase::uniform1iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&)
+void WebGLRenderingContextBase::uniform1iv(const WebGLUniformLocation* location, Int32Array& v, ExceptionCode&)
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform1iv", location, v, 1))
         return;
 
     if (location->type() == GraphicsContext3D::SAMPLER_2D || location->type() == GraphicsContext3D::SAMPLER_CUBE)
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform1iv", location, v, 1))
         return;
 
     if (location->type() == GraphicsContext3D::SAMPLER_2D || location->type() == GraphicsContext3D::SAMPLER_CUBE)
-        for (unsigned i = 0; i < v->length(); ++i) {
-            if (v->data()[i] >= static_cast<int>(m_textureUnits.size())) {
-                LOG(WebGL, "Texture unit size=%zu, v[%d]=%d. Location type = %04X.", m_textureUnits.size(), i, v->data()[i], location->type());
+        for (unsigned i = 0; i < v.length(); ++i) {
+            if (v.data()[i] >= static_cast<int>(m_textureUnits.size())) {
+                LOG(WebGL, "Texture unit size=%zu, v[%d]=%d. Location type = %04X.", m_textureUnits.size(), i, v.data()[i], location->type());
                 synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "uniform1iv", "invalid texture unit");
                 return;
             }
         }
 
                 synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "uniform1iv", "invalid texture unit");
                 return;
             }
         }
 
-    m_context->uniform1iv(location->location(), v->length(), v->data());
+    m_context->uniform1iv(location->location(), v.length(), v.data());
 }
 
 void WebGLRenderingContextBase::uniform1iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&)
 }
 
 void WebGLRenderingContextBase::uniform1iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&)
@@ -3420,12 +3403,12 @@ void WebGLRenderingContextBase::uniform2f(const WebGLUniformLocation* location,
     m_context->uniform2f(location->location(), x, y);
 }
 
     m_context->uniform2f(location->location(), x, y);
 }
 
-void WebGLRenderingContextBase::uniform2fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&)
+void WebGLRenderingContextBase::uniform2fv(const WebGLUniformLocation* location, Float32Array& v, ExceptionCode&)
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform2fv", location, v, 2))
         return;
 
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform2fv", location, v, 2))
         return;
 
-    m_context->uniform2fv(location->location(), v->length() / 2, v->data());
+    m_context->uniform2fv(location->location(), v.length() / 2, v.data());
 }
 
 void WebGLRenderingContextBase::uniform2fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
 }
 
 void WebGLRenderingContextBase::uniform2fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
@@ -3449,12 +3432,12 @@ void WebGLRenderingContextBase::uniform2i(const WebGLUniformLocation* location,
     m_context->uniform2i(location->location(), x, y);
 }
 
     m_context->uniform2i(location->location(), x, y);
 }
 
-void WebGLRenderingContextBase::uniform2iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&)
+void WebGLRenderingContextBase::uniform2iv(const WebGLUniformLocation* location, Int32Array& v, ExceptionCode&)
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform2iv", location, v, 2))
         return;
 
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform2iv", location, v, 2))
         return;
 
-    m_context->uniform2iv(location->location(), v->length() / 2, v->data());
+    m_context->uniform2iv(location->location(), v.length() / 2, v.data());
 }
 
 void WebGLRenderingContextBase::uniform2iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&)
 }
 
 void WebGLRenderingContextBase::uniform2iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&)
@@ -3478,12 +3461,12 @@ void WebGLRenderingContextBase::uniform3f(const WebGLUniformLocation* location,
     m_context->uniform3f(location->location(), x, y, z);
 }
 
     m_context->uniform3f(location->location(), x, y, z);
 }
 
-void WebGLRenderingContextBase::uniform3fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&)
+void WebGLRenderingContextBase::uniform3fv(const WebGLUniformLocation* location, Float32Array& v, ExceptionCode&)
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform3fv", location, v, 3))
         return;
 
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform3fv", location, v, 3))
         return;
 
-    m_context->uniform3fv(location->location(), v->length() / 3, v->data());
+    m_context->uniform3fv(location->location(), v.length() / 3, v.data());
 }
 
 void WebGLRenderingContextBase::uniform3fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
 }
 
 void WebGLRenderingContextBase::uniform3fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
@@ -3507,12 +3490,12 @@ void WebGLRenderingContextBase::uniform3i(const WebGLUniformLocation* location,
     m_context->uniform3i(location->location(), x, y, z);
 }
 
     m_context->uniform3i(location->location(), x, y, z);
 }
 
-void WebGLRenderingContextBase::uniform3iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&)
+void WebGLRenderingContextBase::uniform3iv(const WebGLUniformLocation* location, Int32Array& v, ExceptionCode&)
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform3iv", location, v, 3))
         return;
 
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform3iv", location, v, 3))
         return;
 
-    m_context->uniform3iv(location->location(), v->length() / 3, v->data());
+    m_context->uniform3iv(location->location(), v.length() / 3, v.data());
 }
 
 void WebGLRenderingContextBase::uniform3iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&)
 }
 
 void WebGLRenderingContextBase::uniform3iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&)
@@ -3536,12 +3519,12 @@ void WebGLRenderingContextBase::uniform4f(const WebGLUniformLocation* location,
     m_context->uniform4f(location->location(), x, y, z, w);
 }
 
     m_context->uniform4f(location->location(), x, y, z, w);
 }
 
-void WebGLRenderingContextBase::uniform4fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&)
+void WebGLRenderingContextBase::uniform4fv(const WebGLUniformLocation* location, Float32Array& v, ExceptionCode&)
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform4fv", location, v, 4))
         return;
 
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform4fv", location, v, 4))
         return;
 
-    m_context->uniform4fv(location->location(), v->length() / 4, v->data());
+    m_context->uniform4fv(location->location(), v.length() / 4, v.data());
 }
 
 void WebGLRenderingContextBase::uniform4fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
 }
 
 void WebGLRenderingContextBase::uniform4fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
@@ -3565,12 +3548,12 @@ void WebGLRenderingContextBase::uniform4i(const WebGLUniformLocation* location,
     m_context->uniform4i(location->location(), x, y, z, w);
 }
 
     m_context->uniform4i(location->location(), x, y, z, w);
 }
 
-void WebGLRenderingContextBase::uniform4iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&)
+void WebGLRenderingContextBase::uniform4iv(const WebGLUniformLocation* location, Int32Array& v, ExceptionCode&)
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform4iv", location, v, 4))
         return;
 
 {
     if (isContextLostOrPending() || !validateUniformParameters("uniform4iv", location, v, 4))
         return;
 
-    m_context->uniform4iv(location->location(), v->length() / 4, v->data());
+    m_context->uniform4iv(location->location(), v.length() / 4, v.data());
 }
 
 void WebGLRenderingContextBase::uniform4iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&)
 }
 
 void WebGLRenderingContextBase::uniform4iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&)
@@ -3581,11 +3564,11 @@ void WebGLRenderingContextBase::uniform4iv(const WebGLUniformLocation* location,
     m_context->uniform4iv(location->location(), size / 4, v);
 }
 
     m_context->uniform4iv(location->location(), size / 4, v);
 }
 
-void WebGLRenderingContextBase::uniformMatrix2fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* v, ExceptionCode&)
+void WebGLRenderingContextBase::uniformMatrix2fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array& v, ExceptionCode&)
 {
     if (isContextLostOrPending() || !validateUniformMatrixParameters("uniformMatrix2fv", location, transpose, v, 4))
         return;
 {
     if (isContextLostOrPending() || !validateUniformMatrixParameters("uniformMatrix2fv", location, transpose, v, 4))
         return;
-    m_context->uniformMatrix2fv(location->location(), v->length() / 4, transpose, v->data());
+    m_context->uniformMatrix2fv(location->location(), v.length() / 4, transpose, v.data());
 }
 
 void WebGLRenderingContextBase::uniformMatrix2fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
 }
 
 void WebGLRenderingContextBase::uniformMatrix2fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
@@ -3595,11 +3578,11 @@ void WebGLRenderingContextBase::uniformMatrix2fv(const WebGLUniformLocation* loc
     m_context->uniformMatrix2fv(location->location(), size / 4, transpose, v);
 }
 
     m_context->uniformMatrix2fv(location->location(), size / 4, transpose, v);
 }
 
-void WebGLRenderingContextBase::uniformMatrix3fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* v, ExceptionCode&)
+void WebGLRenderingContextBase::uniformMatrix3fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array& v, ExceptionCode&)
 {
     if (isContextLostOrPending() || !validateUniformMatrixParameters("uniformMatrix3fv", location, transpose, v, 9))
         return;
 {
     if (isContextLostOrPending() || !validateUniformMatrixParameters("uniformMatrix3fv", location, transpose, v, 9))
         return;
-    m_context->uniformMatrix3fv(location->location(), v->length() / 9, transpose, v->data());
+    m_context->uniformMatrix3fv(location->location(), v.length() / 9, transpose, v.data());
 }
 
 void WebGLRenderingContextBase::uniformMatrix3fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
 }
 
 void WebGLRenderingContextBase::uniformMatrix3fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
@@ -3609,11 +3592,11 @@ void WebGLRenderingContextBase::uniformMatrix3fv(const WebGLUniformLocation* loc
     m_context->uniformMatrix3fv(location->location(), size / 9, transpose, v);
 }
 
     m_context->uniformMatrix3fv(location->location(), size / 9, transpose, v);
 }
 
-void WebGLRenderingContextBase::uniformMatrix4fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* v, ExceptionCode&)
+void WebGLRenderingContextBase::uniformMatrix4fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array& v, ExceptionCode&)
 {
     if (isContextLostOrPending() || !validateUniformMatrixParameters("uniformMatrix4fv", location, transpose, v, 16))
         return;
 {
     if (isContextLostOrPending() || !validateUniformMatrixParameters("uniformMatrix4fv", location, transpose, v, 16))
         return;
-    m_context->uniformMatrix4fv(location->location(), v->length() / 16, transpose, v->data());
+    m_context->uniformMatrix4fv(location->location(), v.length() / 16, transpose, v.data());
 }
 
 void WebGLRenderingContextBase::uniformMatrix4fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
 }
 
 void WebGLRenderingContextBase::uniformMatrix4fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&)
@@ -3656,7 +3639,7 @@ void WebGLRenderingContextBase::vertexAttrib1f(GC3Duint index, GC3Dfloat v0)
     vertexAttribfImpl("vertexAttrib1f", index, 1, v0, 0.0f, 0.0f, 1.0f);
 }
 
     vertexAttribfImpl("vertexAttrib1f", index, 1, v0, 0.0f, 0.0f, 1.0f);
 }
 
-void WebGLRenderingContextBase::vertexAttrib1fv(GC3Duint index, Float32Array* v)
+void WebGLRenderingContextBase::vertexAttrib1fv(GC3Duint index, Float32Array& v)
 {
     vertexAttribfvImpl("vertexAttrib1fv", index, v, 1);
 }
 {
     vertexAttribfvImpl("vertexAttrib1fv", index, v, 1);
 }
@@ -3671,7 +3654,7 @@ void WebGLRenderingContextBase::vertexAttrib2f(GC3Duint index, GC3Dfloat v0, GC3
     vertexAttribfImpl("vertexAttrib2f", index, 2, v0, v1, 0.0f, 1.0f);
 }
 
     vertexAttribfImpl("vertexAttrib2f", index, 2, v0, v1, 0.0f, 1.0f);
 }
 
-void WebGLRenderingContextBase::vertexAttrib2fv(GC3Duint index, Float32Array* v)
+void WebGLRenderingContextBase::vertexAttrib2fv(GC3Duint index, Float32Array& v)
 {
     vertexAttribfvImpl("vertexAttrib2fv", index, v, 2);
 }
 {
     vertexAttribfvImpl("vertexAttrib2fv", index, v, 2);
 }
@@ -3686,7 +3669,7 @@ void WebGLRenderingContextBase::vertexAttrib3f(GC3Duint index, GC3Dfloat v0, GC3
     vertexAttribfImpl("vertexAttrib3f", index, 3, v0, v1, v2, 1.0f);
 }
 
     vertexAttribfImpl("vertexAttrib3f", index, 3, v0, v1, v2, 1.0f);
 }
 
-void WebGLRenderingContextBase::vertexAttrib3fv(GC3Duint index, Float32Array* v)
+void WebGLRenderingContextBase::vertexAttrib3fv(GC3Duint index, Float32Array& v)
 {
     vertexAttribfvImpl("vertexAttrib3fv", index, v, 3);
 }
 {
     vertexAttribfvImpl("vertexAttrib3fv", index, v, 3);
 }
@@ -3701,7 +3684,7 @@ void WebGLRenderingContextBase::vertexAttrib4f(GC3Duint index, GC3Dfloat v0, GC3
     vertexAttribfImpl("vertexAttrib4f", index, 4, v0, v1, v2, v3);
 }
 
     vertexAttribfImpl("vertexAttrib4f", index, 4, v0, v1, v2, v3);
 }
 
-void WebGLRenderingContextBase::vertexAttrib4fv(GC3Duint index, Float32Array* v)
+void WebGLRenderingContextBase::vertexAttrib4fv(GC3Duint index, Float32Array& v)
 {
     vertexAttribfvImpl("vertexAttrib4fv", index, v, 4);
 }
 {
     vertexAttribfvImpl("vertexAttrib4fv", index, v, 4);
 }
@@ -4213,14 +4196,8 @@ bool WebGLRenderingContextBase::validateCompressedTexFormat(GC3Denum format)
     return m_compressedTextureFormats.contains(format);
 }
 
     return m_compressedTextureFormats.contains(format);
 }
 
-bool WebGLRenderingContextBase::validateCompressedTexFuncData(const char* functionName,
-                                                          GC3Dsizei width, GC3Dsizei height,
-                                                          GC3Denum format, ArrayBufferView* pixels)
+bool WebGLRenderingContextBase::validateCompressedTexFuncData(const char* functionName, GC3Dsizei width, GC3Dsizei height, GC3Denum format, ArrayBufferView& pixels)
 {
 {
-    if (!pixels) {
-        synthesizeGLError(GraphicsContext3D::INVALID_VALUE, functionName, "no pixels");
-        return false;
-    }
     if (width < 0 || height < 0) {
         synthesizeGLError(GraphicsContext3D::INVALID_VALUE, functionName, "width or height < 0");
         return false;
     if (width < 0 || height < 0) {
         synthesizeGLError(GraphicsContext3D::INVALID_VALUE, functionName, "width or height < 0");
         return false;
@@ -4277,7 +4254,7 @@ bool WebGLRenderingContextBase::validateCompressedTexFuncData(const char* functi
         return false;
     }
 
         return false;
     }
 
-    if (pixels->byteLength() != bytesRequired) {
+    if (pixels.byteLength() != bytesRequired) {
         synthesizeGLError(GraphicsContext3D::INVALID_VALUE, functionName, "length of ArrayBufferView is not correct for dimensions");
         return false;
     }
         synthesizeGLError(GraphicsContext3D::INVALID_VALUE, functionName, "length of ArrayBufferView is not correct for dimensions");
         return false;
     }
@@ -4440,22 +4417,14 @@ bool WebGLRenderingContextBase::validateBlendFuncFactors(const char* functionNam
     return true;
 }
 
     return true;
 }
 
-bool WebGLRenderingContextBase::validateUniformParameters(const char* functionName, const WebGLUniformLocation* location, Float32Array* v, GC3Dsizei requiredMinSize)
+bool WebGLRenderingContextBase::validateUniformParameters(const char* functionName, const WebGLUniformLocation* location, Float32Array& v, GC3Dsizei requiredMinSize)
 {
 {
-    if (!v) {
-        synthesizeGLError(GraphicsContext3D::INVALID_VALUE, functionName, "no array");
-        return false;
-    }
-    return validateUniformMatrixParameters(functionName, location, false, v->data(), v->length(), requiredMinSize);
+    return validateUniformMatrixParameters(functionName, location, false, v.data(), v.length(), requiredMinSize);
 }
 
 }
 
-bool WebGLRenderingContextBase::validateUniformParameters(const char* functionName, const WebGLUniformLocation* location, Int32Array* v, GC3Dsizei requiredMinSize)
+bool WebGLRenderingContextBase::validateUniformParameters(const char* functionName, const WebGLUniformLocation* location, Int32Array& v, GC3Dsizei requiredMinSize)
 {
 {
-    if (!v) {
-        synthesizeGLError(GraphicsContext3D::INVALID_VALUE, functionName, "no array");
-        return false;
-    }
-    return validateUniformMatrixParameters(functionName, location, false, v->data(), v->length(), requiredMinSize);
+    return validateUniformMatrixParameters(functionName, location, false, v.data(), v.length(), requiredMinSize);
 }
 
 bool WebGLRenderingContextBase::validateUniformParameters(const char* functionName, const WebGLUniformLocation* location, void* v, GC3Dsizei size, GC3Dsizei requiredMinSize)
 }
 
 bool WebGLRenderingContextBase::validateUniformParameters(const char* functionName, const WebGLUniformLocation* location, void* v, GC3Dsizei size, GC3Dsizei requiredMinSize)
@@ -4463,13 +4432,9 @@ bool WebGLRenderingContextBase::validateUniformParameters(const char* functionNa
     return validateUniformMatrixParameters(functionName, location, false, v, size, requiredMinSize);
 }
 
     return validateUniformMatrixParameters(functionName, location, false, v, size, requiredMinSize);
 }
 
-bool WebGLRenderingContextBase::validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* v, GC3Dsizei requiredMinSize)
+bool WebGLRenderingContextBase::validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array& v, GC3Dsizei requiredMinSize)
 {
 {
-    if (!v) {
-        synthesizeGLError(GraphicsContext3D::INVALID_VALUE, functionName, "no array");
-        return false;
-    }
-    return validateUniformMatrixParameters(functionName, location, transpose, v->data(), v->length(), requiredMinSize);
+    return validateUniformMatrixParameters(functionName, location, transpose, v.data(), v.length(), requiredMinSize);
 }
 
 bool WebGLRenderingContextBase::validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation* location, GC3Dboolean transpose, void* v, GC3Dsizei size, GC3Dsizei requiredMinSize)
 }
 
 bool WebGLRenderingContextBase::validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation* location, GC3Dboolean transpose, void* v, GC3Dsizei size, GC3Dsizei requiredMinSize)
@@ -4601,15 +4566,11 @@ void WebGLRenderingContextBase::vertexAttribfImpl(const char* functionName, GC3D
     attribValue.value[3] = v3;
 }
 
     attribValue.value[3] = v3;
 }
 
-void WebGLRenderingContextBase::vertexAttribfvImpl(const char* functionName, GC3Duint index, Float32Array* v, GC3Dsizei expectedSize)
+void WebGLRenderingContextBase::vertexAttribfvImpl(const char* functionName, GC3Duint index, Float32Array& v, GC3Dsizei expectedSize)
 {
     if (isContextLostOrPending())
         return;
 {
     if (isContextLostOrPending())
         return;
-    if (!v) {
-        synthesizeGLError(GraphicsContext3D::INVALID_VALUE, functionName, "no array");
-        return;
-    }
-    vertexAttribfvImpl(functionName, index, v->data(), v->length(), expectedSize);
+    vertexAttribfvImpl(functionName, index, v.data(), v.length(), expectedSize);
 }
 
 void WebGLRenderingContextBase::vertexAttribfvImpl(const char* functionName, GC3Duint index, GC3Dfloat* v, GC3Dsizei size, GC3Dsizei expectedSize)
 }
 
 void WebGLRenderingContextBase::vertexAttribfvImpl(const char* functionName, GC3Duint index, GC3Dfloat* v, GC3Dsizei size, GC3Dsizei expectedSize)
index 8bcf6eb..cfeb291 100644 (file)
@@ -139,10 +139,10 @@ public:
     void blendFuncSeparate(GC3Denum srcRGB, GC3Denum dstRGB, GC3Denum srcAlpha, GC3Denum dstAlpha);
 
     void bufferData(GC3Denum target, long long size, GC3Denum usage, ExceptionCode&);
     void blendFuncSeparate(GC3Denum srcRGB, GC3Denum dstRGB, GC3Denum srcAlpha, GC3Denum dstAlpha);
 
     void bufferData(GC3Denum target, long long size, GC3Denum usage, ExceptionCode&);
-    void bufferData(GC3Denum target, ArrayBuffer* data, GC3Denum usage, ExceptionCode&);
-    void bufferData(GC3Denum target, ArrayBufferView* data, GC3Denum usage, ExceptionCode&);
+    void bufferData(GC3Denum target, ArrayBuffer& data, GC3Denum usage, ExceptionCode&);
+    void bufferData(GC3Denum target, ArrayBufferView& data, GC3Denum usage, ExceptionCode&);
     void bufferSubData(GC3Denum target, long long offset, ArrayBuffer* data, ExceptionCode&);
     void bufferSubData(GC3Denum target, long long offset, ArrayBuffer* data, ExceptionCode&);
-    void bufferSubData(GC3Denum target, long long offset, ArrayBufferView* data, ExceptionCode&);
+    void bufferSubData(GC3Denum target, long long offset, RefPtr<ArrayBufferView>&& data, ExceptionCode&);
 
     GC3Denum checkFramebufferStatus(GC3Denum target);
     virtual void clear(GC3Dbitfield mask) = 0;
 
     GC3Denum checkFramebufferStatus(GC3Denum target);
     virtual void clear(GC3Dbitfield mask) = 0;
@@ -152,10 +152,8 @@ public:
     void colorMask(GC3Dboolean red, GC3Dboolean green, GC3Dboolean blue, GC3Dboolean alpha);
     void compileShader(WebGLShader*, ExceptionCode&);
 
     void colorMask(GC3Dboolean red, GC3Dboolean green, GC3Dboolean blue, GC3Dboolean alpha);
     void compileShader(WebGLShader*, ExceptionCode&);
 
-    void compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width,
-                              GC3Dsizei height, GC3Dint border, ArrayBufferView* data);
-    void compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
-                                 GC3Dsizei width, GC3Dsizei height, GC3Denum format, ArrayBufferView* data);
+    void compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, ArrayBufferView& data);
+    void compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, ArrayBufferView& data);
 
     virtual void copyTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Dint border) = 0;
     void copyTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height);
 
     virtual void copyTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Dint border) = 0;
     void copyTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height);
@@ -232,7 +230,7 @@ public:
     void linkProgram(WebGLProgram*, ExceptionCode&);
     void pixelStorei(GC3Denum pname, GC3Dint param);
     void polygonOffset(GC3Dfloat factor, GC3Dfloat units);
     void linkProgram(WebGLProgram*, ExceptionCode&);
     void pixelStorei(GC3Denum pname, GC3Dint param);
     void polygonOffset(GC3Dfloat factor, GC3Dfloat units);
-    void readPixels(GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, ArrayBufferView* pixels, ExceptionCode&);
+    void readPixels(GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, ArrayBufferView& pixels, ExceptionCode&);
     void releaseShaderCompiler();
     virtual void renderbufferStorage(GC3Denum target, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height) = 0;
     void sampleCoverage(GC3Dfloat value, GC3Dboolean invert);
     void releaseShaderCompiler();
     virtual void renderbufferStorage(GC3Denum target, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height) = 0;
     void sampleCoverage(GC3Dfloat value, GC3Dboolean invert);
@@ -247,7 +245,7 @@ public:
 
     void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
                     GC3Dsizei width, GC3Dsizei height, GC3Dint border,
 
     void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
                     GC3Dsizei width, GC3Dsizei height, GC3Dint border,
-                    GC3Denum format, GC3Denum type, ArrayBufferView*, ExceptionCode&);
+                    GC3Denum format, GC3Denum type, RefPtr<ArrayBufferView>&&, ExceptionCode&);
     void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
                     GC3Denum format, GC3Denum type, ImageData*, ExceptionCode&);
     void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
     void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
                     GC3Denum format, GC3Denum type, ImageData*, ExceptionCode&);
     void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
@@ -264,7 +262,7 @@ public:
 
     virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Dsizei width, GC3Dsizei height,
 
     virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Dsizei width, GC3Dsizei height,
-        GC3Denum format, GC3Denum type, ArrayBufferView*, ExceptionCode&) = 0;
+        GC3Denum format, GC3Denum type, RefPtr<ArrayBufferView>&&, ExceptionCode&) = 0;
     virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, ImageData*, ExceptionCode&) = 0;
     virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
     virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
         GC3Denum format, GC3Denum type, ImageData*, ExceptionCode&) = 0;
     virtual void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
@@ -276,51 +274,51 @@ public:
         GC3Denum format, GC3Denum type, HTMLVideoElement*, ExceptionCode&) = 0;
 #endif
 
         GC3Denum format, GC3Denum type, HTMLVideoElement*, ExceptionCode&) = 0;
 #endif
 
-    void uniform1f(const WebGLUniformLocation* location, GC3Dfloat x, ExceptionCode&);
-    void uniform1fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&);
-    void uniform1fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&);
-    void uniform1i(const WebGLUniformLocation* location, GC3Dint x, ExceptionCode&);
-    void uniform1iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&);
-    void uniform1iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&);
-    void uniform2f(const WebGLUniformLocation* location, GC3Dfloat x, GC3Dfloat y, ExceptionCode&);
-    void uniform2fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&);
-    void uniform2fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&);
-    void uniform2i(const WebGLUniformLocation* location, GC3Dint x, GC3Dint y, ExceptionCode&);
-    void uniform2iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&);
-    void uniform2iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&);
-    void uniform3f(const WebGLUniformLocation* location, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z, ExceptionCode&);
-    void uniform3fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&);
-    void uniform3fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&);
-    void uniform3i(const WebGLUniformLocation* location, GC3Dint x, GC3Dint y, GC3Dint z, ExceptionCode&);
-    void uniform3iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&);
-    void uniform3iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&);
-    void uniform4f(const WebGLUniformLocation* location, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z, GC3Dfloat w, ExceptionCode&);
-    void uniform4fv(const WebGLUniformLocation* location, Float32Array* v, ExceptionCode&);
-    void uniform4fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&);
-    void uniform4i(const WebGLUniformLocation* location, GC3Dint x, GC3Dint y, GC3Dint z, GC3Dint w, ExceptionCode&);
-    void uniform4iv(const WebGLUniformLocation* location, Int32Array* v, ExceptionCode&);
-    void uniform4iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&);
-    void uniformMatrix2fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value, ExceptionCode&);
-    void uniformMatrix2fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* value, GC3Dsizei size, ExceptionCode&);
-    void uniformMatrix3fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value, ExceptionCode&);
-    void uniformMatrix3fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* value, GC3Dsizei size, ExceptionCode&);
-    void uniformMatrix4fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value, ExceptionCode&);
-    void uniformMatrix4fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* value, GC3Dsizei size, ExceptionCode&);
+    void uniform1f(const WebGLUniformLocation*, GC3Dfloat x, ExceptionCode&);
+    void uniform1fv(const WebGLUniformLocation*, Float32Array& v, ExceptionCode&);
+    void uniform1fv(const WebGLUniformLocation*, GC3Dfloat* v, GC3Dsizei, ExceptionCode&);
+    void uniform1i(const WebGLUniformLocation*, GC3Dint x, ExceptionCode&);
+    void uniform1iv(const WebGLUniformLocation*, Int32Array& v, ExceptionCode&);
+    void uniform1iv(const WebGLUniformLocation*, GC3Dint* v, GC3Dsizei, ExceptionCode&);
+    void uniform2f(const WebGLUniformLocation*, GC3Dfloat x, GC3Dfloat y, ExceptionCode&);
+    void uniform2fv(const WebGLUniformLocation*, Float32Array& v, ExceptionCode&);
+    void uniform2fv(const WebGLUniformLocation*, GC3Dfloat* v, GC3Dsizei, ExceptionCode&);
+    void uniform2i(const WebGLUniformLocation*, GC3Dint x, GC3Dint y, ExceptionCode&);
+    void uniform2iv(const WebGLUniformLocation*, Int32Array& v, ExceptionCode&);
+    void uniform2iv(const WebGLUniformLocation*, GC3Dint* v, GC3Dsizei, ExceptionCode&);
+    void uniform3f(const WebGLUniformLocation*, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z, ExceptionCode&);
+    void uniform3fv(const WebGLUniformLocation*, Float32Array& v, ExceptionCode&);
+    void uniform3fv(const WebGLUniformLocation*, GC3Dfloat* v, GC3Dsizei, ExceptionCode&);
+    void uniform3i(const WebGLUniformLocation*, GC3Dint x, GC3Dint y, GC3Dint z, ExceptionCode&);
+    void uniform3iv(const WebGLUniformLocation*, Int32Array& v, ExceptionCode&);
+    void uniform3iv(const WebGLUniformLocation*, GC3Dint* v, GC3Dsizei, ExceptionCode&);
+    void uniform4f(const WebGLUniformLocation*, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z, GC3Dfloat w, ExceptionCode&);
+    void uniform4fv(const WebGLUniformLocation*, Float32Array& v, ExceptionCode&);
+    void uniform4fv(const WebGLUniformLocation*, GC3Dfloat* v, GC3Dsizei, ExceptionCode&);
+    void uniform4i(const WebGLUniformLocation*, GC3Dint x, GC3Dint y, GC3Dint z, GC3Dint w, ExceptionCode&);
+    void uniform4iv(const WebGLUniformLocation*, Int32Array& v, ExceptionCode&);
+    void uniform4iv(const WebGLUniformLocation*, GC3Dint* v, GC3Dsizei, ExceptionCode&);
+    void uniformMatrix2fv(const WebGLUniformLocation*, GC3Dboolean transpose, Float32Array& value, ExceptionCode&);
+    void uniformMatrix2fv(const WebGLUniformLocation*, GC3Dboolean transpose, GC3Dfloat* value, GC3Dsizei, ExceptionCode&);
+    void uniformMatrix3fv(const WebGLUniformLocation*, GC3Dboolean transpose, Float32Array& value, ExceptionCode&);
+    void uniformMatrix3fv(const WebGLUniformLocation*, GC3Dboolean transpose, GC3Dfloat* value, GC3Dsizei, ExceptionCode&);
+    void uniformMatrix4fv(const WebGLUniformLocation*, GC3Dboolean transpose, Float32Array& value, ExceptionCode&);
+    void uniformMatrix4fv(const WebGLUniformLocation*, GC3Dboolean transpose, GC3Dfloat* value, GC3Dsizei, ExceptionCode&);
 
     void useProgram(WebGLProgram*, ExceptionCode&);
     void validateProgram(WebGLProgram*, ExceptionCode&);
 
     void vertexAttrib1f(GC3Duint index, GC3Dfloat x);
 
     void useProgram(WebGLProgram*, ExceptionCode&);
     void validateProgram(WebGLProgram*, ExceptionCode&);
 
     void vertexAttrib1f(GC3Duint index, GC3Dfloat x);
-    void vertexAttrib1fv(GC3Duint index, Float32Array* values);
+    void vertexAttrib1fv(GC3Duint index, Float32Array& values);
     void vertexAttrib1fv(GC3Duint index, GC3Dfloat* values, GC3Dsizei size);
     void vertexAttrib2f(GC3Duint index, GC3Dfloat x, GC3Dfloat y);
     void vertexAttrib1fv(GC3Duint index, GC3Dfloat* values, GC3Dsizei size);
     void vertexAttrib2f(GC3Duint index, GC3Dfloat x, GC3Dfloat y);
-    void vertexAttrib2fv(GC3Duint index, Float32Array* values);
+    void vertexAttrib2fv(GC3Duint index, Float32Array& values);
     void vertexAttrib2fv(GC3Duint index, GC3Dfloat* values, GC3Dsizei size);
     void vertexAttrib3f(GC3Duint index, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z);
     void vertexAttrib2fv(GC3Duint index, GC3Dfloat* values, GC3Dsizei size);
     void vertexAttrib3f(GC3Duint index, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z);
-    void vertexAttrib3fv(GC3Duint index, Float32Array* values);
+    void vertexAttrib3fv(GC3Duint index, Float32Array& values);
     void vertexAttrib3fv(GC3Duint index, GC3Dfloat* values, GC3Dsizei size);
     void vertexAttrib4f(GC3Duint index, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z, GC3Dfloat w);
     void vertexAttrib3fv(GC3Duint index, GC3Dfloat* values, GC3Dsizei size);
     void vertexAttrib4f(GC3Duint index, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z, GC3Dfloat w);
-    void vertexAttrib4fv(GC3Duint index, Float32Array* values);
+    void vertexAttrib4fv(GC3Duint index, Float32Array& values);
     void vertexAttrib4fv(GC3Duint index, GC3Dfloat* values, GC3Dsizei size);
     void vertexAttribPointer(GC3Duint index, GC3Dint size, GC3Denum type, GC3Dboolean normalized,
                              GC3Dsizei stride, long long offset, ExceptionCode&);
     void vertexAttrib4fv(GC3Duint index, GC3Dfloat* values, GC3Dsizei size);
     void vertexAttribPointer(GC3Duint index, GC3Dint size, GC3Denum type, GC3Dboolean normalized,
                              GC3Dsizei stride, long long offset, ExceptionCode&);
@@ -362,7 +360,7 @@ public:
 
 protected:
     WebGLRenderingContextBase(HTMLCanvasElement*, GraphicsContext3D::Attributes);
 
 protected:
     WebGLRenderingContextBase(HTMLCanvasElement*, GraphicsContext3D::Attributes);
-    WebGLRenderingContextBase(HTMLCanvasElement*, PassRefPtr<GraphicsContext3D>, GraphicsContext3D::Attributes);
+    WebGLRenderingContextBase(HTMLCanvasElement*, RefPtr<GraphicsContext3D>&&, GraphicsContext3D::Attributes);
 
     friend class WebGLDrawBuffers;
     friend class WebGLFramebuffer;
 
     friend class WebGLDrawBuffers;
     friend class WebGLFramebuffer;
@@ -711,9 +709,7 @@ protected:
 
     // Helper function to validate compressed texture data is correct size
     // for the given format and dimensions.
 
     // Helper function to validate compressed texture data is correct size
     // for the given format and dimensions.
-    bool validateCompressedTexFuncData(const char* functionName,
-                                       GC3Dsizei width, GC3Dsizei height,
-                                       GC3Denum format, ArrayBufferView* pixels);
+    bool validateCompressedTexFuncData(const char* functionName, GC3Dsizei width, GC3Dsizei height, GC3Denum format, ArrayBufferView& pixels);
 
     // Helper function for validating compressed texture formats.
     bool validateCompressedTexFormat(GC3Denum format);
 
     // Helper function for validating compressed texture formats.
     bool validateCompressedTexFormat(GC3Denum format);
@@ -761,10 +757,10 @@ protected:
     virtual bool validateCapability(const char* functionName, GC3Denum) = 0;
 
     // Helper function to validate input parameters for uniform functions.
     virtual bool validateCapability(const char* functionName, GC3Denum) = 0;
 
     // Helper function to validate input parameters for uniform functions.
-    bool validateUniformParameters(const char* functionName, const WebGLUniformLocation*, Float32Array*, GC3Dsizei mod);
-    bool validateUniformParameters(const char* functionName, const WebGLUniformLocation*, Int32Array*, GC3Dsizei mod);
+    bool validateUniformParameters(const char* functionName, const WebGLUniformLocation*, Float32Array&, GC3Dsizei mod);
+    bool validateUniformParameters(const char* functionName, const WebGLUniformLocation*, Int32Array&, GC3Dsizei mod);
     bool validateUniformParameters(const char* functionName, const WebGLUniformLocation*, void*, GC3Dsizei, GC3Dsizei mod);
     bool validateUniformParameters(const char* functionName, const WebGLUniformLocation*, void*, GC3Dsizei, GC3Dsizei mod);
-    bool validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation*, GC3Dboolean transpose, Float32Array*, GC3Dsizei mod);
+    bool validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation*, GC3Dboolean transpose, Float32Array&, GC3Dsizei mod);
     bool validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation*, GC3Dboolean transpose, void*, GC3Dsizei, GC3Dsizei mod);
 
     // Helper function to validate parameters for bufferData.
     bool validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation*, GC3Dboolean transpose, void*, GC3Dsizei, GC3Dsizei mod);
 
     // Helper function to validate parameters for bufferData.
@@ -784,7 +780,7 @@ protected:
 
     // Helper functions for vertexAttribNf{v}.
     void vertexAttribfImpl(const char* functionName, GC3Duint index, GC3Dsizei expectedSize, GC3Dfloat, GC3Dfloat, GC3Dfloat, GC3Dfloat);
 
     // Helper functions for vertexAttribNf{v}.
     void vertexAttribfImpl(const char* functionName, GC3Duint index, GC3Dsizei expectedSize, GC3Dfloat, GC3Dfloat, GC3Dfloat, GC3Dfloat);
-    void vertexAttribfvImpl(const char* functionName, GC3Duint index, Float32Array*, GC3Dsizei expectedSize);
+    void vertexAttribfvImpl(const char* functionName, GC3Duint index, Float32Array&, GC3Dsizei expectedSize);
     void vertexAttribfvImpl(const char* functionName, GC3Duint index, GC3Dfloat*, GC3Dsizei, GC3Dsizei expectedSize);
 
     // Helper function for delete* (deleteBuffer, deleteProgram, etc) functions.
     void vertexAttribfvImpl(const char* functionName, GC3Duint index, GC3Dfloat*, GC3Dsizei, GC3Dsizei expectedSize);
 
     // Helper function for delete* (deleteBuffer, deleteProgram, etc) functions.
index d975274..47e8c12 100644 (file)
  */
 
 typedef unsigned long  GLenum;
  */
 
 typedef unsigned long  GLenum;
-typedef boolean        GLboolean;
+typedef boolean GLboolean;
 typedef unsigned long  GLbitfield;
 typedef unsigned long  GLbitfield;
-typedef byte           GLbyte;         /* 'byte' should be a signed 8 bit type. */
-typedef short          GLshort;
-typedef long           GLint;
-typedef long           GLsizei;
-typedef long long      GLintptr;
-typedef long long      GLsizeiptr;
-typedef octet          GLubyte;        /* 'octet' should be an unsigned 8 bit type. */
+typedef byte   GLbyte; /* 'byte' should be a signed 8 bit type. */
+typedef short  GLshort;
+typedef long   GLint;
+typedef long   GLsizei;
+typedef long long  GLintptr;
+typedef long long  GLsizeiptr;
+typedef octet  GLubyte; /* 'octet' should be an unsigned 8 bit type. */
 typedef unsigned short GLushort;
 typedef unsigned long  GLuint;
 typedef unrestricted float GLfloat;
 typedef unsigned short GLushort;
 typedef unsigned long  GLuint;
 typedef unrestricted float GLfloat;
@@ -46,460 +46,460 @@ NoInterfaceObject,
 ] interface WebGLRenderingContextBase : CanvasRenderingContext {
 
     /* ClearBufferMask */
 ] interface WebGLRenderingContextBase : CanvasRenderingContext {
 
     /* ClearBufferMask */
-    const GLenum DEPTH_BUFFER_BIT               = 0x00000100;
-    const GLenum STENCIL_BUFFER_BIT             = 0x00000400;
-    const GLenum COLOR_BUFFER_BIT               = 0x00004000;
+    const GLenum DEPTH_BUFFER_BIT = 0x00000100;
+    const GLenum STENCIL_BUFFER_BIT = 0x00000400;
+    const GLenum COLOR_BUFFER_BIT = 0x00004000;
 
     /* BeginMode */
 
     /* BeginMode */
-    const GLenum POINTS                         = 0x0000;
-    const GLenum LINES                          = 0x0001;
-    const GLenum LINE_LOOP                      = 0x0002;
-    const GLenum LINE_STRIP                     = 0x0003;
-    const GLenum TRIANGLES                      = 0x0004;
-    const GLenum TRIANGLE_STRIP                 = 0x0005;
-    const GLenum TRIANGLE_FAN                   = 0x0006;
+    const GLenum POINTS = 0x0000;
+    const GLenum LINES = 0x0001;
+    const GLenum LINE_LOOP = 0x0002;
+    const GLenum LINE_STRIP = 0x0003;
+    const GLenum TRIANGLES = 0x0004;
+    const GLenum TRIANGLE_STRIP = 0x0005;
+    const GLenum TRIANGLE_FAN = 0x0006;
 
     /* AlphaFunction (not supported in ES20) */
 
     /* AlphaFunction (not supported in ES20) */
-    /*      NEVER */
-    /*      LESS */
-    /*      EQUAL */
-    /*      LEQUAL */
-    /*      GREATER */
-    /*      NOTEQUAL */
-    /*      GEQUAL */
-    /*      ALWAYS */
+    /*  NEVER */
+    /*  LESS */
+    /*  EQUAL */
+    /*  LEQUAL */
+    /*  GREATER */
+    /*  NOTEQUAL */
+    /*  GEQUAL */
+    /*  ALWAYS */
 
     /* BlendingFactorDest */
 
     /* BlendingFactorDest */
-    const GLenum ZERO                           = 0;
-    const GLenum ONE                            = 1;
-    const GLenum SRC_COLOR                      = 0x0300;
-    const GLenum ONE_MINUS_SRC_COLOR            = 0x0301;
-    const GLenum SRC_ALPHA                      = 0x0302;
-    const GLenum ONE_MINUS_SRC_ALPHA            = 0x0303;
-    const GLenum DST_ALPHA                      = 0x0304;
-    const GLenum ONE_MINUS_DST_ALPHA            = 0x0305;
+    const GLenum ZERO = 0;
+    const GLenum ONE = 1;
+    const GLenum SRC_COLOR = 0x0300;
+    const GLenum ONE_MINUS_SRC_COLOR = 0x0301;
+    const GLenum SRC_ALPHA = 0x0302;
+    const GLenum ONE_MINUS_SRC_ALPHA = 0x0303;
+    const GLenum DST_ALPHA = 0x0304;
+    const GLenum ONE_MINUS_DST_ALPHA = 0x0305;
 
     /* BlendingFactorSrc */
 
     /* BlendingFactorSrc */
-    /*      ZERO */
-    /*      ONE */
-    const GLenum DST_COLOR                      = 0x0306;
-    const GLenum ONE_MINUS_DST_COLOR            = 0x0307;
-    const GLenum SRC_ALPHA_SATURATE             = 0x0308;
-    /*      SRC_ALPHA */
-    /*      ONE_MINUS_SRC_ALPHA */
-    /*      DST_ALPHA */
-    /*      ONE_MINUS_DST_ALPHA */
+    /*  ZERO */
+    /*  ONE */
+    const GLenum DST_COLOR = 0x0306;
+    const GLenum ONE_MINUS_DST_COLOR = 0x0307;
+    const GLenum SRC_ALPHA_SATURATE = 0x0308;
+    /*  SRC_ALPHA */
+    /*  ONE_MINUS_SRC_ALPHA */
+    /*  DST_ALPHA */
+    /*  ONE_MINUS_DST_ALPHA */
 
     /* BlendEquationSeparate */
 
     /* BlendEquationSeparate */
-    const GLenum FUNC_ADD                       = 0x8006;
-    const GLenum BLEND_EQUATION                 = 0x8009;
-    const GLenum BLEND_EQUATION_RGB             = 0x8009;   /* same as BLEND_EQUATION */
-    const GLenum BLEND_EQUATION_ALPHA           = 0x883D;
+    const GLenum FUNC_ADD = 0x8006;
+    const GLenum BLEND_EQUATION = 0x8009;
+    const GLenum BLEND_EQUATION_RGB = 0x8009;   /* same as BLEND_EQUATION */
+    const GLenum BLEND_EQUATION_ALPHA = 0x883D;
 
     /* BlendSubtract */
 
     /* BlendSubtract */
-    const GLenum FUNC_SUBTRACT                  = 0x800A;
-    const GLenum FUNC_REVERSE_SUBTRACT          = 0x800B;
+    const GLenum FUNC_SUBTRACT = 0x800A;
+    const GLenum FUNC_REVERSE_SUBTRACT = 0x800B;
 
     /* Separate Blend Functions */
 
     /* Separate Blend Functions */
-    const GLenum BLEND_DST_RGB                  = 0x80C8;
-    const GLenum BLEND_SRC_RGB                  = 0x80C9;
-    const GLenum BLEND_DST_ALPHA                = 0x80CA;
-    const GLenum BLEND_SRC_ALPHA                = 0x80CB;
-    const GLenum CONSTANT_COLOR                 = 0x8001;
-    const GLenum ONE_MINUS_CONSTANT_COLOR       = 0x8002;
-    const GLenum CONSTANT_ALPHA                 = 0x8003;
-    const GLenum ONE_MINUS_CONSTANT_ALPHA       = 0x8004;
-    const GLenum BLEND_COLOR                    = 0x8005;
+    const GLenum BLEND_DST_RGB = 0x80C8;
+    const GLenum BLEND_SRC_RGB = 0x80C9;
+    const GLenum BLEND_DST_ALPHA = 0x80CA;
+    const GLenum BLEND_SRC_ALPHA = 0x80CB;
+    const GLenum CONSTANT_COLOR = 0x8001;
+    const GLenum ONE_MINUS_CONSTANT_COLOR = 0x8002;
+    const GLenum CONSTANT_ALPHA = 0x8003;
+    const GLenum ONE_MINUS_CONSTANT_ALPHA = 0x8004;
+    const GLenum BLEND_COLOR = 0x8005;
 
     /* Buffer Objects */
 
     /* Buffer Objects */
-    const GLenum ARRAY_BUFFER                   = 0x8892;
-    const GLenum ELEMENT_ARRAY_BUFFER           = 0x8893;
-    const GLenum ARRAY_BUFFER_BINDING           = 0x8894;
-    const GLenum ELEMENT_ARRAY_BUFFER_BINDING   = 0x8895;
+    const GLenum ARRAY_BUFFER = 0x8892;
+    const GLenum ELEMENT_ARRAY_BUFFER = 0x8893;
+    const GLenum ARRAY_BUFFER_BINDING = 0x8894;
+    const GLenum ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
 
 
-    const GLenum STREAM_DRAW                    = 0x88E0;
-    const GLenum STATIC_DRAW                    = 0x88E4;
-    const GLenum DYNAMIC_DRAW                   = 0x88E8;
+    const GLenum STREAM_DRAW = 0x88E0;
+    const GLenum STATIC_DRAW = 0x88E4;
+    const GLenum DYNAMIC_DRAW = 0x88E8;
 
 
-    const GLenum BUFFER_SIZE                    = 0x8764;
-    const GLenum BUFFER_USAGE                   = 0x8765;
+    const GLenum BUFFER_SIZE = 0x8764;
+    const GLenum BUFFER_USAGE = 0x8765;
 
 
-    const GLenum CURRENT_VERTEX_ATTRIB          = 0x8626;
+    const GLenum CURRENT_VERTEX_ATTRIB = 0x8626;
 
     /* CullFaceMode */
 
     /* CullFaceMode */
-    const GLenum FRONT                          = 0x0404;
-    const GLenum BACK                           = 0x0405;
-    const GLenum FRONT_AND_BACK                 = 0x0408;
+    const GLenum FRONT = 0x0404;
+    const GLenum BACK = 0x0405;
+    const GLenum FRONT_AND_BACK = 0x0408;
 
     /* DepthFunction */
 
     /* DepthFunction */
-    /*      NEVER */
-    /*      LESS */
-    /*      EQUAL */
-    /*      LEQUAL */
-    /*      GREATER */
-    /*      NOTEQUAL */
-    /*      GEQUAL */
-    /*      ALWAYS */
+    /*  NEVER */
+    /*  LESS */
+    /*  EQUAL */
+    /*  LEQUAL */
+    /*  GREATER */
+    /*  NOTEQUAL */
+    /*  GEQUAL */
+    /*  ALWAYS */
 
     /* EnableCap */
 
     /* EnableCap */
-    const GLenum TEXTURE_2D                     = 0x0DE1;
-    const GLenum CULL_FACE                      = 0x0B44;
-    const GLenum BLEND                          = 0x0BE2;
-    const GLenum DITHER                         = 0x0BD0;
-    const GLenum STENCIL_TEST                   = 0x0B90;
-    const GLenum DEPTH_TEST                     = 0x0B71;
-    const GLenum SCISSOR_TEST                   = 0x0C11;
-    const GLenum POLYGON_OFFSET_FILL            = 0x8037;
-    const GLenum SAMPLE_ALPHA_TO_COVERAGE       = 0x809E;
-    const GLenum SAMPLE_COVERAGE                = 0x80A0;
+    const GLenum TEXTURE_2D = 0x0DE1;
+    const GLenum CULL_FACE = 0x0B44;
+    const GLenum BLEND = 0x0BE2;
+    const GLenum DITHER = 0x0BD0;
+    const GLenum STENCIL_TEST = 0x0B90;
+    const GLenum DEPTH_TEST = 0x0B71;
+    const GLenum SCISSOR_TEST = 0x0C11;
+    const GLenum POLYGON_OFFSET_FILL = 0x8037;
+    const GLenum SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
+    const GLenum SAMPLE_COVERAGE = 0x80A0;
 
     /* ErrorCode */
 
     /* ErrorCode */
-    const GLenum NO_ERROR                       = 0;
-    const GLenum INVALID_ENUM                   = 0x0500;
-    const GLenum INVALID_VALUE                  = 0x0501;
-    const GLenum INVALID_OPERATION              = 0x0502;
-    const GLenum OUT_OF_MEMORY                  = 0x0505;
+    const GLenum NO_ERROR = 0;
+    const GLenum INVALID_ENUM = 0x0500;
+    const GLenum INVALID_VALUE = 0x0501;
+    const GLenum INVALID_OPERATION = 0x0502;
+    const GLenum OUT_OF_MEMORY = 0x0505;
 
     /* FrontFaceDirection */
 
     /* FrontFaceDirection */
-    const GLenum CW                             = 0x0900;
-    const GLenum CCW                            = 0x0901;
+    const GLenum CW = 0x0900;
+    const GLenum CCW = 0x0901;
 
     /* GetPName */
 
     /* GetPName */
-    const GLenum LINE_WIDTH                     = 0x0B21;
-    const GLenum ALIASED_POINT_SIZE_RANGE       = 0x846D;
-    const GLenum ALIASED_LINE_WIDTH_RANGE       = 0x846E;
-    const GLenum CULL_FACE_MODE                 = 0x0B45;
-    const GLenum FRONT_FACE                     = 0x0B46;
-    const GLenum DEPTH_RANGE                    = 0x0B70;
-    const GLenum DEPTH_WRITEMASK                = 0x0B72;
-    const GLenum DEPTH_CLEAR_VALUE              = 0x0B73;
-    const GLenum DEPTH_FUNC                     = 0x0B74;
-    const GLenum STENCIL_CLEAR_VALUE            = 0x0B91;
-    const GLenum STENCIL_FUNC                   = 0x0B92;
-    const GLenum STENCIL_FAIL                   = 0x0B94;
-    const GLenum STENCIL_PASS_DEPTH_FAIL        = 0x0B95;
-    const GLenum STENCIL_PASS_DEPTH_PASS        = 0x0B96;
-    const GLenum STENCIL_REF                    = 0x0B97;
-    const GLenum STENCIL_VALUE_MASK             = 0x0B93;
-    const GLenum STENCIL_WRITEMASK              = 0x0B98;
-    const GLenum STENCIL_BACK_FUNC              = 0x8800;
-    const GLenum STENCIL_BACK_FAIL              = 0x8801;
-    const GLenum STENCIL_BACK_PASS_DEPTH_FAIL   = 0x8802;
-    const GLenum STENCIL_BACK_PASS_DEPTH_PASS   = 0x8803;
-    const GLenum STENCIL_BACK_REF               = 0x8CA3;
-    const GLenum STENCIL_BACK_VALUE_MASK        = 0x8CA4;
-    const GLenum STENCIL_BACK_WRITEMASK         = 0x8CA5;
-    const GLenum VIEWPORT                       = 0x0BA2;
-    const GLenum SCISSOR_BOX                    = 0x0C10;
-    /*      SCISSOR_TEST */
-    const GLenum COLOR_CLEAR_VALUE              = 0x0C22;
-    const GLenum COLOR_WRITEMASK                = 0x0C23;
-    const GLenum UNPACK_ALIGNMENT               = 0x0CF5;
-    const GLenum PACK_ALIGNMENT                 = 0x0D05;
-    const GLenum MAX_TEXTURE_SIZE               = 0x0D33;
-    const GLenum MAX_VIEWPORT_DIMS              = 0x0D3A;
-    const GLenum SUBPIXEL_BITS                  = 0x0D50;
-    const GLenum RED_BITS                       = 0x0D52;
-    const GLenum GREEN_BITS                     = 0x0D53;
-    const GLenum BLUE_BITS                      = 0x0D54;
-    const GLenum ALPHA_BITS                     = 0x0D55;
-    const GLenum DEPTH_BITS                     = 0x0D56;
-    const GLenum STENCIL_BITS                   = 0x0D57;
-    const GLenum POLYGON_OFFSET_UNITS           = 0x2A00;
-    /*      POLYGON_OFFSET_FILL */
-    const GLenum POLYGON_OFFSET_FACTOR          = 0x8038;
-    const GLenum TEXTURE_BINDING_2D             = 0x8069;
-    const GLenum SAMPLE_BUFFERS                 = 0x80A8;
-    const GLenum SAMPLES                        = 0x80A9;
-    const GLenum SAMPLE_COVERAGE_VALUE          = 0x80AA;
-    const GLenum SAMPLE_COVERAGE_INVERT         = 0x80AB;
+    const GLenum LINE_WIDTH = 0x0B21;
+    const GLenum ALIASED_POINT_SIZE_RANGE = 0x846D;
+    const GLenum ALIASED_LINE_WIDTH_RANGE = 0x846E;
+    const GLenum CULL_FACE_MODE = 0x0B45;
+    const GLenum FRONT_FACE = 0x0B46;
+    const GLenum DEPTH_RANGE = 0x0B70;
+    const GLenum DEPTH_WRITEMASK = 0x0B72;
+    const GLenum DEPTH_CLEAR_VALUE = 0x0B73;
+    const GLenum DEPTH_FUNC = 0x0B74;
+    const GLenum STENCIL_CLEAR_VALUE = 0x0B91;
+    const GLenum STENCIL_FUNC = 0x0B92;
+    const GLenum STENCIL_FAIL = 0x0B94;
+    const GLenum STENCIL_PASS_DEPTH_FAIL = 0x0B95;
+    const GLenum STENCIL_PASS_DEPTH_PASS = 0x0B96;
+    const GLenum STENCIL_REF = 0x0B97;
+    const GLenum STENCIL_VALUE_MASK = 0x0B93;
+    const GLenum STENCIL_WRITEMASK = 0x0B98;
+    const GLenum STENCIL_BACK_FUNC = 0x8800;
+    const GLenum STENCIL_BACK_FAIL = 0x8801;
+    const GLenum STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
+    const GLenum STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
+    const GLenum STENCIL_BACK_REF = 0x8CA3;
+    const GLenum STENCIL_BACK_VALUE_MASK = 0x8CA4;
+    const GLenum STENCIL_BACK_WRITEMASK = 0x8CA5;
+    const GLenum VIEWPORT = 0x0BA2;
+    const GLenum SCISSOR_BOX = 0x0C10;
+    /*  SCISSOR_TEST */
+    const GLenum COLOR_CLEAR_VALUE = 0x0C22;
+    const GLenum COLOR_WRITEMASK = 0x0C23;
+    const GLenum UNPACK_ALIGNMENT = 0x0CF5;
+    const GLenum PACK_ALIGNMENT = 0x0D05;
+    const GLenum MAX_TEXTURE_SIZE = 0x0D33;
+    const GLenum MAX_VIEWPORT_DIMS = 0x0D3A;
+    const GLenum SUBPIXEL_BITS = 0x0D50;
+    const GLenum RED_BITS = 0x0D52;
+    const GLenum GREEN_BITS = 0x0D53;
+    const GLenum BLUE_BITS = 0x0D54;
+    const GLenum ALPHA_BITS = 0x0D55;
+    const GLenum DEPTH_BITS = 0x0D56;
+    const GLenum STENCIL_BITS = 0x0D57;
+    const GLenum POLYGON_OFFSET_UNITS = 0x2A00;
+    /*  POLYGON_OFFSET_FILL */
+    const GLenum POLYGON_OFFSET_FACTOR = 0x8038;
+    const GLenum TEXTURE_BINDING_2D = 0x8069;
+    const GLenum SAMPLE_BUFFERS = 0x80A8;
+    const GLenum SAMPLES = 0x80A9;
+    const GLenum SAMPLE_COVERAGE_VALUE = 0x80AA;
+    const GLenum SAMPLE_COVERAGE_INVERT = 0x80AB;
 
     /* GetTextureParameter */
 
     /* GetTextureParameter */
-    /*      TEXTURE_MAG_FILTER */
-    /*      TEXTURE_MIN_FILTER */
-    /*      TEXTURE_WRAP_S */
-    /*      TEXTURE_WRAP_T */
+    /*  TEXTURE_MAG_FILTER */
+    /*  TEXTURE_MIN_FILTER */
+    /*  TEXTURE_WRAP_S */
+    /*  TEXTURE_WRAP_T */
 
 
-    const GLenum COMPRESSED_TEXTURE_FORMATS     = 0x86A3;
+    const GLenum COMPRESSED_TEXTURE_FORMATS = 0x86A3;
 
     /* HintMode */
 
     /* HintMode */
-    const GLenum DONT_CARE                      = 0x1100;
-    const GLenum FASTEST                        = 0x1101;
-    const GLenum NICEST                         = 0x1102;
+    const GLenum DONT_CARE = 0x1100;
+    const GLenum FASTEST = 0x1101;
+    const GLenum NICEST = 0x1102;
 
     /* HintTarget */
 
     /* HintTarget */
-    const GLenum GENERATE_MIPMAP_HINT            = 0x8192;
+    const GLenum GENERATE_MIPMAP_HINT = 0x8192;
 
     /* DataType */
 
     /* DataType */
-    const GLenum BYTE                           = 0x1400;
-    const GLenum UNSIGNED_BYTE                  = 0x1401;
-    const GLenum SHORT                          = 0x1402;
-    const GLenum UNSIGNED_SHORT                 = 0x1403;
-    const GLenum INT                            = 0x1404;
-    const GLenum UNSIGNED_INT                   = 0x1405;
-    const GLenum FLOAT                          = 0x1406;
+    const GLenum BYTE = 0x1400;
+    const GLenum UNSIGNED_BYTE = 0x1401;
+    const GLenum SHORT = 0x1402;
+    const GLenum UNSIGNED_SHORT = 0x1403;
+    const GLenum INT = 0x1404;
+    const GLenum UNSIGNED_INT = 0x1405;
+    const GLenum FLOAT = 0x1406;
 
     /* PixelFormat */
 
     /* PixelFormat */
-    const GLenum DEPTH_COMPONENT                = 0x1902;
-    const GLenum ALPHA                          = 0x1906;
-    const GLenum RGB                            = 0x1907;
-    const GLenum RGBA                           = 0x1908;
-    const GLenum LUMINANCE                      = 0x1909;
-    const GLenum LUMINANCE_ALPHA                = 0x190A;
+    const GLenum DEPTH_COMPONENT = 0x1902;
+    const GLenum ALPHA = 0x1906;
+    const GLenum RGB = 0x1907;
+    const GLenum RGBA = 0x1908;
+    const GLenum LUMINANCE = 0x1909;
+    const GLenum LUMINANCE_ALPHA = 0x190A;
 
     /* PixelType */
 
     /* PixelType */
-    /*      UNSIGNED_BYTE */
-    const GLenum UNSIGNED_SHORT_4_4_4_4         = 0x8033;
-    const GLenum UNSIGNED_SHORT_5_5_5_1         = 0x8034;
-    const GLenum UNSIGNED_SHORT_5_6_5           = 0x8363;
+    /*  UNSIGNED_BYTE */
+    const GLenum UNSIGNED_SHORT_4_4_4_4 = 0x8033;
+    const GLenum UNSIGNED_SHORT_5_5_5_1 = 0x8034;
+    const GLenum UNSIGNED_SHORT_5_6_5 = 0x8363;
 
     /* Shaders */
 
     /* Shaders */
-    const GLenum FRAGMENT_SHADER                  = 0x8B30;
-    const GLenum VERTEX_SHADER                    = 0x8B31;
-    const GLenum MAX_VERTEX_ATTRIBS               = 0x8869;
-    const GLenum MAX_VERTEX_UNIFORM_VECTORS       = 0x8DFB;
-    const GLenum MAX_VARYING_VECTORS              = 0x8DFC;
+    const GLenum FRAGMENT_SHADER = 0x8B30;
+    const GLenum VERTEX_SHADER = 0x8B31;
+    const GLenum MAX_VERTEX_ATTRIBS = 0x8869;
+    const GLenum MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;
+    const GLenum MAX_VARYING_VECTORS = 0x8DFC;
     const GLenum MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
     const GLenum MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
-    const GLenum MAX_VERTEX_TEXTURE_IMAGE_UNITS   = 0x8B4C;
-    const GLenum MAX_TEXTURE_IMAGE_UNITS          = 0x8872;
-    const GLenum MAX_FRAGMENT_UNIFORM_VECTORS     = 0x8DFD;
-    const GLenum SHADER_TYPE                      = 0x8B4F;
-    const GLenum DELETE_STATUS                    = 0x8B80;
-    const GLenum LINK_STATUS                      = 0x8B82;
-    const GLenum VALIDATE_STATUS                  = 0x8B83;
-    const GLenum ATTACHED_SHADERS                 = 0x8B85;
-    const GLenum ACTIVE_UNIFORMS                  = 0x8B86;
-    const GLenum ACTIVE_ATTRIBUTES                = 0x8B89;
-    const GLenum SHADING_LANGUAGE_VERSION         = 0x8B8C;
-    const GLenum CURRENT_PROGRAM                  = 0x8B8D;
+    const GLenum MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
+    const GLenum MAX_TEXTURE_IMAGE_UNITS = 0x8872;
+    const GLenum MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;
+    const GLenum SHADER_TYPE = 0x8B4F;
+    const GLenum DELETE_STATUS = 0x8B80;
+    const GLenum LINK_STATUS = 0x8B82;
+    const GLenum VALIDATE_STATUS = 0x8B83;
+    const GLenum ATTACHED_SHADERS = 0x8B85;
+    const GLenum ACTIVE_UNIFORMS = 0x8B86;
+    const GLenum ACTIVE_ATTRIBUTES = 0x8B89;
+    const GLenum SHADING_LANGUAGE_VERSION = 0x8B8C;
+    const GLenum CURRENT_PROGRAM = 0x8B8D;
 
     /* StencilFunction */
 
     /* StencilFunction */
-    const GLenum NEVER                          = 0x0200;
-    const GLenum LESS                           = 0x0201;
-    const GLenum EQUAL                          = 0x0202;
-    const GLenum LEQUAL                         = 0x0203;
-    const GLenum GREATER                        = 0x0204;
-    const GLenum NOTEQUAL                       = 0x0205;
-    const GLenum GEQUAL                         = 0x0206;
-    const GLenum ALWAYS                         = 0x0207;
+    const GLenum NEVER = 0x0200;
+    const GLenum LESS = 0x0201;
+    const GLenum EQUAL = 0x0202;
+    const GLenum LEQUAL = 0x0203;
+    const GLenum GREATER = 0x0204;
+    const GLenum NOTEQUAL = 0x0205;
+    const GLenum GEQUAL = 0x0206;
+    const GLenum ALWAYS = 0x0207;
 
     /* StencilOp */
 
     /* StencilOp */
-    /*      ZERO */
-    const GLenum KEEP                           = 0x1E00;
-    const GLenum REPLACE                        = 0x1E01;
-    const GLenum INCR                           = 0x1E02;
-    const GLenum DECR                           = 0x1E03;
-    const GLenum INVERT                         = 0x150A;
-    const GLenum INCR_WRAP                      = 0x8507;
-    const GLenum DECR_WRAP                      = 0x8508;
+    /*  ZERO */
+    const GLenum KEEP = 0x1E00;
+    const GLenum REPLACE = 0x1E01;
+    const GLenum INCR = 0x1E02;
+    const GLenum DECR = 0x1E03;
+    const GLenum INVERT = 0x150A;
+    const GLenum INCR_WRAP = 0x8507;
+    const GLenum DECR_WRAP = 0x8508;
 
     /* StringName */
 
     /* StringName */
-    const GLenum VENDOR                         = 0x1F00;
-    const GLenum RENDERER                       = 0x1F01;
-    const GLenum VERSION                        = 0x1F02;
+    const GLenum VENDOR = 0x1F00;
+    const GLenum RENDERER = 0x1F01;
+    const GLenum VERSION = 0x1F02;
 
     /* TextureMagFilter */
 
     /* TextureMagFilter */
-    const GLenum NEAREST                        = 0x2600;
-    const GLenum LINEAR                         = 0x2601;
+    const GLenum NEAREST = 0x2600;
+    const GLenum LINEAR = 0x2601;
 
     /* TextureMinFilter */
 
     /* TextureMinFilter */
-    /*      NEAREST */
-    /*      LINEAR */
-    const GLenum NEAREST_MIPMAP_NEAREST         = 0x2700;
-    const GLenum LINEAR_MIPMAP_NEAREST          = 0x2701;
-    const GLenum NEAREST_MIPMAP_LINEAR          = 0x2702;
-    const GLenum LINEAR_MIPMAP_LINEAR           = 0x2703;
+    /*  NEAREST */
+    /*  LINEAR */
+    const GLenum NEAREST_MIPMAP_NEAREST = 0x2700;
+    const GLenum LINEAR_MIPMAP_NEAREST = 0x2701;
+    const GLenum NEAREST_MIPMAP_LINEAR = 0x2702;
+    const GLenum LINEAR_MIPMAP_LINEAR = 0x2703;
 
     /* TextureParameterName */
 
     /* TextureParameterName */
-    const GLenum TEXTURE_MAG_FILTER             = 0x2800;
-    const GLenum TEXTURE_MIN_FILTER             = 0x2801;
-    const GLenum TEXTURE_WRAP_S                 = 0x2802;
-    const GLenum TEXTURE_WRAP_T                 = 0x2803;
+    const GLenum TEXTURE_MAG_FILTER = 0x2800;
+    const GLenum TEXTURE_MIN_FILTER = 0x2801;
+    const GLenum TEXTURE_WRAP_S = 0x2802;
+    const GLenum TEXTURE_WRAP_T = 0x2803;
 
     /* TextureTarget */
 
     /* TextureTarget */
-    /*      TEXTURE_2D */
-    const GLenum TEXTURE                        = 0x1702;
-
-    const GLenum TEXTURE_CUBE_MAP               = 0x8513;
-    const GLenum TEXTURE_BINDING_CUBE_MAP       = 0x8514;
-    const GLenum TEXTURE_CUBE_MAP_POSITIVE_X    = 0x8515;
-    const GLenum TEXTURE_CUBE_MAP_NEGATIVE_X    = 0x8516;
-    const GLenum TEXTURE_CUBE_MAP_POSITIVE_Y    = 0x8517;
-    const GLenum TEXTURE_CUBE_MAP_NEGATIVE_Y    = 0x8518;
-    const GLenum TEXTURE_CUBE_MAP_POSITIVE_Z    = 0x8519;
-    const GLenum TEXTURE_CUBE_MAP_NEGATIVE_Z    = 0x851A;
-    const GLenum MAX_CUBE_MAP_TEXTURE_SIZE      = 0x851C;
+    /*  TEXTURE_2D */
+    const GLenum TEXTURE = 0x1702;
+
+    const GLenum TEXTURE_CUBE_MAP = 0x8513;
+    const GLenum TEXTURE_BINDING_CUBE_MAP = 0x8514;
+    const GLenum TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
+    const GLenum TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
+    const GLenum TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
+    const GLenum TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
+    const GLenum TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
+    const GLenum TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
+    const GLenum MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
 
     /* TextureUnit */
 
     /* TextureUnit */
-    const GLenum TEXTURE0                       = 0x84C0;
-    const GLenum TEXTURE1                       = 0x84C1;
-    const GLenum TEXTURE2                       = 0x84C2;
-    const GLenum TEXTURE3                       = 0x84C3;
-    const GLenum TEXTURE4                       = 0x84C4;
-    const GLenum TEXTURE5                       = 0x84C5;
-    const GLenum TEXTURE6                       = 0x84C6;
-    const GLenum TEXTURE7                       = 0x84C7;
-    const GLenum TEXTURE8                       = 0x84C8;
-    const GLenum TEXTURE9                       = 0x84C9;
-    const GLenum TEXTURE10                      = 0x84CA;
-    const GLenum TEXTURE11                      = 0x84CB;
-    const GLenum TEXTURE12                      = 0x84CC;
-    const GLenum TEXTURE13                      = 0x84CD;
-    const GLenum TEXTURE14                      = 0x84CE;
-    const GLenum TEXTURE15                      = 0x84CF;
-    const GLenum TEXTURE16                      = 0x84D0;
-    const GLenum TEXTURE17                      = 0x84D1;
-    const GLenum TEXTURE18                      = 0x84D2;
-    const GLenum TEXTURE19                      = 0x84D3;
-    const GLenum TEXTURE20                      = 0x84D4;
-    const GLenum TEXTURE21                      = 0x84D5;
-    const GLenum TEXTURE22                      = 0x84D6;
-    const GLenum TEXTURE23                      = 0x84D7;
-    const GLenum TEXTURE24                      = 0x84D8;
-    const GLenum TEXTURE25                      = 0x84D9;
-    const GLenum TEXTURE26                      = 0x84DA;
-    const GLenum TEXTURE27                      = 0x84DB;
-    const GLenum TEXTURE28                      = 0x84DC;
-    const GLenum TEXTURE29                      = 0x84DD;
-    const GLenum TEXTURE30                      = 0x84DE;
-    const GLenum TEXTURE31                      = 0x84DF;
-    const GLenum ACTIVE_TEXTURE                 = 0x84E0;
+    const GLenum TEXTURE0 = 0x84C0;
+    const GLenum TEXTURE1 = 0x84C1;
+    const GLenum TEXTURE2 = 0x84C2;
+    const GLenum TEXTURE3 = 0x84C3;
+    const GLenum TEXTURE4 = 0x84C4;
+    const GLenum TEXTURE5 = 0x84C5;
+    const GLenum TEXTURE6 = 0x84C6;
+    const GLenum TEXTURE7 = 0x84C7;
+    const GLenum TEXTURE8 = 0x84C8;
+    const GLenum TEXTURE9 = 0x84C9;
+    const GLenum TEXTURE10 = 0x84CA;
+    const GLenum TEXTURE11 = 0x84CB;
+    const GLenum TEXTURE12 = 0x84CC;
+    const GLenum TEXTURE13 = 0x84CD;
+    const GLenum TEXTURE14 = 0x84CE;
+    const GLenum TEXTURE15 = 0x84CF;
+    const GLenum TEXTURE16 = 0x84D0;
+    const GLenum TEXTURE17 = 0x84D1;
+    const GLenum TEXTURE18 = 0x84D2;
+    const GLenum TEXTURE19 = 0x84D3;
+    const GLenum TEXTURE20 = 0x84D4;
+    const GLenum TEXTURE21 = 0x84D5;
+    const GLenum TEXTURE22 = 0x84D6;
+    const GLenum TEXTURE23 = 0x84D7;
+    const GLenum TEXTURE24 = 0x84D8;
+    const GLenum TEXTURE25 = 0x84D9;
+    const GLenum TEXTURE26 = 0x84DA;
+    const GLenum TEXTURE27 = 0x84DB;
+    const GLenum TEXTURE28 = 0x84DC;
+    const GLenum TEXTURE29 = 0x84DD;
+    const GLenum TEXTURE30 = 0x84DE;
+    const GLenum TEXTURE31 = 0x84DF;
+    const GLenum ACTIVE_TEXTURE = 0x84E0;
 
     /* TextureWrapMode */
 
     /* TextureWrapMode */
-    const GLenum REPEAT                         = 0x2901;
-    const GLenum CLAMP_TO_EDGE                  = 0x812F;
-    const GLenum MIRRORED_REPEAT                = 0x8370;
+    const GLenum REPEAT = 0x2901;
+    const GLenum CLAMP_TO_EDGE = 0x812F;
+    const GLenum MIRRORED_REPEAT = 0x8370;
 
     /* Uniform Types */
 
     /* Uniform Types */
-    const GLenum FLOAT_VEC2                     = 0x8B50;
-    const GLenum FLOAT_VEC3                     = 0x8B51;
-    const GLenum FLOAT_VEC4                     = 0x8B52;
-    const GLenum INT_VEC2                       = 0x8B53;
-    const GLenum INT_VEC3                       = 0x8B54;
-    const GLenum INT_VEC4                       = 0x8B55;
-    const GLenum BOOL                           = 0x8B56;
-    const GLenum BOOL_VEC2                      = 0x8B57;
-    const GLenum BOOL_VEC3                      = 0x8B58;
-    const GLenum BOOL_VEC4                      = 0x8B59;
-    const GLenum FLOAT_MAT2                     = 0x8B5A;
-    const GLenum FLOAT_MAT3                     = 0x8B5B;
-    const GLenum FLOAT_MAT4                     = 0x8B5C;
-    const GLenum SAMPLER_2D                     = 0x8B5E;
-    const GLenum SAMPLER_CUBE                   = 0x8B60;
+    const GLenum FLOAT_VEC2 = 0x8B50;
+    const GLenum FLOAT_VEC3 = 0x8B51;
+    const GLenum FLOAT_VEC4 = 0x8B52;
+    const GLenum INT_VEC2 = 0x8B53;
+    const GLenum INT_VEC3 = 0x8B54;
+    const GLenum INT_VEC4 = 0x8B55;
+    const GLenum BOOL = 0x8B56;
+    const GLenum BOOL_VEC2 = 0x8B57;
+    const GLenum BOOL_VEC3 = 0x8B58;
+    const GLenum BOOL_VEC4 = 0x8B59;
+    const GLenum FLOAT_MAT2 = 0x8B5A;
+    const GLenum FLOAT_MAT3 = 0x8B5B;
+    const GLenum FLOAT_MAT4 = 0x8B5C;
+    const GLenum SAMPLER_2D = 0x8B5E;
+    const GLenum SAMPLER_CUBE = 0x8B60;
 
     /* Vertex Arrays */
 
     /* Vertex Arrays */
-    const GLenum VERTEX_ATTRIB_ARRAY_ENABLED        = 0x8622;
-    const GLenum VERTEX_ATTRIB_ARRAY_SIZE           = 0x8623;
-    const GLenum VERTEX_ATTRIB_ARRAY_STRIDE         = 0x8624;
-    const GLenum VERTEX_ATTRIB_ARRAY_TYPE           = 0x8625;
-    const GLenum VERTEX_ATTRIB_ARRAY_NORMALIZED     = 0x886A;
-    const GLenum VERTEX_ATTRIB_ARRAY_POINTER        = 0x8645;
+    const GLenum VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
+    const GLenum VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
+    const GLenum VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
+    const GLenum VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
+    const GLenum VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
+    const GLenum VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
     const GLenum VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
 
     /* Read Format */
     const GLenum VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
 
     /* Read Format */
-    const GLenum IMPLEMENTATION_COLOR_READ_TYPE     = 0x8B9A;
-    const GLenum IMPLEMENTATION_COLOR_READ_FORMAT   = 0x8B9B;
+    const GLenum IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A;
+    const GLenum IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;
 
     /* Shader Source */
 
     /* Shader Source */
-    const GLenum COMPILE_STATUS                 = 0x8B81;
+    const GLenum COMPILE_STATUS = 0x8B81;
 
     /* Shader Precision-Specified Types */
 
     /* Shader Precision-Specified Types */
-    const GLenum LOW_FLOAT                      = 0x8DF0;
-    const GLenum MEDIUM_FLOAT                   = 0x8DF1;
-    const GLenum HIGH_FLOAT                     = 0x8DF2;
-    const GLenum LOW_INT                        = 0x8DF3;
-    const GLenum MEDIUM_INT                     = 0x8DF4;
-    const GLenum HIGH_INT                       = 0x8DF5;
+    const GLenum LOW_FLOAT = 0x8DF0;
+    const GLenum MEDIUM_FLOAT = 0x8DF1;
+    const GLenum HIGH_FLOAT = 0x8DF2;
+    const GLenum LOW_INT = 0x8DF3;
+    const GLenum MEDIUM_INT = 0x8DF4;
+    const GLenum HIGH_INT = 0x8DF5;
 
     /* Framebuffer Object. */
 
     /* Framebuffer Object. */
-    const GLenum FRAMEBUFFER                    = 0x8D40;
-    const GLenum RENDERBUFFER                   = 0x8D41;
-
-    const GLenum RGBA4                          = 0x8056;
-    const GLenum RGB5_A1                        = 0x8057;
-    const GLenum RGB565                         = 0x8D62;
-    const GLenum DEPTH_COMPONENT16              = 0x81A5;
-    const GLenum STENCIL_INDEX                  = 0x1901;
-    const GLenum STENCIL_INDEX8                 = 0x8D48;
-    const GLenum DEPTH_STENCIL                  = 0x84F9;
-
-    const GLenum RENDERBUFFER_WIDTH             = 0x8D42;
-    const GLenum RENDERBUFFER_HEIGHT            = 0x8D43;
-    const GLenum RENDERBUFFER_INTERNAL_FORMAT   = 0x8D44;
-    const GLenum RENDERBUFFER_RED_SIZE          = 0x8D50;
-    const GLenum RENDERBUFFER_GREEN_SIZE        = 0x8D51;
-    const GLenum RENDERBUFFER_BLUE_SIZE         = 0x8D52;
-    const GLenum RENDERBUFFER_ALPHA_SIZE        = 0x8D53;
-    const GLenum RENDERBUFFER_DEPTH_SIZE        = 0x8D54;
-    const GLenum RENDERBUFFER_STENCIL_SIZE      = 0x8D55;
-
-    const GLenum FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE           = 0x8CD0;
-    const GLenum FRAMEBUFFER_ATTACHMENT_OBJECT_NAME           = 0x8CD1;
-    const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL         = 0x8CD2;
+    const GLenum FRAMEBUFFER = 0x8D40;
+    const GLenum RENDERBUFFER = 0x8D41;
+
+    const GLenum RGBA4 = 0x8056;
+    const GLenum RGB5_A1 = 0x8057;
+    const GLenum RGB565 = 0x8D62;
+    const GLenum DEPTH_COMPONENT16 = 0x81A5;
+    const GLenum STENCIL_INDEX = 0x1901;
+    const GLenum STENCIL_INDEX8 = 0x8D48;
+    const GLenum DEPTH_STENCIL = 0x84F9;
+
+    const GLenum RENDERBUFFER_WIDTH = 0x8D42;
+    const GLenum RENDERBUFFER_HEIGHT = 0x8D43;
+    const GLenum RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
+    const GLenum RENDERBUFFER_RED_SIZE = 0x8D50;
+    const GLenum RENDERBUFFER_GREEN_SIZE = 0x8D51;
+    const GLenum RENDERBUFFER_BLUE_SIZE = 0x8D52;
+    const GLenum RENDERBUFFER_ALPHA_SIZE = 0x8D53;
+    const GLenum RENDERBUFFER_DEPTH_SIZE = 0x8D54;
+    const GLenum RENDERBUFFER_STENCIL_SIZE = 0x8D55;
+
+    const GLenum FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
+    const GLenum FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
+    const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
     const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
 
     const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
 
-    const GLenum COLOR_ATTACHMENT0              = 0x8CE0;
-    const GLenum DEPTH_ATTACHMENT               = 0x8D00;
-    const GLenum STENCIL_ATTACHMENT             = 0x8D20;
-    const GLenum DEPTH_STENCIL_ATTACHMENT       = 0x821A;
+    const GLenum COLOR_ATTACHMENT0 = 0x8CE0;
+    const GLenum DEPTH_ATTACHMENT = 0x8D00;
+    const GLenum STENCIL_ATTACHMENT = 0x8D20;
+    const GLenum DEPTH_STENCIL_ATTACHMENT = 0x821A;
 
 
-    const GLenum NONE                           = 0;
+    const GLenum NONE = 0;
 
 
-    const GLenum FRAMEBUFFER_COMPLETE                      = 0x8CD5;
-    const GLenum FRAMEBUFFER_INCOMPLETE_ATTACHMENT         = 0x8CD6;
+    const GLenum FRAMEBUFFER_COMPLETE = 0x8CD5;
+    const GLenum FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
     const GLenum FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
     const GLenum FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
-    const GLenum FRAMEBUFFER_INCOMPLETE_DIMENSIONS         = 0x8CD9;
-    const GLenum FRAMEBUFFER_UNSUPPORTED                   = 0x8CDD;
+    const GLenum FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;
+    const GLenum FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
 
 
-    const GLenum FRAMEBUFFER_BINDING            = 0x8CA6;
-    const GLenum RENDERBUFFER_BINDING           = 0x8CA7;
-    const GLenum MAX_RENDERBUFFER_SIZE          = 0x84E8;
+    const GLenum FRAMEBUFFER_BINDING = 0x8CA6;
+    const GLenum RENDERBUFFER_BINDING = 0x8CA7;
+    const GLenum MAX_RENDERBUFFER_SIZE = 0x84E8;
 
 
-    const GLenum INVALID_FRAMEBUFFER_OPERATION  = 0x0506;
+    const GLenum INVALID_FRAMEBUFFER_OPERATION = 0x0506;
 
     /* WebGL-specific enums */
 
     /* WebGL-specific enums */
-    const GLenum UNPACK_FLIP_Y_WEBGL                = 0x9240;
-    const GLenum UNPACK_PREMULTIPLY_ALPHA_WEBGL     = 0x9241;
-    const GLenum CONTEXT_LOST_WEBGL                 = 0x9242;
+    const GLenum UNPACK_FLIP_Y_WEBGL = 0x9240;
+    const GLenum UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
+    const GLenum CONTEXT_LOST_WEBGL = 0x9242;
     const GLenum UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
     const GLenum UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
-    const GLenum BROWSER_DEFAULT_WEBGL              = 0x9244;
+    const GLenum BROWSER_DEFAULT_WEBGL = 0x9244;
 
     readonly attribute GLsizei drawingBufferWidth;
     readonly attribute GLsizei drawingBufferHeight;
 
 
     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,
-                                                           GLsizei width, GLsizei height, GLint border, ArrayBufferView data);
-    [StrictTypeChecking] void         compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
-                                                              GLsizei width, GLsizei height, GLenum format, ArrayBufferView data);
+    [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,
+    GLsizei width, GLsizei height, GLint border, ArrayBufferView data);
+    [StrictTypeChecking] 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] 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] WebGLBuffer createBuffer();
     [StrictTypeChecking] WebGLFramebuffer createFramebuffer();
@@ -508,39 +508,39 @@ NoInterfaceObject,
     [StrictTypeChecking, RaisesException] WebGLShader createShader(GLenum type);
     [StrictTypeChecking] WebGLTexture createTexture();
 
     [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);
+    [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);
     
     [StrictTypeChecking, RaisesException] WebGLActiveInfo getActiveAttrib(WebGLProgram? program, GLuint index);
     [StrictTypeChecking, RaisesException] WebGLActiveInfo getActiveUniform(WebGLProgram? program, GLuint index);
 
     [StrictTypeChecking, Custom, RaisesException] void getAttachedShaders(WebGLProgram? program);
 
     
     [StrictTypeChecking, RaisesException] WebGLActiveInfo getActiveAttrib(WebGLProgram? program, GLuint index);
     [StrictTypeChecking, RaisesException] WebGLActiveInfo getActiveUniform(WebGLProgram? program, GLuint index);
 
     [StrictTypeChecking, Custom, RaisesException] void getAttachedShaders(WebGLProgram? program);
 
-    [StrictTypeChecking] GLint        getAttribLocation(WebGLProgram? program, DOMString name);
+    [StrictTypeChecking] GLint getAttribLocation(WebGLProgram? program, DOMString name);
 
     [StrictTypeChecking, Custom] any getBufferParameter(GLenum target, GLenum pname);
 
 
     [StrictTypeChecking, Custom] any getBufferParameter(GLenum target, GLenum pname);
 
@@ -558,11 +558,11 @@ NoInterfaceObject,
     [StrictTypeChecking, Custom, RaisesException] any getRenderbufferParameter(GLenum target, GLenum pname);
     [StrictTypeChecking, Custom, RaisesException] any getShaderParameter(WebGLShader? shader, GLenum pname);
 
     [StrictTypeChecking, Custom, RaisesException] any getRenderbufferParameter(GLenum target, GLenum pname);
     [StrictTypeChecking, Custom, RaisesException] any getShaderParameter(WebGLShader? shader, GLenum pname);
 
-    [StrictTypeChecking, RaisesException] DOMString?    getShaderInfoLog(WebGLShader? shader);
+    [StrictTypeChecking, RaisesException] DOMString? getShaderInfoLog(WebGLShader? shader);
 
     [StrictTypeChecking, RaisesException] WebGLShaderPrecisionFormat getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);
 
 
     [StrictTypeChecking, RaisesException] WebGLShaderPrecisionFormat getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);
 
-    [StrictTypeChecking, RaisesException] DOMString?    getShaderSource(WebGLShader? shader);
+    [StrictTypeChecking, RaisesException] DOMString? getShaderSource(WebGLShader? shader);
 
     [StrictTypeChecking, Custom] sequence<DOMString> getSupportedExtensions();
 
 
     [StrictTypeChecking, Custom] sequence<DOMString> getSupportedExtensions();
 
@@ -576,63 +576,63 @@ NoInterfaceObject,
 
     [StrictTypeChecking] GLsizeiptr getVertexAttribOffset(GLuint index, GLenum pname);
 
 
     [StrictTypeChecking] 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);
-
-    [StrictTypeChecking, RaisesException] void         readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, ArrayBufferView pixels);
+    [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);
+
+    [StrictTypeChecking, 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);
+    [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);
 
     // Supported forms:
 
     // Supported forms:
-    [StrictTypeChecking, 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,
-                                                 GLenum format, GLenum type, ImageData? pixels);
-    [StrictTypeChecking, 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,
-                                                 GLenum format, GLenum type, HTMLCanvasElement? canvas);
+    [StrictTypeChecking, 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,
+  GLenum format, GLenum type, ImageData? pixels);
+    [StrictTypeChecking, 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,
+  GLenum format, GLenum type, HTMLCanvasElement? canvas);
 #if defined(ENABLE_VIDEO) && ENABLE_VIDEO
 #if defined(ENABLE_VIDEO) && ENABLE_VIDEO
-    [StrictTypeChecking, RaisesException] void         texImage2D(GLenum target, GLint level, GLenum internalformat,
-                                                 GLenum format, GLenum type, HTMLVideoElement? video);
+    [StrictTypeChecking, RaisesException] void texImage2D(GLenum target, GLint level, GLenum internalformat,
+  GLenum format, GLenum type, HTMLVideoElement? video);
 #endif
 
 #endif
 
-    [StrictTypeChecking, 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,
                                                   GLenum format, GLenum type, ImageData? pixels);
-    [StrictTypeChecking, 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,
                                                   GLenum format, GLenum type, HTMLCanvasElement? canvas);
+    [StrictTypeChecking, 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,
+ GLenum format, GLenum type, ImageData? pixels);
+    [StrictTypeChecking, 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,
+ GLenum format, GLenum type, HTMLCanvasElement? canvas);
 #if defined(ENABLE_VIDEO) && ENABLE_VIDEO
 #if defined(ENABLE_VIDEO) && ENABLE_VIDEO
-    [StrictTypeChecking, RaisesException] void         texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
                                                   GLenum format, GLenum type, HTMLVideoElement? video);
+    [StrictTypeChecking, 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);
 #endif
 
     [StrictTypeChecking, RaisesException] void uniform1f(WebGLUniformLocation? location, GLfloat x);
@@ -656,19 +656,18 @@ NoInterfaceObject,
     [StrictTypeChecking, Custom, RaisesException] void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, Float32Array array);
     [StrictTypeChecking, Custom, RaisesException] void uniformMatrix4fv(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, RaisesException] void useProgram(WebGLProgram? program);
+    [StrictTypeChecking, RaisesException] void validateProgram(WebGLProgram? program);
 
 
-    [StrictTypeChecking] void         vertexAttrib1f(GLuint indx, GLfloat x);
+    [StrictTypeChecking] void vertexAttrib1f(GLuint indx, GLfloat x);
     [StrictTypeChecking, Custom] void vertexAttrib1fv(GLuint indx, Float32Array values);
     [StrictTypeChecking, Custom] void vertexAttrib1fv(GLuint indx, Float32Array values);
-    [StrictTypeChecking] void         vertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
+    [StrictTypeChecking] void vertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
     [StrictTypeChecking, Custom] void vertexAttrib2fv(GLuint indx, Float32Array values);
     [StrictTypeChecking, Custom] void vertexAttrib2fv(GLuint indx, Float32Array values);
-    [StrictTypeChecking] void         vertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
+    [StrictTypeChecking] void vertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
     [StrictTypeChecking, Custom] void vertexAttrib3fv(GLuint indx, Float32Array values);
     [StrictTypeChecking, Custom] void vertexAttrib3fv(GLuint indx, Float32Array values);
-    [StrictTypeChecking] void         vertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+    [StrictTypeChecking] void vertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
     [StrictTypeChecking, Custom] void vertexAttrib4fv(GLuint indx, Float32Array values);
     [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, 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);
+    [StrictTypeChecking] void viewport(GLint x, GLint y, GLsizei width, GLsizei height);
 };
 };
index 9880425..6e0d655 100644 (file)
@@ -2687,15 +2687,14 @@ void Internals::setCaptionDisplayMode(const String& mode, ExceptionCode& ec)
 }
 
 #if ENABLE(VIDEO)
 }
 
 #if ENABLE(VIDEO)
-Ref<TimeRanges> Internals::createTimeRanges(Float32Array* startTimes, Float32Array* endTimes)
+Ref<TimeRanges> Internals::createTimeRanges(Float32Array& startTimes, Float32Array& endTimes)
 {
 {
-    ASSERT(startTimes && endTimes);
-    ASSERT(startTimes->length() == endTimes->length());
+    ASSERT(startTimes.length() == endTimes.length());
     Ref<TimeRanges> ranges = TimeRanges::create();
 
     Ref<TimeRanges> ranges = TimeRanges::create();
 
-    unsigned count = std::min(startTimes->length(), endTimes->length());
+    unsigned count = std::min(startTimes.length(), endTimes.length());
     for (unsigned i = 0; i < count; ++i)
     for (unsigned i = 0; i < count; ++i)
-        ranges->add(startTimes->item(i), endTimes->item(i));
+        ranges->add(startTimes.item(i), endTimes.item(i));
     return ranges;
 }
 
     return ranges;
 }
 
index 1bde767..32673ce 100644 (file)
@@ -385,7 +385,7 @@ public:
     void setCaptionDisplayMode(const String&, ExceptionCode&);
 
 #if ENABLE(VIDEO)
     void setCaptionDisplayMode(const String&, ExceptionCode&);
 
 #if ENABLE(VIDEO)
-    Ref<TimeRanges> createTimeRanges(Float32Array* startTimes, Float32Array* endTimes);
+    Ref<TimeRanges> createTimeRanges(Float32Array& startTimes, Float32Array& endTimes);
     double closestTimeToTimeRanges(double time, TimeRanges&);
 #endif
 
     double closestTimeToTimeRanges(double time, TimeRanges&);
 #endif