Add copies of resizable ArrayBuffer species constructor tests to BigInt folders

This adds copies of the tests added in the previous commit, to the
respective BigInt folders, editing them to use the testBigIntTypedArray
helper instead of the testTypedArray helper.

See: #3723
This commit is contained in:
Philip Chimento 2023-03-31 16:15:19 -07:00 committed by Philip Chimento
parent 8330bd6567
commit be0abd93cd
6 changed files with 248 additions and 0 deletions

View File

@ -0,0 +1,40 @@
// Copyright (C) 2023 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-%typedarray%.prototype.filter
description: >
Throws a TypeError if new typedArray's length < count
info: |
23.2.3.10 %TypedArray%.prototype.filter ( start, end )
...
9. Let A be ? TypedArraySpeciesCreate(O, « count »).
...
23.2.4.1 TypedArraySpeciesCreate ( exemplar, argumentList )
...
3. Let result be ? TypedArrayCreate(constructor, argumentList).
23.2.4.2 TypedArrayCreate ( constructor, argumentList )
...
3. If argumentList is a List of a single Number, then
a. If the value of newTypedArray's [[ArrayLength]] internal slot <
argumentList[0], throw a TypeError exception.
...
includes: [testBigIntTypedArray.js]
features: [BigInt, Symbol.species, TypedArray, resizable-arraybuffer]
---*/
testWithBigIntTypedArrayConstructors(function(TA) {
const rab1 = new ArrayBuffer(8, {maxByteLength: 100});
const ta = new TA(rab1);
const rab2 = new ArrayBuffer(10, {maxByteLength: 20});
const lengthTracking = new TA(rab2);
rab2.resize(0);
ta.constructor = { [Symbol.species]: function() { return lengthTracking; } };
assert.throws(TypeError, function() {
ta.filter(() => true);
});
});

View File

@ -0,0 +1,42 @@
// Copyright (C) 2023 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-%typedarray%.prototype.filter
description: >
Throws a TypeError if new typedArray's length < count
info: |
23.2.3.10 %TypedArray%.prototype.filter ( start, end )
...
9. Let A be ? TypedArraySpeciesCreate(O, « count »).
...
23.2.4.1 TypedArraySpeciesCreate ( exemplar, argumentList )
...
3. Let result be ? TypedArrayCreate(constructor, argumentList).
23.2.4.2 TypedArrayCreate ( constructor, argumentList )
...
3. If argumentList is a List of a single Number, then
a. If the value of newTypedArray's [[ArrayLength]] internal slot <
argumentList[0], throw a TypeError exception.
...
includes: [testBigIntTypedArray.js]
features: [BigInt, Symbol.species, TypedArray, resizable-arraybuffer]
---*/
testWithBigIntTypedArrayConstructors(function(TA) {
var sample = new TA(2);
const rab = new ArrayBuffer(10, {maxByteLength: 20});
const lengthTracking = new TA(rab);
sample.constructor = {};
sample.constructor[Symbol.species] = function() {
return lengthTracking;
};
rab.resize(0);
assert.throws(TypeError, function() {
sample.filter(() => { return true; });
});
});

View File

@ -0,0 +1,40 @@
// Copyright (C) 2023 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-%typedarray%.prototype.map
description: >
Throws a TypeError if new typedArray's length < count
info: |
22.2.3.22 %TypedArray%.prototype.map ( start, end )
...
9. Let A be ? TypedArraySpeciesCreate(O, « count »).
...
23.2.4.1 TypedArraySpeciesCreate ( exemplar, argumentList )
...
3. Let result be ? TypedArrayCreate(constructor, argumentList).
23.2.4.2 TypedArrayCreate ( constructor, argumentList )
...
3. If argumentList is a List of a single Number, then
a. If the value of newTypedArray's [[ArrayLength]] internal slot <
argumentList[0], throw a TypeError exception.
...
includes: [testBigIntTypedArray.js]
features: [BigInt, Symbol.species, TypedArray, resizable-arraybuffer]
---*/
testWithBigIntTypedArrayConstructors(function(TA) {
const rab1 = new ArrayBuffer(8, {maxByteLength: 100});
const ta = new TA(rab1);
const rab2 = new ArrayBuffer(10, {maxByteLength: 20});
const lengthTracking = new TA(rab2);
rab2.resize(0);
ta.constructor = { [Symbol.species]: function() { return lengthTracking; } };
assert.throws(TypeError, function() {
ta.map(() => {});
});
});

View File

@ -0,0 +1,43 @@
// Copyright (C) 2023 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-%typedarray%.prototype.map
description: >
Throws a TypeError if new typedArray's length < count
info: |
22.2.3.22 %TypedArray%.prototype.map ( start, end )
...
9. Let A be ? TypedArraySpeciesCreate(O, « count »).
...
23.2.4.1 TypedArraySpeciesCreate ( exemplar, argumentList )
...
3. Let result be ? TypedArrayCreate(constructor, argumentList).
23.2.4.2 TypedArrayCreate ( constructor, argumentList )
...
3. If argumentList is a List of a single Number, then
a. If the value of newTypedArray's [[ArrayLength]] internal slot <
argumentList[0], throw a TypeError exception.
...
includes: [testBigIntTypedArray.js]
features: [BigInt, Symbol.species, TypedArray, resizable-arraybuffer]
---*/
testWithBigIntTypedArrayConstructors(function(TA) {
const sample = new TA(2);
const rab = new ArrayBuffer(10, {maxByteLength: 20});
const lengthTracking = new TA(rab);
rab.resize(0);
sample.constructor = {};
sample.constructor[Symbol.species] = function() {
return lengthTracking;
};
assert.throws(TypeError, function() {
sample.map(() => {});
});
});

View File

@ -0,0 +1,40 @@
// Copyright (C) 2023 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-%typedarray%.prototype.slice
description: >
Throws a TypeError if new typedArray's length < count
info: |
23.2.3.27 %TypedArray%.prototype.slice ( start, end )
...
9. Let A be ? TypedArraySpeciesCreate(O, « count »).
...
23.2.4.1 TypedArraySpeciesCreate ( exemplar, argumentList )
...
3. Let result be ? TypedArrayCreate(constructor, argumentList).
23.2.4.2 TypedArrayCreate ( constructor, argumentList )
...
3. If argumentList is a List of a single Number, then
a. If the value of newTypedArray's [[ArrayLength]] internal slot <
argumentList[0], throw a TypeError exception.
...
includes: [testBigIntTypedArray.js]
features: [BigInt, Symbol.species, TypedArray, resizable-arraybuffer]
---*/
testWithBigIntTypedArrayConstructors(function(TA) {
const rab1 = new ArrayBuffer(8, {maxByteLength: 100});
const ta = new TA(rab1);
const rab2 = new ArrayBuffer(10, {maxByteLength: 20});
const lengthTracking = new TA(rab2);
rab2.resize(0);
ta.constructor = { [Symbol.species]: function() { return lengthTracking; } };
assert.throws(TypeError, function() {
ta.slice();
});
});

View File

@ -0,0 +1,43 @@
// Copyright (C) 2023 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-%typedarray%.prototype.slice
description: >
Throws a TypeError if new typedArray's length < count
info: |
23.2.3.27 %TypedArray%.prototype.slice ( start, end )
...
9. Let A be ? TypedArraySpeciesCreate(O, « count »).
...
23.2.4.1 TypedArraySpeciesCreate ( exemplar, argumentList )
...
3. Let result be ? TypedArrayCreate(constructor, argumentList).
23.2.4.2 TypedArrayCreate ( constructor, argumentList )
...
3. If argumentList is a List of a single Number, then
a. If the value of newTypedArray's [[ArrayLength]] internal slot <
argumentList[0], throw a TypeError exception.
...
includes: [testBigIntTypedArray.js]
features: [BigInt, Symbol.species, TypedArray, resizable-arraybuffer]
---*/
testWithBigIntTypedArrayConstructors(function(TA) {
const sample = new TA(2);
const rab = new ArrayBuffer(10, {maxByteLength: 20});
const lengthTracking = new TA(rab);
rab.resize(0);
sample.constructor = {};
sample.constructor[Symbol.species] = function() {
return lengthTracking;
};
assert.throws(TypeError, function() {
sample.slice();
});
});