diff --git a/test/built-ins/TypedArrays/buffer-arg-detached.js b/test/built-ins/TypedArrays/buffer-arg-detached.js index 9e112d0bcacae2f0f69c6f09be66c8c20a338a00..7a69e249ea38c1989ee6d073104d0518c07aa352 100644 --- a/test/built-ins/TypedArrays/buffer-arg-detached.js +++ b/test/built-ins/TypedArrays/buffer-arg-detached.js @@ -7,7 +7,7 @@ info: > 22.2.4.5 TypedArray ( buffer [ , byteOffset [ , length ] ] ) ... - 8. If IsDetachedBuffer(buffer) is true, throw a TypeError exception. + 9. If IsDetachedBuffer(buffer) is true, throw a TypeError exception. ... includes: [testTypedArray.js, detachArrayBuffer.js] ---*/ diff --git a/test/built-ins/TypedArrays/byteoffset-arg-detachbuffer.js b/test/built-ins/TypedArrays/byteoffset-arg-detachbuffer.js index 5f3406ce1cb4e79c65432c90965104637aebe0ea..c290dcdc1193a11408dce4859e5875f3c9c123cc 100644 --- a/test/built-ins/TypedArrays/byteoffset-arg-detachbuffer.js +++ b/test/built-ins/TypedArrays/byteoffset-arg-detachbuffer.js @@ -7,7 +7,7 @@ info: > 22.2.4.5 TypedArray ( buffer [ , byteOffset [ , length ] ] ) ... - 8. If IsDetachedBuffer(buffer) is true, throw a TypeError exception. + 9. If IsDetachedBuffer(buffer) is true, throw a TypeError exception. ... includes: [testTypedArray.js, detachArrayBuffer.js] ---*/ diff --git a/test/built-ins/TypedArrays/length-arg-detachbuffer.js b/test/built-ins/TypedArrays/length-arg-detachbuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..a4d57d6e5773df21b8d24281cc355c57b0e9ef3e --- /dev/null +++ b/test/built-ins/TypedArrays/length-arg-detachbuffer.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-typedarray-buffer-byteoffset-length +description: If TypedArray() is passed a detached buffer, throw +info: > + 22.2.4.5 TypedArray ( buffer [ , byteOffset [ , length ] ] ) + + ... + 9. If IsDetachedBuffer(buffer) is true, throw a TypeError exception. + ... +includes: [testTypedArray.js, detachArrayBuffer.js] +---*/ + +testWithTypedArrayConstructors(function(TA) { + var offset = TA.BYTES_PER_ELEMENT; + var buffer = new ArrayBuffer(3 * offset); + var length = { valueOf() { $DETACHBUFFER(buffer); return 1; } }; + assert.throws(TypeError, () => new TA(buffer, 0, length)); +});