TypedArrays with elementSize 1 cannot produce these range errors (#1465)

This commit is contained in:
Rick Waldron 2018-03-01 15:10:10 -05:00 committed by Leo Balter
parent 1e1d503c1b
commit 0192e0d70e
2 changed files with 16 additions and 4 deletions

View File

@ -12,10 +12,15 @@ info: |
least one argument and the Type of the first argument is Object and that least one argument and the Type of the first argument is Object and that
object has an [[ArrayBufferData]] internal slot. 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. 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] includes: [testTypedArray.js]
features: [SharedArrayBuffer, TypedArray] features: [SharedArrayBuffer, TypedArray]
---*/ ---*/
@ -30,4 +35,4 @@ testWithTypedArrayConstructors(function(TA) {
assert.throws(RangeError, function() { assert.throws(RangeError, function() {
new TA(buffer, 0, undefined); new TA(buffer, 0, undefined);
}); });
}); }, [ Float64Array, Float32Array, Int32Array, Int16Array, Uint32Array, Uint16Array ]);

View File

@ -12,9 +12,15 @@ info: |
least one argument and the Type of the first argument is Object and that least one argument and the Type of the first argument is Object and that
object has an [[ArrayBufferData]] internal slot. 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] includes: [testTypedArray.js]
features: [SharedArrayBuffer, TypedArray] features: [SharedArrayBuffer, TypedArray]
---*/ ---*/
@ -25,4 +31,5 @@ testWithTypedArrayConstructors(function(TA) {
assert.throws(RangeError, function() { assert.throws(RangeError, function() {
new TA(buffer, 7); new TA(buffer, 7);
}); });
}); }, [ Float64Array, Float32Array, Int32Array, Int16Array, Uint32Array, Uint16Array ]);