[x] Migrate Temporal to independent boa_temporal crate (#3461)
[ ] Complete Temporal.Duration (nekevss)
[ ] Complete Temporal.PlainDate (nekevss)
[ ] Complete Temporal.Instant
[ ] Complete Temporal.PlainDateTime
[ ] Complete Temporal.PlainYearMonth
[ ] Complete Temporal.PlainMonthDay
[ ] Implement Temporal.PlainTime methods and operations
[x] Implement Temporal.TimeZone methods and operations (Removed from the Temporal Proposal Mid 2024)
[ ] Implement Temporal.ZonedDateTime methods and operations
[ ] Complete Temporal.Now (dependent on Temporal.Instant, Temporal.DateTime and Temporal.ZonedDateTime)
ECMASCript feature
The new Temporal API has been introduced to improve date handling in JavaScript, and we should add it to Boa to be up to date with the current ECMAScript standard. Tests have been added to the official ECMAScript Test Suite (test262), so we need to pass these tests to get full coverage.
This code should now work and give the expected result:
// exact time since the Unix epoch on 1 Janary, 1970 UTC
Temporal.now.instant();
Temporal.now.instant().epochSeconds;
Temporal.now.instant().epochMilliseconds;
// current time zone
Temporal.now.timeZone();
// time in current location, e.g.
// 2021-09-18T04:17:48.435068431-04:00[America/New_York]
Temporal.now.zonedDateTimeISO();
// time in another time zone, e.g.
// 2021-09-18T09:17:48.438068435+01:00[Europe/London]
Temporal.now.zonedDateTimeISO('Europe/London');
Tracking for the
Temporal
built-in implementationboa_temporal
crate (#3461)Temporal.Duration
(nekevss)Temporal.PlainDate
(nekevss)Temporal.Instant
Temporal.PlainDateTime
Temporal.PlainYearMonth
Temporal.PlainMonthDay
Temporal.PlainTime
methods and operationsImplement(Removed from the Temporal Proposal Mid 2024)Temporal.TimeZone
methods and operationsTemporal.ZonedDateTime
methods and operationsTemporal.Now
(dependent onTemporal.Instant
,Temporal.DateTime
andTemporal.ZonedDateTime
)ECMASCript feature The new
Temporal
API has been introduced to improve date handling in JavaScript, and we should add it to Boa to be up to date with the current ECMAScript standard. Tests have been added to the official ECMAScript Test Suite (test262), so we need to pass these tests to get full coverage.The current proposal (Stage 3) specification can be found here: https://tc39.es/proposal-temporal/
In order to implement this new proposal, you can follow the example of other builtin objects, and feel free to ask for help: https://github.com/boa-dev/boa/tree/main/boa/src/builtins
Example code
This code should now work and give the expected result: