summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Libraries/LibJS/Runtime/DatePrototype.cpp148
-rw-r--r--Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.cpp12
-rw-r--r--Userland/Libraries/LibJS/Runtime/GeneratorObjectPrototype.cpp12
-rw-r--r--Userland/Libraries/LibJS/Runtime/Intl/DisplayNamesPrototype.cpp8
-rw-r--r--Userland/Libraries/LibJS/Runtime/Intl/ListFormatPrototype.cpp12
-rw-r--r--Userland/Libraries/LibJS/Runtime/Intl/LocalePrototype.cpp48
-rw-r--r--Userland/Libraries/LibJS/Runtime/Intl/NumberFormatPrototype.cpp4
-rw-r--r--Userland/Libraries/LibJS/Runtime/MapPrototype.cpp40
-rw-r--r--Userland/Libraries/LibJS/Runtime/PromisePrototype.cpp4
-rw-r--r--Userland/Libraries/LibJS/Runtime/PrototypeObject.h13
-rw-r--r--Userland/Libraries/LibJS/Runtime/RegExpPrototype.cpp8
-rw-r--r--Userland/Libraries/LibJS/Runtime/SetPrototype.cpp32
-rw-r--r--Userland/Libraries/LibJS/Runtime/ShadowRealmPrototype.cpp8
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/CalendarPrototype.cpp88
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/DurationPrototype.cpp60
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp60
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/PlainDatePrototype.cpp96
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTimePrototype.cpp120
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/PlainMonthDayPrototype.cpp36
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/PlainTimePrototype.cpp56
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/PlainYearMonthPrototype.cpp64
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/TimeZonePrototype.cpp12
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/ZonedDateTimePrototype.cpp140
-rw-r--r--Userland/Libraries/LibJS/Runtime/WeakMapPrototype.cpp16
-rw-r--r--Userland/Libraries/LibJS/Runtime/WeakRefPrototype.cpp4
-rw-r--r--Userland/Libraries/LibJS/Runtime/WeakSetPrototype.cpp12
26 files changed, 282 insertions, 831 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/DatePrototype.cpp b/Userland/Libraries/LibJS/Runtime/DatePrototype.cpp
index 5c6ca9b943..9ec27a3cf5 100644
--- a/Userland/Libraries/LibJS/Runtime/DatePrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/DatePrototype.cpp
@@ -95,9 +95,7 @@ DatePrototype::~DatePrototype()
// 21.4.4.2 Date.prototype.getDate ( ), https://tc39.es/ecma262/#sec-date.prototype.getdate
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_date)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -108,9 +106,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_date)
// 21.4.4.20 Date.prototype.setDate ( date ), https://tc39.es/ecma262/#sec-date.prototype.setdate
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_date)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto& datetime = this_object->datetime();
@@ -134,9 +130,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_date)
// 21.4.4.3 Date.prototype.getDay ( ), https://tc39.es/ecma262/#sec-date.prototype.getday
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_day)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -147,9 +141,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_day)
// 21.4.4.4 Date.prototype.getFullYear ( ), https://tc39.es/ecma262/#sec-date.prototype.getfullyear
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_full_year)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -160,9 +152,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_full_year)
// 21.4.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] ), https://tc39.es/ecma262/#sec-date.prototype.setfullyear
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_full_year)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto& datetime = this_object->datetime();
@@ -205,9 +195,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_full_year)
// B.2.4.1 Date.prototype.getYear ( ), https://tc39.es/ecma262/#sec-date.prototype.getyear
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_year)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -218,9 +206,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_year)
// B.2.4.2 Date.prototype.setYear ( year ), https://tc39.es/ecma262/#sec-date.prototype.setyear
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_year)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto& datetime = this_object->datetime();
@@ -247,9 +233,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_year)
// 21.4.4.5 Date.prototype.getHours ( ), https://tc39.es/ecma262/#sec-date.prototype.gethours
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_hours)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -260,9 +244,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_hours)
// 21.4.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] ), https://tc39.es/ecma262/#sec-date.prototype.sethours
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_hours)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto arg_or = [&vm, &global_object](size_t i, i32 fallback) -> ThrowCompletionOr<Value> {
return vm.argument_count() > i ? vm.argument(i).to_number(global_object) : Value(fallback);
@@ -314,9 +296,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_hours)
// 21.4.4.23 Date.prototype.setMilliseconds ( ms ), https://tc39.es/ecma262/#sec-date.prototype.setmilliseconds
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_milliseconds)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -327,9 +307,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_milliseconds)
// 21.4.4.23 Date.prototype.setMilliseconds ( ms ), https://tc39.es/ecma262/#sec-date.prototype.setmilliseconds
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_milliseconds)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto new_milliseconds_value = TRY_OR_DISCARD(vm.argument(0).to_number(global_object));
@@ -361,9 +339,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_milliseconds)
// 21.4.4.7 Date.prototype.getMinutes ( ), https://tc39.es/ecma262/#sec-date.prototype.getminutes
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_minutes)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -374,9 +350,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_minutes)
// 21.4.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] ), https://tc39.es/ecma262/#sec-date.prototype.setminutes
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_minutes)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto arg_or = [&vm, &global_object](size_t i, i32 fallback) -> ThrowCompletionOr<Value> {
return vm.argument_count() > i ? vm.argument(i).to_number(global_object) : Value(fallback);
@@ -421,9 +395,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_minutes)
// 21.4.4.8 Date.prototype.getMonth ( ), https://tc39.es/ecma262/#sec-date.prototype.getmonth
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_month)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -434,9 +406,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_month)
// 21.4.4.25 Date.prototype.setMonth ( month [ , date ] ), https://tc39.es/ecma262/#sec-date.prototype.setmonth
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_month)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto arg_or = [&vm, &global_object](size_t i, i32 fallback) -> ThrowCompletionOr<Value> {
return vm.argument_count() > i ? vm.argument(i).to_number(global_object) : Value(fallback);
@@ -471,9 +441,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_month)
// 21.4.4.9 Date.prototype.getSeconds ( ), https://tc39.es/ecma262/#sec-date.prototype.getseconds
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_seconds)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -484,9 +452,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_seconds)
// 21.4.4.26 Date.prototype.setSeconds ( sec [ , ms ] ), https://tc39.es/ecma262/#sec-date.prototype.setseconds
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_seconds)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto arg_or = [&vm, &global_object](size_t i, i32 fallback) -> ThrowCompletionOr<Value> {
return vm.argument_count() > i ? vm.argument(i).to_number(global_object) : Value(fallback);
@@ -524,9 +490,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_seconds)
// 21.4.4.10 Date.prototype.getTime ( ), https://tc39.es/ecma262/#sec-date.prototype.gettime
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_time)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -537,9 +501,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_time)
// 21.4.4.27 Date.prototype.setTime ( time ), https://tc39.es/ecma262/#sec-date.prototype.settime
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_time)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto new_time_value = TRY_OR_DISCARD(vm.argument(0).to_number(global_object));
if (!new_time_value.is_finite_number()) {
@@ -564,9 +526,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::set_time)
// 21.4.4.11 Date.prototype.getTimezoneOffset ( ), https://tc39.es/ecma262/#sec-date.prototype.gettimezoneoffset
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_timezone_offset)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -578,9 +538,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_timezone_offset)
// 21.4.4.12 Date.prototype.getUTCDate ( ), https://tc39.es/ecma262/#sec-date.prototype.getutcdate
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_date)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -591,9 +549,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_date)
// 21.4.4.13 Date.prototype.getUTCDay ( ), https://tc39.es/ecma262/#sec-date.prototype.getutcday
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_day)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -604,9 +560,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_day)
// 21.4.4.14 Date.prototype.getUTCFullYear ( ), https://tc39.es/ecma262/#sec-date.prototype.getutcfullyear
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_full_year)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -617,9 +571,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_full_year)
// 21.4.4.15 Date.prototype.getUTCHours ( ), https://tc39.es/ecma262/#sec-date.prototype.getutchours
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_hours)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -630,9 +582,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_hours)
// 21.4.4.16 Date.prototype.getUTCMilliseconds ( ), https://tc39.es/ecma262/#sec-date.prototype.getutcmilliseconds
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_milliseconds)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -643,9 +593,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_milliseconds)
// 21.4.4.18 Date.prototype.getUTCMonth ( ), https://tc39.es/ecma262/#sec-date.prototype.getutcmonth
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_month)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -656,9 +604,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_month)
// 21.4.4.17 Date.prototype.getUTCMinutes ( ), https://tc39.es/ecma262/#sec-date.prototype.getutcminutes
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_minutes)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -669,9 +615,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_minutes)
// 21.4.4.19 Date.prototype.getUTCSeconds ( ), https://tc39.es/ecma262/#sec-date.prototype.getutcseconds
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_seconds)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_nan();
@@ -682,9 +626,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::get_utc_seconds)
// 21.4.4.35 Date.prototype.toDateString ( ), https://tc39.es/ecma262/#sec-date.prototype.todatestring
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_date_string)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_string(vm, "Invalid Date");
@@ -703,9 +645,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_gmt_string)
// 21.4.4.43 Date.prototype.toUTCString ( ), https://tc39.es/ecma262/#sec-date.prototype.toutcstring
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_utc_string)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_string(vm, "Invalid Date");
@@ -718,9 +658,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_utc_string)
// 21.4.4.36 Date.prototype.toISOString ( ), https://tc39.es/ecma262/#sec-date.prototype.toisostring
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_iso_string)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid()) {
vm.throw_exception<RangeError>(global_object, ErrorType::InvalidTimeValue);
@@ -734,9 +672,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_iso_string)
// 21.4.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] ), https://tc39.es/ecma262/#sec-date.prototype.tolocaledatestring
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_locale_date_string)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_string(vm, "Invalid Date");
@@ -749,9 +685,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_locale_date_string)
// 21.4.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] ), https://tc39.es/ecma262/#sec-date.prototype.tolocalestring
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_locale_string)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_string(vm, "Invalid Date");
@@ -764,9 +698,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_locale_string)
// 21.4.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] ), https://tc39.es/ecma262/#sec-date.prototype.tolocaletimestring
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_locale_time_string)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_string(vm, "Invalid Date");
@@ -779,9 +711,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_locale_time_string)
// 21.4.4.42 Date.prototype.toTimeString ( ), https://tc39.es/ecma262/#sec-date.prototype.totimestring
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_time_string)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_string(vm, "Invalid Date");
@@ -793,9 +723,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_time_string)
// 21.4.4.41 Date.prototype.toString ( ), https://tc39.es/ecma262/#sec-date.prototype.tostring
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_string)
{
- auto* this_object = typed_this_object(global_object);
- if (!this_object)
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
if (this_object->is_invalid())
return js_string(vm, "Invalid Date");
@@ -821,9 +749,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_json)
JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_temporal_instant)
{
// 1. Let t be ? thisTimeValue(this value).
- auto* this_object = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* this_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto t = this_object->value_of();
// 2. Let ns be ? NumberToBigInt(t) × 10^6.
diff --git a/Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.cpp b/Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.cpp
index a74227491a..b3e833c80a 100644
--- a/Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.cpp
@@ -35,9 +35,7 @@ FinalizationRegistryPrototype::~FinalizationRegistryPrototype()
// @STAGE 2@ FinalizationRegistry.prototype.cleanupSome ( [ callback ] ), https://github.com/tc39/proposal-cleanup-some/blob/master/spec/finalization-registry.html
JS_DEFINE_NATIVE_FUNCTION(FinalizationRegistryPrototype::cleanup_some)
{
- auto* finalization_registry = typed_this_object(global_object);
- if (!finalization_registry)
- return {};
+ auto* finalization_registry = TRY_OR_DISCARD(typed_this_object(global_object));
auto callback = vm.argument(0);
if (vm.argument_count() > 0 && !callback.is_function()) {
@@ -53,9 +51,7 @@ JS_DEFINE_NATIVE_FUNCTION(FinalizationRegistryPrototype::cleanup_some)
// 26.2.3.2 FinalizationRegistry.prototype.register ( target, heldValue [ , unregisterToken ] ), https://tc39.es/ecma262/#sec-finalization-registry.prototype.register
JS_DEFINE_NATIVE_FUNCTION(FinalizationRegistryPrototype::register_)
{
- auto* finalization_registry = typed_this_object(global_object);
- if (!finalization_registry)
- return {};
+ auto* finalization_registry = TRY_OR_DISCARD(typed_this_object(global_object));
auto target = vm.argument(0);
if (!target.is_object()) {
@@ -83,9 +79,7 @@ JS_DEFINE_NATIVE_FUNCTION(FinalizationRegistryPrototype::register_)
// 26.2.3.3 FinalizationRegistry.prototype.unregister ( unregisterToken ), https://tc39.es/ecma262/#sec-finalization-registry.prototype.unregister
JS_DEFINE_NATIVE_FUNCTION(FinalizationRegistryPrototype::unregister)
{
- auto* finalization_registry = typed_this_object(global_object);
- if (!finalization_registry)
- return {};
+ auto* finalization_registry = TRY_OR_DISCARD(typed_this_object(global_object));
auto unregister_token = vm.argument(0);
if (!unregister_token.is_object()) {
diff --git a/Userland/Libraries/LibJS/Runtime/GeneratorObjectPrototype.cpp b/Userland/Libraries/LibJS/Runtime/GeneratorObjectPrototype.cpp
index e9083acdb0..70eeeeef41 100644
--- a/Userland/Libraries/LibJS/Runtime/GeneratorObjectPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/GeneratorObjectPrototype.cpp
@@ -35,18 +35,14 @@ GeneratorObjectPrototype::~GeneratorObjectPrototype()
// 27.5.1.2 Generator.prototype.next ( value ), https://tc39.es/ecma262/#sec-generator.prototype.next
JS_DEFINE_NATIVE_FUNCTION(GeneratorObjectPrototype::next)
{
- auto generator_object = typed_this_object(global_object);
- if (!generator_object)
- return {};
+ auto* generator_object = TRY_OR_DISCARD(typed_this_object(global_object));
return generator_object->next_impl(vm, global_object, {});
}
// 27.5.1.3 Generator.prototype.next ( value ), https://tc39.es/ecma262/#sec-generator.prototype.return
JS_DEFINE_NATIVE_FUNCTION(GeneratorObjectPrototype::return_)
{
- auto generator_object = typed_this_object(global_object);
- if (!generator_object)
- return {};
+ auto* generator_object = TRY_OR_DISCARD(typed_this_object(global_object));
generator_object->set_done();
return generator_object->next_impl(vm, global_object, {});
}
@@ -54,9 +50,7 @@ JS_DEFINE_NATIVE_FUNCTION(GeneratorObjectPrototype::return_)
// 27.5.1.4 Generator.prototype.next ( value ), https://tc39.es/ecma262/#sec-generator.prototype.throw
JS_DEFINE_NATIVE_FUNCTION(GeneratorObjectPrototype::throw_)
{
- auto generator_object = typed_this_object(global_object);
- if (!generator_object)
- return {};
+ auto* generator_object = TRY_OR_DISCARD(typed_this_object(global_object));
return generator_object->next_impl(vm, global_object, vm.argument(0));
}
diff --git a/Userland/Libraries/LibJS/Runtime/Intl/DisplayNamesPrototype.cpp b/Userland/Libraries/LibJS/Runtime/Intl/DisplayNamesPrototype.cpp
index 907574edfb..ba6a250c40 100644
--- a/Userland/Libraries/LibJS/Runtime/Intl/DisplayNamesPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Intl/DisplayNamesPrototype.cpp
@@ -39,9 +39,7 @@ JS_DEFINE_NATIVE_FUNCTION(DisplayNamesPrototype::of)
// 1. Let displayNames be this value.
// 2. Perform ? RequireInternalSlot(displayNames, [[InitializedDisplayNames]]).
- auto* display_names = typed_this_object(global_object);
- if (!display_names)
- return {};
+ auto* display_names = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let code be ? ToString(code).
auto code_string = TRY_OR_DISCARD(code.to_string(global_object));
@@ -87,9 +85,7 @@ JS_DEFINE_NATIVE_FUNCTION(DisplayNamesPrototype::resolved_options)
{
// 1. Let displayNames be this value.
// 2. Perform ? RequireInternalSlot(displayNames, [[InitializedDisplayNames]]).
- auto* display_names = typed_this_object(global_object);
- if (!display_names)
- return {};
+ auto* display_names = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let options be ! OrdinaryObjectCreate(%Object.prototype%).
auto* options = Object::create(global_object, global_object.object_prototype());
diff --git a/Userland/Libraries/LibJS/Runtime/Intl/ListFormatPrototype.cpp b/Userland/Libraries/LibJS/Runtime/Intl/ListFormatPrototype.cpp
index bdb64ae06f..339f037af7 100644
--- a/Userland/Libraries/LibJS/Runtime/Intl/ListFormatPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Intl/ListFormatPrototype.cpp
@@ -40,9 +40,7 @@ JS_DEFINE_NATIVE_FUNCTION(ListFormatPrototype::format)
// 1. Let lf be the this value.
// 2. Perform ? RequireInternalSlot(lf, [[InitializedListFormat]]).
- auto* list_format = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* list_format = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let stringList be ? StringListFromIterable(list).
auto string_list = TRY_OR_DISCARD(string_list_from_iterable(global_object, list));
@@ -59,9 +57,7 @@ JS_DEFINE_NATIVE_FUNCTION(ListFormatPrototype::format_to_parts)
// 1. Let lf be the this value.
// 2. Perform ? RequireInternalSlot(lf, [[InitializedListFormat]]).
- auto* list_format = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* list_format = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let stringList be ? StringListFromIterable(list).
auto string_list = TRY_OR_DISCARD(string_list_from_iterable(global_object, list));
@@ -75,9 +71,7 @@ JS_DEFINE_NATIVE_FUNCTION(ListFormatPrototype::resolved_options)
{
// 1. Let lf be the this value.
// 2. Perform ? RequireInternalSlot(lf, [[InitializedListFormat]]).
- auto* list_format = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* list_format = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let options be ! OrdinaryObjectCreate(%Object.prototype%).
auto* options = Object::create(global_object, global_object.object_prototype());
diff --git a/Userland/Libraries/LibJS/Runtime/Intl/LocalePrototype.cpp b/Userland/Libraries/LibJS/Runtime/Intl/LocalePrototype.cpp
index 3626caae0c..81f07afecd 100644
--- a/Userland/Libraries/LibJS/Runtime/Intl/LocalePrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Intl/LocalePrototype.cpp
@@ -49,9 +49,7 @@ JS_DEFINE_NATIVE_FUNCTION(LocalePrototype::maximize)
{
// 1. Let loc be the this value.
// 2. Perform ? RequireInternalSlot(loc, [[InitializedLocale]]).
- auto* locale_object = typed_this_object(global_object);
- if (!locale_object)
- return {};
+ auto* locale_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto locale = Unicode::parse_unicode_locale_id(locale_object->locale());
VERIFY(locale.has_value());
@@ -69,9 +67,7 @@ JS_DEFINE_NATIVE_FUNCTION(LocalePrototype::minimize)
{
// 1. Let loc be the this value.
// 2. Perform ? RequireInternalSlot(loc, [[InitializedLocale]]).
- auto* locale_object = typed_this_object(global_object);
- if (!locale_object)
- return {};
+ auto* locale_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto locale = Unicode::parse_unicode_locale_id(locale_object->locale());
VERIFY(locale.has_value());
@@ -89,9 +85,7 @@ JS_DEFINE_NATIVE_FUNCTION(LocalePrototype::to_string)
{
// 1. Let loc be the this value.
// 2. Perform ? RequireInternalSlot(loc, [[InitializedLocale]]).
- auto* locale_object = typed_this_object(global_object);
- if (!locale_object)
- return {};
+ auto* locale_object = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return loc.[[Locale]].
return js_string(vm, locale_object->locale());
@@ -102,9 +96,7 @@ JS_DEFINE_NATIVE_GETTER(LocalePrototype::base_name)
{
// 1. Let loc be the this value.
// 2. Perform ? RequireInternalSlot(loc, [[InitializedLocale]]).
- auto* locale_object = typed_this_object(global_object);
- if (!locale_object)
- return {};
+ auto* locale_object = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let locale be loc.[[Locale]].
auto locale = Unicode::parse_unicode_locale_id(locale_object->locale());
@@ -126,15 +118,13 @@ JS_DEFINE_NATIVE_GETTER(LocalePrototype::base_name)
// 14.3.9 get Intl.Locale.prototype.collation, https://tc39.es/ecma402/#sec-Intl.Locale.prototype.collation
// 14.3.10 get Intl.Locale.prototype.hourCycle, https://tc39.es/ecma402/#sec-Intl.Locale.prototype.hourCycle
// 14.3.12 get Intl.Locale.prototype.numberingSystem, https://tc39.es/ecma402/#sec-Intl.Locale.prototype.numberingSystem
-#define __JS_ENUMERATE(keyword) \
- JS_DEFINE_NATIVE_GETTER(LocalePrototype::keyword) \
- { \
- auto* locale_object = typed_this_object(global_object); \
- if (!locale_object) \
- return {}; \
- if (!locale_object->has_##keyword()) \
- return js_undefined(); \
- return js_string(vm, locale_object->keyword()); \
+#define __JS_ENUMERATE(keyword) \
+ JS_DEFINE_NATIVE_GETTER(LocalePrototype::keyword) \
+ { \
+ auto* locale_object = TRY_OR_DISCARD(typed_this_object(global_object)); \
+ if (!locale_object->has_##keyword()) \
+ return js_undefined(); \
+ return js_string(vm, locale_object->keyword()); \
}
JS_ENUMERATE_LOCALE_KEYWORD_PROPERTIES
#undef __JS_ENUMERATE
@@ -144,9 +134,7 @@ JS_DEFINE_NATIVE_GETTER(LocalePrototype::numeric)
{
// 1. Let loc be the this value.
// 2. Perform ? RequireInternalSlot(loc, [[InitializedLocale]]).
- auto* locale_object = typed_this_object(global_object);
- if (!locale_object)
- return {};
+ auto* locale_object = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return loc.[[Numeric]].
return Value(locale_object->numeric());
@@ -157,9 +145,7 @@ JS_DEFINE_NATIVE_GETTER(LocalePrototype::language)
{
// 1. Let loc be the this value.
// 2. Perform ? RequireInternalSlot(loc, [[InitializedLocale]]).
- auto* locale_object = typed_this_object(global_object);
- if (!locale_object)
- return {};
+ auto* locale_object = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let locale be loc.[[Locale]].
auto locale = Unicode::parse_unicode_locale_id(locale_object->locale());
@@ -176,9 +162,7 @@ JS_DEFINE_NATIVE_GETTER(LocalePrototype::script)
{
// 1. Let loc be the this value.
// 2. Perform ? RequireInternalSlot(loc, [[InitializedLocale]]).
- auto* locale_object = typed_this_object(global_object);
- if (!locale_object)
- return {};
+ auto* locale_object = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let locale be loc.[[Locale]].
auto locale = Unicode::parse_unicode_locale_id(locale_object->locale());
@@ -199,9 +183,7 @@ JS_DEFINE_NATIVE_GETTER(LocalePrototype::region)
{
// 1. Let loc be the this value.
// 2. Perform ? RequireInternalSlot(loc, [[InitializedLocale]]).
- auto* locale_object = typed_this_object(global_object);
- if (!locale_object)
- return {};
+ auto* locale_object = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let locale be loc.[[Locale]].
auto locale = Unicode::parse_unicode_locale_id(locale_object->locale());
diff --git a/Userland/Libraries/LibJS/Runtime/Intl/NumberFormatPrototype.cpp b/Userland/Libraries/LibJS/Runtime/Intl/NumberFormatPrototype.cpp
index 8c4983625a..53c824966b 100644
--- a/Userland/Libraries/LibJS/Runtime/Intl/NumberFormatPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Intl/NumberFormatPrototype.cpp
@@ -37,9 +37,7 @@ JS_DEFINE_NATIVE_FUNCTION(NumberFormatPrototype::resolved_options)
// 2. If the implementation supports the normative optional constructor mode of 4.3 Note 1, then
// a. Set nf to ? UnwrapNumberFormat(nf).
// 3. Perform ? RequireInternalSlot(nf, [[InitializedNumberFormat]]).
- auto* number_format = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* number_format = TRY_OR_DISCARD(typed_this_object(global_object));
// 4. Let options be ! OrdinaryObjectCreate(%Object.prototype%).
auto* options = Object::create(global_object, global_object.object_prototype());
diff --git a/Userland/Libraries/LibJS/Runtime/MapPrototype.cpp b/Userland/Libraries/LibJS/Runtime/MapPrototype.cpp
index ad520f1925..d984c5f49a 100644
--- a/Userland/Libraries/LibJS/Runtime/MapPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/MapPrototype.cpp
@@ -45,9 +45,7 @@ MapPrototype::~MapPrototype()
// 24.1.3.1 Map.prototype.clear ( ), https://tc39.es/ecma262/#sec-map.prototype.clear
JS_DEFINE_NATIVE_FUNCTION(MapPrototype::clear)
{
- auto* map = typed_this_object(global_object);
- if (!map)
- return {};
+ auto* map = TRY_OR_DISCARD(typed_this_object(global_object));
map->entries().clear();
return js_undefined();
}
@@ -55,18 +53,14 @@ JS_DEFINE_NATIVE_FUNCTION(MapPrototype::clear)
// 24.1.3.3 Map.prototype.delete ( key ), https://tc39.es/ecma262/#sec-map.prototype.delete
JS_DEFINE_NATIVE_FUNCTION(MapPrototype::delete_)
{
- auto* map = typed_this_object(global_object);
- if (!map)
- return {};
+ auto* map = TRY_OR_DISCARD(typed_this_object(global_object));
return Value(map->entries().remove(vm.argument(0)));
}
// 24.1.3.4 Map.prototype.entries ( ), https://tc39.es/ecma262/#sec-map.prototype.entries
JS_DEFINE_NATIVE_FUNCTION(MapPrototype::entries)
{
- auto* map = typed_this_object(global_object);
- if (!map)
- return {};
+ auto* map = TRY_OR_DISCARD(typed_this_object(global_object));
return MapIterator::create(global_object, *map, Object::PropertyKind::KeyAndValue);
}
@@ -74,9 +68,7 @@ JS_DEFINE_NATIVE_FUNCTION(MapPrototype::entries)
// 24.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] ), https://tc39.es/ecma262/#sec-map.prototype.foreach
JS_DEFINE_NATIVE_FUNCTION(MapPrototype::for_each)
{
- auto* map = typed_this_object(global_object);
- if (!map)
- return {};
+ auto* map = TRY_OR_DISCARD(typed_this_object(global_object));
if (!vm.argument(0).is_function()) {
vm.throw_exception<TypeError>(global_object, ErrorType::NotAFunction, vm.argument(0).to_string_without_side_effects());
return {};
@@ -93,9 +85,7 @@ JS_DEFINE_NATIVE_FUNCTION(MapPrototype::for_each)
// 24.1.3.6 Map.prototype.get ( key ), https://tc39.es/ecma262/#sec-map.prototype.get
JS_DEFINE_NATIVE_FUNCTION(MapPrototype::get)
{
- auto* map = typed_this_object(global_object);
- if (!map)
- return {};
+ auto* map = TRY_OR_DISCARD(typed_this_object(global_object));
auto result = map->entries().get(vm.argument(0));
if (!result.has_value())
return js_undefined();
@@ -105,9 +95,7 @@ JS_DEFINE_NATIVE_FUNCTION(MapPrototype::get)
// 24.1.3.7 Map.prototype.has ( key ), https://tc39.es/ecma262/#sec-map.prototype.has
JS_DEFINE_NATIVE_FUNCTION(MapPrototype::has)
{
- auto* map = typed_this_object(global_object);
- if (!map)
- return {};
+ auto* map = TRY_OR_DISCARD(typed_this_object(global_object));
auto& entries = map->entries();
return Value(entries.find(vm.argument(0)) != entries.end());
}
@@ -115,9 +103,7 @@ JS_DEFINE_NATIVE_FUNCTION(MapPrototype::has)
// 24.1.3.8 Map.prototype.keys ( ), https://tc39.es/ecma262/#sec-map.prototype.keys
JS_DEFINE_NATIVE_FUNCTION(MapPrototype::keys)
{
- auto* map = typed_this_object(global_object);
- if (!map)
- return {};
+ auto* map = TRY_OR_DISCARD(typed_this_object(global_object));
return MapIterator::create(global_object, *map, Object::PropertyKind::Key);
}
@@ -125,9 +111,7 @@ JS_DEFINE_NATIVE_FUNCTION(MapPrototype::keys)
// 24.1.3.9 Map.prototype.set ( key, value ), https://tc39.es/ecma262/#sec-map.prototype.set
JS_DEFINE_NATIVE_FUNCTION(MapPrototype::set)
{
- auto* map = typed_this_object(global_object);
- if (!map)
- return {};
+ auto* map = TRY_OR_DISCARD(typed_this_object(global_object));
auto key = vm.argument(0);
if (key.is_negative_zero())
key = Value(0);
@@ -138,9 +122,7 @@ JS_DEFINE_NATIVE_FUNCTION(MapPrototype::set)
// 24.1.3.11 Map.prototype.values ( ), https://tc39.es/ecma262/#sec-map.prototype.values
JS_DEFINE_NATIVE_FUNCTION(MapPrototype::values)
{
- auto* map = typed_this_object(global_object);
- if (!map)
- return {};
+ auto* map = TRY_OR_DISCARD(typed_this_object(global_object));
return MapIterator::create(global_object, *map, Object::PropertyKind::Value);
}
@@ -148,9 +130,7 @@ JS_DEFINE_NATIVE_FUNCTION(MapPrototype::values)
// 24.1.3.10 get Map.prototype.size, https://tc39.es/ecma262/#sec-get-map.prototype.size
JS_DEFINE_NATIVE_GETTER(MapPrototype::size_getter)
{
- auto* map = typed_this_object(global_object);
- if (!map)
- return {};
+ auto* map = TRY_OR_DISCARD(typed_this_object(global_object));
return Value(map->entries().size());
}
diff --git a/Userland/Libraries/LibJS/Runtime/PromisePrototype.cpp b/Userland/Libraries/LibJS/Runtime/PromisePrototype.cpp
index 63764f45ef..93fdb519c0 100644
--- a/Userland/Libraries/LibJS/Runtime/PromisePrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/PromisePrototype.cpp
@@ -38,9 +38,7 @@ void PromisePrototype::initialize(GlobalObject& global_object)
// 27.2.5.4 Promise.prototype.then ( onFulfilled, onRejected ), https://tc39.es/ecma262/#sec-promise.prototype.then
JS_DEFINE_NATIVE_FUNCTION(PromisePrototype::then)
{
- auto* promise = typed_this_object(global_object);
- if (!promise)
- return {};
+ auto* promise = TRY_OR_DISCARD(typed_this_object(global_object));
auto on_fulfilled = vm.argument(0);
auto on_rejected = vm.argument(1);
auto* constructor = TRY_OR_DISCARD(species_constructor(global_object, *promise, *global_object.promise_constructor()));
diff --git a/Userland/Libraries/LibJS/Runtime/PrototypeObject.h b/Userland/Libraries/LibJS/Runtime/PrototypeObject.h
index 23daade1cd..0e8ee25abc 100644
--- a/Userland/Libraries/LibJS/Runtime/PrototypeObject.h
+++ b/Userland/Libraries/LibJS/Runtime/PrototypeObject.h
@@ -36,17 +36,12 @@ public:
}
// Use typed_this_object() when the spec coerces |this| value to an object.
- static ObjectType* typed_this_object(GlobalObject& global_object)
+ static ThrowCompletionOr<ObjectType*> typed_this_object(GlobalObject& global_object)
{
auto& vm = global_object.vm();
-
- auto* this_object = TRY_OR_DISCARD(vm.this_value(global_object).to_object(global_object));
-
- if (!is<ObjectType>(this_object)) {
- vm.throw_exception<TypeError>(global_object, ErrorType::NotAnObjectOfType, PrototypeType::display_name());
- return nullptr;
- }
-
+ auto* this_object = TRY(vm.this_value(global_object).to_object(global_object));
+ if (!is<ObjectType>(this_object))
+ return vm.throw_completion<TypeError>(global_object, ErrorType::NotAnObjectOfType, PrototypeType::display_name());
return static_cast<ObjectType*>(this_object);
}
diff --git a/Userland/Libraries/LibJS/Runtime/RegExpPrototype.cpp b/Userland/Libraries/LibJS/Runtime/RegExpPrototype.cpp
index 38c864fce5..b69b1d132d 100644
--- a/Userland/Libraries/LibJS/Runtime/RegExpPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/RegExpPrototype.cpp
@@ -329,9 +329,7 @@ JS_DEFINE_NATIVE_GETTER(RegExpPrototype::source)
// 22.2.5.2 RegExp.prototype.exec ( string ), https://tc39.es/ecma262/#sec-regexp.prototype.exec
JS_DEFINE_NATIVE_FUNCTION(RegExpPrototype::exec)
{
- auto* regexp_object = typed_this_object(global_object);
- if (!regexp_object)
- return {};
+ auto* regexp_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto string = TRY_OR_DISCARD(vm.argument(0).to_utf16_string(global_object));
@@ -674,9 +672,7 @@ JS_DEFINE_NATIVE_FUNCTION(RegExpPrototype::symbol_split)
// B.2.4.1 RegExp.prototype.compile ( pattern, flags ), https://tc39.es/ecma262/#sec-regexp.prototype.compile
JS_DEFINE_NATIVE_FUNCTION(RegExpPrototype::compile)
{
- auto* regexp_object = typed_this_object(global_object);
- if (!regexp_object)
- return {};
+ auto* regexp_object = TRY_OR_DISCARD(typed_this_object(global_object));
auto pattern = vm.argument(0);
auto flags = vm.argument(1);
diff --git a/Userland/Libraries/LibJS/Runtime/SetPrototype.cpp b/Userland/Libraries/LibJS/Runtime/SetPrototype.cpp
index 51d0cac479..e8ba29d391 100644
--- a/Userland/Libraries/LibJS/Runtime/SetPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/SetPrototype.cpp
@@ -47,9 +47,7 @@ SetPrototype::~SetPrototype()
// 24.2.3.1 Set.prototype.add ( value ), https://tc39.es/ecma262/#sec-set.prototype.add
JS_DEFINE_NATIVE_FUNCTION(SetPrototype::add)
{
- auto* set = typed_this_object(global_object);
- if (!set)
- return {};
+ auto* set = TRY_OR_DISCARD(typed_this_object(global_object));
auto value = vm.argument(0);
if (value.is_negative_zero())
value = Value(0);
@@ -60,9 +58,7 @@ JS_DEFINE_NATIVE_FUNCTION(SetPrototype::add)
// 24.2.3.2 Set.prototype.clear ( ), https://tc39.es/ecma262/#sec-set.prototype.clear
JS_DEFINE_NATIVE_FUNCTION(SetPrototype::clear)
{
- auto* set = typed_this_object(global_object);
- if (!set)
- return {};
+ auto* set = TRY_OR_DISCARD(typed_this_object(global_object));
set->values().clear();
return js_undefined();
}
@@ -70,18 +66,14 @@ JS_DEFINE_NATIVE_FUNCTION(SetPrototype::clear)
// 24.2.3.4 Set.prototype.delete ( value ), https://tc39.es/ecma262/#sec-set.prototype.delete
JS_DEFINE_NATIVE_FUNCTION(SetPrototype::delete_)
{
- auto* set = typed_this_object(global_object);
- if (!set)
- return {};
+ auto* set = TRY_OR_DISCARD(typed_this_object(global_object));
return Value(set->values().remove(vm.argument(0)));
}
// 24.2.3.5 Set.prototype.entries ( ), https://tc39.es/ecma262/#sec-set.prototype.entries
JS_DEFINE_NATIVE_FUNCTION(SetPrototype::entries)
{
- auto* set = typed_this_object(global_object);
- if (!set)
- return {};
+ auto* set = TRY_OR_DISCARD(typed_this_object(global_object));
return SetIterator::create(global_object, *set, Object::PropertyKind::KeyAndValue);
}
@@ -89,9 +81,7 @@ JS_DEFINE_NATIVE_FUNCTION(SetPrototype::entries)
// 24.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] ), https://tc39.es/ecma262/#sec-set.prototype.foreach
JS_DEFINE_NATIVE_FUNCTION(SetPrototype::for_each)
{
- auto* set = typed_this_object(global_object);
- if (!set)
- return {};
+ auto* set = TRY_OR_DISCARD(typed_this_object(global_object));
if (!vm.argument(0).is_function()) {
vm.throw_exception<TypeError>(global_object, ErrorType::NotAFunction, vm.argument(0).to_string_without_side_effects());
return {};
@@ -108,9 +98,7 @@ JS_DEFINE_NATIVE_FUNCTION(SetPrototype::for_each)
// 24.2.3.7 Set.prototype.has ( value ), https://tc39.es/ecma262/#sec-set.prototype.has
JS_DEFINE_NATIVE_FUNCTION(SetPrototype::has)
{
- auto* set = typed_this_object(global_object);
- if (!set)
- return {};
+ auto* set = TRY_OR_DISCARD(typed_this_object(global_object));
auto& values = set->values();
return Value(values.find(vm.argument(0)) != values.end());
}
@@ -118,9 +106,7 @@ JS_DEFINE_NATIVE_FUNCTION(SetPrototype::has)
// 24.2.3.10 Set.prototype.values ( ), https://tc39.es/ecma262/#sec-set.prototype.values
JS_DEFINE_NATIVE_FUNCTION(SetPrototype::values)
{
- auto* set = typed_this_object(global_object);
- if (!set)
- return {};
+ auto* set = TRY_OR_DISCARD(typed_this_object(global_object));
return SetIterator::create(global_object, *set, Object::PropertyKind::Value);
}
@@ -128,9 +114,7 @@ JS_DEFINE_NATIVE_FUNCTION(SetPrototype::values)
// 24.2.3.9 get Set.prototype.size, https://tc39.es/ecma262/#sec-get-set.prototype.size
JS_DEFINE_NATIVE_GETTER(SetPrototype::size_getter)
{
- auto* set = typed_this_object(global_object);
- if (!set)
- return {};
+ auto* set = TRY_OR_DISCARD(typed_this_object(global_object));
return Value(set->values().size());
}
diff --git a/Userland/Libraries/LibJS/Runtime/ShadowRealmPrototype.cpp b/Userland/Libraries/LibJS/Runtime/ShadowRealmPrototype.cpp
index 157abd8fe8..a76093b769 100644
--- a/Userland/Libraries/LibJS/Runtime/ShadowRealmPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/ShadowRealmPrototype.cpp
@@ -36,9 +36,7 @@ JS_DEFINE_NATIVE_FUNCTION(ShadowRealmPrototype::evaluate)
// 1. Let O be this value.
// 2. Perform ? ValidateShadowRealmObject(O).
- auto* object = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* object = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. If Type(sourceText) is not String, throw a TypeError exception.
if (!source_text.is_string()) {
@@ -64,9 +62,7 @@ JS_DEFINE_NATIVE_FUNCTION(ShadowRealmPrototype::import_value)
// 1. Let O be this value.
// 2. Perform ? ValidateShadowRealmObject(O).
- auto* object = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* object = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let specifierString be ? ToString(specifier).
auto specifier_string = TRY_OR_DISCARD(specifier.to_string(global_object));
diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/CalendarPrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/CalendarPrototype.cpp
index 8e96c7ce79..41796a7189 100644
--- a/Userland/Libraries/LibJS/Runtime/Temporal/CalendarPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Temporal/CalendarPrototype.cpp
@@ -78,9 +78,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::date_from_fields)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -108,9 +106,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::year_month_from_fields)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -138,9 +134,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::month_day_from_fields)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -168,9 +162,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::date_add)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -206,9 +198,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::date_until)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -238,9 +228,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::year)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -262,9 +250,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::month)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -294,9 +280,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::month_code)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -318,9 +302,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::day)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -342,9 +324,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::day_of_week)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -362,9 +342,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::day_of_year)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -382,9 +360,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::week_of_year)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -402,9 +378,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::days_in_week)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -422,9 +396,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::days_in_month)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -446,9 +418,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::days_in_year)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -470,9 +440,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::months_in_year)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -494,9 +462,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::in_leap_year)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -520,9 +486,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::fields)
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -596,9 +560,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::merge_fields)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Assert: calendar.[[Identifier]] is "iso8601".
VERIFY(calendar->identifier() == "iso8601"sv);
@@ -618,9 +580,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::to_string)
{
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return calendar.[[Identifier]].
return js_string(vm, calendar->identifier());
@@ -643,9 +603,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::era)
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. If Type(temporalDateLike) is not Object or temporalDateLike does not have an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], or [[InitializedTemporalYearMonth]] internal slot, then
if (!temporal_date_like.is_object() || !(is<PlainDate>(temporal_date_like.as_object()) || is<PlainDateTime>(temporal_date_like.as_object()) || is<PlainYearMonth>(temporal_date_like.as_object()))) {
@@ -673,9 +631,7 @@ JS_DEFINE_NATIVE_FUNCTION(CalendarPrototype::era_year)
// 1. Let calendar be the this value.
// 2. Perform ? RequireInternalSlot(calendar, [[InitializedTemporalCalendar]]).
- auto* calendar = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* calendar = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. If Type(temporalDateLike) is not Object or temporalDateLike does not have an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], or [[InitializedTemporalYearMonth]] internal slot, then
if (!temporal_date_like.is_object() || !(is<PlainDate>(temporal_date_like.as_object()) || is<PlainDateTime>(temporal_date_like.as_object()) || is<PlainYearMonth>(temporal_date_like.as_object()))) {
diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/DurationPrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/DurationPrototype.cpp
index 9568c0f73b..1f80984a62 100644
--- a/Userland/Libraries/LibJS/Runtime/Temporal/DurationPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Temporal/DurationPrototype.cpp
@@ -52,9 +52,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::years_getter)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return duration.[[Years]].
return Value(duration->years());
@@ -65,9 +63,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::months_getter)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return duration.[[Months]].
return Value(duration->months());
@@ -78,9 +74,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::weeks_getter)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return duration.[[Weeks]].
return Value(duration->weeks());
@@ -91,9 +85,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::days_getter)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return duration.[[Days]].
return Value(duration->days());
@@ -104,9 +96,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::hours_getter)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return duration.[[Hours]].
return Value(duration->hours());
@@ -117,9 +107,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::minutes_getter)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return duration.[[Minutes]].
return Value(duration->minutes());
@@ -130,9 +118,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::seconds_getter)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return duration.[[Seconds]].
return Value(duration->seconds());
@@ -143,9 +129,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::milliseconds_getter)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return duration.[[Milliseconds]].
return Value(duration->milliseconds());
@@ -156,9 +140,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::microseconds_getter)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return duration.[[Microseconds]].
return Value(duration->microseconds());
@@ -169,9 +151,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::nanoseconds_getter)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return duration.[[Nanoseconds]].
return Value(duration->nanoseconds());
@@ -182,9 +162,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::sign_getter)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ! DurationSign(duration.[[Years]], duration.[[Months]], duration.[[Weeks]], duration.[[Days]], duration.[[Hours]], duration.[[Minutes]], duration.[[Seconds]], duration.[[Milliseconds]], duration.[[Microseconds]], duration.[[Nanoseconds]]).
return Value(duration_sign(duration->years(), duration->months(), duration->weeks(), duration->days(), duration->hours(), duration->minutes(), duration->seconds(), duration->milliseconds(), duration->microseconds(), duration->nanoseconds()));
@@ -195,9 +173,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::blank_getter)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let sign be ! DurationSign(duration.[[Years]], duration.[[Months]], duration.[[Weeks]], duration.[[Days]], duration.[[Hours]], duration.[[Minutes]], duration.[[Seconds]], duration.[[Milliseconds]], duration.[[Microseconds]], duration.[[Nanoseconds]]).
auto sign = duration_sign(duration->years(), duration->months(), duration->weeks(), duration->days(), duration->hours(), duration->minutes(), duration->seconds(), duration->milliseconds(), duration->microseconds(), duration->nanoseconds());
@@ -215,9 +191,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::with)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let temporalDurationLike be ? ToPartialDuration(temporalDurationLike).
auto temporal_duration_like = TRY_OR_DISCARD(to_partial_duration(global_object, vm.argument(0)));
@@ -291,9 +265,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::negated)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ! CreateNegatedTemporalDuration(duration).
return create_negated_temporal_duration(global_object, *duration);
@@ -304,9 +276,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationPrototype::abs)
{
// 1. Let duration be the this value.
// 2. Perform ? RequireInternalSlot(duration, [[InitializedTemporalDuration]]).
- auto* duration = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* duration = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ! CreateTemporalDuration(abs(duration.[[Years]]), abs(duration.[[Months]]), abs(duration.[[Weeks]]), abs(duration.[[Days]]), abs(duration.[[Hours]]), abs(duration.[[Minutes]]), abs(duration.[[Seconds]]), abs(duration.[[Milliseconds]]), abs(duration.[[Microseconds]]), abs(duration.[[Nanoseconds]])).
return TRY_OR_DISCARD(create_temporal_duration(global_object, fabs(duration->years()), fabs(duration->months()), fabs(duration->weeks()), fabs(duration->days()), fabs(duration->hours()), fabs(duration->minutes()), fabs(duration->seconds()), fabs(duration->milliseconds()), fabs(duration->microseconds()), fabs(duration->nanoseconds())));
diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp
index 01b9ad223c..dbac4e2e42 100644
--- a/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp
@@ -57,9 +57,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::epoch_seconds_getter)
{
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let ns be instant.[[Nanoseconds]].
auto& ns = instant->nanoseconds();
@@ -76,9 +74,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::epoch_milliseconds_getter)
{
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let ns be instant.[[Nanoseconds]].
auto& ns = instant->nanoseconds();
@@ -95,9 +91,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::epoch_microseconds_getter)
{
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let ns be instant.[[Nanoseconds]].
auto& ns = instant->nanoseconds();
@@ -114,9 +108,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::epoch_nanoseconds_getter)
{
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let ns be instant.[[Nanoseconds]].
auto& ns = instant->nanoseconds();
@@ -132,9 +124,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::add)
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let duration be ? ToLimitedTemporalDuration(temporalDurationLike, « "years", "months", "weeks", "days" »).
auto duration = TRY_OR_DISCARD(to_limited_temporal_duration(global_object, temporal_duration_like, { "years"sv, "months"sv, "weeks"sv, "days"sv }));
@@ -153,9 +143,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::subtract)
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let duration be ? ToLimitedTemporalDuration(temporalDurationLike, « "years", "months", "weeks", "days" »).
auto duration = TRY_OR_DISCARD(to_limited_temporal_duration(global_object, temporal_duration_like, { "years"sv, "months"sv, "weeks"sv, "days"sv }));
@@ -172,9 +160,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::until)
{
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set other to ? ToTemporalInstant(other).
auto* other = TRY_OR_DISCARD(to_temporal_instant(global_object, vm.argument(0)));
@@ -218,9 +204,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::since)
{
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set other to ? ToTemporalInstant(other).
auto* other = TRY_OR_DISCARD(to_temporal_instant(global_object, vm.argument(0)));
@@ -264,9 +248,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::round)
{
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. If options is undefined, then
if (vm.argument(0).is_undefined()) {
@@ -343,9 +325,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::equals)
{
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set other to ? ToTemporalInstant(other).
auto other = TRY_OR_DISCARD(to_temporal_instant(global_object, vm.argument(0)));
@@ -363,9 +343,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::to_string)
{
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set options to ? GetOptionsObject(options).
auto* options = TRY_OR_DISCARD(get_options_object(global_object, vm.argument(0)));
@@ -403,9 +381,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::to_locale_string)
{
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ? TemporalInstantToString(instant, undefined, "auto").
return js_string(vm, TRY_OR_DISCARD(temporal_instant_to_string(global_object, *instant, js_undefined(), "auto"sv)));
@@ -416,9 +392,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::to_json)
{
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ? TemporalInstantToString(instant, undefined, "auto").
return js_string(vm, TRY_OR_DISCARD(temporal_instant_to_string(global_object, *instant, js_undefined(), "auto"sv)));
@@ -439,9 +413,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::to_zoned_date_time)
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. If Type(item) is not Object, then
if (!item.is_object()) {
@@ -487,9 +459,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::to_zoned_date_time_iso)
// 1. Let instant be the this value.
// 2. Perform ? RequireInternalSlot(instant, [[InitializedTemporalInstant]]).
- auto* instant = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* instant = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. If Type(item) is Object, then
if (item.is_object()) {
diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/PlainDatePrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/PlainDatePrototype.cpp
index c39b3abc09..d2623baf21 100644
--- a/Userland/Libraries/LibJS/Runtime/Temporal/PlainDatePrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Temporal/PlainDatePrototype.cpp
@@ -67,9 +67,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::calendar_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return temporalDate.[[Calendar]].
return Value(&temporal_date->calendar());
@@ -80,9 +78,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::year_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -96,9 +92,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::month_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -112,9 +106,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::month_code_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -128,9 +120,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::day_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -144,9 +134,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::day_of_week_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -160,9 +148,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::day_of_year_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -176,9 +162,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::week_of_year_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -192,9 +176,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::days_in_week_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -208,9 +190,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::days_in_month_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -224,9 +204,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::days_in_year_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -240,9 +218,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::months_in_year_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -256,9 +232,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::in_leap_year_getter)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -272,9 +246,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::era_getter)
{
// 1. Let plainDate be the this value.
// 2. Perform ? RequireInternalSlot(plainDate, [[InitializedTemporalDate]]).
- auto* plain_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* plain_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be plainDate.[[Calendar]].
auto& calendar = plain_date->calendar();
@@ -288,9 +260,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::era_year_getter)
{
// 1. Let plainDate be the this value.
// 2. Perform ? RequireInternalSlot(plainDate, [[InitializedTemporalDate]]).
- auto* plain_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* plain_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be plainDate.[[Calendar]].
auto& calendar = plain_date->calendar();
@@ -304,9 +274,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::to_plain_year_month)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -326,9 +294,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::to_plain_month_day)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be temporalDate.[[Calendar]].
auto& calendar = temporal_date->calendar();
@@ -348,9 +314,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::get_iso_fields)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let fields be ! OrdinaryObjectCreate(%Object.prototype%).
auto* fields = Object::create(global_object, global_object.object_prototype());
@@ -376,9 +340,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::with_calendar)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be ? ToTemporalCalendar(calendar).
auto* calendar = TRY_OR_DISCARD(to_temporal_calendar(global_object, vm.argument(0)));
@@ -392,9 +354,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::equals)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set other to ? ToTemporalDate(other).
auto* other = TRY_OR_DISCARD(to_temporal_date(global_object, vm.argument(0)));
@@ -417,9 +377,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::to_plain_date_time)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. If temporalTime is undefined, then
if (vm.argument(0).is_undefined()) {
@@ -439,9 +397,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::to_string)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set options to ? GetOptionsObject(options).
auto* options = TRY_OR_DISCARD(get_options_object(global_object, vm.argument(0)));
@@ -459,9 +415,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::to_locale_string)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ? TemporalDateToString(temporalDate, "auto").
return js_string(vm, TRY_OR_DISCARD(temporal_date_to_string(global_object, *temporal_date, "auto"sv)));
@@ -472,9 +426,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::to_json)
{
// 1. Let temporalDate be the this value.
// 2. Perform ? RequireInternalSlot(temporalDate, [[InitializedTemporalDate]]).
- auto* temporal_date = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_date = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ? TemporalDateToString(temporalDate, "auto").
return js_string(vm, TRY_OR_DISCARD(temporal_date_to_string(global_object, *temporal_date, "auto"sv)));
diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTimePrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTimePrototype.cpp
index e73a884726..ad13b848b4 100644
--- a/Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTimePrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTimePrototype.cpp
@@ -70,9 +70,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::calendar_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return dateTime.[[Calendar]].
return Value(&date_time->calendar());
@@ -83,9 +81,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::year_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -99,9 +95,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::month_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -115,9 +109,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::month_code_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -131,9 +123,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::day_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -147,9 +137,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::hour_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return 𝔽(dateTime.[[ISOHour]]).
return Value(date_time->iso_hour());
@@ -160,9 +148,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::minute_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return 𝔽(dateTime.[[ISOMinute]]).
return Value(date_time->iso_minute());
@@ -173,9 +159,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::second_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return 𝔽(dateTime.[[ISOSecond]]).
return Value(date_time->iso_second());
@@ -186,9 +170,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::millisecond_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return 𝔽(dateTime.[[ISOMillisecond]]).
return Value(date_time->iso_millisecond());
@@ -199,9 +181,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::microsecond_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return 𝔽(dateTime.[[ISOMicrosecond]]).
return Value(date_time->iso_microsecond());
@@ -212,9 +192,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::nanosecond_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return 𝔽(dateTime.[[ISONanosecond]]).
return Value(date_time->iso_nanosecond());
@@ -225,9 +203,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::day_of_week_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -241,9 +217,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::day_of_year_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -257,9 +231,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::week_of_year_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -273,9 +245,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::days_in_week_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -289,9 +259,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::days_in_month_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -305,9 +273,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::days_in_year_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -321,9 +287,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::months_in_year_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -337,9 +301,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::in_leap_year_getter)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -353,9 +315,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::era_getter)
{
// 1. Let plainDateTime be the this value.
// 2. Perform ? RequireInternalSlot(plainDateTime, [[InitializedTemporalDateTime]]).
- auto* plain_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* plain_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be plainDateTime.[[Calendar]].
auto& calendar = plain_date_time->calendar();
@@ -369,9 +329,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::era_year_getter)
{
// 1. Let plainDateTime be the this value.
// 2. Perform ? RequireInternalSlot(plainDateTime, [[InitializedTemporalDateTime]]).
- auto* plain_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* plain_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be plainDateTime.[[Calendar]].
auto& calendar = plain_date_time->calendar();
@@ -385,9 +343,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::with_plain_time)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. If plainTimeLike is undefined, then
if (vm.argument(0).is_undefined()) {
@@ -407,9 +363,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::with_plain_date)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let plainDate be ? ToTemporalDate(plainDateLike).
auto* plain_date = TRY_OR_DISCARD(to_temporal_date(global_object, vm.argument(0)));
@@ -426,9 +380,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::with_calendar)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be ? ToTemporalCalendar(calendar).
auto* calendar = TRY_OR_DISCARD(to_temporal_calendar(global_object, vm.argument(0)));
@@ -442,9 +394,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::equals)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set other to ? ToTemporalDateTime(other).
auto* other = TRY_OR_DISCARD(to_temporal_date_time(global_object, vm.argument(0)));
@@ -473,9 +423,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::to_plain_date)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ? CreateTemporalDate(dateTime.[[ISOYear]], dateTime.[[ISOMonth]], dateTime.[[ISODay]], dateTime.[[Calendar]]).
return TRY_OR_DISCARD(create_temporal_date(global_object, date_time->iso_year(), date_time->iso_month(), date_time->iso_day(), date_time->calendar()));
@@ -486,9 +434,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::to_plain_year_month)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -508,9 +454,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::to_plain_month_day)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be dateTime.[[Calendar]].
auto& calendar = date_time->calendar();
@@ -530,9 +474,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::to_plain_time)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ? CreateTemporalTime(dateTime.[[ISOHour]], dateTime.[[ISOMinute]], dateTime.[[ISOSecond]], dateTime.[[ISOMillisecond]], dateTime.[[ISOMicrosecond]], dateTime.[[ISONanosecond]]).
return TRY_OR_DISCARD(create_temporal_time(global_object, date_time->iso_hour(), date_time->iso_minute(), date_time->iso_second(), date_time->iso_millisecond(), date_time->iso_microsecond(), date_time->iso_nanosecond()));
@@ -543,9 +485,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::get_iso_fields)
{
// 1. Let dateTime be the this value.
// 2. Perform ? RequireInternalSlot(dateTime, [[InitializedTemporalDateTime]]).
- auto* date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let fields be ! OrdinaryObjectCreate(%Object.prototype%).
auto* fields = Object::create(global_object, global_object.object_prototype());
diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/PlainMonthDayPrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/PlainMonthDayPrototype.cpp
index d1252015d6..35a2b26d17 100644
--- a/Userland/Libraries/LibJS/Runtime/Temporal/PlainMonthDayPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Temporal/PlainMonthDayPrototype.cpp
@@ -47,9 +47,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainMonthDayPrototype::calendar_getter)
{
// 1. Let monthDay be the this value.
// 2. Perform ? RequireInternalSlot(monthDay, [[InitializedTemporalMonthDay]]).
- auto* month_day = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* month_day = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return monthDay.[[Calendar]].
return Value(&month_day->calendar());
@@ -60,9 +58,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainMonthDayPrototype::month_code_getter)
{
// 1. Let monthDay be the this value.
// 2. Perform ? RequireInternalSlot(monthDay, [[InitializedTemporalMonthDay]]).
- auto* month_day = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* month_day = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be monthDay.[[Calendar]].
auto& calendar = month_day->calendar();
@@ -76,9 +72,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainMonthDayPrototype::day_getter)
{
// 1. Let monthDay be the this value.
// 2. Perform ? RequireInternalSlot(monthDay, [[InitializedTemporalMonthDay]]).
- auto* month_day = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* month_day = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be monthDay.[[Calendar]].
auto& calendar = month_day->calendar();
@@ -92,9 +86,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainMonthDayPrototype::equals)
{
// 1. Let monthDay be the this value.
// 2. Perform ? RequireInternalSlot(monthDay, [[InitializedTemporalMonthDay]]).
- auto* month_day = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* month_day = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set other to ? ToTemporalMonthDay(other).
auto* other = TRY_OR_DISCARD(to_temporal_month_day(global_object, vm.argument(0)));
@@ -120,9 +112,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainMonthDayPrototype::to_string)
{
// 1. Let monthDay be the this value.
// 2. Perform ? RequireInternalSlot(monthDay, [[InitializedTemporalMonthDay]]).
- auto* month_day = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* month_day = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set options to ? GetOptionsObject(options).
auto* options = TRY_OR_DISCARD(get_options_object(global_object, vm.argument(0)));
@@ -140,9 +130,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainMonthDayPrototype::to_locale_string)
{
// 1. Let monthDay be the this value.
// 2. Perform ? RequireInternalSlot(monthDay, [[InitializedTemporalMonthDay]]).
- auto* month_day = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* month_day = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ? TemporalMonthDayToString(monthDay, "auto").
return js_string(vm, TRY_OR_DISCARD(temporal_month_day_to_string(global_object, *month_day, "auto"sv)));
@@ -153,9 +141,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainMonthDayPrototype::to_json)
{
// 1. Let monthDay be the this value.
// 2. Perform ? RequireInternalSlot(monthDay, [[InitializedTemporalMonthDay]]).
- auto* month_day = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* month_day = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ? TemporalMonthDayToString(monthDay, "auto").
return js_string(vm, TRY_OR_DISCARD(temporal_month_day_to_string(global_object, *month_day, "auto"sv)));
@@ -176,9 +162,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainMonthDayPrototype::to_plain_date)
// 1. Let monthDay be the this value.
// 2. Perform ? RequireInternalSlot(monthDay, [[InitializedTemporalMonthDay]]).
- auto* month_day = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* month_day = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. If Type(item) is not Object, then
if (!item.is_object()) {
@@ -234,9 +218,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainMonthDayPrototype::get_iso_fields)
{
// 1. Let monthDay be the this value.
// 2. Perform ? RequireInternalSlot(monthDay, [[InitializedTemporalMonthDay]]).
- auto* month_day = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* month_day = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let fields be ! OrdinaryObjectCreate(%Object.prototype%).
auto* fields = Object::create(global_object, global_object.object_prototype());
diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/PlainTimePrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/PlainTimePrototype.cpp
index 37577389c7..6f35442513 100644
--- a/Userland/Libraries/LibJS/Runtime/Temporal/PlainTimePrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Temporal/PlainTimePrototype.cpp
@@ -53,9 +53,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::calendar_getter)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return temporalTime.[[Calendar]].
return Value(&temporal_time->calendar());
@@ -66,9 +64,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::hour_getter)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return 𝔽(temporalTime.[[ISOHour]]).
return Value(temporal_time->iso_hour());
@@ -79,9 +75,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::minute_getter)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return 𝔽(temporalTime.[[ISOMinute]]).
return Value(temporal_time->iso_minute());
@@ -92,9 +86,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::second_getter)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return 𝔽(temporalTime.[[ISOSecond]]).
return Value(temporal_time->iso_second());
@@ -105,9 +97,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::millisecond_getter)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return 𝔽(temporalTime.[[ISOMillisecond]]).
return Value(temporal_time->iso_millisecond());
@@ -118,9 +108,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::microsecond_getter)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return 𝔽(temporalTime.[[ISOMicrosecond]]).
return Value(temporal_time->iso_microsecond());
@@ -131,9 +119,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::nanosecond_getter)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return 𝔽(temporalTime.[[ISONanosecond]]).
return Value(temporal_time->iso_nanosecond());
@@ -144,9 +130,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::with)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
auto temporal_time_like_argument = vm.argument(0);
@@ -239,9 +223,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::equals)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set other to ? ToTemporalTime(other).
auto* other = TRY_OR_DISCARD(to_temporal_time(global_object, vm.argument(0)));
@@ -279,9 +261,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::to_plain_date_time)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set temporalDate to ? ToTemporalDate(temporalDate).
auto* temporal_date = TRY_OR_DISCARD(to_temporal_date(global_object, vm.argument(0)));
@@ -295,9 +275,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::get_iso_fields)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let fields be ! OrdinaryObjectCreate(%Object.prototype%).
auto* fields = Object::create(global_object, global_object.object_prototype());
@@ -332,9 +310,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::to_string)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set options to ? GetOptionsObject(options).
auto* options = TRY_OR_DISCARD(get_options_object(global_object, vm.argument(0)));
@@ -358,9 +334,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::to_locale_string)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ! TemporalTimeToString(temporalTime.[[ISOHour]], temporalTime.[[ISOMinute]], temporalTime.[[ISOSecond]], temporalTime.[[ISOMillisecond]], temporalTime.[[ISOMicrosecond]], temporalTime.[[ISONanosecond]], "auto").
auto string = temporal_time_to_string(temporal_time->iso_hour(), temporal_time->iso_minute(), temporal_time->iso_second(), temporal_time->iso_millisecond(), temporal_time->iso_microsecond(), temporal_time->iso_nanosecond(), "auto"sv);
@@ -372,9 +346,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::to_json)
{
// 1. Let temporalTime be the this value.
// 2. Perform ? RequireInternalSlot(temporalTime, [[InitializedTemporalTime]]).
- auto* temporal_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* temporal_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ! TemporalTimeToString(temporalTime.[[ISOHour]], temporalTime.[[ISOMinute]], temporalTime.[[ISOSecond]], temporalTime.[[ISOMillisecond]], temporalTime.[[ISOMicrosecond]], temporalTime.[[ISONanosecond]], "auto").
auto string = temporal_time_to_string(temporal_time->iso_hour(), temporal_time->iso_minute(), temporal_time->iso_second(), temporal_time->iso_millisecond(), temporal_time->iso_microsecond(), temporal_time->iso_nanosecond(), "auto"sv);
diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/PlainYearMonthPrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/PlainYearMonthPrototype.cpp
index 251f59482e..0290aca1b1 100644
--- a/Userland/Libraries/LibJS/Runtime/Temporal/PlainYearMonthPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Temporal/PlainYearMonthPrototype.cpp
@@ -54,9 +54,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::calendar_getter)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return yearMonth.[[Calendar]].
return Value(&year_month->calendar());
@@ -67,9 +65,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::year_getter)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be yearMonth.[[Calendar]].
auto& calendar = year_month->calendar();
@@ -83,9 +79,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::month_getter)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be yearMonth.[[Calendar]].
auto& calendar = year_month->calendar();
@@ -99,9 +93,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::month_code_getter)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be yearMonth.[[Calendar]].
auto& calendar = year_month->calendar();
@@ -115,9 +107,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::days_in_year_getter)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be yearMonth.[[Calendar]].
auto& calendar = year_month->calendar();
@@ -131,9 +121,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::days_in_month_getter)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be yearMonth.[[Calendar]].
auto& calendar = year_month->calendar();
@@ -147,9 +135,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::months_in_year_getter)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be yearMonth.[[Calendar]].
auto& calendar = year_month->calendar();
@@ -163,9 +149,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::in_leap_year_getter)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be yearMonth.[[Calendar]].
auto& calendar = year_month->calendar();
@@ -179,9 +163,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::era_getter)
{
// 1. Let plainYearMonth be the this value.
// 2. Perform ? RequireInternalSlot(plainYearMonth, [[InitializedTemporalYearMonth]]).
- auto* plain_year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* plain_year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be plainYearMonth.[[Calendar]].
auto& calendar = plain_year_month->calendar();
@@ -195,9 +177,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::era_year_getter)
{
// 1. Let plainYearMonth be the this value.
// 2. Perform ? RequireInternalSlot(plainYearMonth, [[InitializedTemporalYearMonth]]).
- auto* plain_year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* plain_year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let calendar be plainYearMonth.[[Calendar]].
auto& calendar = plain_year_month->calendar();
@@ -211,9 +191,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::equals)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set other to ? ToTemporalYearMonth(other).
auto* other = TRY_OR_DISCARD(to_temporal_year_month(global_object, vm.argument(0)));
@@ -239,9 +217,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::to_string)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set options to ? GetOptionsObject(options).
auto* options = TRY_OR_DISCARD(get_options_object(global_object, vm.argument(0)));
@@ -259,9 +235,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::to_locale_string)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ? TemporalYearMonthToString(yearMonth, "auto").
return js_string(vm, TRY_OR_DISCARD(temporal_year_month_to_string(global_object, *year_month, "auto"sv)));
@@ -272,9 +246,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::to_json)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ? TemporalYearMonthToString(yearMonth, "auto").
return js_string(vm, TRY_OR_DISCARD(temporal_year_month_to_string(global_object, *year_month, "auto"sv)));
@@ -295,9 +267,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::to_plain_date)
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. If Type(item) is not Object, then
if (!item.is_object()) {
@@ -353,9 +323,7 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::get_iso_fields)
{
// 1. Let yearMonth be the this value.
// 2. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
- auto* year_month = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* year_month = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let fields be ! OrdinaryObjectCreate(%Object.prototype%).
auto* fields = Object::create(global_object, global_object.object_prototype());
diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/TimeZonePrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/TimeZonePrototype.cpp
index c298ecbe06..c3742afb81 100644
--- a/Userland/Libraries/LibJS/Runtime/Temporal/TimeZonePrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Temporal/TimeZonePrototype.cpp
@@ -53,9 +53,7 @@ JS_DEFINE_NATIVE_FUNCTION(TimeZonePrototype::get_offset_nanoseconds_for)
{
// 1. Let timeZone be the this value.
// 2. Perform ? RequireInternalSlot(timeZone, [[InitializedTemporalTimeZone]]).
- auto* time_zone = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* time_zone = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set instant to ? ToTemporalInstant(instant).
auto* instant = TRY_OR_DISCARD(to_temporal_instant(global_object, vm.argument(0)));
@@ -73,9 +71,7 @@ JS_DEFINE_NATIVE_FUNCTION(TimeZonePrototype::get_offset_string_for)
{
// 1. Let timeZone be the this value.
// 2. Perform ? RequireInternalSlot(timeZone, [[InitializedTemporalTimeZone]]).
- auto* time_zone = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* time_zone = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Set instant to ? ToTemporalInstant(instant).
auto* instant = TRY_OR_DISCARD(to_temporal_instant(global_object, vm.argument(0)));
@@ -106,9 +102,7 @@ JS_DEFINE_NATIVE_FUNCTION(TimeZonePrototype::to_string)
{
// 1. Let timeZone be the this value.
// 2. Perform ? RequireInternalSlot(timeZone, [[InitializedTemporalTimeZone]]).
- auto* time_zone = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* time_zone = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return timeZone.[[Identifier]].
return js_string(vm, time_zone->identifier());
diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/ZonedDateTimePrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/ZonedDateTimePrototype.cpp
index d613456109..ca3cd23818 100644
--- a/Userland/Libraries/LibJS/Runtime/Temporal/ZonedDateTimePrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Temporal/ZonedDateTimePrototype.cpp
@@ -78,9 +78,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::calendar_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return zonedDateTime.[[Calendar]].
return Value(&zoned_date_time->calendar());
@@ -91,9 +89,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::time_zone_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return zonedDateTime.[[TimeZone]].
return Value(&zoned_date_time->time_zone());
@@ -104,9 +100,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::year_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -129,9 +123,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::month_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -154,9 +146,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::month_code_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -179,9 +169,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::day_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -204,9 +192,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::hour_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -229,9 +215,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::minute_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -254,9 +238,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::second_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -279,9 +261,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::millisecond_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -304,9 +284,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::microsecond_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -329,9 +307,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::nanosecond_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -354,9 +330,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::epoch_seconds_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let ns be zonedDateTime.[[Nanoseconds]].
auto& ns = zoned_date_time->nanoseconds();
@@ -373,9 +347,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::epoch_milliseconds_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let ns be zonedDateTime.[[Nanoseconds]].
auto& ns = zoned_date_time->nanoseconds();
@@ -392,9 +364,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::epoch_microseconds_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let ns be zonedDateTime.[[Nanoseconds]].
auto& ns = zoned_date_time->nanoseconds();
@@ -411,9 +381,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::epoch_nanoseconds_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return zonedDateTime.[[Nanoseconds]].
return &zoned_date_time->nanoseconds();
@@ -424,9 +392,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::day_of_week_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -449,9 +415,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::day_of_year_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -474,9 +438,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::week_of_year_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -499,9 +461,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::days_in_week_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -524,9 +484,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::days_in_month_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -549,9 +507,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::days_in_year_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -574,9 +530,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::months_in_year_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -599,9 +553,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::in_leap_year_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -624,9 +576,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::offset_nanoseconds_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -643,9 +593,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::offset_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let instant be ! CreateTemporalInstant(zonedDateTime.[[Nanoseconds]]).
auto* instant = MUST(create_temporal_instant(global_object, zoned_date_time->nanoseconds()));
@@ -660,9 +608,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::era_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -685,9 +631,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::era_year_getter)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -718,9 +662,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::to_instant)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Return ! CreateTemporalInstant(zonedDateTime.[[Nanoseconds]]).
return MUST(create_temporal_instant(global_object, zoned_date_time->nanoseconds()));
@@ -731,9 +673,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::to_plain_date)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -756,9 +696,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::to_plain_time)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -781,9 +719,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::to_plain_date_time)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -800,9 +736,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::to_plain_year_month)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -831,9 +765,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::to_plain_month_day)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let timeZone be zonedDateTime.[[TimeZone]].
auto& time_zone = zoned_date_time->time_zone();
@@ -862,9 +794,7 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::get_iso_fields)
{
// 1. Let zonedDateTime be the this value.
// 2. Perform ? RequireInternalSlot(zonedDateTime, [[InitializedTemporalZonedDateTime]]).
- auto* zoned_date_time = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* zoned_date_time = TRY_OR_DISCARD(typed_this_object(global_object));
// 3. Let fields be ! OrdinaryObjectCreate(%Object.prototype%).
auto* fields = Object::create(global_object, global_object.object_prototype());
diff --git a/Userland/Libraries/LibJS/Runtime/WeakMapPrototype.cpp b/Userland/Libraries/LibJS/Runtime/WeakMapPrototype.cpp
index fe972b95de..66e2143207 100644
--- a/Userland/Libraries/LibJS/Runtime/WeakMapPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/WeakMapPrototype.cpp
@@ -37,9 +37,7 @@ WeakMapPrototype::~WeakMapPrototype()
// 24.3.3.2 WeakMap.prototype.delete ( key ), https://tc39.es/ecma262/#sec-weakmap.prototype.delete
JS_DEFINE_NATIVE_FUNCTION(WeakMapPrototype::delete_)
{
- auto* weak_map = typed_this_object(global_object);
- if (!weak_map)
- return {};
+ auto* weak_map = TRY_OR_DISCARD(typed_this_object(global_object));
auto value = vm.argument(0);
if (!value.is_object())
return Value(false);
@@ -49,9 +47,7 @@ JS_DEFINE_NATIVE_FUNCTION(WeakMapPrototype::delete_)
// 24.3.3.3 WeakMap.prototype.get ( key ), https://tc39.es/ecma262/#sec-weakmap.prototype.get
JS_DEFINE_NATIVE_FUNCTION(WeakMapPrototype::get)
{
- auto* weak_map = typed_this_object(global_object);
- if (!weak_map)
- return {};
+ auto* weak_map = TRY_OR_DISCARD(typed_this_object(global_object));
auto value = vm.argument(0);
if (!value.is_object())
return js_undefined();
@@ -65,9 +61,7 @@ JS_DEFINE_NATIVE_FUNCTION(WeakMapPrototype::get)
// 24.3.3.4 WeakMap.prototype.has ( key ), https://tc39.es/ecma262/#sec-weakmap.prototype.has
JS_DEFINE_NATIVE_FUNCTION(WeakMapPrototype::has)
{
- auto* weak_map = typed_this_object(global_object);
- if (!weak_map)
- return {};
+ auto* weak_map = TRY_OR_DISCARD(typed_this_object(global_object));
auto value = vm.argument(0);
if (!value.is_object())
return Value(false);
@@ -78,9 +72,7 @@ JS_DEFINE_NATIVE_FUNCTION(WeakMapPrototype::has)
// 24.3.3.5 WeakMap.prototype.set ( key, value ), https://tc39.es/ecma262/#sec-weakmap.prototype.set
JS_DEFINE_NATIVE_FUNCTION(WeakMapPrototype::set)
{
- auto* weak_map = typed_this_object(global_object);
- if (!weak_map)
- return {};
+ auto* weak_map = TRY_OR_DISCARD(typed_this_object(global_object));
auto value = vm.argument(0);
if (!value.is_object()) {
vm.throw_exception<TypeError>(global_object, ErrorType::NotAnObject, value.to_string_without_side_effects());
diff --git a/Userland/Libraries/LibJS/Runtime/WeakRefPrototype.cpp b/Userland/Libraries/LibJS/Runtime/WeakRefPrototype.cpp
index 16036814f1..b0e4029ef9 100644
--- a/Userland/Libraries/LibJS/Runtime/WeakRefPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/WeakRefPrototype.cpp
@@ -31,9 +31,7 @@ WeakRefPrototype::~WeakRefPrototype()
// 26.1.3.2 WeakRef.prototype.deref ( ), https://tc39.es/ecma262/#sec-weak-ref.prototype.deref
JS_DEFINE_NATIVE_FUNCTION(WeakRefPrototype::deref)
{
- auto* weak_ref = typed_this_object(global_object);
- if (vm.exception())
- return {};
+ auto* weak_ref = TRY_OR_DISCARD(typed_this_object(global_object));
weak_ref->update_execution_generation();
return weak_ref->value() ?: js_undefined();
diff --git a/Userland/Libraries/LibJS/Runtime/WeakSetPrototype.cpp b/Userland/Libraries/LibJS/Runtime/WeakSetPrototype.cpp
index 21ac9db81d..ee826990c5 100644
--- a/Userland/Libraries/LibJS/Runtime/WeakSetPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/WeakSetPrototype.cpp
@@ -36,9 +36,7 @@ WeakSetPrototype::~WeakSetPrototype()
// 24.4.3.1 WeakSet.prototype.add ( value ), https://tc39.es/ecma262/#sec-weakset.prototype.add
JS_DEFINE_NATIVE_FUNCTION(WeakSetPrototype::add)
{
- auto* weak_set = typed_this_object(global_object);
- if (!weak_set)
- return {};
+ auto* weak_set = TRY_OR_DISCARD(typed_this_object(global_object));
auto value = vm.argument(0);
if (!value.is_object()) {
vm.throw_exception<TypeError>(global_object, ErrorType::NotAnObject, value.to_string_without_side_effects());
@@ -51,9 +49,7 @@ JS_DEFINE_NATIVE_FUNCTION(WeakSetPrototype::add)
// 24.4.3.3 WeakSet.prototype.delete ( value ), https://tc39.es/ecma262/#sec-weakset.prototype.delete
JS_DEFINE_NATIVE_FUNCTION(WeakSetPrototype::delete_)
{
- auto* weak_set = typed_this_object(global_object);
- if (!weak_set)
- return {};
+ auto* weak_set = TRY_OR_DISCARD(typed_this_object(global_object));
auto value = vm.argument(0);
if (!value.is_object())
return Value(false);
@@ -63,9 +59,7 @@ JS_DEFINE_NATIVE_FUNCTION(WeakSetPrototype::delete_)
// 24.4.3.4 WeakSet.prototype.has ( value ), https://tc39.es/ecma262/#sec-weakset.prototype.has
JS_DEFINE_NATIVE_FUNCTION(WeakSetPrototype::has)
{
- auto* weak_set = typed_this_object(global_object);
- if (!weak_set)
- return {};
+ auto* weak_set = TRY_OR_DISCARD(typed_this_object(global_object));
auto value = vm.argument(0);
if (!value.is_object())
return Value(false);