Commit Graph

364 Commits

Author SHA1 Message Date
Philip Chimento 84f820258b harness: Remove hidden-constructors harness file
The objects it provides are also available in another harness file,
wellKnownIntrinsicObjects.js. There's no point in duplicating that in the
harness. Rewrite each test that used hidden-constructors.js to use
getWellKnownIntrinsicObject instead.
2025-03-11 18:14:55 -07:00
Philip Chimento 2af27af915 harness: Add a function to get well-known intrinsic objects
wellKnownIntrinsicObjects.js now exposes a getWellKnownIntrinsicObject()
function which returns the object corresponding to a key like %Array%. If
the object is not provided by the implementation, or not accessible, it
throws a Test262Error. This is so that tests depending on that intrinsic
object can easily fail.
2025-03-11 18:14:55 -07:00
Philip Chimento e133564cfa harness: Update list of well-known intrinsics
Looks like this list hasn't been updated in a while. Add
%AsyncGeneratorPrototype%, %GeneratorPrototype%, %Iterator%,
%IteratorHelperPrototype%, and %WrapForValidIteratorPrototype%.

%IteratorPrototype% is no longer a well-known intrinsic; I guess it was
removed because ever since iterator helpers it's accessible as
%Iterator.prototype%.

%Iterator% is available as the global property Iterator, but include a
fallback for implementations that haven't yet implemented iterator
helpers.
2025-03-11 18:14:55 -07:00
Philip Chimento 18ce488401 harness: Correct sources of %{Async,}GeneratorFunction%
As far as I can tell these are wrong, giving %GeneratorFunction.prototype%
and %AsyncGeneratorFunction.prototype% instead. These new expressions are
how MDN claims you can get the intrinsics.
2025-03-11 18:14:55 -07:00
Philip Chimento a4536dc65f harness: Add clarifying comments about inaccessible intrinsics
As far as I know, %AsyncFromSyncIteratorPrototype% and
%ForInIteratorPrototype% are not (and not intended to be) accessible to
ECMAScript user code, so they are impossible to test directly. Add a
clarifying comment, and make the source expression consistent ('' vs.
'undefined').
2025-03-11 18:14:55 -07:00
Philip Chimento 44d71fbe7d Temporal: Test coverage for rejecting too large dates in PlainMonthDay strings
This adds coverage for the normative change in
https://github.com/tc39/proposal-temporal/pull/3054, which specifies that
implementations must throw on out-of-range dates in RFC 9557 strings for
non-ISO calendars.
2025-02-21 18:47:44 -08:00
Ms2ger a37cb9c206 Update staging/sm 2025-01-13 17:17:15 +01:00
André Bargull 7bc853660a Temporal: Coverage for Temporal.PlainYearMonth 2025-01-09 16:33:51 -08:00
André Bargull 900c80295e Don't call assert.deepEqual.format when the assertion will succeed 2024-12-18 16:15:40 +01:00
Ms2ger 6ee9579acb Import tests from SpiderMonkey 2024-12-09 13:35:08 -08:00
Ms2ger 6ec99623c2 Use an IIFE in deepEqual.js
This code currently prevents tests from using |var join|.
2024-12-09 13:35:08 -08:00
Ms2ger 62d48cf9ed Check for identity of functions in deepEqual 2024-12-09 13:35:08 -08:00
André Bargull e7024c1761 Disable grouping for numeric units in Intl.DurationFormat 2024-11-07 14:19:18 -08:00
Richard Gibson c54b89e92e
harness/deepEqual.js: Improve formatting and align with base assert (#4253) 2024-10-16 16:59:47 -04:00
Peter Hoddie d6155b6ef2 add verifyPrimordialProperty 2024-10-11 12:45:30 -07:00
Linus Groh f1a670ff59 Fix compareArray.js harness tests
Also a typo in one of the messages.
2024-09-27 11:43:57 +02:00
Marko Lahma 72ff7d1269 Add names for expected outcomes in compareArray.js 2024-09-25 14:02:32 -07:00
Philip Chimento 0c784ef954 Remove async-gc harness
This is now unused, and there is no way to implement it without using the
cleanupSome proposal (see previous commit) which has been withdrawn.

Closes: #3920
2024-09-25 10:06:15 -07:00
Richard Gibson 0c7af4685f harness/propertyHelper.js: Check the new property value chosen by isWritable for collision 2024-09-23 15:14:59 -07:00
Richard Gibson 07a2c2501e harness/propertyHelper.js: Capture primordials that might be affected at runtime by verification
Ref https://github.com/tc39/test262/pull/4234#discussion_r1771684267
2024-09-23 15:14:59 -07:00
Ioanna M Dimitriou H fc49c9ce16
Move function MayNeedBigInt to RAB helper file and inline WriteToTypedArray. (#4211) 2024-09-03 16:23:23 +02:00
José Julián Espina dde3050bdb
Fix test regression in asyncHelpers.js (#4197) 2024-08-19 12:33:17 -04:00
Linus Groh 984df1f3db Remove unused harness/timer.js 2024-08-14 08:37:46 -07:00
Richard Gibson feb400c685 harness/asyncHelpers.js: Update throwsAsync to not succeed on a bad thenable
Fixes #4186
2024-08-02 08:52:05 +02:00
Richard Gibson f83c1b9387 harness/asyncHelpers.js: Further reduce the size of assert.throwsAsync 2024-08-01 12:10:32 -04:00
Richard Gibson fa3d0246e7 harness/asyncHelpers.js: Reduce the size of assert.throwsAsync 2024-08-01 11:42:34 -04:00
Richard Gibson 0b61e98564 harness/asyncHelpers.js: Clean up assert.throwsAsync failure messages
* Remove mention of an "inner" promise/thenable.
2024-08-01 11:41:25 -04:00
Richard Gibson b87eaf9ac3 harness/asyncHelpers.js: Fix an assert.throwsAsync failure message typo 2024-08-01 11:39:10 -04:00
Richard Gibson 0631e2111b harness/asyncHelpers.js: Isolate assert.throwsAsync failure conditions 2024-08-01 11:38:06 -04:00
Richard Gibson b22b500f24 harness/asyncHelpers.js: Refactor assert.throwsAsync to fail fast 2024-08-01 11:38:06 -04:00
Richard Gibson 1b34a1c484 harness/asyncHelpers.js: Add doc comments 2024-08-01 11:38:06 -04:00
Philip Chimento 3b89be9c5d Temporal: Fix Japanese era test
This mistakenly used a previous name for the helper function. Also adds
a couple of debugging messages.
2024-07-29 14:17:24 +02:00
Paul Bakker e7d9c0d698 Follow-up to #4165
Added catch to achieve the entire goal of the previous PR to prevent the
harness from loading if 'class' syntax isn't supported
2024-07-25 09:29:40 -07:00
Paul Bakker 79df6ec2e1 Make resizableArrayBufferUtils not depend on syntax that may not be
supported
2024-07-24 12:52:18 -07:00
Paul Bakker b6c2f55954 Remove unneeded /u flag within harness/nativeFunctionMatcher 2024-07-24 10:46:30 -07:00
Philip Chimento 50b023e6c9
Fix syntax error from #4164 (#4167)
* Fix syntax error from #4164

Function statements require a name.

See #4166

* Apply suggestions from code review

Co-authored-by: Jordan Harband <ljharb@gmail.com>

---------

Co-authored-by: Jordan Harband <ljharb@gmail.com>
2024-07-24 10:29:51 -07:00
Paul Bakker f55e99796f
Prevent harness code not loading when async/generator/asyncGenerator not supported (#4164)
* Dont throw when async/generato/asyncGenerator not supported

* Apply suggestions from code review
2024-07-24 09:18:02 -07:00
Paul Bakker 0a8622de68 Dont use const in for (of) loops, for when those aren't properly
supported
2024-07-23 15:40:13 -07:00
André Bargull 16322d384a Allow alternative era names
Temporal doesn't specify concrete era names, so tests shouldn't assert
for example that the era code of the current Gregorian era is `"ce"`. We
still want to validate the era names somehow however, so allow alternative
era names using the era codes from the "Intl era and monthCode" proposal.
2024-07-10 07:59:20 -07:00
Philip Chimento efc7424844 Temporal: Don't use getISOFields() in other tests
Previously getISOFields() was used to get the exact value of the
[[Calendar]] and [[TimeZone]] internal slots, as well as to get the
reference ISO year for PlainMonthDay and reference ISO day for
PlainYearMonth.

Use calendarId and timeZoneId for the former and toString() for the
latter.
2024-07-05 10:43:53 +02:00
Philip Chimento 9671c4a613 Temporal: Test adjustments for removing calendar and time zone objects 2024-07-05 10:43:53 +02:00
Philip Chimento 5cd7e9077d Temporal: Remove calendar and time zone observers
These are no longer possible without custom objects. Also add an exception
for calendar and timeZone properties in property bag observers so they are
not treated as objects.
2024-07-05 10:43:53 +02:00
Philip Chimento 27bc974287 Temporal: Replace TemporalHelpers.specificOffsetTimeZone with offset strings 2024-07-05 10:43:53 +02:00
Philip Chimento 0a1cb1307f Temporal: Edit test descriptions that refer to Calendar and TimeZone objects 2024-07-05 10:43:53 +02:00
Philip Chimento 372527e572 Temporal: Don't pass custom calendar in helper tests
This is no longer necessary if there are no calendar objects.
2024-07-05 10:43:53 +02:00
Philip Chimento debd22a2ad Temporal: Remove tests that throw on calendar or time zone method accesses
Many tests tested some functionality while asserting that there were no
calls of calendar or time zone methods. We can continue testing the
functionality, but there are no more methods to call, so we can delete
those parts of the tests.
2024-07-05 10:43:53 +02:00
Philip Chimento 7d970fbe4e Temporal: Remove fake West Coast and Samoa time zones from TemporalHelpers
It's no longer possible to fake built-in time zones using custom objects.
So testing DST shifts will have to use real built-in time zones. Replace
TemporalHelpers.springForwardFallBackTimeZone with America/Vancouver (it
was modelled on the DST transitions in 2000) and
TemporalHelpers.crossDateLineTimeZone with Pacific/Apia (it was modelled
on the 2011 switch to the other side of the international date line.)

These tests have to move to the intl402/ folder since non-Intl-aware
implementations are allowed (but not required) to support any built-in
time zones other than UTC.
2024-07-05 10:43:53 +02:00
Philip Chimento c728e6d89e Temporal: Fix tests that unnecessarily create TimeZone or Calendar instances
In many cases we created a TimeZone or Calendar instance from a built-in
time zone or calendar. These tests can be trivially adapted to just use
the string ID.
2024-07-05 10:43:53 +02:00
Linus Groh a82f5382ff Remove 'AsyncArrowFunction' test
There is no such hidden constructor, it's the same as the hidden
AsyncFunction constructor. In other words:

```js
Object.getPrototypeOf(async () => {}).constructor ===
Object.getPrototypeOf(async function () {}).constructor
```

Also add a test to ensure that %AsyncFunction.prototype% is indeed the
prototype of an async arrow function.

Closes #4044.
2024-07-04 11:03:23 +02:00
Philip Chimento 6626b60df6 Temporal: Make U+2212 MINUS SIGN invalid in ISO strings
These are the test adjustments corresponding to the normative PR
https://github.com/tc39/ecma262/pull/3334 which reached consensus at the
June 2024 TC39 meeting.
2024-07-03 08:50:57 -07:00