From 0192e0d70e2295fb590f14865da42f0f9dfa64bd Mon Sep 17 00:00:00 2001 From: Rick Waldron Date: Thu, 1 Mar 2018 15:10:10 -0500 Subject: [PATCH] TypedArrays with elementSize 1 cannot produce these range errors (#1465) --- ...rbyteoffset-throws-from-modulo-element-size-sab.js | 9 +++++++-- ...-byteoffset-throws-from-modulo-element-size-sab.js | 11 +++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/test/built-ins/TypedArrays/ctors/buffer-arg/buffer-arg-bufferbyteoffset-throws-from-modulo-element-size-sab.js b/test/built-ins/TypedArrays/ctors/buffer-arg/buffer-arg-bufferbyteoffset-throws-from-modulo-element-size-sab.js index b07837b84c..8baba4efa3 100644 --- a/test/built-ins/TypedArrays/ctors/buffer-arg/buffer-arg-bufferbyteoffset-throws-from-modulo-element-size-sab.js +++ b/test/built-ins/TypedArrays/ctors/buffer-arg/buffer-arg-bufferbyteoffset-throws-from-modulo-element-size-sab.js @@ -12,10 +12,15 @@ info: | least one argument and the Type of the first argument is Object and that object has an [[ArrayBufferData]] internal slot. + + Let elementSize be the Number value of the Element Size value in Table 56 for constructorName.* ... - 13. If length is undefined, then + If length is either not present or undefined, then a. If bufferByteLength modulo elementSize ≠ 0, throw a RangeError exception. ... + + * Int8Array, Uint8Array, Uint8ClampedArray all have element size 1, so will never fail. + includes: [testTypedArray.js] features: [SharedArrayBuffer, TypedArray] ---*/ @@ -30,4 +35,4 @@ testWithTypedArrayConstructors(function(TA) { assert.throws(RangeError, function() { new TA(buffer, 0, undefined); }); -}); +}, [ Float64Array, Float32Array, Int32Array, Int16Array, Uint32Array, Uint16Array ]); diff --git a/test/built-ins/TypedArrays/ctors/buffer-arg/buffer-arg-byteoffset-throws-from-modulo-element-size-sab.js b/test/built-ins/TypedArrays/ctors/buffer-arg/buffer-arg-byteoffset-throws-from-modulo-element-size-sab.js index 645f259af9..d67216a0cf 100644 --- a/test/built-ins/TypedArrays/ctors/buffer-arg/buffer-arg-byteoffset-throws-from-modulo-element-size-sab.js +++ b/test/built-ins/TypedArrays/ctors/buffer-arg/buffer-arg-byteoffset-throws-from-modulo-element-size-sab.js @@ -12,9 +12,15 @@ info: | least one argument and the Type of the first argument is Object and that object has an [[ArrayBufferData]] internal slot. + + Let elementSize be the Number value of the Element Size value in Table 56 for constructorName.* + ... - 10. If offset modulo elementSize ≠ 0, throw a RangeError exception. + If offset modulo elementSize ≠ 0, throw a RangeError exception. ... + + * Int8Array, Uint8Array, Uint8ClampedArray all have element size 1, so will never fail. + includes: [testTypedArray.js] features: [SharedArrayBuffer, TypedArray] ---*/ @@ -25,4 +31,5 @@ testWithTypedArrayConstructors(function(TA) { assert.throws(RangeError, function() { new TA(buffer, 7); }); -}); +}, [ Float64Array, Float32Array, Int32Array, Int16Array, Uint32Array, Uint16Array ]); +