Linus Groh
b3723a88a6
LibJS: Implement Temporal[@@toStringTag]
2021-07-27 18:48:22 +01:00
Linus Groh
c6f4ecced9
LibJS: Update Temporal spec comment that's now been corrected
...
See: 6d2350f
2021-07-26 23:39:11 +01:00
Timothy Flynn
2e3a5b884c
LibJS: Implement Unicode aware String.prototype.to{Upper,Lower}Case
2021-07-26 17:03:55 +01:00
Idan Horowitz
67b3255fe8
LibJS: Implement Temporal.PlainDate.from
2021-07-26 16:15:31 +01:00
Idan Horowitz
07485802c6
LibJS: Implement Temporal.PlainDate.compare
2021-07-26 16:15:31 +01:00
Idan Horowitz
2c6bd3a61b
LibJS: Use narrower types in Temporal PlainDate/PlainDateTime/Calendar
...
These are bounds-checked during construction of PlainDate/PlainDateTime
and as such theres no need to widen them in these internal AO calls.
2021-07-26 16:15:31 +01:00
davidot
7a56ca1250
LibJS: Implement a naive String.prototype.localeCompare
2021-07-26 15:56:15 +01:00
Linus Groh
7915994dfc
LibJS: Use more narrow types in Temporal ISODateTime struct
2021-07-25 23:44:36 +01:00
Linus Groh
96e63415b6
LibJS: Implement Temporal.TimeZone.prototype.getOffsetNanosecondsFor()
2021-07-25 23:44:36 +01:00
Linus Groh
d428787e18
LibJS: Handle PlainDateTime objects in GetTemporalCalendarWithISODefault
2021-07-25 23:44:36 +01:00
Linus Groh
c1005dbb0a
LibJS: Handle PlainDateTime objects ToTemporalCalendar
2021-07-25 23:44:36 +01:00
Linus Groh
1c1354db07
LibJS: Store the %Array.prototype.values% intrinsic on the global object
...
Also group the getter functions for all the additional intrinsics (not
generated via macros), and initialize the members.
2021-07-25 23:44:36 +01:00
Timothy Flynn
8c2b8fd001
LibJS: Remove UTF-8 RegExpExec and AdvanceStringIndex overrides
...
All interested parties are now UTF-16 capable, so these are unused.
2021-07-23 23:06:57 +01:00
Timothy Flynn
5a8f870594
LibJS: Implement RegExp.prototype [ @@replace ] with UTF-16 code units
...
This also converts the GetSubstitution abstract operation take its input
strings as UTF-16 now that all callers are UTF-16 capable. This means
String.prototype.replace (and replaceAll) no longer needs UTF-8 and
UTF-16 copies of these strings.
2021-07-23 23:06:57 +01:00
Timothy Flynn
ee7b04f7bb
LibJS: Implement RegExp.prototype [ @@split ] with UTF-16 code units
2021-07-23 23:06:57 +01:00
Timothy Flynn
66c31a0c07
LibJS: Implement RegExp.prototype [ @@search ] with UTF-16 code units
2021-07-23 23:06:57 +01:00
Timothy Flynn
2c023157e9
LibJS: Implement RegExp.prototype [ @@match ] with UTF-16 code units
2021-07-23 23:06:57 +01:00
Timothy Flynn
b1ea9c20b0
LibJS: Implement RegExp.prototype.{exec,test} with UTF-16 code units
...
This converts RegExpExec to perform matching with UTF-16 strings. As a
very temporary stop-gap, this adds overloads to RegExpExec and friends
for both UTF-8 and UTF-16 strings. This is only needed until the rest
of RegExp.prototype is UTF-16 capable.
This also addresses a FIXME regarding code point index correction in
RegExpExec when the Unicode flag is set.
2021-07-23 23:06:57 +01:00
Timothy Flynn
a0c19deb80
LibJS: Implement RegExpCreate/RegExpInitialize closer to the spec
...
RegExpInitialize specifies how the pattern string should be created
before passing it to [[RegExpMatcher]]. Rather than passing it as-is,
the string should be converted to code points and back to a "List" (if
the Unicode flag is present), or as a "List" of UTF-16 code units.
Further. the spec requires that we keep both the original pattern string
and this parsed string in the RegExp object.
The caveat is that the LibRegex parser further requires any multi-byte
code units to be escaped (as "\unnnn"). Otherwise, the code unit is
recognized as individual UTF-8 bytes.
2021-07-23 23:06:57 +01:00
Idan Horowitz
1d76be97f5
LibJS: Implement Temporal.PlainDate.prototype.inLeapYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
c9ae7e1af1
LibJS: Implement Temporal.Calendar.prototype.inLeapYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
dd15fc471c
LibJS: Implement Temporal.PlainDate.prototype.monthsInYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
342172da37
LibJS: Implement Temporal.Calendar.prototype.monthsInYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
b1dd09840b
LibJS: Implement Temporal.PlainDate.prototype.daysInYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
7f27035342
LibJS: Implement Temporal.Calendar.prototype.daysInYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
3160540d0e
LibJS: Implement Temporal.PlainDate.prototype.daysInMonth
2021-07-23 22:00:23 +01:00
Idan Horowitz
69c8b8e8bd
LibJS: Implement Temporal.Calendar.prototype.daysInMonth
2021-07-23 22:00:23 +01:00
Idan Horowitz
2150f5b374
LibJS: Implement Temporal.PlainDate.prototype.daysInWeek
2021-07-23 22:00:23 +01:00
Idan Horowitz
623df361e6
LibJS: Implement Temporal.Calendar.prototype.daysInWeek
2021-07-23 22:00:23 +01:00
Idan Horowitz
2cf582436f
LibJS: Implement Temporal.PlainDate.prototype.weekOfYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
d22fe25643
LibJS: Implement Temporal.Calendar.prototype.weekOfYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
d561535ac9
LibJS: Implement Temporal.PlainDate.prototype.dayOfYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
c0e7761758
LibJS: Implement Temporal.Calendar.prototype.dayOfYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
bcbfd5b280
LibJS: Implement Temporal.PlainDate.prototype.dayOfWeek
2021-07-23 22:00:23 +01:00
Idan Horowitz
339b0a17e8
LibJS: Implement Temporal.Calendar.prototype.dayOfWeek
2021-07-23 22:00:23 +01:00
Idan Horowitz
59dc0e8421
LibJS: Implement Temporal.PlainDate.prototype.day
2021-07-23 22:00:23 +01:00
Idan Horowitz
8a20f258f0
LibJS: Implement Temporal.Calendar.prototype.day
2021-07-23 22:00:23 +01:00
Idan Horowitz
d9414e465a
LibJS: Implement Temporal.PlainDate.prototype.monthCode
2021-07-23 22:00:23 +01:00
Idan Horowitz
9d9ba29cae
LibJS: Implement Temporal.Calendar.prototype.monthCode
2021-07-23 22:00:23 +01:00
Idan Horowitz
a0af9b11fb
LibJS: Implement Temporal.PlainDate.prototype.month
2021-07-23 22:00:23 +01:00
Idan Horowitz
3bec18432a
LibJS: Implement Temporal.Calendar.prototype.month
2021-07-23 22:00:23 +01:00
Idan Horowitz
8434ca6c4b
LibJS: Implement Temporal.PlainDate.prototype.year
2021-07-23 22:00:23 +01:00
Idan Horowitz
3895a8354d
LibJS: Implement Temporal.Calendar.prototype.year
2021-07-23 22:00:23 +01:00
Idan Horowitz
9fa8f19a0f
LibJS: Implement Temporal.PlainDate.prototype.withCalendar
2021-07-23 22:00:23 +01:00
Idan Horowitz
8123e957e3
LibJS: Add missing PlainDateTime case in ToTemporalDate
2021-07-23 22:00:23 +01:00
Linus Groh
080112eb82
LibJS: Implement Temporal.PlainDateTime.prototype.getISOFields()
2021-07-23 08:18:11 +01:00
Linus Groh
18fd0d4011
LibJS: Implement Temporal.PlainDateTime.prototype.toPlainDate()
2021-07-23 08:18:11 +01:00
Linus Groh
61b2780853
LibJS: Fix return type of PlainDateTime::iso_{milli,micro,nano}second()
2021-07-23 08:18:11 +01:00
Linus Groh
8b6865b128
LibJS: Add missing step number in PlainDatePrototype
2021-07-22 21:19:40 +01:00
Linus Groh
aa2c8b6b91
LibJS: Implement Temporal.PlainDateTime.prototype.calendar
2021-07-22 21:19:40 +01:00