test262: DataView get methods should allow for missing offset, set methods should...
authorjoepeck@webkit.org <joepeck@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 12 Nov 2016 03:10:31 +0000 (03:10 +0000)
committerjoepeck@webkit.org <joepeck@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 12 Nov 2016 03:10:31 +0000 (03:10 +0000)
https://bugs.webkit.org/show_bug.cgi?id=164451

Reviewed by Darin Adler.

JSTests:

* test262.yaml:

Source/JavaScriptCore:

* runtime/JSDataViewPrototype.cpp:
(JSC::getData):
Missing offset is still valid and will be coerced to 0.

(JSC::setData):
Missing value is still valid and will be coerced to 0.

LayoutTests:

* fast/canvas/webgl/data-view-test-expected.txt:
* fast/canvas/webgl/data-view-test.html:
Create a DataView large enough so that the get/set operations don't fail
due to out of bounds access, and assert that they do not throw, because
the undefined offset and value parameters get converted to 0.

* webgl/1.0.2/conformance/typedarrays/data-view-test-expected.txt:
This test is wrong. Leave the test alone but update our copy.

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

JSTests/ChangeLog
JSTests/test262.yaml
LayoutTests/ChangeLog
LayoutTests/fast/canvas/webgl/data-view-test-expected.txt
LayoutTests/fast/canvas/webgl/data-view-test.html
LayoutTests/webgl/1.0.2/conformance/typedarrays/data-view-test-expected.txt
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/JSDataViewPrototype.cpp

index a20b84b..24ff494 100644 (file)
@@ -1,3 +1,12 @@
+2016-11-11  Joseph Pecoraro  <pecoraro@apple.com>
+
+        test262: DataView get methods should allow for missing offset, set methods should allow for missing value
+        https://bugs.webkit.org/show_bug.cgi?id=164451
+
+        Reviewed by Darin Adler.
+
+        * test262.yaml:
+
 2016-11-11  Saam Barati  <sbarati@apple.com>
 
         We should have a more concise way of determining when we're varargs calling a function using rest parameters
index da448b4..d439e6c 100644 (file)
 - path: test262/test/built-ins/DataView/prototype/getFloat32/to-boolean-littleendian.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getFloat32/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/getFloat32/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-after-toindex-byteoffset.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-after-toindex-byteoffset.js
 - path: test262/test/built-ins/DataView/prototype/getFloat64/to-boolean-littleendian.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getFloat64/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/getFloat64/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-after-toindex-byteoffset.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-after-toindex-byteoffset.js
 - path: test262/test/built-ins/DataView/prototype/getInt16/to-boolean-littleendian.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getInt16/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/getInt16/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-after-toindex-byteoffset.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-after-toindex-byteoffset.js
 - path: test262/test/built-ins/DataView/prototype/getInt32/to-boolean-littleendian.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getInt32/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/getInt32/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-after-toindex-byteoffset.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-after-toindex-byteoffset.js
 - path: test262/test/built-ins/DataView/prototype/getInt8/this-is-not-object.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getInt8/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/getInt8/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-after-toindex-byteoffset.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-after-toindex-byteoffset.js
 - path: test262/test/built-ins/DataView/prototype/getUint16/to-boolean-littleendian.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getUint16/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/getUint16/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-after-toindex-byteoffset.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-after-toindex-byteoffset.js
 - path: test262/test/built-ins/DataView/prototype/getUint32/to-boolean-littleendian.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getUint32/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/getUint32/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-after-toindex-byteoffset.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-after-toindex-byteoffset.js
 - path: test262/test/built-ins/DataView/prototype/getUint8/this-is-not-object.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/getUint8/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/getUint8/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-after-number-value.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-after-number-value.js
 - path: test262/test/built-ins/DataView/prototype/setFloat32/negative-byteoffset-throws.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setFloat32/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setFloat32/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setFloat32/range-check-after-value-conversion.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setFloat32/range-check-after-value-conversion.js
 - path: test262/test/built-ins/DataView/prototype/setFloat32/to-boolean-littleendian.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setFloat32/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setFloat32/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-after-number-value.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-after-number-value.js
 - path: test262/test/built-ins/DataView/prototype/setFloat64/negative-byteoffset-throws.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setFloat64/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setFloat64/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setFloat64/range-check-after-value-conversion.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setFloat64/range-check-after-value-conversion.js
 - path: test262/test/built-ins/DataView/prototype/setFloat64/to-boolean-littleendian.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setFloat64/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setFloat64/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-after-number-value.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-after-number-value.js
 - path: test262/test/built-ins/DataView/prototype/setInt16/negative-byteoffset-throws.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setInt16/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setInt16/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setInt16/range-check-after-value-conversion.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setInt16/range-check-after-value-conversion.js
 - path: test262/test/built-ins/DataView/prototype/setInt16/to-boolean-littleendian.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setInt16/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setInt16/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-after-number-value.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-after-number-value.js
 - path: test262/test/built-ins/DataView/prototype/setInt32/negative-byteoffset-throws.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setInt32/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setInt32/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setInt32/range-check-after-value-conversion.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setInt32/range-check-after-value-conversion.js
 - path: test262/test/built-ins/DataView/prototype/setInt32/to-boolean-littleendian.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setInt32/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setInt32/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-after-number-value.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-after-number-value.js
 - path: test262/test/built-ins/DataView/prototype/setInt8/negative-byteoffset-throws.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setInt8/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setInt8/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setInt8/range-check-after-value-conversion.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setInt8/range-check-after-value-conversion.js
 - path: test262/test/built-ins/DataView/prototype/setInt8/this-is-not-object.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setInt8/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setInt8/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-after-number-value.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-after-number-value.js
 - path: test262/test/built-ins/DataView/prototype/setUint16/negative-byteoffset-throws.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setUint16/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setUint16/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setUint16/range-check-after-value-conversion.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setUint16/range-check-after-value-conversion.js
 - path: test262/test/built-ins/DataView/prototype/setUint16/to-boolean-littleendian.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setUint16/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setUint16/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-after-number-value.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-after-number-value.js
 - path: test262/test/built-ins/DataView/prototype/setUint32/negative-byteoffset-throws.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setUint32/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setUint32/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setUint32/range-check-after-value-conversion.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setUint32/range-check-after-value-conversion.js
 - path: test262/test/built-ins/DataView/prototype/setUint32/to-boolean-littleendian.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setUint32/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setUint32/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-after-number-value.js
   cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js", "../../../../../harness/detachArrayBuffer.js"], []
 - path: test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-after-number-value.js
 - path: test262/test/built-ins/DataView/prototype/setUint8/negative-byteoffset-throws.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setUint8/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setUint8/no-value-arg.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setUint8/range-check-after-value-conversion.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setUint8/range-check-after-value-conversion.js
 - path: test262/test/built-ins/DataView/prototype/setUint8/this-is-not-object.js
   cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype/setUint8/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], []
 - path: test262/test/built-ins/DataView/prototype/setUint8/toindex-byteoffset.js
-  cmd: runTest262 :fail, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../../../harness/assert.js", "../../../../../harness/sta.js"], [:strict]
 - path: test262/test/built-ins/DataView/prototype.js
   cmd: runTest262 :normal, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js", "../../../harness/propertyHelper.js"], []
 - path: test262/test/built-ins/DataView/prototype.js
index 44b57af..beef70e 100644 (file)
@@ -1,3 +1,19 @@
+2016-11-11  Joseph Pecoraro  <pecoraro@apple.com>
+
+        test262: DataView get methods should allow for missing offset, set methods should allow for missing value
+        https://bugs.webkit.org/show_bug.cgi?id=164451
+
+        Reviewed by Darin Adler.
+
+        * fast/canvas/webgl/data-view-test-expected.txt:
+        * fast/canvas/webgl/data-view-test.html:
+        Create a DataView large enough so that the get/set operations don't fail
+        due to out of bounds access, and assert that they do not throw, because
+        the undefined offset and value parameters get converted to 0.
+
+        * webgl/1.0.2/conformance/typedarrays/data-view-test-expected.txt:
+        This test is wrong. Leave the test alone but update our copy.
+
 2016-11-11  Ryan Haddad  <ryanhaddad@apple.com>
 
         Skip editing/input/focus-change-with-marked-text.html everywhere except ios-simulator-wk1.
index 7f203b8..2cc4d05 100644 (file)
@@ -304,15 +304,15 @@ PASS view.getFloat64(-1) threw exception RangeError: byteOffset cannot be negati
 PASS view.getFloat64(-5) threw exception RangeError: byteOffset cannot be negative.
 PASS view.getFloat64(-9) threw exception RangeError: byteOffset cannot be negative.
 
-Test for wrong arguments passed to get methods
-PASS view.getInt8() threw exception TypeError: Need at least one argument (the byteOffset).
-PASS view.getUint8() threw exception TypeError: Need at least one argument (the byteOffset).
-PASS view.getInt16() threw exception TypeError: Need at least one argument (the byteOffset).
-PASS view.getUint16() threw exception TypeError: Need at least one argument (the byteOffset).
-PASS view.getInt32() threw exception TypeError: Need at least one argument (the byteOffset).
-PASS view.getUint32() threw exception TypeError: Need at least one argument (the byteOffset).
-PASS view.getFloat32() threw exception TypeError: Need at least one argument (the byteOffset).
-PASS view.getFloat64() threw exception TypeError: Need at least one argument (the byteOffset).
+Test for missing arguments passed to get methods
+PASS view.getInt8() did not throw exception.
+PASS view.getUint8() did not throw exception.
+PASS view.getInt16() did not throw exception.
+PASS view.getUint16() did not throw exception.
+PASS view.getInt32() did not throw exception.
+PASS view.getUint32() did not throw exception.
+PASS view.getFloat32() did not throw exception.
+PASS view.getFloat64() did not throw exception.
 
 Test for set methods that work
 PASS view.setInt8(0, 0) is undefined.
@@ -794,23 +794,23 @@ PASS view.setFloat64(-1, 0) threw exception RangeError: byteOffset cannot be neg
 PASS view.setFloat64(-5, 0) threw exception RangeError: byteOffset cannot be negative.
 PASS view.setFloat64(-9, 0) threw exception RangeError: byteOffset cannot be negative.
 
-Test for wrong arguments passed to set methods
-PASS view.setInt8() threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setUint8() threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setInt16() threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setUint16() threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setInt32() threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setUint32() threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setFloat32() threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setFloat64() threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setInt8(1) threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setUint8(1) threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setInt16(1) threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setUint16(1) threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setInt32(1) threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setUint32(1) threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setFloat32(1) threw exception TypeError: Need at least two argument (the byteOffset and value).
-PASS view.setFloat64(1) threw exception TypeError: Need at least two argument (the byteOffset and value).
+Test for missing arguments passed to set methods
+PASS view.setInt8() did not throw exception.
+PASS view.setUint8() did not throw exception.
+PASS view.setInt16() did not throw exception.
+PASS view.setUint16() did not throw exception.
+PASS view.setInt32() did not throw exception.
+PASS view.setUint32() did not throw exception.
+PASS view.setFloat32() did not throw exception.
+PASS view.setFloat64() did not throw exception.
+PASS view.setInt8(1) did not throw exception.
+PASS view.setUint8(1) did not throw exception.
+PASS view.setInt16(1) did not throw exception.
+PASS view.setUint16(1) did not throw exception.
+PASS view.setInt32(1) did not throw exception.
+PASS view.setUint32(1) did not throw exception.
+PASS view.setFloat32(1) did not throw exception.
+PASS view.setFloat64(1) did not throw exception.
 
 Test for indexing that should not work
 PASS view[0] is undefined.
index 091cb8d..870a181 100644 (file)
@@ -293,16 +293,16 @@ function runGetTests()
     runNegativeIndexTests(true);
 
     debug("");
-    debug("Test for wrong arguments passed to get methods");
-    view = new DataView((new Uint8Array([1, 2])).buffer);
-    shouldThrow("view.getInt8()");
-    shouldThrow("view.getUint8()");
-    shouldThrow("view.getInt16()");
-    shouldThrow("view.getUint16()");
-    shouldThrow("view.getInt32()");
-    shouldThrow("view.getUint32()");
-    shouldThrow("view.getFloat32()");
-    shouldThrow("view.getFloat64()");
+    debug("Test for missing arguments passed to get methods");
+    view = new DataView((new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8])).buffer);
+    shouldNotThrow("view.getInt8()");
+    shouldNotThrow("view.getUint8()");
+    shouldNotThrow("view.getInt16()");
+    shouldNotThrow("view.getUint16()");
+    shouldNotThrow("view.getInt32()");
+    shouldNotThrow("view.getUint32()");
+    shouldNotThrow("view.getFloat32()");
+    shouldNotThrow("view.getFloat64()");
 }
 
 function runSetTests()
@@ -322,24 +322,24 @@ function runSetTests()
     runNegativeIndexTests(false);
 
     debug("");
-    debug("Test for wrong arguments passed to set methods");
-    view = new DataView((new Uint8Array([1, 2])).buffer);
-    shouldThrow("view.setInt8()");
-    shouldThrow("view.setUint8()");
-    shouldThrow("view.setInt16()");
-    shouldThrow("view.setUint16()");
-    shouldThrow("view.setInt32()");
-    shouldThrow("view.setUint32()");
-    shouldThrow("view.setFloat32()");
-    shouldThrow("view.setFloat64()");
-    shouldThrow("view.setInt8(1)");
-    shouldThrow("view.setUint8(1)");
-    shouldThrow("view.setInt16(1)");
-    shouldThrow("view.setUint16(1)");
-    shouldThrow("view.setInt32(1)");
-    shouldThrow("view.setUint32(1)");
-    shouldThrow("view.setFloat32(1)");
-    shouldThrow("view.setFloat64(1)");
+    debug("Test for missing arguments passed to set methods");
+    view = new DataView((new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8])).buffer);
+    shouldNotThrow("view.setInt8()");
+    shouldNotThrow("view.setUint8()");
+    shouldNotThrow("view.setInt16()");
+    shouldNotThrow("view.setUint16()");
+    shouldNotThrow("view.setInt32()");
+    shouldNotThrow("view.setUint32()");
+    shouldNotThrow("view.setFloat32()");
+    shouldNotThrow("view.setFloat64()");
+    shouldNotThrow("view.setInt8(1)");
+    shouldNotThrow("view.setUint8(1)");
+    shouldNotThrow("view.setInt16(1)");
+    shouldNotThrow("view.setUint16(1)");
+    shouldNotThrow("view.setInt32(1)");
+    shouldNotThrow("view.setUint32(1)");
+    shouldNotThrow("view.setFloat32(1)");
+    shouldNotThrow("view.setFloat64(1)");
 }
 
 function runIndexingTests()
index 5cd3b32..1b7ff85 100644 (file)
@@ -1,5 +1,5 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../resources/webgl_test_files/conformance/typedarrays/data-view-test.html
-PASS
+FAIL
 
index 3c7fad8..3673371 100644 (file)
@@ -1,3 +1,17 @@
+2016-11-11  Joseph Pecoraro  <pecoraro@apple.com>
+
+        test262: DataView get methods should allow for missing offset, set methods should allow for missing value
+        https://bugs.webkit.org/show_bug.cgi?id=164451
+
+        Reviewed by Darin Adler.
+
+        * runtime/JSDataViewPrototype.cpp:
+        (JSC::getData):
+        Missing offset is still valid and will be coerced to 0.
+
+        (JSC::setData):
+        Missing value is still valid and will be coerced to 0.
+
 2016-11-11  Saam Barati  <sbarati@apple.com>
 
         We should have a more concise way of determining when we're varargs calling a function using rest parameters
index 2f8b033..5028a8b 100644 (file)
@@ -129,10 +129,7 @@ EncodedJSValue getData(ExecState* exec)
     if (!dataView)
         return throwVMTypeError(exec, scope, ASCIILiteral("Receiver of DataView method must be a DataView"));
     
-    if (!exec->argumentCount())
-        return throwVMTypeError(exec, scope, ASCIILiteral("Need at least one argument (the byteOffset)"));
-    
-    unsigned byteOffset = exec->uncheckedArgument(0).toIndex(exec, "byteOffset");
+    unsigned byteOffset = exec->argument(0).toIndex(exec, "byteOffset");
     RETURN_IF_EXCEPTION(scope, encodedJSValue());
     
     bool littleEndian = false;
@@ -175,9 +172,6 @@ EncodedJSValue setData(ExecState* exec)
     if (!dataView)
         return throwVMTypeError(exec, scope, ASCIILiteral("Receiver of DataView method must be a DataView"));
     
-    if (exec->argumentCount() < 2)
-        return throwVMTypeError(exec, scope, ASCIILiteral("Need at least two argument (the byteOffset and value)"));
-    
     unsigned byteOffset = exec->uncheckedArgument(0).toIndex(exec, "byteOffset");
     RETURN_IF_EXCEPTION(scope, encodedJSValue());
 
@@ -187,7 +181,7 @@ EncodedJSValue setData(ExecState* exec)
         uint8_t rawBytes[dataSize];
     } u;
 
-    u.value = toNativeFromValue<Adaptor>(exec, exec->uncheckedArgument(1));
+    u.value = toNativeFromValue<Adaptor>(exec, exec->argument(1));
     RETURN_IF_EXCEPTION(scope, encodedJSValue());
     
     bool littleEndian = false;