mirror of https://github.com/tc39/test262.git
Merge pull request #926 from littledan/typedarray-constructor-edge-case
* Tests for throwing a TypeError in the TypedArray constructor on a detached buffer Detached buffer causes an exception - If it's already detached going into the constructor - If the byteOffset coercion causes it to be detached Tests are valid in ES2017 * Test that TypedArray constructor throws when detaching buffer in length calculation This test is only valid with the PR in https://github.com/tc39/ecma262/pull/852 * Rename files per review
This commit is contained in:
commit
89160ff5b7
|
@ -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 byteOffset = { valueOf() { $DETACHBUFFER(buffer); return 1; } };
|
||||
assert.throws(TypeError, () => new TA(buffer, byteOffset));
|
||||
});
|
|
@ -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);
|
||||
$DETACHBUFFER(buffer);
|
||||
assert.throws(TypeError, () => new TA(buffer));
|
||||
});
|
|
@ -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));
|
||||
});
|
Loading…
Reference in New Issue