Linus Groh
82ab5da4db
LibJS: Implement Temporal.ZonedDateTime.prototype.toPlainDateTime()
2021-08-05 23:15:27 +01:00
Linus Groh
6ce631b023
LibJS: Implement Temporal.ZonedDateTime.prototype.toPlainTime()
2021-08-05 23:15:27 +01:00
Linus Groh
b4ea4e86a7
LibJS: Implement Temporal.ZonedDateTime.prototype.toPlainDate()
2021-08-05 23:15:27 +01:00
Linus Groh
96a0c201d5
LibJS: Implement Temporal.ZonedDateTime.prototype.toInstant()
2021-08-05 23:15:27 +01:00
Linus Groh
20300bd7c4
LibJS: Implement Temporal.ZonedDateTime.prototype.valueOf()
2021-08-05 23:15:27 +01:00
Linus Groh
6c345c8107
LibJS: Implement Temporal.ZonedDateTime.prototype.offset
2021-08-05 19:19:40 +02:00
Linus Groh
f937e9b966
LibJS: Implement Temporal.ZonedDateTime.prototype.offsetNanoseconds
2021-08-05 19:19:40 +02:00
Linus Groh
dd36593c72
LibJS: Implement Temporal.ZonedDateTime.prototype.inLeapYear
2021-08-05 19:19:40 +02:00
Linus Groh
5a7db1b5f4
LibJS: Implement Temporal.ZonedDateTime.prototype.monthsInYear
2021-08-05 19:19:40 +02:00
Linus Groh
204ba01416
LibJS: Implement Temporal.ZonedDateTime.prototype.daysInYear
2021-08-05 19:19:40 +02:00
Linus Groh
6007fc4804
LibJS: Implement Temporal.ZonedDateTime.prototype.daysInMonth
2021-08-05 19:19:40 +02:00
Linus Groh
d89d55a7a3
LibJS: Implement Temporal.ZonedDateTime.prototype.daysInWeek
2021-08-05 19:19:40 +02:00
Linus Groh
540fdbcf5b
LibJS: Implement Temporal.ZonedDateTime.prototype.weekOfYear
2021-08-05 19:19:40 +02:00
Linus Groh
d20a4fe43e
LibJS: Implement Temporal.ZonedDateTime.prototype.dayOfYear
2021-08-05 19:19:40 +02:00
Linus Groh
39e67a5823
LibJS: Implement Temporal.ZonedDateTime.prototype.dayOfWeek
2021-08-05 19:19:40 +02:00
Linus Groh
f86bbb7a71
LibJS: Implement Temporal.ZonedDateTime.prototype.epochNanoseconds
2021-08-05 19:19:40 +02:00
Linus Groh
62294d62c5
LibJS: Implement Temporal.ZonedDateTime.prototype.epochMicroseconds
2021-08-05 19:19:40 +02:00
Linus Groh
a9162b7e98
LibJS: Implement Temporal.ZonedDateTime.prototype.epochMilliseconds
2021-08-05 19:19:40 +02:00
Linus Groh
47135af987
LibJS: Implement Temporal.ZonedDateTime.prototype.epochSeconds
2021-08-05 19:19:40 +02:00
Linus Groh
a1082412ef
LibJS: Implement Temporal.ZonedDateTime.prototype.nanosecond
2021-08-05 19:19:40 +02:00
Linus Groh
4b22d0f2ce
LibJS: Implement Temporal.ZonedDateTime.prototype.microsecond
2021-08-05 19:19:40 +02:00
Linus Groh
752b3eb0c0
LibJS: Implement Temporal.ZonedDateTime.prototype.millisecond
2021-08-05 19:19:40 +02:00
Linus Groh
9d9ab492df
LibJS: Implement Temporal.ZonedDateTime.prototype.second
2021-08-05 19:19:40 +02:00
Linus Groh
a6775517ad
LibJS: Implement Temporal.ZonedDateTime.prototype.minute
2021-08-05 19:19:40 +02:00
Linus Groh
32f1e17e71
LibJS: Implement Temporal.ZonedDateTime.prototype.hour
2021-08-05 19:19:40 +02:00
Linus Groh
0580f102e4
LibJS: Implement Temporal.ZonedDateTime.prototype.day
2021-08-05 19:19:40 +02:00
Linus Groh
30e27f6483
LibJS: Implement Temporal.ZonedDateTime.prototype.monthCode
2021-08-05 19:19:40 +02:00
Linus Groh
fd18dc782f
LibJS: Implement Temporal.ZonedDateTime.prototype.month
2021-08-05 19:19:40 +02:00
Linus Groh
b8ac31500c
LibJS: Implement Temporal.ZonedDateTime.prototype.year
2021-08-05 19:19:40 +02:00
Linus Groh
a06bd451d4
LibJS: Implement Temporal.Now.zonedDateTimeISO()
2021-08-01 20:31:31 +01:00
Linus Groh
36c79c2989
LibJS: Implement Temporal.Now.zonedDateTime()
2021-08-01 20:31:31 +01:00
Linus Groh
49c5f87274
LibJS: Implement Temporal.ZonedDateTime.prototype.timeZone
2021-08-01 20:31:31 +01:00
Linus Groh
d022b74d33
LibJS: Implement Temporal.ZonedDateTime.prototype.calendar
2021-08-01 20:31:31 +01:00
Linus Groh
bc416ab802
LibJS: Implement Temporal.ZonedDateTime.prototype[@@toStringTag]
2021-08-01 20:31:31 +01:00
Linus Groh
4640643019
LibJS: Handle ZonedDateTime in ToTemporalDate
2021-08-01 20:31:31 +01:00
Linus Groh
6f75dcc7b8
LibJS: Handle ZonedDateTime in ToTemporalInstant
2021-08-01 20:31:31 +01:00
Linus Groh
cfb77b66e5
LibJS: Start implementing Temporal.ZonedDateTime
...
This commit adds the ZonedDateTime object itself, its constructor and
prototype (currently empty), and the CreateTemporalZonedDateTime
abstract operation.
2021-08-01 20:31:31 +01:00
Linus Groh
dc80a258f6
LibJS: Implement Temporal.Calendar.from()
2021-08-01 11:40:25 +01:00
Linus Groh
e511390423
LibJS: Implement Temporal.TimeZone.prototype.getPlainDateTimeFor()
2021-08-01 10:24:38 +01:00
Linus Groh
c4123d8aad
LibJS: Implement Temporal.TimeZone.prototype.getOffsetStringFor()
2021-08-01 10:24:38 +01:00
Linus Groh
f987c11464
LibJS: Implement Temporal.TimeZone.from()
2021-08-01 10:24:38 +01:00
Linus Groh
95331ea864
LibJS/Tests: Fix Temporal.Now.plainDateTime{,ISO}() epoch calculation
...
Combining month and day like this doesn't always yield correct results.
Use dayOfYear multiplied by the seconds per day instead, which does.
2021-07-31 13:54:25 +01:00
Linus Groh
cab1015a03
LibJS/Tests: Fix Temporal.Now.plainDate{,ISO}() at end of month/year
...
Evidently, going one day forward on the last day of month increases the
month number by one and resets the day to 1. Doing the same on the last
day of the year resets the month to 1.
2021-07-31 13:54:25 +01:00
Idan Horowitz
64a98d0f90
LibJS: Implement Temporal.PlainDateTime.prototype.toPlainTime
2021-07-31 00:16:41 +01:00
Idan Horowitz
010761aff4
LibJS: Implement Temporal.PlainDateTime.prototype.withPlainDate
2021-07-31 00:16:41 +01:00
Idan Horowitz
f657c86d58
LibJS: Implement Temporal.PlainDateTime.prototype.withCalendar
2021-07-31 00:16:41 +01:00
Linus Groh
9ea8aa7ffe
LibJS/Tests: Compare results in Temporal.Now.plainDateTimeISO() test
2021-07-30 22:13:13 +01:00
Linus Groh
2c85f076c8
LibJS/Tests: Compare results in Temporal.Now.plainDateTime() test
2021-07-30 22:13:13 +01:00
Timothy Flynn
b3569fab7c
LibJS: Add tests for Unicode property escapes
...
LibJS gets this for free from LibRegex, but let's add test cases for it.
2021-07-30 21:26:31 +01:00
Timothy Flynn
f1dd770a8a
LibJS: Parse RegExp literals at AST creation time, not execution time
...
The spec requires that invalid RegExp literals must cause a Syntax Error
before the JavaScript is executed. See:
https://tc39.es/ecma262/#sec-patterns-static-semantics-early-errors
This is explicitly tested in the RegExp/property-escapes test262 tests.
For example, see unsupported-property-Line_Break.js:
$DONOTEVALUATE();
/\p{Line_Break}/u;
That RegExp literal is invalid because Line_Break is not a supported
Unicode property. $DONOTEVALUATE() just throws an exception when it is
executed. The test expects that this file will fail to be parsed.
Note that RegExp patterns can still be parsed at execution time by way
of "new RegExp(...)".
2021-07-30 21:26:31 +01:00