Linus Groh
ab2574d75f
LibJS: Avoid potential overflow in Array.prototype.toSpliced()
...
The implementation no longer matches the spec text, but I believe that's
a bug anyway. No point in allowing array lengths up to 2^53 - 1 when the
ArrayCreate AO rejects anything above 2^32 - 1.
2022-07-03 13:06:44 +02:00
Obinna Ikeh
5f726ace53
LibJS: Add tests for %TypedArray%.prototype.toReversed
2022-07-03 01:12:32 +02:00
Obinna Ikeh
f78ef60be6
LibJS: Add %TypedArray%.prototype.toReversed
2022-07-03 01:12:32 +02:00
Idan Horowitz
1ebc5af2f0
LibJS: Set both {minimum, maximum}FractionDigits in Intl.DurationFormat
...
This is a normative change in the Intl.DurationFormat spec.
See: b293603e
2022-07-02 18:32:35 +03:00
Idan Horowitz
fb8c4a724e
LibJS: Disallow mixed-sign durations in Intl.DurationFormat
...
This is a normative change in the Intl.DurationFormat spec.
See: 89ab1855
2022-07-02 18:32:35 +03:00
Idan Horowitz
b6b8356c0c
LibJS: Implement Intl.DurationFormat.prototype.formatToParts
2022-07-01 01:00:05 +03:00
Idan Horowitz
706ff5ac83
LibJS: Implement Intl.DurationFormat.prototype.format
2022-07-01 01:00:05 +03:00
Idan Horowitz
b1fe6c3f68
LibJS: Implement the PartitionDurationFormatPattern abstract operation
2022-07-01 01:00:05 +03:00
Idan Horowitz
f4785e2468
LibUnicode: Generate data about DurationFormat-required units as well
2022-07-01 01:00:05 +03:00
Idan Horowitz
8e55eb960e
LibJS: Implement the ToDurationRecord abstract operation
2022-07-01 01:00:05 +03:00
Idan Horowitz
d9a4b3e46a
LibJS: Implement Intl.DurationFormat.prototype.resolvedOptions
2022-07-01 01:00:05 +03:00
Idan Horowitz
b20ef7d640
LibJS: Implement Intl.DurationFormat.supportedLocalesOf
2022-07-01 01:00:05 +03:00
Idan Horowitz
97fe37bcc2
LibJS: Start implementing the stage 3 Intl.DurationFormat proposal
2022-07-01 01:00:05 +03:00
Linus Groh
e1ee33ba7c
LibJS: Fix incorrect ErrorType in Temporal.PlainMonthDay constructor
2022-06-30 20:20:08 +01:00
Luke Wilde
c153d1779e
LibJS/Bytecode: End the for variable scope at the start of its end block
...
If the for loop's body is not block terminated, we will generate a Jump
to the end block which will block terminate the body. Then, we ended
the lexical variable scope if needed. However, since the body is now
block terminated, the "LeaveLexicalEnvironment" instruction that is
generated by end_variable_scope is now dropped on the floor.
This fixes this by moving it to the beginning of the end block.
2022-06-30 15:59:55 +01:00
Luke Wilde
bc08d39754
LibJS/Bytecode: Make for, do/while and while always switch to end block
...
Previously we only did this if the body block was not terminated.
If it was, all future codegen would happen in this block terminated
body block until another switch occurred, dropping all generated
instructions in this time on the floor.
2022-06-30 18:35:18 +04:30
Obinna Ikeh
104330d1a0
LibJS: Add tests cases for %TypedArray%.prototype.toSorted function
2022-06-29 13:36:54 +01:00
Obinna Ikeh
4dbb2c2d44
LibJS: Add %TypedArray%.prototype.toSorted
...
This change implements typed array prototype toSorted function.
It also introduces two new TypedArray functions
2022-06-29 13:36:54 +01:00
Obinna Ikeh
ee9353702c
LibJS: Implement element comparison function for typed arrays
2022-06-29 13:36:54 +01:00
Linus Groh
ca85e157e8
LibJS: Use null-prototype objects in a few more places in Temporal
...
This is a normative change in the Temporal spec.
See: 334479f
2022-06-29 07:35:42 +01:00
Linus Groh
3720f4bd8f
LibJS: Fix production for time zone name in time zone strings
...
This is a normative change in the Temporal spec.
See:
- caf013a
- fb7cfa6
2022-06-29 07:35:42 +01:00
Linus Groh
f5669a1373
LibJS: Mark CreateTemporalDate as infallible in DifferenceISODateTime
...
This is an editorial change in the Temporal spec.
See:
- af2dc2f
- 2e9ee68
2022-06-29 07:35:42 +01:00
Linus Groh
abb3f327ad
LibJS: Mark BalanceDuration as infallible in DifferenceISODateTime
...
This is an editorial change in the Temporal spec.
See: 5fefc2f
2022-06-29 07:35:42 +01:00
Linus Groh
cee54d2725
LibJS: Replace one use of BalanceISODate with CreateISODateRecord
...
This is an editorial change in the Temporal spec.
See: 7a7ddb7
2022-06-29 07:35:42 +01:00
Linus Groh
6eab1f0212
LibJS: Assert DifferenceISODateTime is called with valid datetime values
...
This is an editorial change in the Temporal spec.
See: 143b2e2
2022-06-29 07:35:42 +01:00
Linus Groh
4ba1018273
LibJS: Replace guaranteed zero [[Days]] field with constant zero
...
This is an editorial change in the Temporal spec.
See: 68f2802
2022-06-29 07:35:42 +01:00
Linus Groh
11a6702cef
LibJS: Assert [[Days]] is zero for the balanced time in DifferenceTime
...
This is an editorial change in the Temporal spec.
See: be982fb
2022-06-29 07:35:42 +01:00
Cyber Gsus
f97e664d8f
LibJS: Check for add overflow in DataViewConstructor
...
Use the Checked type from AK to verify that offset + view_byte_length
is buffer_byte_length at most.
2022-06-27 20:51:00 +01:00
Linus Groh
93b4c3bb82
LibJS: Infer file extensions when resolving module paths
...
This allows `import "./foo"` to succeed, even if the file is actually
called `foo.js`. IDEs commonly exclude file extensions in auto-imports.
Closes #14364 .
2022-06-26 22:03:53 +01:00
Linus Groh
2b3dd87296
LibJS: Rename filepath to filename in module related code
...
This is already the parameter name of Core::File::open() and
VM::get_stored_module() - both of which this is passed to - as well as
the member name of the Module class.
2022-06-26 22:03:53 +01:00
Linus Groh
893978ea89
LibJS: Replace enumeration macro in typed_array_species_create()
...
Use the newly added TypedArrayBase::intrinsic_constructor() instead to
get the required constructor from the global object.
Also add spec comments while we're here.
2022-06-26 21:57:39 +01:00
Linus Groh
3885fa1d10
LibJS: Store fn pointer to its intrinsic constructor on TypedArrayBase
...
This represents "the intrinsic object listed in column one of Table X"
in the spec.
2022-06-26 21:57:39 +01:00
Linus Groh
3beb7fc42f
LibJS/Tests: Correct pluralSmallestPluralDisallowedOptions largestUnit
2022-06-24 22:12:03 +01:00
Linus Groh
ee0d5d6649
LibJS: Refactor common option reading into the GetDifferenceSettings AO
...
This is an editorial change in the Temporal spec.
See: 78abbb8
2022-06-24 22:12:03 +01:00
Linus Groh
05c5263ecc
LibJS: Mark CreateTemporalDate in AddDateTime as infallible
...
This is an editorial change in the Temporal spec.
See: cd356a6
2022-06-24 22:12:03 +01:00
Linus Groh
80663d9d3b
LibJS: Mark CreateTemporalDate in ToRelativeTemporalObject as fallible
...
This is an editorial change in the Temporal spec.
See: 09e9f9c
2022-06-24 22:12:03 +01:00
Linus Groh
3679f671b9
LibJS: Mark some calls of CreateTemporalDate as infallible
...
This is an editorial change in the Temporal spec.
See: 30344e8
2022-06-24 22:12:03 +01:00
Linus Groh
26990ab41c
LibJS: Mark PlainTime.prototype.round's CreateTemporalTime infallible
...
This is an editorial change in the Temporal spec.
See: 6b57938
2022-06-24 22:12:03 +01:00
Linus Groh
709e16004d
LibJS: Assert RoundISODateTime is called with values within the limits
...
This is an editorial change in the Temporal spec.
See: eaa7042
2022-06-24 22:12:03 +01:00
Linus Groh
f54ed48ef1
LibJS: Assert AddTime is called with a valid time
...
This is an editorial change in the Temporal spec.
See: 0ead23c
2022-06-24 22:12:03 +01:00
Linus Groh
416f94eb3b
LibJS: Add Number conversion in PrepareTemporalFields
...
This is an editorial change in the Temporal spec.
See: 687d06c
2022-06-24 22:12:03 +01:00
Linus Groh
78bfeca643
LibJS: Add Number conversion in ZonedDateTime.prototype.getISOFields()
...
This is an editorial change in the Temporal spec.
See: bc59d8d
2022-06-24 22:12:03 +01:00
Linus Groh
ea023ac62c
LibJS: Add Number conversion in AddDu/ToOrSubtractDu/FromPlainYearMonth
...
This is an editorial change in the Temporal spec.
See: 823300c
2022-06-24 22:12:03 +01:00
Linus Groh
98dc964649
LibJS: Add conversion to mathematical number in ToTemporalTimeRecord
...
This is an editorial change in the Temporal spec.
See: 9f37d10
2022-06-24 22:12:03 +01:00
Linus Groh
7138f10c30
LibJS: Check for invalid epoch ns in DisambiguatePossibleInstants
...
This is a normative change in the Temporal spec.
See: c12d20d
2022-06-24 22:12:03 +01:00
Linus Groh
7b5a7e7759
LibJS: Check for invalid epoch nanoseconds in NanosecondsToDays
...
This is a normative change in the Temporal spec.
See: f1f016e
2022-06-24 22:12:03 +01:00
Linus Groh
ddea6d451b
LibJS: Check for invalid epoch nanoseconds in InterpretISODateTimeOffset
...
This is a normative change in the Temporal spec.
See: cdfe4a5
2022-06-24 22:12:03 +01:00
Linus Groh
d10e0f0e3e
LibJS: Check for invalid epoch nanoseconds in getPossibleInstantsFor()
...
This is a normative change in the Temporal spec.
See: 439e6af
2022-06-24 22:12:03 +01:00
Linus Groh
61bdbe712e
LibJS: Remove duplicate steps for offset-only time zones
...
This is an editorial change in the Temporal spec.
See: 7813599
2022-06-24 22:12:03 +01:00
Linus Groh
34f02bed17
LibJS: Remove check for Instant range before subtracting UTC offset
...
This is a normative change in the Temporal spec.
See: 5e2fecb
2022-06-24 22:12:03 +01:00