Commit Graph

6684 Commits

Author SHA1 Message Date
Ioanna M Dimitriou H a507aa01de
RAB: Integrate staging tests for the .filter method (#4125)
* Import relevant files from #3888

* Removing parts in resizableArrayBufferUtils.js and adding it in includes,
while adjusting usage of CollectValuesAndResize and applying review changes
from PRs for previously tested methods.

* Addresses review comment removing forgoten onlyStrict flag

a62d978ca6 (r1663298683)
2024-07-04 08:35:13 -07:00
Peter Hoddie e4f4abdcb2
Compatibility with Hardened JavaScript (#4088)
This PR proposes changes to existing test262 tests to allow them to pass under Hardened JavaScript (see Secure ECMAScript proposal and Hardened JavaScript). Moddable uses Hardened JavaScript for JavaScript runtimes on resource constrained embedded devices, including those targeted by ECMA-419.

The changes fall into four groups:

1. Replace use of new Date() with new Date(1970). Scripts running inside a Compartment cannot retrieve the current time, so new Date() throws but new Date(1970) succeeds. Very few tests need the current time, but instead simply need a Date instance.
2. Use Object.defineProperty instead of setting existing built-in properties directly, such as toString and toValue. In Hardened JavaScript, prototypes of built-in objects are frozen. Consequently, setting properties of an instance that exist on the prototype throw (Hardened JavaScript is always in strict mode).
3. Eliminate use of Math.random(). Scripts running inside a Compartment cannot generate random numbers. One test identified so far uses Math.random() in a way that can easily be replaced with a counter.
4. Narrow the scope of exception tests. Consider the following

assert.throws(TypeError, () => {
  var s1 = new Date();
  s1.toString = Boolean.prototype.toString;
  s1.toString();
});

This test passes, but only because new Date() fails by throwing a TypeError. If the invocation of the Date constructor is resolved by (1) above, then the assignment to toString fails as per (2) above. The script should be modified as below to ensure that assert.throws only tests the intended statement, s1.toString(). The modified script tests the intended functionality and passes under Hardened JavaScript

var s1 = new Date(1970);
Object.defineProperty(s1, "toString", {
  value: Boolean.prototype.toString
});
assert.throws(TypeError, () => {
  s1.toString();
});

This is an initial PR to begin the process of adapting test262 for use with Hardened JavaScript. Further changes are expected, with the vast majority likely to fall into the four groups described above.

Thank you to gibson042, kriskowal, and erights for their advice on this work.
2024-07-04 08:19:23 -07:00
Philip Chimento 3f805a1383 Temporal: Test calendar canonicalization in Temporal
Following the upstream ECMA-402 change tested in the previous commit, add
test coverage for the corresponding functionality in Temporal. Fix one
test that was erroneous.
2024-07-04 11:14:16 +02:00
Philip Chimento 31a20380b0 Intl: Test calendar canonicalization in Intl.DateTimeFormat constructor
This ECMA-402 change is already from several years ago, but lacked test
coverage: https://github.com/tc39/ecma402/pull/418
2024-07-04 11:14:16 +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
Kevin Gibbons 3d5c52e112
add tests for Math.sumPrecise (#4049)
* add tests for Math.sumPrecise

* add feature

* I hate yaml

* fix writability check
2024-07-03 08:56:34 -07: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
Philip Chimento 7c985a4fd9 Make U+2212 MINUS SIGN an invalid sign character for offset time zone IDs
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
Ioanna M Dimitriou H d2596e2651
RAB: Integrate staging tests for the .every method (#4074)
* RAB: Integrate staging tests for the .every method
of Array.prototype and TypedArray.prototype

This is part of PR #3888 to make reviewing easier.
Includes changes to use the helper ./harness/resizableArrayBufferUtils.js

* Added missing includes

* Removed unnecessary function call.

* Apply suggestions from code review

* Applied review suggestion to the rest of the files

* Addressed forgotten review comment noting some files are missing.

https://github.com/tc39/test262/pull/4074#pullrequestreview-2046589557

Adds forgotten tests from #3888

* Addresses review comment.

* Fixed forgotten rename

* Simplify the tests and add documentation.

New approach replaces ...Helper with CollectResize to make the tests easier to understand.
In particular:
- Replaced the need for '...Helper' abstractions with a more descriptive
  function 'ResizeBufferMidIteration', which the .every method can call
  directly.
- Moved 'let values' back outside of the loops, together with a function
  definition 'ResizeBufferMidIteration' to persist the side effects that
  'CollectValuesAndResize' has on 'values' but without having to define
  this inside every loop.
  + So this reverts commit d9a2bac41f87f0964a43d34c6f349b6d78401633 and
  + this reverts commit 0bc2d66335671cac56912981b73c7900bf309cee.
- Added documentation.

* Documentation style change and remove accidental additions.
2024-06-28 16:42:09 -07:00
Nicolò Ribaudo 03852c962b
Avoid duplicate binding import-source-binding-name.js (#4121) 2024-06-28 15:14:23 +02:00
SUZUKI Sosuke 27b2551c00
Add test to check `nfOptions.roundingMode` for seconds / microseconds / nanoseconds is `"trunc"` (#4115)
* Test that `nfOptions.roundingMode` for seconds / microseconds / nanoseconds is `"trunc"`

* Add license header

* Use `Intl.NumberFormat` instead of `testintl.js` harness

* Use correct harness
2024-06-27 10:08:11 -07:00
Chengzhong Wu 8a2229cde8
Add tests for Source Phase Imports (#3980) 2024-06-27 14:58:04 +02:00
Frank Yung-Fong Tang c3a326ace8
Add test for ECMA402 PR833 Allow locale based ignorePunctuation default (#3922)
* Add test for ECMA402 833

https://github.com/tc39/ecma402/pull/833

* Update test/intl402/Collator/prototype/resolvedOptions/ignorePunctuation-default.js

Co-authored-by: André Bargull <andre.bargull@gmail.com>

* Update test/intl402/Collator/prototype/resolvedOptions/ignorePunctuation-default.js

Co-authored-by: André Bargull <andre.bargull@gmail.com>

---------

Co-authored-by: André Bargull <andre.bargull@gmail.com>
2024-06-26 17:40:01 -07:00
Ioanna M Dimitriou H c2815ec090
RAB: Integrate staging tests for .fill method (#4075)
RAB: Integrate staging tests for the .fill method
of Array.prototype and TypedArray.prototype

This is part of PR #3888 to make reviewing easier.
Includes changes to use the helper ./harness/resizableArrayBufferUtils.js
2024-06-26 16:26:22 -07:00
Ioanna M Dimitriou H cbdff1ca5f
RAB: Integrate staging tests for the .entries method (#4073)
RAB: Integrate staging tests for the .entries method
of Array.prototype and TypedArray.prototype

This is part of PR #3888 to make reviewing easier.
Includes changes to use the helper ./harness/resizableArrayBufferUtils.js
2024-06-26 16:12:35 -07:00
Ioanna M Dimitriou H d7b2f4acfc
RAB: Integrate staging tests for .copyWithin method (#4072)
RAB: Integrate staging tests for .copyWithin method
of Array.prototype and TypedArray.prototype

This is part of PR #3888 to make reviewing easier.
Includes changes to use the helper ./harness/resizableArrayBufferUtils.js
2024-06-26 16:05:45 -07:00
André Bargull c47b716e8d Update harness tests for Float16Array
Fixes #4029
2024-06-24 17:02:39 +02:00
Shu-yu Guo 29c6f7028a [top-level-await] Sync implementation with spec text
The module evaluation machinery has undergone non-trivial refactoring
since implementation. Sync up the comments and code for maintenance.

Notably,

- Actually use the kEvaluatingAsync status (previously conflated under
  kEvaluated)
- [[IsAsyncEvaluating]] -> [[IsAsyncEvaluation]]
- GatherAsyncParentCompletions -> GatherAvailableAncestors
- async -> has_toplevel_await
- kAsyncModule -> kModuleWithTopLevelAwait

Bug: 347060515
Change-Id: Ia2c35d5b42ee9f58db841cdfcaef9d17b018c9c6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5636701
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#94591}
2024-06-21 23:23:02 +02:00
André Bargull 43a64eabe3 Remove empty info block scalar 2024-06-21 10:17:07 +02:00
Jordan Harband 9dec509c93
Merge pull request #4109 from linusg/arraynt
Fix wrong array literal in Map/Set value tests
2024-06-13 16:37:10 -07:00
Linus Groh 15ae4bb43f Fix wrong array literal in Map/Set value tests 2024-06-14 01:26:22 +02:00
Philip Chimento 58df8fb22a Temporal: Remove methods with ISO-named pairs
See tc39/proposal-temporal#2846
2024-06-13 22:04:16 +02:00
Philip Chimento 3c28e3a359 Temporal: Remove Plain/ZonedDateTime to PlainYearMonth/MonthDay APIs
See tc39/proposal-temporal#2848
2024-06-13 22:04:16 +02:00
Philip Chimento 1c900ca59c Temporal: Remove epoch seconds and epoch microseconds APIs
See: tc39/proposal-temporal#2849
2024-06-13 22:04:16 +02:00
Philip Chimento 7184313667 Temporal: Remove PlainTime.toPlainDateTime/toZonedDateTime methods
See tc39/proposal-temporal#2848
2024-06-13 22:04:16 +02:00
Philip Chimento a9c223c60e Temporal: Remove withPlainDate() methods
See tc39/proposal-temporal#2847.
2024-06-13 22:04:16 +02:00
Philip Chimento 61e3f5ec4d Temporal: Tests for removal of relativeTo from Duration.p.add/subtract
See tc39/proposal-temporal#2825.

Various edits to existing tests so that they make more sense with the
removal of relativeTo.

New tests specifically testing that calendar units cannot be added or
subtracted directly.
2024-06-13 13:54:46 +02:00
Philip Chimento ea4945c66f Temporal: Remove tests using relativeTo in Duration.p.add/subtract
See tc39/proposal-temporal#2825. This is a mass removal of tests that use
this functionality, in a separate commit for ease of review. Further
adjustments will be made in the following commit.
2024-06-13 13:54:46 +02:00
Adam Shaw ba9c397923 tests for https://github.com/tc39/proposal-temporal/issues/2820 2024-06-13 08:54:19 +02:00
Daniel Minor a15874163e Remove current contents of implementation-contributed 2024-06-06 19:24:14 +02:00
André Bargull 2496577225
Fix strict mode errors in Temporal staging test (#4100) 2024-05-30 16:07:35 +02:00
André Bargull 42a9f69ab2 Declare variables to allow running in strict-mode 2024-05-29 11:10:42 +02:00
André Bargull 57b9f154a6 Allow alternative implementations for Chinese lunar calendar 2024-05-29 10:47:09 +02:00
André Bargull efe0b1871f Split yearMonthFromFields/reference-day.js into calendar specific files 2024-05-29 10:47:09 +02:00
Sosuke Suzuki c00830acef Fix description of `fractionalDigits` tests 2024-05-28 15:41:01 +02:00
Luis Fernando Pardo Sixtos e394ebb6fc [decorators] Add flag, accessor keyword and token
This change doesn't do any functionality changes.

Bug: 42202709
Change-Id: I613b96b6e7630e10748e31162080a61e7da4c2a1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5542951
Commit-Queue: Luis Pardo <lpardosixtos@microsoft.com>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#94086}
2024-05-27 09:22:09 +02:00
Timothy Leverett 2a7468c934 Temporal: fix messages on `Duration/out-of-range` tests
Fixed test messages that incorrectly referenced the `days` parameter to say `weeks` instead.
2024-05-23 19:16:00 -07:00
DevMirza ac778eaa29
update es-meta version to v0.4.1 2024-05-18 12:33:09 +05:00
test262-merge-bot 9c94de66c8
Merge pull request #4083 from tc39/chromium-export-7eb56ce860
[explicit-resource-management] Add move and disposed getter
2024-05-21 10:50:36 +02:00
test262-merge-bot 0eb7f6eccb
Merge branch 'main' into chromium-export-7eb56ce860 2024-05-19 12:19:57 +02:00
Timothy Flynn 232dfc7b60
Add missing `return` statement to `throwsAsync` callback
This callback is expected to return a thenable.
2024-05-18 11:30:57 -04:00
Jordan Harband 5217ef396e
throwsAsync, `Promise.try`: avoid unneeded syntax
Followup to #4086
2024-05-17 09:13:21 -07:00
Sosuke Suzuki 57c7d06bf1 Wrap `throwsAsync` with `asyncTest` 2024-05-17 16:31:13 +02:00
Jordan Harband d9c67327ca
Merge pull request #4085 from sosukesuzuki/fifx-promise-try-tests-2
Remove incorrect property access in `Promise.try` test
2024-05-17 06:31:04 -07:00
Sosuke Suzuki 3d3df6ec02 Remove incorrect property access 2024-05-17 21:57:46 +09:00
Sosuke Suzuki d4fac47d3b Fix `asyncTest` usage for `Promise.try` tests 2024-05-17 14:20:50 +02:00
Rezvan Mahdavi Hezaveh 081808bebd [explicit-resource-management] Add adopt and defer
This CL adds adopt() and defer() to DisposableStack
prototype.

Bug: 42203506
Change-Id: I556b96a0cf42595acdd483b0a02aef9ca41bd0bc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5512877
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#93930}
2024-05-15 23:18:28 +02:00
Rezvan Mahdavi Hezaveh fb7ab87dd5 [explicit-resource-management] Add move and disposed getter
This CL adds move() function and a getter for disposed to
DisposableStack prototype.

Bug: 42203506
Change-Id: I8d7750b1d4aa199ebeb997bde7fe6d06c9ccbff0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5528992
Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#93931}
2024-05-15 13:19:32 -07:00
Jordan Harband 8b6b0f516d
add Promise.try tests 2024-05-01 15:27:31 -07:00
Philip Chimento a7e796a4ce Temporal: Add test coverage for edge case in DST balancing after rounding
This covers an edge case that we hit, where 24 hours would not balance up
to one day in a 25-hour day if only largestUnit was specified, but would
erroneously balance up if rounding was also performed by specifying
smallestUnit.
2024-05-14 09:24:12 +02:00