Idan Horowitz
db5df26841
LibJS: Convert Array AOs to ThrowCompletionOr
2021-10-22 15:07:04 +03:00
Idan Horowitz
3426285738
LibJS: Convert Locale AOs to ThrowCompletionOr
2021-10-22 15:07:04 +03:00
Linus Groh
5832de62fe
LibJS: Convert NativeFunction::{call,construct}() to ThrowCompletionOr
...
Both at the same time because many of them call construct() in call()
and I'm not keen on adding a bunch of temporary plumbing to turn
exceptions into throw completions.
Also changes the return value of construct() to Object* instead of Value
as it always needs to return an object; allowing an arbitrary Value is a
massive foot gun.
2021-10-21 09:02:23 +01:00
Linus Groh
0881f8160f
LibJS: Use implicit ThrowCompletionOr<T> constructor where possible
...
Luckily this is not very widespread yet as most of it would happen in
the various JS functions instead of AOs.
2021-10-21 09:02:23 +01:00
Timothy Flynn
ec54a7b5b0
LibJS: Implement IteratorClose with Completions and align to the spec
2021-10-21 00:26:45 +01:00
Timothy Flynn
7b4814f74c
LibJS: Convert IteratorValue AO to ThrowCompletionOr
2021-10-21 00:26:45 +01:00
Timothy Flynn
8be1caa05d
LibJS: Convert IteratorStep AO to ThrowCompletionOr
2021-10-21 00:26:45 +01:00
Timothy Flynn
860a37640b
LibJS: Convert GetIterator AO to ThrowCompletionOr
2021-10-21 00:26:45 +01:00
Idan Horowitz
40eb3a39d4
LibJS: Rename define_native_function => define_old_native_function
...
This method will eventually be removed once all native functions are
converted to ThrowCompletionOr
2021-10-20 12:27:19 +01:00
Idan Horowitz
20163c0584
LibJS: Add ThrowCompletionOr versions of the JS native function macros
...
The old versions were renamed to JS_DECLARE_OLD_NATIVE_FUNCTION and
JS_DEFINE_OLD_NATIVE_FUNCTION, and will be eventually removed once all
native functions were converted to the new format.
2021-10-20 12:27:19 +01:00
Idan Horowitz
56e769e4ba
LibJS: Replace usages of JS_{DECLARE, DEFINE}_NATIVE_GETTER
...
These macros are equivalent to JS_{DECLARE, DEFINE}_NATIVE_FUNCTION and
were only sometimes used, so let's just get rid of them altogether.
2021-10-20 12:27:19 +01:00
Linus Groh
4b7c1f703e
LibJS: Convert PrototypeObject::typed_this_object() to ThrowCompletionOr
2021-10-18 21:24:30 +01:00
Linus Groh
ffee3890a7
LibJS: Remove a bunch of forgotten exception checks after TRY_OR_DISCARD
...
Not quite sure how that happened :^)
2021-10-18 21:24:30 +01:00
Idan Horowitz
aad12b050b
LibJS: Convert to_length() to ThrowCompletionOr
2021-10-18 08:01:38 +03:00
Idan Horowitz
20d990563c
LibJS: Convert to_number() to ThrowCompletionOr
2021-10-18 08:01:38 +03:00
Linus Groh
52976bfac6
LibJS: Convert to_object() to ThrowCompletionOr
2021-10-13 09:55:10 +01:00
Linus Groh
96ab116f0d
LibJS: Convert to_primitive_string() to ThrowCompletionOr
2021-10-13 09:55:10 +01:00
Linus Groh
4d8912a92b
LibJS: Convert to_string() to ThrowCompletionOr
...
Also update get_function_name() to use ThrowCompletionOr, but this is
not a standard AO and should be refactored out of existence eventually.
2021-10-13 09:55:10 +01:00
Linus Groh
f38a5957bf
LibJS: Convert has_property() to ThrowCompletionOr
2021-10-03 20:14:03 +01:00
Linus Groh
364dd42fc8
LibJS: Convert create_data_property_or_throw() to ThrowCompletionOr
2021-10-03 20:14:03 +01:00
Linus Groh
b7e5f08e56
LibJS: Convert Object::get() to ThrowCompletionOr
...
To no one's surprise, this patch is pretty big - this is possibly the
most used AO of all of them. Definitely worth it though.
2021-10-03 20:14:03 +01:00
Idan Horowitz
e00ca10283
LibJS: Convert ListFormat AOs to ThrowCompletionOr
2021-09-18 22:59:15 +03:00
Idan Horowitz
e65aeee67d
LibJS: Convert DisplayNames AOs to ThrowCompletionOr
2021-09-18 22:59:15 +03:00
Idan Horowitz
768009e005
LibJS: Convert NumberFormat AOs to ThrowCompletionOr
2021-09-18 22:59:15 +03:00
Idan Horowitz
407cf04884
LibJS: Convert get_number_option() to ThrowCompletionOr
2021-09-18 22:21:15 +03:00
Idan Horowitz
6d3de03549
LibJS: Convert default_number_option() to ThrowCompletionOr
2021-09-18 22:21:15 +03:00
Idan Horowitz
b9c7a629f8
LibJS: Convert coerce_options_to_object() to ThrowCompletionOr
2021-09-18 22:21:15 +03:00
Idan Horowitz
d0e5fc4576
LibJS: Convert supported_locales() to ThrowCompletionOr
2021-09-18 22:21:15 +03:00
Idan Horowitz
de9785b71b
LibJS: Convert Intl::get_option() to ThrowCompletionOr
2021-09-18 22:21:15 +03:00
Idan Horowitz
3758e65293
LibJS: Convert canonicalize_locale_list() to ThrowCompletionOr
2021-09-18 22:21:15 +03:00
Linus Groh
08dd1c3e2d
LibJS: Convert get_options_object() to ThrowCompletionOr
2021-09-16 22:34:24 +01:00
Idan Horowitz
5a4c90fcb1
LibJS: Convert ordinary_create_from_constructor<T> to ThrowCompletionOr
2021-09-16 13:53:37 +01:00
Linus Groh
8253e14818
LibJS: Convert Intl.NumberFormat.prototype to be a PrototypeObject
2021-09-13 19:07:26 +01:00
Linus Groh
b0c1179ff8
LibJS: Convert Intl.Locale.prototype to be a PrototypeObject
2021-09-13 19:07:26 +01:00
Linus Groh
c277658ca6
LibJS: Convert Intl.ListFormat.prototype to be a PrototypeObject
2021-09-13 19:07:26 +01:00
Linus Groh
b256b50476
LibJS: Convert Intl.DisplayNames.prototype to be a PrototypeObject
2021-09-13 19:07:26 +01:00
Timothy Flynn
673fc02ac5
LibJS: Move locale_relevant_extension_keys to Intl.Locale
2021-09-12 12:57:17 +01:00
Timothy Flynn
7769cd2cab
LibJS: Move number_format_relevant_extension_keys to Intl.NumberFormat
...
This method represents the Intl.NumberFormat's [[RelevantExtensionKeys]]
internal slot, so it makes more sense for this to be directly in the
class itself.
2021-09-12 12:57:17 +01:00
Timothy Flynn
94a5a0437c
LibJS: Move Intl.NumberFormat's AOs to its object file
2021-09-12 12:57:17 +01:00
Timothy Flynn
0b08201fec
LibJS: Move Intl.ListFormat's AOs to its object file
...
To be consistent with the style in Temporal, let's move all AOs in Intl
to their object file, rather than splitting the AOs between prototype
and constructor files.
2021-09-12 12:57:17 +01:00
Timothy Flynn
ae7b5280c2
LibJS: Make "options" objects const references in NumberFormat's AOs
2021-09-12 12:57:17 +01:00
Timothy Flynn
7f700bd84e
LibJS: Make GetNumberOption's "options" object a const reference
2021-09-12 12:57:17 +01:00
Timothy Flynn
aa2af06c84
LibJS: Store Intl.Locale's "tag" argument as a plain string
2021-09-12 12:57:17 +01:00
Timothy Flynn
4411e16798
LibJS: Change GetOption AO to accept the options as a concrete Object
...
This was being verified at runtime anyways, so let the compiler ensure
it. This also matches the GetOption AO in Temporal now.
2021-09-12 12:57:17 +01:00
Timothy Flynn
ada56981dc
LibJS: Sort Intl AbstractOperation declarations by spec ID
...
The definitions in the .cpp file are already sorted this way.
2021-09-12 12:57:17 +01:00
Timothy Flynn
094c390fb1
LibJS: Move CanonicalCodeForDisplayNames to Intl.DisplayNames
...
Intl.DisplayNames was the first Intl object implemented, and at that
point all AOs were just put into the main Intl AO header. But AOs that
belong to specific objects belong in that object's header. So this moves
CanonicalCodeForDisplayNames to the Intl.DisplayNames header.
2021-09-12 12:57:17 +01:00
Timothy Flynn
470262c8ab
LibJS: Use ErrorType::NotAnObjectOfType instead of NotA
2021-09-12 00:16:39 +02:00
Timothy Flynn
9b5696fee7
LibJS: Implement Intl.NumberFormat.prototype.resolvedOptions
2021-09-11 11:05:50 +01:00
Timothy Flynn
071e193d92
LibJS: Implement Intl.NumberFormat.supportedLocalesOf
2021-09-11 11:05:50 +01:00
Timothy Flynn
e42ba7f748
LibJS: Implement the Intl.NumberFormat constructor
2021-09-11 11:05:50 +01:00