Add Array.prototype.includes and exponentiation features (#3799)

This commit is contained in:
José Julián Espina 2023-03-23 09:51:08 +00:00 committed by GitHub
parent 9704d7f22f
commit 4a6439e4a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
173 changed files with 175 additions and 83 deletions

View File

@ -380,6 +380,7 @@ includes: [asyncHelpers.js]
asyncTest(async function() { asyncTest(async function() {
await assert.throwsAsync(TypeError, () => Array.fromAsync([], "not a function"), "Array.fromAsync should reject asynchronously"); await assert.throwsAsync(TypeError, () => Array.fromAsync([], "not a function"), "Array.fromAsync should reject asynchronously");
}); });
```
## A Note on Python-based tools ## A Note on Python-based tools

View File

@ -114,6 +114,7 @@ ArrayBuffer
Array.prototype.at Array.prototype.at
Array.prototype.flat Array.prototype.flat
Array.prototype.flatMap Array.prototype.flatMap
Array.prototype.includes
Array.prototype.values Array.prototype.values
arrow-function arrow-function
async-iteration async-iteration
@ -148,6 +149,7 @@ destructuring-assignment
destructuring-binding destructuring-binding
dynamic-import dynamic-import
error-cause error-cause
exponentiation
export-star-as-namespace-from-module # https://github.com/tc39/ecma262/pull/1174 export-star-as-namespace-from-module # https://github.com/tc39/ecma262/pull/1174
FinalizationRegistry FinalizationRegistry
for-in-order for-in-order

View File

@ -9,6 +9,7 @@ info: |
UpdateExpression ** ExponentiationExpression UpdateExpression ** ExponentiationExpression
Static Semantics AssignmentTargetType, Return invalid. Static Semantics AssignmentTargetType, Return invalid.
template: invalid template: invalid
features: [exponentiation]
negative: negative:
phase: parse phase: parse
type: SyntaxError type: SyntaxError

View File

@ -9,6 +9,7 @@ info: |
UpdateExpression ** ExponentiationExpression UpdateExpression ** ExponentiationExpression
Static Semantics AssignmentTargetType, Return invalid. Static Semantics AssignmentTargetType, Return invalid.
template: invalid template: invalid
features: [exponentiation]
negative: negative:
phase: parse phase: parse
type: SyntaxError type: SyntaxError

View File

@ -9,6 +9,7 @@ info: |
UpdateExpression ** ExponentiationExpression UpdateExpression ** ExponentiationExpression
Static Semantics AssignmentTargetType, Return invalid. Static Semantics AssignmentTargetType, Return invalid.
template: invalid template: invalid
features: [exponentiation]
negative: negative:
phase: parse phase: parse
type: SyntaxError type: SyntaxError

View File

@ -4,6 +4,7 @@
/*--- /*---
template: default template: default
desc: Compound exponentiation assignment with target being a private reference desc: Compound exponentiation assignment with target being a private reference
features: [exponentiation]
---*/ ---*/
//- lhs //- lhs

View File

@ -4,7 +4,7 @@
/*--- /*---
desc: Computed property name from exponentiation expression desc: Computed property name from exponentiation expression
template: evaluation template: evaluation
features: [computed-property-names] features: [computed-property-names, exponentiation]
---*/ ---*/
//- ComputedPropertyName //- ComputedPropertyName

View File

@ -4,7 +4,7 @@
/*--- /*---
desc: Computed property name from math desc: Computed property name from math
template: evaluation template: evaluation
features: [computed-property-names] features: [computed-property-names, exponentiation]
---*/ ---*/
//- ComputedPropertyName //- ComputedPropertyName
1 + 2 - 3 * 4 / 5 ** 6 1 + 2 - 3 * 4 / 5 ** 6

View File

@ -4,6 +4,7 @@
/*--- /*---
esid: sec-array.prototype.includes esid: sec-array.prototype.includes
description: Array.prototype.includes applied to boolean primitive description: Array.prototype.includes applied to boolean primitive
features: [Array.prototype.includes]
---*/ ---*/
assert.sameValue(Array.prototype.includes.call(true), false, 'Array.prototype.includes.call(true) must return false'); assert.sameValue(Array.prototype.includes.call(true), false, 'Array.prototype.includes.call(true) must return false');

View File

@ -16,6 +16,7 @@ info: |
7. Repeat, while k < len 7. Repeat, while k < len
... ...
8. Return false. 8. Return false.
features: [Array.prototype.includes]
---*/ ---*/
var sample = [7, 7, 7, 7]; var sample = [7, 7, 7, 7];

View File

@ -18,6 +18,7 @@ info: |
7. Repeat, while k < len 7. Repeat, while k < len
... ...
8. Return false. 8. Return false.
features: [Array.prototype.includes]
---*/ ---*/
var sample = [42, 43, 43, 41]; var sample = [42, 43, 43, 41];

View File

@ -13,6 +13,7 @@ info: |
... ...
7. Repeat, while k < len 7. Repeat, while k < len
... ...
features: [Array.prototype.includes]
---*/ ---*/
var sample = [42, 43]; var sample = [42, 43];

View File

@ -12,7 +12,7 @@ info: |
a. Let elementK be the result of ? Get(O, ! ToString(k)). a. Let elementK be the result of ? Get(O, ! ToString(k)).
... ...
includes: [compareArray.js] includes: [compareArray.js]
features: [Proxy] features: [Proxy, Array.prototype.includes]
---*/ ---*/
var calls; var calls;

View File

@ -17,6 +17,7 @@ info: |
2. If len +0, return +0. 2. If len +0, return +0.
3. If len is +, return 2**53-1. 3. If len is +, return 2**53-1.
4. Return min(len, 2**53-1). 4. Return min(len, 2**53-1).
features: [Array.prototype.includes]
---*/ ---*/
var obj = { var obj = {

View File

@ -11,6 +11,7 @@ info: |
2. Let len be ? ToLength(? Get(O, "length")). 2. Let len be ? ToLength(? Get(O, "length")).
3. If len is 0, return false. 3. If len is 0, return false.
... ...
features: [Array.prototype.includes]
---*/ ---*/
var calls = 0; var calls = 0;

View File

@ -20,6 +20,7 @@ info: |
object has the attributes { [[Writable]]: false, [[Enumerable]]: false, object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
[[Configurable]]: true }. [[Configurable]]: true }.
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [Array.prototype.includes]
---*/ ---*/
assert.sameValue(Array.prototype.includes.length, 1); assert.sameValue(Array.prototype.includes.length, 1);

View File

@ -17,6 +17,7 @@ info: |
object, if it exists, has the attributes { [[Writable]]: false, object, if it exists, has the attributes { [[Writable]]: false,
[[Enumerable]]: false, [[Configurable]]: true }. [[Enumerable]]: false, [[Configurable]]: true }.
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [Array.prototype.includes]
---*/ ---*/
assert.sameValue(Array.prototype.includes.name, "includes"); assert.sameValue(Array.prototype.includes.name, "includes");

View File

@ -13,6 +13,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true. b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1. c. Increase k by 1.
... ...
features: [Array.prototype.includes]
---*/ ---*/
assert.sameValue([0].includes(), false, "[0].includes()"); assert.sameValue([0].includes(), false, "[0].includes()");

View File

@ -18,7 +18,7 @@ info: |
7. If IsConstructor(constructor) is false, throw a TypeError exception. 7. If IsConstructor(constructor) is false, throw a TypeError exception.
... ...
includes: [isConstructor.js] includes: [isConstructor.js]
features: [Reflect.construct, arrow-function] features: [Reflect.construct, arrow-function, Array.prototype.includes]
---*/ ---*/
assert.sameValue( assert.sameValue(

View File

@ -9,6 +9,7 @@ info: |
and in Annex B.2 has the attributes { [[Writable]]: true, and in Annex B.2 has the attributes { [[Writable]]: true,
[[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified. [[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified.
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [Array.prototype.includes]
---*/ ---*/
verifyNotEnumerable(Array.prototype, "includes"); verifyNotEnumerable(Array.prototype, "includes");

View File

@ -10,6 +10,7 @@ info: |
... ...
2. Let len be ? ToLength(? Get(O, "length")). 2. Let len be ? ToLength(? Get(O, "length")).
... ...
features: [Array.prototype.includes]
---*/ ---*/
var obj = {}; var obj = {};

View File

@ -11,6 +11,7 @@ info: |
7. Repeat, while k < len 7. Repeat, while k < len
a. Let elementK be the result of ? Get(O, ! ToString(k)). a. Let elementK be the result of ? Get(O, ! ToString(k)).
... ...
features: [Array.prototype.includes]
---*/ ---*/
var stopped = 0; var stopped = 0;

View File

@ -11,7 +11,7 @@ info: |
4. Let n be ? ToInteger(fromIndex). (If fromIndex is undefined, this step 4. Let n be ? ToInteger(fromIndex). (If fromIndex is undefined, this step
produces the value 0.) produces the value 0.)
... ...
features: [Symbol] features: [Symbol, Array.prototype.includes]
---*/ ---*/
var fromIndex = Symbol("1"); var fromIndex = Symbol("1");

View File

@ -11,6 +11,7 @@ info: |
4. Let n be ? ToInteger(fromIndex). (If fromIndex is undefined, this step 4. Let n be ? ToInteger(fromIndex). (If fromIndex is undefined, this step
produces the value 0.) produces the value 0.)
... ...
features: [Array.prototype.includes]
---*/ ---*/
var fromIndex = { var fromIndex = {

View File

@ -10,7 +10,7 @@ info: |
... ...
2. Let len be ? ToLength(? Get(O, "length")). 2. Let len be ? ToLength(? Get(O, "length")).
... ...
features: [Symbol] features: [Symbol, Array.prototype.includes]
---*/ ---*/
var obj = { var obj = {

View File

@ -10,6 +10,7 @@ info: |
... ...
2. Let len be ? ToLength(? Get(O, "length")). 2. Let len be ? ToLength(? Get(O, "length")).
... ...
features: [Array.prototype.includes]
---*/ ---*/
var obj1 = { var obj1 = {

View File

@ -13,6 +13,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true. b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1. c. Increase k by 1.
... ...
features: [Array.prototype.includes]
---*/ ---*/
var sample = [42, 0, 1, NaN]; var sample = [42, 0, 1, NaN];

View File

@ -18,7 +18,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true. b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1. c. Increase k by 1.
... ...
features: [Symbol] features: [Symbol, Array.prototype.includes]
---*/ ---*/
var symbol = Symbol("1"); var symbol = Symbol("1");

View File

@ -18,7 +18,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true. b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1. c. Increase k by 1.
8. Return false. 8. Return false.
features: [Symbol] features: [Symbol, Array.prototype.includes]
---*/ ---*/
assert.sameValue([42].includes(43), false, "43"); assert.sameValue([42].includes(43), false, "43");

View File

@ -18,6 +18,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true. b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1. c. Increase k by 1.
... ...
features: [Array.prototype.includes]
---*/ ---*/
assert.sameValue( assert.sameValue(

View File

@ -9,6 +9,7 @@ info: |
1. Let O be ? ToObject(this value). 1. Let O be ? ToObject(this value).
... ...
features: [Array.prototype.includes]
---*/ ---*/
var includes = Array.prototype.includes; var includes = Array.prototype.includes;

View File

@ -18,6 +18,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true. b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1. c. Increase k by 1.
8. Return false. 8. Return false.
features: [Array.prototype.includes]
---*/ ---*/
var obj = { var obj = {

View File

@ -17,6 +17,7 @@ info: |
2. If len +0, return +0. 2. If len +0, return +0.
3. If len is +, return 253-1. 3. If len is +, return 253-1.
4. Return min(len, 253-1). 4. Return min(len, 253-1).
features: [Array.prototype.includes]
---*/ ---*/
var obj = { var obj = {

View File

@ -18,6 +18,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true. b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1. c. Increase k by 1.
... ...
features: [Array.prototype.includes]
---*/ ---*/
var sample = ["a", "b", "c"]; var sample = ["a", "b", "c"];

View File

@ -11,6 +11,7 @@ info: |
7. Repeat, while k < len 7. Repeat, while k < len
a. Let elementK be the result of ? Get(O, ! ToString(k)). a. Let elementK be the result of ? Get(O, ! ToString(k)).
... ...
features: [Array.prototype.includes]
---*/ ---*/
function getCleanObj() { function getCleanObj() {

View File

@ -15,7 +15,7 @@ info: |
Argument Type: Undefined Argument Type: Undefined
Result: Throw a TypeError exception. Result: Throw a TypeError exception.
features: [Symbol, Symbol.isConcatSpreadable, Symbol.iterator, Symbol.species, Array.prototype.flat, Array.prototype.flatMap] features: [Symbol, Symbol.isConcatSpreadable, Symbol.iterator, Symbol.species, Array.prototype.flat, Array.prototype.flatMap, Array.prototype.includes]
---*/ ---*/
["constructor", "length", "0", Symbol.isConcatSpreadable, Symbol.species].forEach(function(key) { ["constructor", "length", "0", Symbol.isConcatSpreadable, Symbol.species].forEach(function(key) {

View File

@ -14,6 +14,7 @@ info: |
... ...
e. Perform ? Set(O, "length", newLen, true). e. Perform ? Set(O, "length", newLen, true).
... ...
features: [exponentiation]
---*/ ---*/
var arrayLike = {}; var arrayLike = {};

View File

@ -15,7 +15,8 @@ info: |
c. Let element be ? Get(O, index). c. Let element be ? Get(O, index).
d. Perform ? DeletePropertyOrThrow(O, index). d. Perform ? DeletePropertyOrThrow(O, index).
e. Perform ? Set(O, "length", newLen, true). e. Perform ? Set(O, "length", newLen, true).
f. Return element. f. Return element.
features: [exponentiation]
---*/ ---*/
var arrayLike = { var arrayLike = {

View File

@ -14,6 +14,7 @@ info: |
... ...
7. Perform ? Set(O, "length", len, true). 7. Perform ? Set(O, "length", len, true).
... ...
features: [exponentiation]
---*/ ---*/
var arrayLike = {}; var arrayLike = {};

View File

@ -15,6 +15,7 @@ info: |
... ...
7. Perform ? Set(O, "length", len, true). 7. Perform ? Set(O, "length", len, true).
... ...
features: [exponentiation]
---*/ ---*/
var arrayLike = { var arrayLike = {

View File

@ -13,6 +13,7 @@ info: |
4. Let argCount be the number of elements in items. 4. Let argCount be the number of elements in items.
5. If len + argCount > 2^53-1, throw a TypeError exception. 5. If len + argCount > 2^53-1, throw a TypeError exception.
... ...
features: [exponentiation]
---*/ ---*/
var arrayLike = {}; var arrayLike = {};

View File

@ -9,6 +9,7 @@ info: |
... ...
2. Let len be ? ToLength(? Get(O, "length")). 2. Let len be ? ToLength(? Get(O, "length")).
... ...
features: [exponentiation]
---*/ ---*/
function StopReverse() {} function StopReverse() {}

View File

@ -6,6 +6,7 @@ esid: sec-array.prototype.reverse
description: > description: >
Ensure correct MOP operations are called when length exceeds 2^53-1. Ensure correct MOP operations are called when length exceeds 2^53-1.
includes: [compareArray.js, proxyTrapsHelper.js] includes: [compareArray.js, proxyTrapsHelper.js]
features: [exponentiation]
---*/ ---*/
function StopReverse() {} function StopReverse() {}

View File

@ -17,6 +17,7 @@ info: |
else let final be min(relativeEnd, len). else let final be min(relativeEnd, len).
... ...
includes: [compareArray.js] includes: [compareArray.js]
features: [exponentiation]
---*/ ---*/
var array = []; var array = [];

View File

@ -16,6 +16,7 @@ info: |
else let final be min(relativeEnd, len). else let final be min(relativeEnd, len).
... ...
includes: [compareArray.js] includes: [compareArray.js]
features: [exponentiation]
---*/ ---*/
var arrayLike = { var arrayLike = {

View File

@ -15,6 +15,7 @@ info: |
... ...
19. Perform ? Set(O, "length", len - actualDeleteCount + itemCount, true). 19. Perform ? Set(O, "length", len - actualDeleteCount + itemCount, true).
... ...
features: [exponentiation]
---*/ ---*/
var arrayLike = {}; var arrayLike = {};

View File

@ -20,7 +20,7 @@ info: |
12. Perform ? Set(A, "length", actualDeleteCount, true). 12. Perform ? Set(A, "length", actualDeleteCount, true).
... ...
includes: [compareArray.js, proxyTrapsHelper.js] includes: [compareArray.js, proxyTrapsHelper.js]
features: [Symbol.species] features: [Symbol.species, exponentiation]
---*/ ---*/
function StopSplice() {} function StopSplice() {}

View File

@ -23,6 +23,7 @@ info: |
d. Increment k by 1. d. Increment k by 1.
... ...
includes: [compareArray.js] includes: [compareArray.js]
features: [exponentiation]
---*/ ---*/
var arrayLike = { var arrayLike = {

View File

@ -25,6 +25,7 @@ info: |
ii. Decrease k by 1. ii. Decrease k by 1.
... ...
includes: [compareArray.js] includes: [compareArray.js]
features: [exponentiation]
---*/ ---*/
var arrayLike = { var arrayLike = {

View File

@ -21,6 +21,7 @@ info: |
vi. Decrease k by 1. vi. Decrease k by 1.
... ...
includes: [compareArray.js] includes: [compareArray.js]
features: [exponentiation]
---*/ ---*/
var arrayLike = { var arrayLike = {

View File

@ -15,6 +15,7 @@ info: |
c. Let actualDeleteCount be min(max(dc, 0), len - actualStart). c. Let actualDeleteCount be min(max(dc, 0), len - actualStart).
8. If len+insertCount-actualDeleteCount > 2^53-1, throw a TypeError exception. 8. If len+insertCount-actualDeleteCount > 2^53-1, throw a TypeError exception.
... ...
features: [exponentiation]
---*/ ---*/
var arrayLike = {}; var arrayLike = {};

View File

@ -16,7 +16,7 @@ info: |
ArrayCreate ( length [, proto ] ) ArrayCreate ( length [, proto ] )
1. If length > 2 ** 32 - 1, throw a RangeError exception. 1. If length > 2 ** 32 - 1, throw a RangeError exception.
features: [change-array-by-copy] features: [change-array-by-copy, exponentiation]
---*/ ---*/
// Object with large "length" property // Object with large "length" property

View File

@ -17,7 +17,7 @@ info: |
ArrayCreate ( length [, proto ] ) ArrayCreate ( length [, proto ] )
1. If length > 2 ** 32 - 1, throw a RangeError exception. 1. If length > 2 ** 32 - 1, throw a RangeError exception.
features: [change-array-by-copy] features: [change-array-by-copy, exponentiation]
---*/ ---*/
// Object with large "length" property // Object with large "length" property

View File

@ -15,7 +15,7 @@ info: |
1. Let len be ? ToIntegerOrInfinity(argument). 1. Let len be ? ToIntegerOrInfinity(argument).
2. If len 0, return +0𝔽. 2. If len 0, return +0𝔽.
3. Return 𝔽(min(len, 2^53 - 1)) 3. Return 𝔽(min(len, 2^53 - 1))
features: [change-array-by-copy] features: [change-array-by-copy, exponentiation]
includes: [compareArray.js] includes: [compareArray.js]
---*/ ---*/

View File

@ -19,7 +19,7 @@ info: |
ArrayCreate ( length [, proto ] ) ArrayCreate ( length [, proto ] )
1. If length > 2 ** 32 - 1, throw a RangeError exception. 1. If length > 2 ** 32 - 1, throw a RangeError exception.
features: [change-array-by-copy] features: [change-array-by-copy, exponentiation]
---*/ ---*/
// Object with large "length" property // Object with large "length" property

View File

@ -11,6 +11,7 @@ info: |
3. Let argCount be the number of actual arguments. 3. Let argCount be the number of actual arguments.
4. If argCount > 0, then ... 4. If argCount > 0, then ...
5. Perform ? Set(O, "length", len+argCount, true). 5. Perform ? Set(O, "length", len+argCount, true).
features: [exponentiation]
---*/ ---*/
var arrayLike = {}; var arrayLike = {};

View File

@ -21,6 +21,7 @@ info: |
v. Else fromPresent is false, v. Else fromPresent is false,
1. Perform ? DeletePropertyOrThrow(O, to). 1. Perform ? DeletePropertyOrThrow(O, to).
vi. Decrease k by 1. vi. Decrease k by 1.
features: [exponentiation]
---*/ ---*/
function StopUnshift() {} function StopUnshift() {}

View File

@ -12,6 +12,7 @@ info: |
4. If argCount > 0, then 4. If argCount > 0, then
a. If len+argCount > 2^53-1, throw a TypeError exception. a. If len+argCount > 2^53-1, throw a TypeError exception.
b. ... b. ...
features: [exponentiation]
---*/ ---*/
var arrayLike = {}; var arrayLike = {};

View File

@ -15,7 +15,7 @@ info: |
5. Else, let actualIndex be len + relativeIndex. 5. Else, let actualIndex be len + relativeIndex.
6. If actualIndex >= len or actualIndex < 0, throw a *RangeError* exception. 6. If actualIndex >= len or actualIndex < 0, throw a *RangeError* exception.
... ...
features: [change-array-by-copy] features: [change-array-by-copy, exponentiation]
---*/ ---*/
assert.throws(RangeError, function() { assert.throws(RangeError, function() {

View File

@ -15,7 +15,7 @@ info: |
5. Else, let actualIndex be len + relativeIndex. 5. Else, let actualIndex be len + relativeIndex.
6. If actualIndex >= len or actualIndex < 0, throw a *RangeError* exception. 6. If actualIndex >= len or actualIndex < 0, throw a *RangeError* exception.
... ...
features: [change-array-by-copy] features: [change-array-by-copy, exponentiation]
---*/ ---*/
[0, 1, 2].with(-3, 7); [0, 1, 2].with(-3, 7);

View File

@ -17,7 +17,7 @@ info: |
ArrayCreate ( length [, proto ] ) ArrayCreate ( length [, proto ] )
1. If length > 2 ** 32 - 1, throw a RangeError exception. 1. If length > 2 ** 32 - 1, throw a RangeError exception.
features: [change-array-by-copy] features: [change-array-by-copy, exponentiation]
---*/ ---*/
// Object with large "length" property // Object with large "length" property

View File

@ -12,7 +12,7 @@ description: >
If n equals 4, return true. If n equals 4, return true.
If n equals 8, return AR.[[IsLockFree8]]. If n equals 8, return AR.[[IsLockFree8]].
Return false. Return false.
features: [Atomics] features: [Atomics, Array.prototype.includes]
---*/ ---*/
// These are the only counts that we care about tracking. // These are the only counts that we care about tracking.

View File

@ -17,7 +17,7 @@ info: |
set set
includes: [nativeFunctionMatcher.js, wellKnownIntrinsicObjects.js] includes: [nativeFunctionMatcher.js, wellKnownIntrinsicObjects.js]
features: [arrow-function, Reflect] features: [arrow-function, Reflect, Array.prototype.includes]
---*/ ---*/
const visited = []; const visited = [];

View File

@ -11,7 +11,7 @@ info: |
Append p as the last element of entries. Append p as the last element of entries.
... ...
features: [BigInt, Symbol, TypedArray, WeakRef] features: [BigInt, Symbol, TypedArray, WeakRef, exponentiation]
---*/ ---*/

View File

@ -4,7 +4,7 @@
/*--- /*---
description: BigInt to Number conversion description: BigInt to Number conversion
esid: pending esid: pending
features: [BigInt] features: [BigInt, exponentiation]
---*/ ---*/
assert.sameValue(Number(0n), 0); assert.sameValue(Number(0n), 0);

View File

@ -14,7 +14,7 @@ info: |
6. Let trap be ? GetMethod(handler, "has"). 6. Let trap be ? GetMethod(handler, "has").
7. If trap is undefined, then 7. If trap is undefined, then
a. Return ? target.[[HasProperty]](P). a. Return ? target.[[HasProperty]](P).
features: [Proxy, Symbol, Reflect] features: [Proxy, Symbol, Reflect, Array.prototype.includes]
---*/ ---*/
var stringTarget = new Proxy(new String("str"), {}); var stringTarget = new Proxy(new String("str"), {});

View File

@ -23,6 +23,7 @@ info: |
i. If _global_ is *true* or _sticky_ is *true*, then i. If _global_ is *true* or _sticky_ is *true*, then
1. Perform ? Set(_R_, *"lastIndex"*, *+0*<sub>𝔽</sub>, *true*). 1. Perform ? Set(_R_, *"lastIndex"*, *+0*<sub>𝔽</sub>, *true*).
ii. Return *null*. ii. Return *null*.
features: [exponentiation]
---*/ ---*/
var R_g = /./g, R_y = /./y, R_gy = /./gy; var R_g = /./g, R_y = /./y, R_gy = /./gy;

View File

@ -14,7 +14,7 @@ info: |
Append value as the last element of entries. Append value as the last element of entries.
... ...
features: [BigInt, Symbol, TypedArray, WeakRef] features: [BigInt, Symbol, TypedArray, WeakRef, exponentiation]
---*/ ---*/

View File

@ -25,7 +25,7 @@ info: |
The host may use this hook to add properties to the ShadowRealm's global The host may use this hook to add properties to the ShadowRealm's global
object. Those properties must be configurable. object. Those properties must be configurable.
features: [ShadowRealm] features: [ShadowRealm, Array.prototype.includes]
---*/ ---*/
assert.sameValue( assert.sameValue(

View File

@ -5,7 +5,7 @@
esid: sec-temporal.timezone.prototype.getpossibleinstantsfor esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
description: > description: >
Call getPossibleInstantsFor with values near the date/time limit and a fixed offset. Call getPossibleInstantsFor with values near the date/time limit and a fixed offset.
features: [Temporal] features: [Temporal, exponentiation]
---*/ ---*/
const oneHour = 1n * 60n * 60n * 1000n**3n; const oneHour = 1n * 60n * 60n * 1000n**3n;

View File

@ -7,6 +7,7 @@ description: >
Tests that the options numberingSystem and calendar are mapped Tests that the options numberingSystem and calendar are mapped
to lower case properly. to lower case properly.
author: Caio Lima author: Caio Lima
features: [Array.prototype.includes]
---*/ ---*/
let defaultLocale = new Intl.DateTimeFormat().resolvedOptions().locale; let defaultLocale = new Intl.DateTimeFormat().resolvedOptions().locale;

View File

@ -8,6 +8,7 @@ description: >
Checks the output of 'relatedYear' and 'yearName' type, and Checks the output of 'relatedYear' and 'yearName' type, and
the choice of pattern based on calendar. the choice of pattern based on calendar.
locale: [zh-u-ca-chinese] locale: [zh-u-ca-chinese]
features: [Array.prototype.includes]
---*/ ---*/
const df = new Intl.DateTimeFormat("zh-u-ca-chinese", {year: "numeric"}); const df = new Intl.DateTimeFormat("zh-u-ca-chinese", {year: "numeric"});

View File

@ -4,7 +4,7 @@
/*--- /*---
esid: sec-date-time-style-pattern esid: sec-date-time-style-pattern
description: Checks basic handling of timeStyle and dateStyle. description: Checks basic handling of timeStyle and dateStyle.
features: [Intl.DateTimeFormat-datetimestyle] features: [Intl.DateTimeFormat-datetimestyle, Array.prototype.includes]
locale: [en-US] locale: [en-US]
---*/ ---*/

View File

@ -3,6 +3,7 @@
/*--- /*---
description: Tests for existance and behavior of Intl.DateTimeFormat.prototype.formatToParts description: Tests for existance and behavior of Intl.DateTimeFormat.prototype.formatToParts
features: [Array.prototype.includes]
---*/ ---*/
function reduce(parts) { function reduce(parts) {

View File

@ -7,7 +7,7 @@ description: >
Intl.DateTimeFormat.prototype.resolvedOptions properly Intl.DateTimeFormat.prototype.resolvedOptions properly
reflect hourCycle settings when using timeStyle. reflect hourCycle settings when using timeStyle.
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [Intl.DateTimeFormat-datetimestyle] features: [Intl.DateTimeFormat-datetimestyle, Array.prototype.includes]
---*/ ---*/
const hcValues = ["h11", "h12", "h23", "h24"]; const hcValues = ["h11", "h12", "h23", "h24"];

View File

@ -10,6 +10,7 @@ info: |
12.4.5 Intl.DateTimeFormat.prototype.resolvedOptions() 12.4.5 Intl.DateTimeFormat.prototype.resolvedOptions()
includes: [propertyHelper.js] includes: [propertyHelper.js]
features: [Array.prototype.includes]
---*/ ---*/
/* Values passed via unicode extension key work */ /* Values passed via unicode extension key work */

View File

@ -22,7 +22,7 @@ info: |
Intl.DateTimeFormat objects. The list must include "gregory". Intl.DateTimeFormat objects. The list must include "gregory".
includes: [testIntl.js] includes: [testIntl.js]
locale: [en] locale: [en]
features: [Intl-enumeration] features: [Intl-enumeration, Array.prototype.includes]
---*/ ---*/
const calendars = Intl.supportedValuesOf("calendar"); const calendars = Intl.supportedValuesOf("calendar");

View File

@ -22,7 +22,7 @@ info: |
Intl.DateTimeFormat objects. The list must include "gregory". Intl.DateTimeFormat objects. The list must include "gregory".
includes: [testIntl.js] includes: [testIntl.js]
locale: [en] locale: [en]
features: [Intl-enumeration, Intl.DisplayNames-v2] features: [Intl-enumeration, Intl.DisplayNames-v2, Array.prototype.includes]
---*/ ---*/
const calendars = Intl.supportedValuesOf("calendar"); const calendars = Intl.supportedValuesOf("calendar");

View File

@ -21,7 +21,7 @@ info: |
calendars for which the implementation provides the functionality of calendars for which the implementation provides the functionality of
Intl.DateTimeFormat objects. The list must include "gregory". Intl.DateTimeFormat objects. The list must include "gregory".
includes: [compareArray.js] includes: [compareArray.js]
features: [Intl-enumeration, Intl.Locale] features: [Intl-enumeration, Intl.Locale, Array.prototype.includes]
---*/ ---*/
const calendars = Intl.supportedValuesOf("calendar"); const calendars = Intl.supportedValuesOf("calendar");

View File

@ -23,7 +23,7 @@ info: |
Intl.Collator objects. Intl.Collator objects.
includes: [testIntl.js] includes: [testIntl.js]
locale: [en, ar, de, es, ko, ln, si, sv, zh] locale: [en, ar, de, es, ko, ln, si, sv, zh]
features: [Intl-enumeration] features: [Intl-enumeration, Array.prototype.includes]
---*/ ---*/
const collations = Intl.supportedValuesOf("collation"); const collations = Intl.supportedValuesOf("collation");

View File

@ -22,7 +22,7 @@ info: |
collations for which the implementation provides the functionality of collations for which the implementation provides the functionality of
Intl.Collator objects. Intl.Collator objects.
includes: [compareArray.js] includes: [compareArray.js]
features: [Intl-enumeration, Intl.Locale] features: [Intl-enumeration, Intl.Locale, Array.prototype.includes]
---*/ ---*/
const collations = Intl.supportedValuesOf("collation"); const collations = Intl.supportedValuesOf("collation");

View File

@ -23,7 +23,7 @@ info: |
for which the implementation provides the functionality of Intl.DisplayNames for which the implementation provides the functionality of Intl.DisplayNames
and Intl.NumberFormat objects. and Intl.NumberFormat objects.
locale: [en] locale: [en]
features: [Intl-enumeration, Intl.DisplayNames] features: [Intl-enumeration, Intl.DisplayNames, Array.prototype.includes]
---*/ ---*/
const currencies = Intl.supportedValuesOf("currency"); const currencies = Intl.supportedValuesOf("currency");

View File

@ -25,7 +25,7 @@ info: |
value of every row of Table 4, except the header row. value of every row of Table 4, except the header row.
includes: [testIntl.js] includes: [testIntl.js]
locale: [en] locale: [en]
features: [Intl-enumeration] features: [Intl-enumeration, Array.prototype.includes]
---*/ ---*/
const numberingSystems = Intl.supportedValuesOf("numberingSystem"); const numberingSystems = Intl.supportedValuesOf("numberingSystem");

View File

@ -25,7 +25,7 @@ info: |
value of every row of Table 4, except the header row. value of every row of Table 4, except the header row.
includes: [testIntl.js] includes: [testIntl.js]
locale: [en] locale: [en]
features: [Intl-enumeration] features: [Intl-enumeration, Array.prototype.includes]
---*/ ---*/
const numberingSystems = Intl.supportedValuesOf("numberingSystem"); const numberingSystems = Intl.supportedValuesOf("numberingSystem");

View File

@ -25,7 +25,7 @@ info: |
value of every row of Table 4, except the header row. value of every row of Table 4, except the header row.
includes: [testIntl.js] includes: [testIntl.js]
locale: [en] locale: [en]
features: [Intl-enumeration, Intl.RelativeTimeFormat] features: [Intl-enumeration, Intl.RelativeTimeFormat, Array.prototype.includes]
---*/ ---*/
const numberingSystems = Intl.supportedValuesOf("numberingSystem"); const numberingSystems = Intl.supportedValuesOf("numberingSystem");

View File

@ -24,7 +24,7 @@ info: |
Intl.RelativeTimeFormat objects. The list must include the Numbering System Intl.RelativeTimeFormat objects. The list must include the Numbering System
value of every row of Table 4, except the header row. value of every row of Table 4, except the header row.
includes: [testIntl.js] includes: [testIntl.js]
features: [Intl-enumeration] features: [Intl-enumeration, Array.prototype.includes]
---*/ ---*/
const numberingSystems = Intl.supportedValuesOf("numberingSystem"); const numberingSystems = Intl.supportedValuesOf("numberingSystem");

View File

@ -22,7 +22,7 @@ info: |
identifiers listed in every row of Table 1, except the header row. identifiers listed in every row of Table 1, except the header row.
includes: [testIntl.js] includes: [testIntl.js]
locale: [en] locale: [en]
features: [Intl-enumeration] features: [Intl-enumeration, Array.prototype.includes]
---*/ ---*/
const units = Intl.supportedValuesOf("unit"); const units = Intl.supportedValuesOf("unit");

View File

@ -21,7 +21,7 @@ info: |
undefined as comparefn, that contains the unique values of simple unit undefined as comparefn, that contains the unique values of simple unit
identifiers listed in every row of Table 1, except the header row. identifiers listed in every row of Table 1, except the header row.
includes: [compareArray.js, testIntl.js] includes: [compareArray.js, testIntl.js]
features: [Intl-enumeration] features: [Intl-enumeration, Array.prototype.includes]
---*/ ---*/
const units = Intl.supportedValuesOf("unit"); const units = Intl.supportedValuesOf("unit");

View File

@ -14,7 +14,7 @@ info: |
Unicode Locale Identifier, section 3.2, sorted in descending preference of Unicode Locale Identifier, section 3.2, sorted in descending preference of
those in common use for string comparison in locale. The values "standard" those in common use for string comparison in locale. The values "standard"
and "search" must be excluded from list. and "search" must be excluded from list.
features: [Intl.Locale,Intl.Locale-info] features: [Intl.Locale, Intl.Locale-info, Array.prototype.includes]
---*/ ---*/
const output = new Intl.Locale('en').collations; const output = new Intl.Locale('en').collations;

View File

@ -13,7 +13,7 @@ info: |
be lower case String values indicating either the 12-hour format ("h11", be lower case String values indicating either the 12-hour format ("h11",
"h12") or the 24-hour format ("h23", "h24"), sorted in descending preference "h12") or the 24-hour format ("h23", "h24"), sorted in descending preference
of those in common use for date and time formatting in locale. of those in common use for date and time formatting in locale.
features: [Intl.Locale,Intl.Locale-info] features: [Intl.Locale, Intl.Locale-info, Array.prototype.includes]
---*/ ---*/
const output = new Intl.Locale('en').hourCycles; const output = new Intl.Locale('en').hourCycles;

View File

@ -6,6 +6,7 @@ esid: sec-initializenumberformat
description: > description: >
Tests that the options numberingSystem are mapped to lower case. Tests that the options numberingSystem are mapped to lower case.
author: Caio Lima author: Caio Lima
features: [Array.prototype.includes]
---*/ ---*/
let defaultLocale = new Intl.NumberFormat().resolvedOptions().locale; let defaultLocale = new Intl.NumberFormat().resolvedOptions().locale;

View File

@ -7,6 +7,7 @@ description: >
Tests that Intl.PluralRules.prototype.resolvedOptions creates a new array Tests that Intl.PluralRules.prototype.resolvedOptions creates a new array
for the pluralCategories property on every call. for the pluralCategories property on every call.
includes: [propertyHelper.js, compareArray.js] includes: [propertyHelper.js, compareArray.js]
features: [Array.prototype.includes]
---*/ ---*/
const allowedValues = ["zero", "one", "two", "few", "many", "other"]; const allowedValues = ["zero", "one", "two", "few", "many", "other"];

View File

@ -8,7 +8,7 @@ info: |
Intl.Segmenter ([ locales [ , options ]]) Intl.Segmenter ([ locales [ , options ]])
3. Let _requestedLocales_ be ? CanonicalizeLocaleList(_locales_). 3. Let _requestedLocales_ be ? CanonicalizeLocaleList(_locales_).
features: [Intl.Segmenter] features: [Intl.Segmenter, Array.prototype.includes]
---*/ ---*/
const defaultLocale = new Intl.Segmenter().resolvedOptions().locale; const defaultLocale = new Intl.Segmenter().resolvedOptions().locale;

View File

@ -5,7 +5,7 @@
esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
description: > description: >
Test offset when nanoseconds are subtracted or added from DST transition. Test offset when nanoseconds are subtracted or added from DST transition.
features: [Temporal] features: [Temporal, exponentiation]
---*/ ---*/
// From <https://github.com/eggert/tz/blob/main/northamerica>: // From <https://github.com/eggert/tz/blob/main/northamerica>:

View File

@ -8,6 +8,7 @@ description: >
supported locales. supported locales.
author: Norbert Lindenberg author: Norbert Lindenberg
includes: [testIntl.js] includes: [testIntl.js]
features: [Array.prototype.includes]
---*/ ---*/
testWithIntlConstructors(function (Constructor) { testWithIntlConstructors(function (Constructor) {

View File

@ -3,6 +3,7 @@
// - src/assignment-target-type/invalid/direct.template // - src/assignment-target-type/invalid/direct.template
/*--- /*---
description: Static Semantics AssignmentTargetType, Return invalid. (Direct assignment) description: Static Semantics AssignmentTargetType, Return invalid. (Direct assignment)
features: [exponentiation]
flags: [generated] flags: [generated]
negative: negative:
phase: parse phase: parse

View File

@ -3,6 +3,7 @@
// - src/assignment-target-type/invalid/direct.template // - src/assignment-target-type/invalid/direct.template
/*--- /*---
description: Static Semantics AssignmentTargetType, Return invalid. (Direct assignment) description: Static Semantics AssignmentTargetType, Return invalid. (Direct assignment)
features: [exponentiation]
flags: [generated] flags: [generated]
negative: negative:
phase: parse phase: parse

View File

@ -3,6 +3,7 @@
// - src/assignment-target-type/invalid/direct.template // - src/assignment-target-type/invalid/direct.template
/*--- /*---
description: Static Semantics AssignmentTargetType, Return invalid. (Direct assignment) description: Static Semantics AssignmentTargetType, Return invalid. (Direct assignment)
features: [exponentiation]
flags: [generated] flags: [generated]
negative: negative:
phase: parse phase: parse

View File

@ -4,6 +4,7 @@
/*--- /*---
description: Static Semantics AssignmentTargetType, Return invalid. (ParenthesizedExpression) description: Static Semantics AssignmentTargetType, Return invalid. (ParenthesizedExpression)
esid: sec-grouping-operator-static-semantics-assignmenttargettype esid: sec-grouping-operator-static-semantics-assignmenttargettype
features: [exponentiation]
flags: [generated] flags: [generated]
negative: negative:
phase: parse phase: parse

View File

@ -4,6 +4,7 @@
/*--- /*---
description: Static Semantics AssignmentTargetType, Return invalid. (ParenthesizedExpression) description: Static Semantics AssignmentTargetType, Return invalid. (ParenthesizedExpression)
esid: sec-grouping-operator-static-semantics-assignmenttargettype esid: sec-grouping-operator-static-semantics-assignmenttargettype
features: [exponentiation]
flags: [generated] flags: [generated]
negative: negative:
phase: parse phase: parse

Some files were not shown because too many files have changed in this diff Show More