v8/test/test262
Frank Tang 14d9b9a246 Reland "[Temporal] Use double/int32_t instead of int64_t for duration parsing"
This is a reland of commit a165e82ea7

The reason of revert is  SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../../src/objects/js-temporal-objects.cc:3837:22   which is the line
"nanoseconds_mv = std::round((seconds_mv - std::floor(seconds_mv)) * 1e9);"
where seconds_mv is a double and nanoseconds_mv is a int32_t
In this reland, we change the type of nanoseconds_mv to double to avoid the ubsan error.


Original change's description:
> [Temporal] Use double/int32_t instead of int64_t for duration parsing
>
> Use double and int32_t instead of int64_t in duration parsing result
> so we can parse very large duration fields as infinity and throw RangeError in later stages. The three fractional parts can hold up value from 0 to 999,999,999 so we use int32_t to hold it. Other part could be infinity so we use double to hold it. Also rearrange the order of the three int32_t in the struct ParsedISO8601Duration after all the double
>
> Bug: v8:11544
> Change-Id: I7e5b02f7c7bbb60997f1419f016aed61dd3e0d6c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3840761
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#82754}

Bug: v8:11544
Change-Id: If8b72cb4912d8b4fc4c286fc856ea59df5cf0bb7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3858576
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83090}
2022-09-08 22:24:51 +00:00
..
local-tests/test Reland "[intl] Impl ECMA402 PR 471 rounding behavior" 2020-10-02 00:14:46 +00:00
BUILD.gn [infra] Fork test262-harness 2022-02-23 18:47:35 +00:00
detachArrayBuffer.js [typedarrays] Use Detach instead of Neuter 2018-12-11 11:57:30 +00:00
harness-adapt-donotevaluate.js [tools] Add FAIL_PHASE_ONLY status file modifier for test262 tests 2018-11-22 12:43:05 +00:00
harness-adapt.js [test262] Expose gc() to test262 harness 2019-07-23 14:09:05 +00:00
harness-agent.js [d8] Update new Worker API to match the Web API 2018-09-20 00:10:28 +00:00
harness-ishtmldda.js Support $262.IsHTMLDDA 2020-05-05 06:19:02 +00:00
OWNERS [test262] Remove myself from OWNERS 2021-01-15 17:13:56 +00:00
prune-local-tests.sh test262 roll 2017-02-10 19:05:55 +00:00
README Make test262 README file revision independent. 2015-11-04 10:52:44 +00:00
test262.status Reland "[Temporal] Use double/int32_t instead of int64_t for duration parsing" 2022-09-08 22:24:51 +00:00
testcfg.py [regexp] Add v-Flag for Unicode Sets 2022-09-06 17:51:56 +00:00
upstream-local-tests.sh test262 roll 2017-03-13 14:33:07 +00:00

This directory contains code for binding the test262 test suite
into the v8 test harness. The tests are checked out as a dependency from

  https://chromium.googlesource.com/external/github.com/tc39/test262

at a revision specified in the DEPS file as 'data' in this directory. They are
fetched with 'gclient sync'. To update to a newer version, please change the
DEPS file.

Using a newer version, e.g. 'deadbeef' may be possible but the tests are only
known to pass (and indeed run) with the DEPS revision. Example:

  cd data
  git fetch
  git checkout deadbeef

If you do update to a newer revision you may have to change the test
harness adapter code since it uses internal functionality from the
harness that comes bundled with the tests.  You will most likely also
have to update the test expectation file.