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
Linus Groh
e7c5c3d507
LibJS: Implement Temporal.PlainTime.prototype.getISOFields()
2021-07-30 09:41:11 +01:00
Linus Groh
c7bef42975
LibJS: Implement Temporal.PlainDate.prototype.getISOFields()
2021-07-30 09:41:11 +01:00
Idan Horowitz
d1ee31c5de
LibJS: Implement Temporal.PlainTime.prototype.toPlainDateTime
2021-07-29 22:47:56 +01:00
Idan Horowitz
8f9b4a5ea6
LibJS: Implement Temporal.PlainDateTime.prototype.inLeapYear
2021-07-29 22:47:56 +01:00
Idan Horowitz
b9ed19c850
LibJS: Implement Temporal.PlainDateTime.prototype.monthsInYear
2021-07-29 22:47:56 +01:00
Idan Horowitz
fb5c0ed0d0
LibJS: Implement Temporal.PlainDateTime.prototype.daysInYear
2021-07-29 22:47:56 +01:00
Idan Horowitz
2d86cbae45
LibJS: Implement Temporal.PlainDateTime.prototype.daysInMonth
2021-07-29 22:47:56 +01:00
Idan Horowitz
01d33174c8
LibJS: Implement Temporal.PlainDateTime.prototype.daysInWeek
2021-07-29 22:47:56 +01:00
Idan Horowitz
d4e9d572f5
LibJS: Implement Temporal.PlainDateTime.prototype.weekOfYear
2021-07-29 22:47:56 +01:00
Idan Horowitz
0800c2a958
LibJS: Implement Temporal.PlainDateTime.prototype.dayOfYear
2021-07-29 22:47:56 +01:00
Idan Horowitz
c41b7b27c9
LibJS: Implement Temporal.PlainDateTime.prototype.dayOfWeek
2021-07-29 22:47:56 +01:00
Idan Horowitz
518a9f3eab
LibJS: Implement Temporal.PlainDateTime.prototype.nanosecond
2021-07-29 22:47:56 +01:00
Idan Horowitz
23bf840326
LibJS: Implement Temporal.PlainDateTime.prototype.microsecond
2021-07-29 22:47:56 +01:00
Idan Horowitz
b2f66a06ac
LibJS: Implement Temporal.PlainDateTime.prototype.millisecond
2021-07-29 22:47:56 +01:00
Idan Horowitz
3fdb314a39
LibJS: Implement Temporal.PlainDateTime.prototype.second
2021-07-29 22:47:56 +01:00
Idan Horowitz
6dd0815fad
LibJS: Implement Temporal.PlainDateTime.prototype.minute
2021-07-29 22:47:56 +01:00
Idan Horowitz
f553ab3104
LibJS: Implement Temporal.PlainDateTime.prototype.hour
2021-07-29 22:47:56 +01:00
Idan Horowitz
f93b6ea58c
LibJS: Implement Temporal.PlainDateTime.prototype.day
2021-07-29 22:47:56 +01:00
Idan Horowitz
677a631e87
LibJS: Implement Temporal.PlainDateTime.prototype.monthCode
2021-07-29 22:47:56 +01:00
Idan Horowitz
78e63b34fa
LibJS: Implement Temporal.PlainDateTime.prototype.month
2021-07-29 22:47:56 +01:00
Idan Horowitz
23d0fd2659
LibJS: Implement Temporal.PlainDateTime.prototype.year
2021-07-29 22:47:56 +01:00
Linus Groh
5e64156fce
LibJS: Implement Temporal.Now.plainTimeISO()
2021-07-28 21:57:30 +01:00
Linus Groh
d3bed13f4b
LibJS: Implement Temporal.PlainTime.prototype.nanosecond
2021-07-28 21:57:30 +01:00
Linus Groh
65b90e93ad
LibJS: Implement Temporal.PlainTime.prototype.microsecond
2021-07-28 21:57:30 +01:00
Linus Groh
8bcccf2577
LibJS: Implement Temporal.PlainTime.prototype.millisecond
2021-07-28 21:57:30 +01:00
Linus Groh
c5f03bc921
LibJS: Implement Temporal.PlainTime.prototype.second
2021-07-28 21:57:30 +01:00
Linus Groh
574f474d27
LibJS: Implement Temporal.PlainTime.prototype.minute
2021-07-28 21:57:30 +01:00
Linus Groh
524a56f7b6
LibJS: Implement Temporal.PlainTime.prototype.hour
2021-07-28 21:57:30 +01:00
Linus Groh
a8dd1b9480
LibJS: Implement Temporal.PlainTime.prototype.calendar
2021-07-28 21:57:30 +01:00
Linus Groh
ad89a205bc
LibJS: Implement Temporal.PlainTime.prototype.valueOf()
2021-07-28 21:57:30 +01:00
Linus Groh
64b44c7f30
LibJS: Implement Temporal.PlainTime.prototype[@@toStringTag]
2021-07-28 21:57:30 +01:00
Linus Groh
ae4bf8fc32
LibJS: Start implementing Temporal.PlainTime
...
This commit adds the PlainTime object itself, its constructor and
prototype (currently empty), and the CreateTemporalTime abstract
operation.
2021-07-28 21:57:30 +01:00
Linus Groh
321f2c0927
LibJS: Fix types of PlainDateTime iso_{milli,micro,nano}second params
...
999 does not fit into an u8. :^)
2021-07-28 21:57:30 +01:00
Linus Groh
2ba338869b
LibJS/Tests: Remove two leftover console.log() calls
2021-07-28 21:57:30 +01:00
Timothy Flynn
2f8eb4f068
LibJS: Implement non-ECMA-402 String.prototype.toLocale{Lower,Upper}Case
...
In implementations without ECMA-402, these methods are to behave like
their non-locale equivalents.
2021-07-27 22:35:24 +01:00
Timothy Flynn
2dc9ae00af
LibJS: Use special case folding for String.prototype.to{Lower,Upper}Case
...
Note we still have one String.prototype.toLowerCase test262 failure due
to not yet parsing WordBreakProperty.txt.
2021-07-27 21:04:36 +01:00
Linus Groh
af3a26f4cc
LibJS: Implement Temporal.Now.plainDateTimeISO()
2021-07-27 19:51:44 +01:00