Skip to content

Commit 318059e

Browse files
authored
Merge branch 'main' into testing-plan-guide
2 parents d16f1ed + 4b17ad3 commit 318059e

File tree

6,172 files changed

+84586
-110222
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

6,172 files changed

+84586
-110222
lines changed

.github/workflows/esmeta-test262.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- name: download esmeta
2222
run: |
2323
mkdir -p "${ESMETA_HOME}"
24-
git clone --branch v0.4.1 --depth 1 https://github.com/es-meta/esmeta.git "${ESMETA_HOME}"
24+
git clone --branch v0.4.2 --depth 1 https://github.com/es-meta/esmeta.git "${ESMETA_HOME}"
2525
cd "${ESMETA_HOME}" && git submodule update --init --depth 1
2626
- name: build esmeta
2727
working-directory: ${{ env.ESMETA_HOME }}

.hgignore

-5
This file was deleted.

CONTRIBUTING.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,9 @@ This key is for boolean properties associated with the test.
209209
- **raw** - execute the test without any modification (no harness files will be
210210
included); necessary to test the behavior of directive prologue; implies
211211
`noStrict`
212-
- **async** - defer interpretation of test results until after the invocation
213-
of the global `$DONE` function
212+
- **async** - defer interpretation of test results until settlement of an
213+
`asyncTest` callback promise or manual invocation of `$DONE`; refer to
214+
[Writing Asynchronous Tests](#writing-asynchronous-tests) for details
214215
- **generated** - informative flag used to denote test files that were
215216
created procedurally using the project's test generation tool; refer to
216217
[Procedurally-generated tests](#procedurally-generated-tests)
@@ -346,7 +347,7 @@ Consumers that violate the spec by throwing exceptions for parsing errors at run
346347

347348
An asynchronous test is any test that include the `async` frontmatter flag.
348349

349-
For most asynchronous tests, the `asyncHelpers.js` harness file includes an `asyncTest` method that precludes needing to interact with the test runner via the `$DONE` function. `asyncTest` takes an async function and will ensure that `$DONE` is called properly if the async function returns or throws an exception. For example, a test written using `asyncTest` might look like:
350+
Most asynchronous tests should include the `asyncHelpers.js` harness file and call its `asyncTest` function **exactly once**, with a callback returning a promise that indicates test failure via rejection and otherwise fulfills upon test conclusion (such as an async function).
350351

351352
```js
352353
/*---

INTERPRETING.md

+7
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ properties of the global scope prior to test execution.
4242
the test runner. This is used as a communication mechanism for asynchronous
4343
tests (via the `async` flag, described below).
4444
- **`$262`** An ordinary object with the following properties:
45+
- **`AbstractModuleSource`** - a reference to the `%AbstractModuleSource%` constructor which does not appear as a property of the global object.
4546
- **`createRealm`** - a function which creates a new [ECMAScript
4647
Realm](https://tc39.github.io/ecma262/#sec-code-realms),
4748
defines this API on the new realm's global object, and returns the `$262`
@@ -160,6 +161,12 @@ located at `test/language/import/nested/dep.js`.
160161

161162
Files bearing a name ending in `.json` are intended to be interpreted as JSON.
162163

164+
Implementers should resolve the specifier `<module source>` to a module that
165+
provides a valid [Module Source](https://tc39.es/proposal-source-phase-imports/#sec-module-source-objects),
166+
such as a [WebAssembly module](https://webassembly.github.io/esm-integration/js-api/index.html#webassembly-module-record).
167+
Tests use `<module source>` specifier are guarded with a feature flag
168+
`source-phase-imports-module-source`.
169+
163170
### Staging
164171

165172
Tests in the `test/staging/` folder are expected to be executed just like all the other tests, in order to promote interoperability as soon as possible.

LICENSE

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
The << Software identified by reference to the Ecma Standard* ("Software)">> is protected by copyright and is being
1+
Test262: ECMAScript Test Suite ("Software") is protected by copyright and is being
22
made available under the "BSD License", included below. This Software may be subject to third party rights (rights
33
from parties other than Ecma International), including patent rights, and no licenses under such third party rights
44
are granted under this license even if the third party concerned is a member of Ecma International. SEE THE ECMA
5-
CODE OF CONDUCT IN PATENT MATTERS AVAILABLE AT http://www.ecma-international.org/memento/codeofconduct.htm FOR
5+
CODE OF CONDUCT IN PATENT MATTERS AVAILABLE AT https://www.ecma-international.org/ipr FOR
66
INFORMATION REGARDING THE LICENSING OF PATENT CLAIMS THAT ARE REQUIRED TO IMPLEMENT ECMA INTERNATIONAL STANDARDS*.
77

8-
Copyright (C) 2012-2013 Ecma International
8+
Copyright (C) 2012 Ecma International
99
All rights reserved.
1010

1111
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
@@ -25,4 +25,4 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT
2525
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
2626
DAMAGE.
2727

28-
* Ecma International Standards hereafter means Ecma International Standards as well as Ecma Technical Reports
28+
* Ecma International Standards hereafter means Ecma International Standards as well as Ecma Technical Reports

features.txt

+35-62
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@
1515
# https://github.com/tc39/proposal-intl-locale-info
1616
Intl.Locale-info
1717

18-
# FinalizationRegistry#cleanupSome
19-
# https://github.com/tc39/proposal-cleanup-some
20-
FinalizationRegistry.prototype.cleanupSome
21-
2218
# Intl.NumberFormat V3
2319
# https://github.com/tc39/proposal-intl-numberformat-v3
2420
Intl.NumberFormat-v3
@@ -27,32 +23,6 @@ Intl.NumberFormat-v3
2723
# https://github.com/tc39/proposal-regexp-legacy-features
2824
legacy-regexp
2925

30-
# Atomics.waitAsync
31-
# https://github.com/tc39/proposal-atomics-wait-async
32-
Atomics.waitAsync
33-
34-
# Import Attributes
35-
# https://github.com/tc39/proposal-import-attributes/
36-
import-attributes
37-
38-
# Import Assertions (Normative Optional, Deprecated)
39-
# This feature should not be implemented, but if it is it must
40-
# respect the specified behavior
41-
# https://github.com/tc39/proposal-import-attributes/
42-
import-assertions
43-
44-
# JSON modules
45-
# https://github.com/tc39/proposal-json-modules
46-
json-modules
47-
48-
# Resizable Arraybuffer
49-
# https://github.com/tc39/proposal-resizablearraybuffer
50-
resizable-arraybuffer
51-
52-
# ArrayBuffer transfer
53-
# https://github.com/tc39/proposal-arraybuffer-transfer
54-
arraybuffer-transfer
55-
5626
# Temporal
5727
# https://github.com/tc39/proposal-temporal
5828
Temporal
@@ -61,18 +31,10 @@ Temporal
6131
# https://github.com/tc39/proposal-realms
6232
ShadowRealm
6333

64-
# Object.groupBy & Map.groupBy
65-
# https://github.com/tc39/proposal-array-grouping
66-
array-grouping
67-
6834
# Intl.DurationFormat
6935
# https://github.com/tc39/proposal-intl-duration-format
7036
Intl.DurationFormat
7137

72-
# RegExp set notation + properties of strings
73-
# https://github.com/tc39/proposal-regexp-set-notation
74-
regexp-v-flag
75-
7638
# Decorators
7739
# https://github.com/tc39/proposal-decorators
7840
decorators
@@ -84,34 +46,13 @@ regexp-duplicate-named-groups
8446
# https://tc39.es/proposal-array-from-async/
8547
Array.fromAsync
8648

87-
# Well-formed Unicode strings
88-
# https://github.com/tc39/proposal-is-usv-string
89-
String.prototype.isWellFormed
90-
String.prototype.toWellFormed
91-
9249
# JSON.parse with source
9350
# https://github.com/tc39/proposal-json-parse-with-source
9451
json-parse-with-source
9552

96-
# Regular expression modifiers
97-
# https://github.com/tc39/proposal-regexp-modifiers
98-
regexp-modifiers
99-
100-
# Iterator Helpers
101-
# https://github.com/tc39/proposal-iterator-helpers
102-
iterator-helpers
103-
104-
# Promise.withResolvers
105-
# https://github.com/tc39/proposal-promise-with-resolvers
106-
promise-with-resolvers
107-
108-
# Promise.try
109-
# https://github.com/tc39/proposal-promise-try
110-
promise-try
111-
112-
# Set methods
113-
# https://github.com/tc39/proposal-set-methods
114-
set-methods
53+
# RegExp.escape
54+
# https://github.com/tc39/proposal-regex-escaping
55+
RegExp.escape
11556

11657
# Explicit Resource Management
11758
# https://github.com/tc39/proposal-explicit-resource-management
@@ -121,6 +62,24 @@ explicit-resource-management
12162
# https://github.com/tc39/proposal-float16array
12263
Float16Array
12364

65+
# Math.sumPrecise
66+
# https://github.com/tc39/proposal-math-sum
67+
Math.sumPrecise
68+
69+
# Source Phase Imports
70+
## https://github.com/tc39/proposal-source-phase-imports
71+
source-phase-imports
72+
## test262 special specifier
73+
source-phase-imports-module-source
74+
75+
# Uint8Array Base64
76+
# https://github.com/tc39/proposal-arraybuffer-base64
77+
uint8array-base64
78+
79+
# Atomics.pause
80+
# https://github.com/tc39/proposal-atomics-microwait
81+
Atomics.pause
82+
12483
## Standard language features
12584
#
12685
# Language features that have been included in a published version of the
@@ -138,6 +97,9 @@ Array.prototype.flat
13897
Array.prototype.flatMap
13998
Array.prototype.includes
14099
Array.prototype.values
100+
Atomics.waitAsync
101+
array-grouping
102+
arraybuffer-transfer
141103
arrow-function
142104
async-iteration
143105
async-functions
@@ -182,7 +144,9 @@ Float64Array
182144
generators
183145
globalThis
184146
hashbang
147+
import-attributes
185148
import.meta
149+
iterator-helpers
186150
Int8Array
187151
Int16Array
188152
Int32Array
@@ -200,6 +164,7 @@ Intl.Locale
200164
Intl.NumberFormat-unified
201165
Intl.RelativeTimeFormat
202166
Intl.Segmenter
167+
json-modules
203168
json-superset
204169
let
205170
logical-assignment-operators
@@ -217,6 +182,8 @@ Promise
217182
Promise.allSettled
218183
Promise.any
219184
Promise.prototype.finally
185+
promise-with-resolvers
186+
promise-try
220187
Proxy
221188
proxy-missing-checks # https://github.com/tc39/ecma262/pull/666
222189
Reflect
@@ -226,20 +193,26 @@ Reflect.setPrototypeOf
226193
regexp-dotall
227194
regexp-lookbehind
228195
regexp-match-indices
196+
regexp-modifiers
229197
regexp-named-groups
230198
regexp-unicode-property-escapes
199+
regexp-v-flag
200+
resizable-arraybuffer
231201
rest-parameters
232202
Set
203+
set-methods
233204
SharedArrayBuffer
234205
string-trimming
235206
String.fromCodePoint
236207
String.prototype.at
237208
String.prototype.endsWith
238209
String.prototype.includes
210+
String.prototype.isWellFormed
239211
String.prototype.matchAll
240212
String.prototype.replaceAll
241213
String.prototype.trimEnd
242214
String.prototype.trimStart
215+
String.prototype.toWellFormed
243216
super
244217
Symbol
245218
symbols-as-weakmap-keys

harness/async-gc.js

-57
This file was deleted.

0 commit comments

Comments
 (0)