Timothy Flynn
85ffacacde
LibJS: Implement Temporal.PlainDateTime.prototype.add/subtract/equals
2024-11-24 11:43:59 +01:00
Timothy Flynn
d314fcce7a
LibJS: Implement stringification Temporal.PlainDateTime prototypes
2024-11-24 11:43:59 +01:00
Timothy Flynn
1a80161011
LibJS: Fix Temporal.PlainMonthDay.prototype.calendarId references
...
Small mistake porting old Temporal tests to the new spec. This getter
was `.calendar` in the old Temporal spec.
2024-11-24 11:43:59 +01:00
Timothy Flynn
029b6ad1a8
LibJS: Implement the Temporal.PlainDateTime constructor
...
And the simple Temporal.PlainDateTime.prototype getters, so that the
constructed Temporal.PlainDateTime may actually be validated.
2024-11-24 11:43:59 +01:00
Timothy Flynn
e37c9eaeff
LibJS: Implement Temporal.PlainTime.prototype.valueOf
2024-11-23 19:35:36 -05:00
Timothy Flynn
d639e9429f
LibJS: Implement Temporal.PlainTime.prototype.round/equals
2024-11-23 19:35:36 -05:00
Timothy Flynn
a0df194528
LibJS: Implement Temporal.PlainTime.prototype.with
2024-11-23 19:35:36 -05:00
Timothy Flynn
85eef698b9
LibJS: Implement Temporal.PlainTime.prototype.since/until
2024-11-23 19:35:36 -05:00
Timothy Flynn
1c22011ed6
LibJS: Implement Temporal.PlainTime.prototype.add/subtract
2024-11-23 19:35:36 -05:00
Timothy Flynn
ab3c825fa8
LibJS: Implement stringification Temporal.PlainTime prototypes
2024-11-23 19:35:36 -05:00
Timothy Flynn
66365fef57
LibJS: Implement the Temporal.PlainTime constructor
...
And the simple Temporal.PlainTime.prototype getters, so that the
constructed Temporal.PlainTime may actually be validated.
2024-11-23 19:35:36 -05:00
Timothy Flynn
d0149d8fc0
LibJS: Begin implementing the relativeTo option of Duration.total
2024-11-23 14:46:00 +01:00
Timothy Flynn
70ad66d3c0
LibJS: Begin implementing the relativeTo option of Duration.round
2024-11-23 14:46:00 +01:00
Timothy Flynn
0befd52725
LibJS: Begin implementing the relativeTo option of Duration.compare
2024-11-23 14:46:00 +01:00
Timothy Flynn
46998e922a
LibJS: Implement Temporal.PlainMonthDay/YearMonth.prototype.toPlainDate
2024-11-23 14:46:00 +01:00
Timothy Flynn
06ef32818e
LibJS: Implement Temporal.PlainDate.prototype.valueOf
2024-11-23 14:46:00 +01:00
Timothy Flynn
f8b593a7df
LibJS: Implement Temporal.PlainDate.prototype.toPlainMonthDay/YearMonth
2024-11-23 14:46:00 +01:00
Timothy Flynn
3aa4cdd314
LibJS: Implement Temporal.PlainDate.prototype.until/since
2024-11-23 14:46:00 +01:00
Timothy Flynn
f280a96e35
LibJS: Implement Temporal.PlainDate.prototype.with/withCalendar
2024-11-23 14:46:00 +01:00
Timothy Flynn
c2ead84bd9
LibJS: Implement Temporal.PlainDate.prototype.add/subtract/equals
2024-11-23 14:46:00 +01:00
Timothy Flynn
9fbb5a57fa
LibJS: Implement stringification Temporal.PlainDate prototypes
2024-11-23 14:46:00 +01:00
Timothy Flynn
a0c55f76e7
LibJS: Implement the Temporal.PlainDate constructor
...
And the simple Temporal.PlainDate.prototype getters, so that the
constructed Temporal.PlainDate may actually be validated.
2024-11-23 14:46:00 +01:00
Timothy Flynn
b64ccb95ec
LibJS: Implement Temporal.PlainYearMonth.prototype.valueOf
2024-11-22 19:55:24 +01:00
Timothy Flynn
35f22dcf79
LibJS: Implement Temporal.PlainYearMonth.prototype.add/subtract
2024-11-22 19:55:24 +01:00
Timothy Flynn
cb5d1b5086
LibJS: Implement Temporal.PlainYearMonth.prototype.until/since
2024-11-22 19:55:24 +01:00
Timothy Flynn
203269fae2
LibJS: Implement Temporal.PlainYearMonth.prototype.with/equals
2024-11-22 19:55:24 +01:00
Timothy Flynn
2da526423f
LibJS: Implement stringification Temporal.PlainYearMonth prototypes
2024-11-22 19:55:24 +01:00
Timothy Flynn
b68d67693e
LibJS: Implement the Temporal.PlainYearMonth constructor
...
And the simple Temporal.PlainYearMonth.prototype getters, so that the
constructed Temporal.PlainYearMonth may actually be validated.
2024-11-22 19:55:24 +01:00
Timothy Flynn
64811ab7b6
LibJS: Implement Temporal.PlainMonthDay.prototype.valueOf
2024-11-21 19:24:25 -05:00
Timothy Flynn
5389acc231
LibJS: Implement Temporal.PlainMonthDay.prototype.with/equals
2024-11-21 19:24:25 -05:00
Timothy Flynn
5bccb36a6f
LibJS: Implement stringification Temporal.PlainMonthDay prototypes
2024-11-21 19:24:25 -05:00
Timothy Flynn
1a386e78c3
LibJS: Implement the Temporal.PlainMonthDay constructor
...
And the simple Temporal.PlainMonthDay.prototype getters, so that the
constructed Temporal.PlainMonthDay may actually be validated.
2024-11-21 19:24:25 -05:00
Timothy Flynn
f57ff63432
LibJS: Implement Temporal.Duration.prototype.valueOf
2024-11-20 19:04:30 -05:00
Timothy Flynn
c715711f88
LibJS: Implement Temporal.Duration.prototype.total
...
Until we have re-implemented Temporal.PlainDate/ZonedDateTime, some of
Temporal.Duration.prototype.total (and its invoked AOs) are left
unimplemented.
2024-11-20 19:04:30 -05:00
Timothy Flynn
5689621c2b
LibJS: Implement Temporal.Duration.prototype.round
...
Until we have re-implemented Temporal.PlainDate/ZonedDateTime, some of
Temporal.Duration.prototype.round (and its invoked AOs) are left
unimplemented.
2024-11-20 19:04:30 -05:00
Timothy Flynn
4742775262
LibJS: Implement stringification Temporal.Duration prototypes
2024-11-20 19:04:30 -05:00
Timothy Flynn
a80523be18
LibJS: Implement mathematical Temporal.Duration prototypes
...
Includes:
Temporal.Duration.prototype.negated
Temporal.Duration.prototype.abs
Temporal.Duration.prototype.add
Temporal.Duration.prototype.subtract
2024-11-20 19:04:30 -05:00
Timothy Flynn
55c81482b0
LibJS: Implement Temporal.Duration.prototype.with
2024-11-20 19:04:30 -05:00
Timothy Flynn
dfaa3bf649
LibJS: Implement Temporal.Duration.prototype.sign/blank
2024-11-20 19:04:30 -05:00
Timothy Flynn
5fe0d3352d
LibJS: Implement the Temporal.Duration constructor
...
This also includes a stubbed Temporal.Duration.prototype.
Until we have re-implemented Temporal.PlainDate/ZonedDateTime, some of
Temporal.Duration.compare (and its invoked AOs) are left unimplemented.
2024-11-20 19:04:30 -05:00
Timothy Flynn
f7517c5b8d
LibJS: Remove our existing Temporal implementation
...
Our Temporal implementation is woefully out of date. The spec has been
so vastly rewritten that it is unfortunately not practical to update our
implementation in-place. Even just removing Temporal objects that were
removed from the spec, or updating any of the simpler remaining objects,
has proven to be a mess in previous attempts.
So, this removes our Temporal implementation. AOs used by other specs
are left intact.
2024-11-20 19:04:30 -05:00
rmg-x
74b27d620d
LibJS: Parse dates like "Wed Nov 20 2024"
2024-11-20 09:20:48 +00:00
Timothy Flynn
8bd394f349
LibJS: Use an Intl prototype for a Function.prototype.toString test
...
The Temporal.TimeZone object no longer exists in the Temporal spec.
2024-11-18 17:46:41 -05:00
Luke Wilde
6319dedbcd
LibJS: Perform TLA async function construction in the module context
...
Previously it was only pushing the module context for the call to
capture the module execution context. This is incorrect, as the capture
occurs upon function construction. This resulted in it capturing the
execution context that execute_module was called from, instead of the
newly created module_context.
f87041bf3a/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp (L92)
This can be demonstrated with the following setup:
index.html:
```html
<script>
var foo = 1;
</script>
<script type="module">
import {test} from "./scriptA.mjs";
</script>
```
scriptA.mjs:
```js
function foo() {
return {a: "b"};
}
export let test = await foo();
```
Before this fix, this would throw:
```
[TypeError] 1 is not a function (evaluated from 'foo')
at module code with top-level await
at module code with top-level await
at <unknown>
at <unknown>
```
Fixes #2245 .
2024-11-15 18:52:22 +01:00
Luke Wilde
956b279ae1
LibJS: Parse dates like "November 19 2024 00:00:00 +0900"
...
This format is used on https://jojowiki.com/ to show countdowns to new
releases.
2024-11-12 13:23:34 +01:00
rmg-x
ea20545853
LibJS: Add support for Float16Array
...
Implements TC39 stage three proposal for Float16Arrays:
https://tc39.es/proposal-float16array
2024-11-10 14:48:20 -07:00
Shannon Booth
e02ca0480f
LibJS: Allow unpaired surrogates in String.prototype.replace
...
This was resulting in a crash for the WPT test case:
https://wpt.live/xhr/send-data-string-invalid-unicode.any.html
2024-11-10 09:14:03 -05:00
Timothy Flynn
93712b24bf
Everywhere: Hoist the Libraries folder to the top-level
2024-11-10 12:50:45 +01:00
Andreas Kling
13d7c09125
Libraries: Move to Userland/Libraries/
2021-01-12 12:17:46 +01:00
Marcin Gasperowicz
b24ce0b5ee
LibJS: Implement String.prototype.split
...
This adds a String.prototype.split implementation modelled after
ECMA262 specification.
Additionally, `Value::to_u32` was added as an implementation of
the standard `ToUint32` abstract operation.
There is a tiny kludge for when the separator is an empty string.
Basic tests and visiting google.com prove that this is working.
2021-01-10 21:27:59 +01:00