Linus Groh
627291b075
LibJS: Port calendar_month_code() to String
2023-01-26 20:20:54 +00:00
Linus Groh
46cff34baf
LibJS: Port get_builtin_calendar() to String
2023-01-26 20:20:54 +00:00
Linus Groh
a101b15ad0
LibJS: Port create_temporal_calendar() to String
2023-01-26 20:20:54 +00:00
Linus Groh
0f5f9acc9c
LibJS: Port canonicalize_time_zone_name() to String
2023-01-26 20:20:54 +00:00
Linus Groh
96855d53c4
LibJS: Use StringView for SecondsStringPrecision::unit
...
This is exclusively used with sv literals, and can be a StringView like
precision above it.
This removes the last use of DeprecatedString in Temporal's
AbstractOperations.h :^)
2023-01-26 20:20:54 +00:00
Linus Groh
4a7d6670d8
LibJS: Port calendar / time zone members of Temporal* structs to String
2023-01-26 20:20:54 +00:00
Linus Groh
ef389c086d
LibJS: Port parse_temporal_calendar_string()
...
Also make is_builtin_calendar() take a StringView as part of this, it
only does equality checks.
2023-01-26 20:20:54 +00:00
Linus Groh
8f7c2f8292
LibJS: Port get_difference_settings() to String
...
Also make balance_duration() take a StringView as part of this, it only
does equality checks.
2023-01-26 20:20:54 +00:00
Linus Groh
227379a1da
LibJS: Port prepare_temporal_fields() and calendar_fields() to String
2023-01-26 20:20:54 +00:00
Linus Groh
90a1de564c
LibJS: Make parse_temporal_*_string() take a StringView
...
The underlying parse_iso8601() function already does this as well.
2023-01-26 20:20:54 +00:00
Linus Groh
82ba940646
LibJS: Port format_seconds_string_part() to String
2023-01-26 20:20:54 +00:00
Linus Groh
654911444e
LibJS: Port merge_largest_unit_option() to String
2023-01-26 20:20:54 +00:00
Linus Groh
918122c1e3
LibJS: Port get_temporal_unit() to String
2023-01-26 20:20:54 +00:00
Linus Groh
f928c7754d
LibJS: Port to_show_offset_option() to String
2023-01-26 20:20:54 +00:00
Linus Groh
ddd5d8531b
LibJS: Port to_time_zone_name_option() to String
2023-01-26 20:20:54 +00:00
Linus Groh
0435156a86
LibJS: Port to_calendar_name_option() to String
2023-01-26 20:20:54 +00:00
Linus Groh
a387b22599
LibJS: Port to_temporal_offset() to String
2023-01-26 20:20:54 +00:00
Linus Groh
3aa3ab65b1
LibJS: Port to_temporal_rounding_mode() to String
...
Also make negate_temporal_rounding_mode() take a StringView as part of
this, it only does equality checks.
2023-01-26 20:20:54 +00:00
Linus Groh
ec9f2013c9
LibJS: Port to_temporal_disambiguation() to String
2023-01-26 20:20:54 +00:00
Linus Groh
b8759e86ee
LibJS: Port to_temporal_overflow() to String
2023-01-26 20:20:54 +00:00
Linus Groh
2ff989914d
LibJS: Make Value::typeof() return a StringView
2023-01-26 17:26:31 +00:00
Timothy Flynn
0c2efa285a
LibJS+LibLocale: Port Intl.NumberFormat to String
2023-01-24 16:23:50 -05:00
Timothy Flynn
bc9a440f31
LibJS: Use correct type for NumberFormat's UseGrouping internal slot
...
This was converted to an enumeration for Intl.NumberFormat V3 in commit
33698b9615
, but the default value was not
updated (and it's a bit surprising it compiled at all, given that this
is an 'enum class').
2023-01-24 16:23:50 -05:00
Timothy Flynn
4548906e7b
LibJS: Propagate OOM errors from all Intl.Locale *OfLocale AOs
2023-01-24 16:23:50 -05:00
Timothy Flynn
f2527c8c81
LibJS: Add a fallible variant of Array::create_from
2023-01-24 16:23:50 -05:00
Timothy Flynn
879a590882
LibJS: Propagate OOM errors from ApplyUnicodeExtensionToTag
...
These were missed in bff0e25ebe
.
2023-01-24 16:23:50 -05:00
Timothy Flynn
d2ec31cbdb
LibJS: Remove DeprecatedString usage from Intl.PluralRules
...
This can make due with a StringView.
2023-01-24 16:23:50 -05:00
davidot
bb483c8308
LibJS: Add missing MUST in DisposableStack.prototype.use
...
Although the spec has a TRY here I believe this is a spec issue
together with the missing TRY just above this change.
2023-01-24 15:50:39 +00:00
davidot
6255ca4a42
LibJS: Add DisposableStack{, Prototype, Constructor}
...
Since the async parts of the spec are not stage 3 at this point we don't
add AsyncDisposableStack.
2023-01-23 09:56:50 +00:00
davidot
bff038411a
LibJS: Add using declaration support in for and for of loops
...
The using declarations have kind of special behavior in for loops so
this is seperated.
2023-01-23 09:56:50 +00:00
davidot
541637e15a
LibJS: Add using declaration support, RAII like operation in js
...
In this patch only top level and not the more complicated for loop using
statements are supported. Also, as noted in the latest meeting of tc39
async parts of the spec are not stage 3 thus not included.
2023-01-23 09:56:50 +00:00
davidot
2c87ff2218
LibJS: Add Symbol.dispose
2023-01-23 09:56:50 +00:00
davidot
a746739cb0
LibJS: Add an initialize binding hint to all initialize_binding methods
...
This will allow us to specify things like SyncDispose and perhaps
AsyncDispose in the future.
2023-01-23 09:56:50 +00:00
davidot
3353cf68f1
LibJS: Add SuppressedError{, Prototype, Constructor}
2023-01-23 09:56:50 +00:00
davidot
0d8bab82f0
LibJS: Add custom details to toBe{True, False} shown on failure
...
Any test with multiple expect(...).toBe{True, False} checks is very hard
to debug.
2023-01-23 09:56:50 +00:00
davidot
fa030d7b9c
LibJS: Clarify more errors in test-common
...
Without a message these just show 'ExpectationError' even if the check
has multiple steps.
2023-01-23 09:56:50 +00:00
Nico Weber
401246ae21
LibJS: Use is_unicode_surrogate more
...
No behavior change.
2023-01-22 21:27:32 +00:00
Nico Weber
868b358b1a
LibJS: Add spec comments to quote_json_string
2023-01-22 21:27:32 +00:00
Nico Weber
ba97f471ca
LibJS: Add spec comments to CodePointAt
2023-01-22 21:27:32 +00:00
Timothy Flynn
243caa8fa9
LibJS: Port the VM's single-character ASCII strings to String
...
This creates the Strings representing the ASCII characters at compile
time, then creates the PrimitiveStrings from those Strings when the VM
is created.
2023-01-22 01:03:13 +00:00
Timothy Flynn
34574c5ee8
LibJS+LibWeb: Convert empty PrimitiveString invocators to String
2023-01-22 01:03:13 +00:00
Timothy Flynn
1bcde5d216
LibJS: Port ListFormat and PatternPartition to String
2023-01-22 01:03:13 +00:00
Timothy Flynn
20536897e4
LibJS+LibLocale: Port remaining locale APIs to String
2023-01-22 01:03:13 +00:00
Timothy Flynn
95d1678553
LibJS: Mark infallible operations that may throw only due to OOM
2023-01-20 20:31:38 +00:00
Timothy Flynn
52b76060f9
LibJS: Add a macro for infallible operations that may throw OOM
...
If a spec step hasn't been marked as fallible, but might throw due to
OOM, this is to make it clear that OOM is the only thing that may cause
a failure.
2023-01-20 20:31:38 +00:00
Timothy Flynn
f1de4f8872
Everywhere: Convert known short-strings to the infallible String factory
...
For now, this is limited to strings that are 3 bytes or less. We can use
7 bytes on 64-bit platforms, but we do not yet assume 64-bit for Lagom
hosts (e.g. wasm).
2023-01-20 14:24:12 -05:00
Timothy Flynn
be8907e6bb
LibJS: Return OptionalNone in fallible functions in the Intl namespace
2023-01-19 23:13:44 +00:00
Timothy Flynn
5349972f41
LibJS: Add a special ThrowCompletionOr constructor for OptionalNone
...
Currently, if you have a fallible function with an Optional return type
and try to return OptionalNone like this:
ThrowCompletionOr<Optional<SomeType>> { return OptionalNone {}; }
Then ThrowCompletionOr's m_value (whose type is an Optional<ValueType>)
will be set to empty, rather than containing an empty Optional. This is
due to the ThrowCompletionOr's WrappedValueType constructor.
This patch adds a constructor specifically for OptionalNone. If someone
attempts to construct a ThrowCompletionOr with OptionalNone, but the
ValueType is not an Optional, a compile error like the following will
occur:
ThrowCompletionOr<String> foo() { return OptionalNone {}; }
error: no matching constructor for initialization of 'AK::String'
Otherwise, it will fill ThrowCompletionOr's m_value with an empty
Optional.
2023-01-19 23:13:44 +00:00
Timothy Flynn
bb4b6d8ce3
LibJS: Port Intl locale resolution to String
2023-01-19 20:57:30 +00:00
Timothy Flynn
2f1184ccdb
LibJS: Do not fully qualify references to CanonicalizeUnicodeLocaleId
...
This might've been needed at some point to disambiguate between another
function of the same name that is in LibLocale. But now that it takes a
VM parameter, it is for sure clear to the compiler what is being called.
2023-01-19 20:57:30 +00:00