Browse Source

LibJS: Convert create_data_property_or_throw() to ThrowCompletionOr

Linus Groh 3 years ago
parent
commit
364dd42fc8
30 changed files with 148 additions and 167 deletions
  1. 1 3
      Userland/Libraries/LibJS/AST.cpp
  2. 1 1
      Userland/Libraries/LibJS/Bytecode/Op.cpp
  3. 2 4
      Userland/Libraries/LibJS/Runtime/AbstractOperations.cpp
  4. 2 1
      Userland/Libraries/LibJS/Runtime/Array.cpp
  5. 7 10
      Userland/Libraries/LibJS/Runtime/ArrayConstructor.cpp
  6. 21 29
      Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp
  7. 1 1
      Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp
  8. 4 4
      Userland/Libraries/LibJS/Runtime/Intl/DisplayNamesPrototype.cpp
  9. 3 3
      Userland/Libraries/LibJS/Runtime/Intl/ListFormat.cpp
  10. 3 3
      Userland/Libraries/LibJS/Runtime/Intl/ListFormatPrototype.cpp
  11. 17 17
      Userland/Libraries/LibJS/Runtime/Intl/NumberFormatPrototype.cpp
  12. 2 2
      Userland/Libraries/LibJS/Runtime/IteratorOperations.cpp
  13. 2 2
      Userland/Libraries/LibJS/Runtime/JSONObject.cpp
  14. 4 7
      Userland/Libraries/LibJS/Runtime/Object.cpp
  15. 1 1
      Userland/Libraries/LibJS/Runtime/Object.h
  16. 3 3
      Userland/Libraries/LibJS/Runtime/ObjectConstructor.cpp
  17. 4 4
      Userland/Libraries/LibJS/Runtime/PromiseResolvingElementFunctions.cpp
  18. 6 6
      Userland/Libraries/LibJS/Runtime/PropertyDescriptor.cpp
  19. 2 2
      Userland/Libraries/LibJS/Runtime/ProxyConstructor.cpp
  20. 11 13
      Userland/Libraries/LibJS/Runtime/RegExpPrototype.cpp
  21. 4 4
      Userland/Libraries/LibJS/Runtime/StringPrototype.cpp
  22. 1 1
      Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp
  23. 4 4
      Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp
  24. 4 4
      Userland/Libraries/LibJS/Runtime/Temporal/PlainDatePrototype.cpp
  25. 10 10
      Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTimePrototype.cpp
  26. 1 1
      Userland/Libraries/LibJS/Runtime/Temporal/PlainMonthDay.cpp
  27. 4 4
      Userland/Libraries/LibJS/Runtime/Temporal/PlainMonthDayPrototype.cpp
  28. 7 7
      Userland/Libraries/LibJS/Runtime/Temporal/PlainTimePrototype.cpp
  29. 4 4
      Userland/Libraries/LibJS/Runtime/Temporal/PlainYearMonthPrototype.cpp
  30. 12 12
      Userland/Libraries/LibJS/Runtime/Temporal/ZonedDateTimePrototype.cpp

+ 1 - 3
Userland/Libraries/LibJS/AST.cpp

@@ -1300,9 +1300,7 @@ ThrowCompletionOr<Value> ClassExpression::class_definition_evaluation(Interprete
             if (initializer)
             if (initializer)
                 field_value = TRY(interpreter.vm().call(*initializer, class_constructor_value));
                 field_value = TRY(interpreter.vm().call(*initializer, class_constructor_value));
 
 
-            class_constructor->create_data_property_or_throw(property_key, field_value);
-            if (auto* exception = interpreter.exception())
-                return throw_completion(exception->value());
+            TRY(class_constructor->create_data_property_or_throw(property_key, field_value));
         } else {
         } else {
             class_constructor->add_field(property_key, initializer);
             class_constructor->add_field(property_key, initializer);
         }
         }

+ 1 - 1
Userland/Libraries/LibJS/Bytecode/Op.cpp

@@ -154,7 +154,7 @@ void IteratorToArray::execute_impl(Bytecode::Interpreter& interpreter) const
         if (vm.exception())
         if (vm.exception())
             return;
             return;
 
 
-        array->create_data_property_or_throw(index, value);
+        MUST(array->create_data_property_or_throw(index, value));
         index++;
         index++;
     }
     }
 }
 }

+ 2 - 4
Userland/Libraries/LibJS/Runtime/AbstractOperations.cpp

@@ -694,8 +694,7 @@ Object* create_unmapped_arguments_object(GlobalObject& global_object, Span<Value
         auto value = arguments[index];
         auto value = arguments[index];
 
 
         // b. Perform ! CreateDataPropertyOrThrow(obj, ! ToString(𝔽(index)), val).
         // b. Perform ! CreateDataPropertyOrThrow(obj, ! ToString(𝔽(index)), val).
-        object->create_data_property_or_throw(index, value);
-        VERIFY(!vm.exception());
+        MUST(object->create_data_property_or_throw(index, value));
 
 
         // c. Set index to index + 1.
         // c. Set index to index + 1.
     }
     }
@@ -742,8 +741,7 @@ Object* create_mapped_arguments_object(GlobalObject& global_object, FunctionObje
         auto value = arguments[index];
         auto value = arguments[index];
 
 
         // b. Perform ! CreateDataPropertyOrThrow(obj, ! ToString(𝔽(index)), val).
         // b. Perform ! CreateDataPropertyOrThrow(obj, ! ToString(𝔽(index)), val).
-        object->create_data_property_or_throw(index, value);
-        VERIFY(!vm.exception());
+        MUST(object->create_data_property_or_throw(index, value));
 
 
         // c. Set index to index + 1.
         // c. Set index to index + 1.
     }
     }

+ 2 - 1
Userland/Libraries/LibJS/Runtime/Array.cpp

@@ -40,7 +40,8 @@ Array* Array::create_from(GlobalObject& global_object, Vector<Value> const& elem
     // 4. For each element e of elements, do
     // 4. For each element e of elements, do
     for (u32 n = 0; n < elements.size(); ++n) {
     for (u32 n = 0; n < elements.size(); ++n) {
         // a. Perform ! CreateDataPropertyOrThrow(array, ! ToString(𝔽(n)), e).
         // a. Perform ! CreateDataPropertyOrThrow(array, ! ToString(𝔽(n)), e).
-        array->create_data_property_or_throw(n, elements[n]);
+        MUST(array->create_data_property_or_throw(n, elements[n]));
+
         // b. Set n to n + 1.
         // b. Set n to n + 1.
     }
     }
 
 

+ 7 - 10
Userland/Libraries/LibJS/Runtime/ArrayConstructor.cpp

@@ -65,7 +65,7 @@ Value ArrayConstructor::construct(FunctionObject& new_target)
         auto* array = Array::create(global_object(), 0, proto);
         auto* array = Array::create(global_object(), 0, proto);
         size_t int_length;
         size_t int_length;
         if (!length.is_number()) {
         if (!length.is_number()) {
-            array->create_data_property_or_throw(0, length);
+            MUST(array->create_data_property_or_throw(0, length));
             int_length = 1;
             int_length = 1;
         } else {
         } else {
             int_length = length.to_u32(global_object());
             int_length = length.to_u32(global_object());
@@ -83,7 +83,7 @@ Value ArrayConstructor::construct(FunctionObject& new_target)
         return {};
         return {};
 
 
     for (size_t k = 0; k < vm.argument_count(); ++k)
     for (size_t k = 0; k < vm.argument_count(); ++k)
-        array->create_data_property_or_throw(k, vm.argument(k));
+        MUST(array->create_data_property_or_throw(k, vm.argument(k)));
 
 
     return array;
     return array;
 }
 }
@@ -155,8 +155,8 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayConstructor::from)
                 mapped_value = next_value;
                 mapped_value = next_value;
             }
             }
 
 
-            array_object.create_data_property_or_throw(k, mapped_value);
-            if (vm.exception()) {
+            auto result_or_error = array_object.create_data_property_or_throw(k, mapped_value);
+            if (result_or_error.is_error()) {
                 iterator_close(*iterator);
                 iterator_close(*iterator);
                 return {};
                 return {};
             }
             }
@@ -191,7 +191,7 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayConstructor::from)
             mapped_value = TRY_OR_DISCARD(vm.call(*map_fn, this_arg, k_value, Value(k)));
             mapped_value = TRY_OR_DISCARD(vm.call(*map_fn, this_arg, k_value, Value(k)));
         else
         else
             mapped_value = k_value;
             mapped_value = k_value;
-        array_object.create_data_property_or_throw(k, mapped_value);
+        TRY_OR_DISCARD(array_object.create_data_property_or_throw(k, mapped_value));
     }
     }
 
 
     TRY_OR_DISCARD(array_object.set(vm.names.length, Value(length), Object::ShouldThrowExceptions::Yes));
     TRY_OR_DISCARD(array_object.set(vm.names.length, Value(length), Object::ShouldThrowExceptions::Yes));
@@ -223,11 +223,8 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayConstructor::of)
             return {};
             return {};
     }
     }
     auto& array_object = array.as_object();
     auto& array_object = array.as_object();
-    for (size_t k = 0; k < vm.argument_count(); ++k) {
-        array_object.create_data_property_or_throw(k, vm.argument(k));
-        if (vm.exception())
-            return {};
-    }
+    for (size_t k = 0; k < vm.argument_count(); ++k)
+        TRY_OR_DISCARD(array_object.create_data_property_or_throw(k, vm.argument(k)));
     TRY_OR_DISCARD(array_object.set(vm.names.length, Value(vm.argument_count()), Object::ShouldThrowExceptions::Yes));
     TRY_OR_DISCARD(array_object.set(vm.names.length, Value(vm.argument_count()), Object::ShouldThrowExceptions::Yes));
     return array;
     return array;
 }
 }

+ 21 - 29
Userland/Libraries/LibJS/Runtime/ArrayPrototype.cpp

@@ -82,18 +82,18 @@ void ArrayPrototype::initialize(GlobalObject& global_object)
     // 23.1.3.34 Array.prototype [ @@unscopables ], https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
     // 23.1.3.34 Array.prototype [ @@unscopables ], https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
     // With proposal, https://tc39.es/proposal-array-find-from-last/index.html#sec-array.prototype-@@unscopables
     // With proposal, https://tc39.es/proposal-array-find-from-last/index.html#sec-array.prototype-@@unscopables
     auto* unscopable_list = Object::create(global_object, nullptr);
     auto* unscopable_list = Object::create(global_object, nullptr);
-    unscopable_list->create_data_property_or_throw(vm.names.copyWithin, Value(true));
-    unscopable_list->create_data_property_or_throw(vm.names.entries, Value(true));
-    unscopable_list->create_data_property_or_throw(vm.names.fill, Value(true));
-    unscopable_list->create_data_property_or_throw(vm.names.find, Value(true));
-    unscopable_list->create_data_property_or_throw(vm.names.findIndex, Value(true));
-    unscopable_list->create_data_property_or_throw(vm.names.findLast, Value(true));
-    unscopable_list->create_data_property_or_throw(vm.names.findLastIndex, Value(true));
-    unscopable_list->create_data_property_or_throw(vm.names.flat, Value(true));
-    unscopable_list->create_data_property_or_throw(vm.names.flatMap, Value(true));
-    unscopable_list->create_data_property_or_throw(vm.names.includes, Value(true));
-    unscopable_list->create_data_property_or_throw(vm.names.keys, Value(true));
-    unscopable_list->create_data_property_or_throw(vm.names.values, Value(true));
+    MUST(unscopable_list->create_data_property_or_throw(vm.names.copyWithin, Value(true)));
+    MUST(unscopable_list->create_data_property_or_throw(vm.names.entries, Value(true)));
+    MUST(unscopable_list->create_data_property_or_throw(vm.names.fill, Value(true)));
+    MUST(unscopable_list->create_data_property_or_throw(vm.names.find, Value(true)));
+    MUST(unscopable_list->create_data_property_or_throw(vm.names.findIndex, Value(true)));
+    MUST(unscopable_list->create_data_property_or_throw(vm.names.findLast, Value(true)));
+    MUST(unscopable_list->create_data_property_or_throw(vm.names.findLastIndex, Value(true)));
+    MUST(unscopable_list->create_data_property_or_throw(vm.names.flat, Value(true)));
+    MUST(unscopable_list->create_data_property_or_throw(vm.names.flatMap, Value(true)));
+    MUST(unscopable_list->create_data_property_or_throw(vm.names.includes, Value(true)));
+    MUST(unscopable_list->create_data_property_or_throw(vm.names.keys, Value(true)));
+    MUST(unscopable_list->create_data_property_or_throw(vm.names.values, Value(true)));
 
 
     define_direct_property(*vm.well_known_symbol_unscopables(), unscopable_list, Attribute::Configurable);
     define_direct_property(*vm.well_known_symbol_unscopables(), unscopable_list, Attribute::Configurable);
 }
 }
@@ -205,7 +205,7 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::filter)
             // iii. If selected is true, then
             // iii. If selected is true, then
             if (selected) {
             if (selected) {
                 // 1. Perform ? CreateDataPropertyOrThrow(A, ! ToString(𝔽(to)), kValue).
                 // 1. Perform ? CreateDataPropertyOrThrow(A, ! ToString(𝔽(to)), kValue).
-                array->create_data_property_or_throw(to, k_value);
+                TRY_OR_DISCARD(array->create_data_property_or_throw(to, k_value));
 
 
                 // 2. Set to to to + 1.
                 // 2. Set to to to + 1.
                 ++to;
                 ++to;
@@ -313,9 +313,7 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::map)
             auto mapped_value = TRY_OR_DISCARD(vm.call(callback_function.as_function(), this_arg, k_value, Value(k), object));
             auto mapped_value = TRY_OR_DISCARD(vm.call(callback_function.as_function(), this_arg, k_value, Value(k), object));
 
 
             // iii. Perform ? CreateDataPropertyOrThrow(A, Pk, mappedValue).
             // iii. Perform ? CreateDataPropertyOrThrow(A, Pk, mappedValue).
-            array->create_data_property_or_throw(property_name, mapped_value);
-            if (vm.exception())
-                return {};
+            TRY_OR_DISCARD(array->create_data_property_or_throw(property_name, mapped_value));
         }
         }
 
 
         // d. Set k to k + 1.
         // d. Set k to k + 1.
@@ -581,8 +579,8 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::concat)
                     if (k_value_or_error.is_error())
                     if (k_value_or_error.is_error())
                         return;
                         return;
                     auto k_value = k_value_or_error.release_value();
                     auto k_value = k_value_or_error.release_value();
-                    new_array->create_data_property_or_throw(n, k_value);
-                    if (vm.exception())
+                    auto result_or_error = new_array->create_data_property_or_throw(n, k_value);
+                    if (result_or_error.is_error())
                         return;
                         return;
                 }
                 }
                 ++n;
                 ++n;
@@ -593,8 +591,8 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::concat)
                 vm.throw_exception<TypeError>(global_object, ErrorType::ArrayMaxSize);
                 vm.throw_exception<TypeError>(global_object, ErrorType::ArrayMaxSize);
                 return;
                 return;
             }
             }
-            new_array->create_data_property_or_throw(n, arg);
-            if (vm.exception())
+            auto result_or_error = new_array->create_data_property_or_throw(n, arg);
+            if (result_or_error.is_error())
                 return;
                 return;
             ++n;
             ++n;
         }
         }
@@ -672,9 +670,7 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::slice)
 
 
         if (present) {
         if (present) {
             auto value = TRY_OR_DISCARD(this_object->get(k));
             auto value = TRY_OR_DISCARD(this_object->get(k));
-            new_array->create_data_property_or_throw(index, value);
-            if (vm.exception())
-                return {};
+            TRY_OR_DISCARD(new_array->create_data_property_or_throw(index, value));
         }
         }
 
 
         ++k;
         ++k;
@@ -1594,9 +1590,7 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayPrototype::splice)
         if (from_present) {
         if (from_present) {
             auto from_value = TRY_OR_DISCARD(this_object->get(from));
             auto from_value = TRY_OR_DISCARD(this_object->get(from));
 
 
-            removed_elements->create_data_property_or_throw(i, from_value);
-            if (vm.exception())
-                return {};
+            TRY_OR_DISCARD(removed_elements->create_data_property_or_throw(i, from_value));
         }
         }
     }
     }
 
 
@@ -1767,9 +1761,7 @@ static size_t flatten_into_array(GlobalObject& global_object, Object& new_array,
             return {};
             return {};
         }
         }
 
 
-        new_array.create_data_property_or_throw(target_index, value);
-        if (vm.exception())
-            return {};
+        TRY_OR_DISCARD(new_array.create_data_property_or_throw(target_index, value));
 
 
         ++target_index;
         ++target_index;
     }
     }

+ 1 - 1
Userland/Libraries/LibJS/Runtime/ECMAScriptFunctionObject.cpp

@@ -442,7 +442,7 @@ void ECMAScriptFunctionObject::InstanceField::define_field(VM& vm, Object& recei
             return;
             return;
         init_value = init_value_or_error.release_value();
         init_value = init_value_or_error.release_value();
     }
     }
-    receiver.create_data_property_or_throw(name, init_value);
+    (void)receiver.create_data_property_or_throw(name, init_value);
 }
 }
 
 
 }
 }

+ 4 - 4
Userland/Libraries/LibJS/Runtime/Intl/DisplayNamesPrototype.cpp

@@ -101,10 +101,10 @@ JS_DEFINE_NATIVE_FUNCTION(DisplayNamesPrototype::resolved_options)
     //     b. Let v be the value of displayNames's internal slot whose name is the Internal Slot value of the current row.
     //     b. Let v be the value of displayNames's internal slot whose name is the Internal Slot value of the current row.
     //     c. Assert: v is not undefined.
     //     c. Assert: v is not undefined.
     //     d. Perform ! CreateDataPropertyOrThrow(options, p, v).
     //     d. Perform ! CreateDataPropertyOrThrow(options, p, v).
-    options->create_data_property_or_throw(vm.names.locale, js_string(vm, display_names->locale()));
-    options->create_data_property_or_throw(vm.names.style, js_string(vm, display_names->style_string()));
-    options->create_data_property_or_throw(vm.names.type, js_string(vm, display_names->type_string()));
-    options->create_data_property_or_throw(vm.names.fallback, js_string(vm, display_names->fallback_string()));
+    MUST(options->create_data_property_or_throw(vm.names.locale, js_string(vm, display_names->locale())));
+    MUST(options->create_data_property_or_throw(vm.names.style, js_string(vm, display_names->style_string())));
+    MUST(options->create_data_property_or_throw(vm.names.type, js_string(vm, display_names->type_string())));
+    MUST(options->create_data_property_or_throw(vm.names.fallback, js_string(vm, display_names->fallback_string())));
 
 
     // 5. Return options.
     // 5. Return options.
     return options;
     return options;

+ 3 - 3
Userland/Libraries/LibJS/Runtime/Intl/ListFormat.cpp

@@ -248,13 +248,13 @@ Array* format_list_to_parts(GlobalObject& global_object, ListFormat const& list_
         auto* object = Object::create(global_object, global_object.object_prototype());
         auto* object = Object::create(global_object, global_object.object_prototype());
 
 
         // b. Perform ! CreateDataPropertyOrThrow(O, "type", part.[[Type]]).
         // b. Perform ! CreateDataPropertyOrThrow(O, "type", part.[[Type]]).
-        object->create_data_property_or_throw(vm.names.type, js_string(vm, part.type));
+        MUST(object->create_data_property_or_throw(vm.names.type, js_string(vm, part.type)));
 
 
         // c. Perform ! CreateDataPropertyOrThrow(O, "value", part.[[Value]]).
         // c. Perform ! CreateDataPropertyOrThrow(O, "value", part.[[Value]]).
-        object->create_data_property_or_throw(vm.names.value, js_string(vm, part.value));
+        MUST(object->create_data_property_or_throw(vm.names.value, js_string(vm, part.value)));
 
 
         // d. Perform ! CreateDataPropertyOrThrow(result, ! ToString(n), O).
         // d. Perform ! CreateDataPropertyOrThrow(result, ! ToString(n), O).
-        result->create_data_property_or_throw(n, object);
+        MUST(result->create_data_property_or_throw(n, object));
 
 
         // e. Increment n by 1.
         // e. Increment n by 1.
         ++n;
         ++n;

+ 3 - 3
Userland/Libraries/LibJS/Runtime/Intl/ListFormatPrototype.cpp

@@ -87,9 +87,9 @@ JS_DEFINE_NATIVE_FUNCTION(ListFormatPrototype::resolved_options)
     //     b. Let v be the value of lf's internal slot whose name is the Internal Slot value of the current row.
     //     b. Let v be the value of lf's internal slot whose name is the Internal Slot value of the current row.
     //     c. Assert: v is not undefined.
     //     c. Assert: v is not undefined.
     //     d. Perform ! CreateDataPropertyOrThrow(options, p, v).
     //     d. Perform ! CreateDataPropertyOrThrow(options, p, v).
-    options->create_data_property_or_throw(vm.names.locale, js_string(vm, list_format->locale()));
-    options->create_data_property_or_throw(vm.names.type, js_string(vm, list_format->type_string()));
-    options->create_data_property_or_throw(vm.names.style, js_string(vm, list_format->style_string()));
+    MUST(options->create_data_property_or_throw(vm.names.locale, js_string(vm, list_format->locale())));
+    MUST(options->create_data_property_or_throw(vm.names.type, js_string(vm, list_format->type_string())));
+    MUST(options->create_data_property_or_throw(vm.names.style, js_string(vm, list_format->style_string())));
 
 
     // 5. Return options.
     // 5. Return options.
     return options;
     return options;

+ 17 - 17
Userland/Libraries/LibJS/Runtime/Intl/NumberFormatPrototype.cpp

@@ -49,33 +49,33 @@ JS_DEFINE_NATIVE_FUNCTION(NumberFormatPrototype::resolved_options)
     //     b. Let v be the value of nf's internal slot whose name is the Internal Slot value of the current row.
     //     b. Let v be the value of nf's internal slot whose name is the Internal Slot value of the current row.
     //     c. If v is not undefined, then
     //     c. If v is not undefined, then
     //         i. Perform ! CreateDataPropertyOrThrow(options, p, v).
     //         i. Perform ! CreateDataPropertyOrThrow(options, p, v).
-    options->create_data_property_or_throw(vm.names.locale, js_string(vm, number_format->locale()));
-    options->create_data_property_or_throw(vm.names.numberingSystem, js_string(vm, number_format->numbering_system()));
-    options->create_data_property_or_throw(vm.names.style, js_string(vm, number_format->style_string()));
+    MUST(options->create_data_property_or_throw(vm.names.locale, js_string(vm, number_format->locale())));
+    MUST(options->create_data_property_or_throw(vm.names.numberingSystem, js_string(vm, number_format->numbering_system())));
+    MUST(options->create_data_property_or_throw(vm.names.style, js_string(vm, number_format->style_string())));
     if (number_format->has_currency())
     if (number_format->has_currency())
-        options->create_data_property_or_throw(vm.names.currency, js_string(vm, number_format->currency()));
+        MUST(options->create_data_property_or_throw(vm.names.currency, js_string(vm, number_format->currency())));
     if (number_format->has_currency_display())
     if (number_format->has_currency_display())
-        options->create_data_property_or_throw(vm.names.currencyDisplay, js_string(vm, number_format->currency_display_string()));
+        MUST(options->create_data_property_or_throw(vm.names.currencyDisplay, js_string(vm, number_format->currency_display_string())));
     if (number_format->has_currency_sign())
     if (number_format->has_currency_sign())
-        options->create_data_property_or_throw(vm.names.currencySign, js_string(vm, number_format->currency_sign_string()));
+        MUST(options->create_data_property_or_throw(vm.names.currencySign, js_string(vm, number_format->currency_sign_string())));
     if (number_format->has_unit())
     if (number_format->has_unit())
-        options->create_data_property_or_throw(vm.names.unit, js_string(vm, number_format->unit()));
+        MUST(options->create_data_property_or_throw(vm.names.unit, js_string(vm, number_format->unit())));
     if (number_format->has_unit_display())
     if (number_format->has_unit_display())
-        options->create_data_property_or_throw(vm.names.unitDisplay, js_string(vm, number_format->unit_display_string()));
-    options->create_data_property_or_throw(vm.names.minimumIntegerDigits, Value(number_format->min_integer_digits()));
+        MUST(options->create_data_property_or_throw(vm.names.unitDisplay, js_string(vm, number_format->unit_display_string())));
+    MUST(options->create_data_property_or_throw(vm.names.minimumIntegerDigits, Value(number_format->min_integer_digits())));
     if (number_format->has_min_fraction_digits())
     if (number_format->has_min_fraction_digits())
-        options->create_data_property_or_throw(vm.names.minimumFractionDigits, Value(number_format->min_fraction_digits()));
+        MUST(options->create_data_property_or_throw(vm.names.minimumFractionDigits, Value(number_format->min_fraction_digits())));
     if (number_format->has_max_fraction_digits())
     if (number_format->has_max_fraction_digits())
-        options->create_data_property_or_throw(vm.names.maximumFractionDigits, Value(number_format->max_fraction_digits()));
+        MUST(options->create_data_property_or_throw(vm.names.maximumFractionDigits, Value(number_format->max_fraction_digits())));
     if (number_format->has_min_significant_digits())
     if (number_format->has_min_significant_digits())
-        options->create_data_property_or_throw(vm.names.minimumSignificantDigits, Value(number_format->min_significant_digits()));
+        MUST(options->create_data_property_or_throw(vm.names.minimumSignificantDigits, Value(number_format->min_significant_digits())));
     if (number_format->has_max_significant_digits())
     if (number_format->has_max_significant_digits())
-        options->create_data_property_or_throw(vm.names.maximumSignificantDigits, Value(number_format->max_significant_digits()));
-    options->create_data_property_or_throw(vm.names.useGrouping, Value(number_format->use_grouping()));
-    options->create_data_property_or_throw(vm.names.notation, js_string(vm, number_format->notation_string()));
+        MUST(options->create_data_property_or_throw(vm.names.maximumSignificantDigits, Value(number_format->max_significant_digits())));
+    MUST(options->create_data_property_or_throw(vm.names.useGrouping, Value(number_format->use_grouping())));
+    MUST(options->create_data_property_or_throw(vm.names.notation, js_string(vm, number_format->notation_string())));
     if (number_format->has_compact_display())
     if (number_format->has_compact_display())
-        options->create_data_property_or_throw(vm.names.compactDisplay, js_string(vm, number_format->compact_display_string()));
-    options->create_data_property_or_throw(vm.names.signDisplay, js_string(vm, number_format->sign_display_string()));
+        MUST(options->create_data_property_or_throw(vm.names.compactDisplay, js_string(vm, number_format->compact_display_string())));
+    MUST(options->create_data_property_or_throw(vm.names.signDisplay, js_string(vm, number_format->sign_display_string())));
 
 
     // 5. Return options.
     // 5. Return options.
     return options;
     return options;

+ 2 - 2
Userland/Libraries/LibJS/Runtime/IteratorOperations.cpp

@@ -147,8 +147,8 @@ Object* create_iterator_result_object(GlobalObject& global_object, Value value,
 {
 {
     auto& vm = global_object.vm();
     auto& vm = global_object.vm();
     auto* object = Object::create(global_object, global_object.object_prototype());
     auto* object = Object::create(global_object, global_object.object_prototype());
-    object->create_data_property_or_throw(vm.names.value, value);
-    object->create_data_property_or_throw(vm.names.done, Value(done));
+    MUST(object->create_data_property_or_throw(vm.names.value, value));
+    MUST(object->create_data_property_or_throw(vm.names.done, Value(done)));
     return object;
     return object;
 }
 }
 
 

+ 2 - 2
Userland/Libraries/LibJS/Runtime/JSONObject.cpp

@@ -111,7 +111,7 @@ String JSONObject::stringify_impl(GlobalObject& global_object, Value value, Valu
     }
     }
 
 
     auto* wrapper = Object::create(global_object, global_object.object_prototype());
     auto* wrapper = Object::create(global_object, global_object.object_prototype());
-    wrapper->create_data_property_or_throw(String::empty(), value);
+    MUST(wrapper->create_data_property_or_throw(String::empty(), value));
     auto result = serialize_json_property(global_object, state, String::empty(), wrapper);
     auto result = serialize_json_property(global_object, state, String::empty(), wrapper);
     if (vm.exception())
     if (vm.exception())
         return {};
         return {};
@@ -408,7 +408,7 @@ JS_DEFINE_NATIVE_FUNCTION(JSONObject::parse)
     if (reviver.is_function()) {
     if (reviver.is_function()) {
         auto* root = Object::create(global_object, global_object.object_prototype());
         auto* root = Object::create(global_object, global_object.object_prototype());
         auto root_name = String::empty();
         auto root_name = String::empty();
-        root->create_data_property_or_throw(root_name, unfiltered);
+        MUST(root->create_data_property_or_throw(root_name, unfiltered));
         auto result = internalize_json_property(global_object, root, root_name, reviver.as_function());
         auto result = internalize_json_property(global_object, root, root_name, reviver.as_function());
         if (vm.exception())
         if (vm.exception())
             return {};
             return {};

+ 4 - 7
Userland/Libraries/LibJS/Runtime/Object.cpp

@@ -159,7 +159,7 @@ ThrowCompletionOr<bool> Object::create_method_property(PropertyName const& prope
 }
 }
 
 
 // 7.3.7 CreateDataPropertyOrThrow ( O, P, V ), https://tc39.es/ecma262/#sec-createdatapropertyorthrow
 // 7.3.7 CreateDataPropertyOrThrow ( O, P, V ), https://tc39.es/ecma262/#sec-createdatapropertyorthrow
-bool Object::create_data_property_or_throw(PropertyName const& property_name, Value value)
+ThrowCompletionOr<bool> Object::create_data_property_or_throw(PropertyName const& property_name, Value value)
 {
 {
     VERIFY(!value.is_empty());
     VERIFY(!value.is_empty());
     auto& vm = this->vm();
     auto& vm = this->vm();
@@ -170,13 +170,12 @@ bool Object::create_data_property_or_throw(PropertyName const& property_name, Va
     VERIFY(property_name.is_valid());
     VERIFY(property_name.is_valid());
 
 
     // 3. Let success be ? CreateDataProperty(O, P, V).
     // 3. Let success be ? CreateDataProperty(O, P, V).
-    auto success = TRY_OR_DISCARD(create_data_property(property_name, value));
+    auto success = TRY(create_data_property(property_name, value));
 
 
     // 4. If success is false, throw a TypeError exception.
     // 4. If success is false, throw a TypeError exception.
     if (!success) {
     if (!success) {
         // FIXME: Improve/contextualize error message
         // FIXME: Improve/contextualize error message
-        vm.throw_exception<TypeError>(global_object(), ErrorType::ObjectDefineOwnPropertyReturnedFalse);
-        return {};
+        return vm.throw_completion<TypeError>(global_object(), ErrorType::ObjectDefineOwnPropertyReturnedFalse);
     }
     }
 
 
     // 5. Return success.
     // 5. Return success.
@@ -479,9 +478,7 @@ ThrowCompletionOr<Object*> Object::copy_data_properties(Value source, HashTable<
 
 
         if (desc.has_value() && desc->attributes().is_enumerable()) {
         if (desc.has_value() && desc->attributes().is_enumerable()) {
             auto prop_value = TRY(from_object->get(next_key));
             auto prop_value = TRY(from_object->get(next_key));
-            create_data_property_or_throw(next_key, prop_value);
-            if (auto* thrown_exception = vm().exception())
-                return JS::throw_completion(thrown_exception->value());
+            TRY(create_data_property_or_throw(next_key, prop_value));
         }
         }
     }
     }
     return this;
     return this;

+ 1 - 1
Userland/Libraries/LibJS/Runtime/Object.h

@@ -79,7 +79,7 @@ public:
     ThrowCompletionOr<bool> set(PropertyName const&, Value, ShouldThrowExceptions);
     ThrowCompletionOr<bool> set(PropertyName const&, Value, ShouldThrowExceptions);
     ThrowCompletionOr<bool> create_data_property(PropertyName const&, Value);
     ThrowCompletionOr<bool> create_data_property(PropertyName const&, Value);
     ThrowCompletionOr<bool> create_method_property(PropertyName const&, Value);
     ThrowCompletionOr<bool> create_method_property(PropertyName const&, Value);
-    bool create_data_property_or_throw(PropertyName const&, Value);
+    ThrowCompletionOr<bool> create_data_property_or_throw(PropertyName const&, Value);
     bool create_non_enumerable_data_property_or_throw(PropertyName const&, Value);
     bool create_non_enumerable_data_property_or_throw(PropertyName const&, Value);
     bool define_property_or_throw(PropertyName const&, PropertyDescriptor const&);
     bool define_property_or_throw(PropertyName const&, PropertyDescriptor const&);
     bool delete_property_or_throw(PropertyName const&);
     bool delete_property_or_throw(PropertyName const&);

+ 3 - 3
Userland/Libraries/LibJS/Runtime/ObjectConstructor.cpp

@@ -256,8 +256,8 @@ JS_DEFINE_NATIVE_FUNCTION(ObjectConstructor::from_entries)
         auto property_key = key.to_property_key(global_object);
         auto property_key = key.to_property_key(global_object);
         if (vm.exception())
         if (vm.exception())
             return IterationDecision::Break;
             return IterationDecision::Break;
-        object->create_data_property_or_throw(property_key, value);
-        if (vm.exception())
+        auto result_or_error = object->create_data_property_or_throw(property_key, value);
+        if (result_or_error.is_error())
             return IterationDecision::Break;
             return IterationDecision::Break;
         return IterationDecision::Continue;
         return IterationDecision::Continue;
     });
     });
@@ -321,7 +321,7 @@ JS_DEFINE_NATIVE_FUNCTION(ObjectConstructor::get_own_property_descriptors)
 
 
         // c. If descriptor is not undefined, perform ! CreateDataPropertyOrThrow(descriptors, key, descriptor).
         // c. If descriptor is not undefined, perform ! CreateDataPropertyOrThrow(descriptors, key, descriptor).
         if (!descriptor.is_undefined())
         if (!descriptor.is_undefined())
-            descriptors->create_data_property_or_throw(property_name, descriptor);
+            MUST(descriptors->create_data_property_or_throw(property_name, descriptor));
     }
     }
 
 
     // 5. Return descriptors.
     // 5. Return descriptors.

+ 4 - 4
Userland/Libraries/LibJS/Runtime/PromiseResolvingElementFunctions.cpp

@@ -89,8 +89,8 @@ Value PromiseAllSettledResolveElementFunction::resolve_element()
     auto& global_object = this->global_object();
     auto& global_object = this->global_object();
 
 
     auto* object = Object::create(global_object, global_object.object_prototype());
     auto* object = Object::create(global_object, global_object.object_prototype());
-    object->create_data_property_or_throw(vm.names.status, js_string(vm, "fulfilled"sv));
-    object->create_data_property_or_throw(vm.names.value, vm.argument(0));
+    MUST(object->create_data_property_or_throw(vm.names.status, js_string(vm, "fulfilled"sv)));
+    MUST(object->create_data_property_or_throw(vm.names.value, vm.argument(0)));
 
 
     m_values.values()[m_index] = object;
     m_values.values()[m_index] = object;
 
 
@@ -118,8 +118,8 @@ Value PromiseAllSettledRejectElementFunction::resolve_element()
     auto& global_object = this->global_object();
     auto& global_object = this->global_object();
 
 
     auto* object = Object::create(global_object, global_object.object_prototype());
     auto* object = Object::create(global_object, global_object.object_prototype());
-    object->create_data_property_or_throw(vm.names.status, js_string(vm, "rejected"sv));
-    object->create_data_property_or_throw(vm.names.reason, vm.argument(0));
+    MUST(object->create_data_property_or_throw(vm.names.status, js_string(vm, "rejected"sv)));
+    MUST(object->create_data_property_or_throw(vm.names.reason, vm.argument(0)));
 
 
     m_values.values()[m_index] = object;
     m_values.values()[m_index] = object;
 
 

+ 6 - 6
Userland/Libraries/LibJS/Runtime/PropertyDescriptor.cpp

@@ -60,17 +60,17 @@ Value from_property_descriptor(GlobalObject& global_object, Optional<PropertyDes
     auto& vm = global_object.vm();
     auto& vm = global_object.vm();
     auto* object = Object::create(global_object, global_object.object_prototype());
     auto* object = Object::create(global_object, global_object.object_prototype());
     if (property_descriptor->value.has_value())
     if (property_descriptor->value.has_value())
-        object->create_data_property_or_throw(vm.names.value, *property_descriptor->value);
+        MUST(object->create_data_property_or_throw(vm.names.value, *property_descriptor->value));
     if (property_descriptor->writable.has_value())
     if (property_descriptor->writable.has_value())
-        object->create_data_property_or_throw(vm.names.writable, Value(*property_descriptor->writable));
+        MUST(object->create_data_property_or_throw(vm.names.writable, Value(*property_descriptor->writable)));
     if (property_descriptor->get.has_value())
     if (property_descriptor->get.has_value())
-        object->create_data_property_or_throw(vm.names.get, *property_descriptor->get ? Value(*property_descriptor->get) : js_undefined());
+        MUST(object->create_data_property_or_throw(vm.names.get, *property_descriptor->get ? Value(*property_descriptor->get) : js_undefined()));
     if (property_descriptor->set.has_value())
     if (property_descriptor->set.has_value())
-        object->create_data_property_or_throw(vm.names.set, *property_descriptor->set ? Value(*property_descriptor->set) : js_undefined());
+        MUST(object->create_data_property_or_throw(vm.names.set, *property_descriptor->set ? Value(*property_descriptor->set) : js_undefined()));
     if (property_descriptor->enumerable.has_value())
     if (property_descriptor->enumerable.has_value())
-        object->create_data_property_or_throw(vm.names.enumerable, Value(*property_descriptor->enumerable));
+        MUST(object->create_data_property_or_throw(vm.names.enumerable, Value(*property_descriptor->enumerable)));
     if (property_descriptor->configurable.has_value())
     if (property_descriptor->configurable.has_value())
-        object->create_data_property_or_throw(vm.names.configurable, Value(*property_descriptor->configurable));
+        MUST(object->create_data_property_or_throw(vm.names.configurable, Value(*property_descriptor->configurable)));
     return object;
     return object;
 }
 }
 
 

+ 2 - 2
Userland/Libraries/LibJS/Runtime/ProxyConstructor.cpp

@@ -84,8 +84,8 @@ JS_DEFINE_NATIVE_FUNCTION(ProxyConstructor::revocable)
     revoker->define_direct_property(vm.names.name, js_string(vm, String::empty()), Attribute::Configurable);
     revoker->define_direct_property(vm.names.name, js_string(vm, String::empty()), Attribute::Configurable);
 
 
     auto* result = Object::create(global_object, global_object.object_prototype());
     auto* result = Object::create(global_object, global_object.object_prototype());
-    result->create_data_property_or_throw(vm.names.proxy, proxy);
-    result->create_data_property_or_throw(vm.names.revoke, revoker);
+    MUST(result->create_data_property_or_throw(vm.names.proxy, proxy));
+    MUST(result->create_data_property_or_throw(vm.names.revoke, revoker));
     return result;
     return result;
 }
 }
 
 

+ 11 - 13
Userland/Libraries/LibJS/Runtime/RegExpPrototype.cpp

@@ -237,26 +237,26 @@ static Value regexp_builtin_exec(GlobalObject& global_object, RegExpObject& rege
             capture_value = js_string(vm, capture.view.u16_view());
             capture_value = js_string(vm, capture.view.u16_view());
             indices.append(Match::create(capture));
             indices.append(Match::create(capture));
         }
         }
-        array->create_data_property_or_throw(i + 1, capture_value);
+        MUST(array->create_data_property_or_throw(i + 1, capture_value));
 
 
         if (capture.capture_group_name.has_value()) {
         if (capture.capture_group_name.has_value()) {
             auto group_name = capture.capture_group_name.release_value();
             auto group_name = capture.capture_group_name.release_value();
-            groups_object->create_data_property_or_throw(group_name, js_string(vm, capture.view.u16_view()));
+            MUST(groups_object->create_data_property_or_throw(group_name, js_string(vm, capture.view.u16_view())));
             group_names.set(move(group_name), Match::create(capture));
             group_names.set(move(group_name), Match::create(capture));
         }
         }
     }
     }
 
 
     Value groups = has_groups ? groups_object : js_undefined();
     Value groups = has_groups ? groups_object : js_undefined();
-    array->create_data_property_or_throw(vm.names.groups, groups);
+    MUST(array->create_data_property_or_throw(vm.names.groups, groups));
 
 
     if (has_indices) {
     if (has_indices) {
         auto indices_array = make_indices_array(global_object, string_view, indices, group_names, has_groups);
         auto indices_array = make_indices_array(global_object, string_view, indices, group_names, has_groups);
         TRY_OR_DISCARD(array->create_data_property(vm.names.indices, indices_array));
         TRY_OR_DISCARD(array->create_data_property(vm.names.indices, indices_array));
     }
     }
 
 
-    array->create_data_property_or_throw(vm.names.index, Value(match_index));
-    array->create_data_property_or_throw(vm.names.input, js_string(vm, move(string)));
-    array->create_data_property_or_throw(0, js_string(vm, match.view.u16_view()));
+    MUST(array->create_data_property_or_throw(vm.names.index, Value(match_index)));
+    MUST(array->create_data_property_or_throw(vm.names.input, js_string(vm, move(string))));
+    MUST(array->create_data_property_or_throw(0, js_string(vm, match.view.u16_view())));
 
 
     return array;
     return array;
 }
 }
@@ -448,9 +448,7 @@ JS_DEFINE_NATIVE_FUNCTION(RegExpPrototype::symbol_match)
         if (vm.exception())
         if (vm.exception())
             return {};
             return {};
 
 
-        array->create_data_property_or_throw(n, js_string(vm, match_str));
-        if (vm.exception())
-            return {};
+        TRY_OR_DISCARD(array->create_data_property_or_throw(n, js_string(vm, match_str)));
 
 
         if (match_str.is_empty())
         if (match_str.is_empty())
             TRY_OR_DISCARD(increment_last_index(global_object, *regexp_object, string.view(), unicode));
             TRY_OR_DISCARD(increment_last_index(global_object, *regexp_object, string.view(), unicode));
@@ -724,7 +722,7 @@ JS_DEFINE_NATIVE_FUNCTION(RegExpPrototype::symbol_split)
         if (!result.is_null())
         if (!result.is_null())
             return array;
             return array;
 
 
-        array->create_data_property_or_throw(0, js_string(vm, move(string)));
+        MUST(array->create_data_property_or_throw(0, js_string(vm, move(string))));
         return array;
         return array;
     }
     }
 
 
@@ -753,7 +751,7 @@ JS_DEFINE_NATIVE_FUNCTION(RegExpPrototype::symbol_split)
         }
         }
 
 
         auto substring = string_view.substring_view(last_match_end, next_search_from - last_match_end);
         auto substring = string_view.substring_view(last_match_end, next_search_from - last_match_end);
-        array->create_data_property_or_throw(array_length, js_string(vm, move(substring)));
+        MUST(array->create_data_property_or_throw(array_length, js_string(vm, move(substring))));
 
 
         if (++array_length == limit)
         if (++array_length == limit)
             return array;
             return array;
@@ -769,7 +767,7 @@ JS_DEFINE_NATIVE_FUNCTION(RegExpPrototype::symbol_split)
 
 
         for (size_t i = 1; i <= number_of_captures; ++i) {
         for (size_t i = 1; i <= number_of_captures; ++i) {
             auto next_capture = TRY_OR_DISCARD(result_object->get(i));
             auto next_capture = TRY_OR_DISCARD(result_object->get(i));
-            array->create_data_property_or_throw(array_length, next_capture);
+            MUST(array->create_data_property_or_throw(array_length, next_capture));
             if (++array_length == limit)
             if (++array_length == limit)
                 return array;
                 return array;
         }
         }
@@ -779,7 +777,7 @@ JS_DEFINE_NATIVE_FUNCTION(RegExpPrototype::symbol_split)
     }
     }
 
 
     auto substring = string_view.substring_view(last_match_end);
     auto substring = string_view.substring_view(last_match_end);
-    array->create_data_property_or_throw(array_length, js_string(vm, move(substring)));
+    MUST(array->create_data_property_or_throw(array_length, js_string(vm, move(substring))));
 
 
     return array;
     return array;
 }
 }

+ 4 - 4
Userland/Libraries/LibJS/Runtime/StringPrototype.cpp

@@ -740,13 +740,13 @@ JS_DEFINE_NATIVE_FUNCTION(StringPrototype::split)
     auto separator_length = separator.length_in_code_units();
     auto separator_length = separator.length_in_code_units();
 
 
     if (separator_argument.is_undefined()) {
     if (separator_argument.is_undefined()) {
-        array->create_data_property_or_throw(0, js_string(vm, move(string)));
+        MUST(array->create_data_property_or_throw(0, js_string(vm, move(string))));
         return array;
         return array;
     }
     }
 
 
     if (string_length == 0) {
     if (string_length == 0) {
         if (separator_length > 0)
         if (separator_length > 0)
-            array->create_data_property_or_throw(0, js_string(vm, move(string)));
+            MUST(array->create_data_property_or_throw(0, js_string(vm, move(string))));
         return array;
         return array;
     }
     }
 
 
@@ -760,7 +760,7 @@ JS_DEFINE_NATIVE_FUNCTION(StringPrototype::split)
         }
         }
 
 
         auto segment = string.substring_view(start, position - start);
         auto segment = string.substring_view(start, position - start);
-        array->create_data_property_or_throw(array_length, js_string(vm, segment));
+        MUST(array->create_data_property_or_throw(array_length, js_string(vm, segment)));
         ++array_length;
         ++array_length;
         if (array_length == limit)
         if (array_length == limit)
             return array;
             return array;
@@ -769,7 +769,7 @@ JS_DEFINE_NATIVE_FUNCTION(StringPrototype::split)
     }
     }
 
 
     auto rest = string.substring_view(start);
     auto rest = string.substring_view(start);
-    array->create_data_property_or_throw(array_length, js_string(vm, rest));
+    MUST(array->create_data_property_or_throw(array_length, js_string(vm, rest)));
 
 
     return array;
     return array;
 }
 }

+ 1 - 1
Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp

@@ -1082,7 +1082,7 @@ ThrowCompletionOr<Object*> prepare_temporal_fields(GlobalObject& global_object,
         }
         }
 
 
         // d. Perform ! CreateDataPropertyOrThrow(result, property, value).
         // d. Perform ! CreateDataPropertyOrThrow(result, property, value).
-        result->create_data_property_or_throw(property, value);
+        MUST(result->create_data_property_or_throw(property, value));
     }
     }
 
 
     // 4. Return result.
     // 4. Return result.

+ 4 - 4
Userland/Libraries/LibJS/Runtime/Temporal/Calendar.cpp

@@ -957,7 +957,7 @@ ThrowCompletionOr<Object*> default_merge_fields(GlobalObject& global_object, Obj
             // ii. If propValue is not undefined, then
             // ii. If propValue is not undefined, then
             if (!prop_value.is_undefined()) {
             if (!prop_value.is_undefined()) {
                 // 1. Perform ! CreateDataPropertyOrThrow(merged, nextKey, propValue).
                 // 1. Perform ! CreateDataPropertyOrThrow(merged, nextKey, propValue).
-                merged->create_data_property_or_throw(property_name, prop_value);
+                MUST(merged->create_data_property_or_throw(property_name, prop_value));
             }
             }
         }
         }
     }
     }
@@ -980,7 +980,7 @@ ThrowCompletionOr<Object*> default_merge_fields(GlobalObject& global_object, Obj
         // b. If propValue is not undefined, then
         // b. If propValue is not undefined, then
         if (!prop_value.is_undefined()) {
         if (!prop_value.is_undefined()) {
             // i. Perform ! CreateDataPropertyOrThrow(merged, nextKey, propValue).
             // i. Perform ! CreateDataPropertyOrThrow(merged, nextKey, propValue).
-            merged->create_data_property_or_throw(property_name, prop_value);
+            MUST(merged->create_data_property_or_throw(property_name, prop_value));
         }
         }
 
 
         // See comment above.
         // See comment above.
@@ -995,7 +995,7 @@ ThrowCompletionOr<Object*> default_merge_fields(GlobalObject& global_object, Obj
         // b. If month is not undefined, then
         // b. If month is not undefined, then
         if (!month.is_undefined()) {
         if (!month.is_undefined()) {
             // i. Perform ! CreateDataPropertyOrThrow(merged, "month", month).
             // i. Perform ! CreateDataPropertyOrThrow(merged, "month", month).
-            merged->create_data_property_or_throw(vm.names.month, month);
+            MUST(merged->create_data_property_or_throw(vm.names.month, month));
         }
         }
 
 
         // c. Let monthCode be ? Get(fields, "monthCode").
         // c. Let monthCode be ? Get(fields, "monthCode").
@@ -1004,7 +1004,7 @@ ThrowCompletionOr<Object*> default_merge_fields(GlobalObject& global_object, Obj
         // d. If monthCode is not undefined, then
         // d. If monthCode is not undefined, then
         if (!month_code.is_undefined()) {
         if (!month_code.is_undefined()) {
             // i. Perform ! CreateDataPropertyOrThrow(merged, "monthCode", monthCode).
             // i. Perform ! CreateDataPropertyOrThrow(merged, "monthCode", monthCode).
-            merged->create_data_property_or_throw(vm.names.monthCode, month_code);
+            MUST(merged->create_data_property_or_throw(vm.names.monthCode, month_code));
         }
         }
     }
     }
 
 

+ 4 - 4
Userland/Libraries/LibJS/Runtime/Temporal/PlainDatePrototype.cpp

@@ -356,16 +356,16 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDatePrototype::get_iso_fields)
     auto* fields = Object::create(global_object, global_object.object_prototype());
     auto* fields = Object::create(global_object, global_object.object_prototype());
 
 
     // 4. Perform ! CreateDataPropertyOrThrow(fields, "calendar", temporalDate.[[Calendar]]).
     // 4. Perform ! CreateDataPropertyOrThrow(fields, "calendar", temporalDate.[[Calendar]]).
-    fields->create_data_property_or_throw(vm.names.calendar, Value(&temporal_date->calendar()));
+    MUST(fields->create_data_property_or_throw(vm.names.calendar, Value(&temporal_date->calendar())));
 
 
     // 5. Perform ! CreateDataPropertyOrThrow(fields, "isoDay", 𝔽(temporalDate.[[ISODay]])).
     // 5. Perform ! CreateDataPropertyOrThrow(fields, "isoDay", 𝔽(temporalDate.[[ISODay]])).
-    fields->create_data_property_or_throw(vm.names.isoDay, Value(temporal_date->iso_day()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoDay, Value(temporal_date->iso_day())));
 
 
     // 6. Perform ! CreateDataPropertyOrThrow(fields, "isoMonth", 𝔽(temporalDate.[[ISOMonth]])).
     // 6. Perform ! CreateDataPropertyOrThrow(fields, "isoMonth", 𝔽(temporalDate.[[ISOMonth]])).
-    fields->create_data_property_or_throw(vm.names.isoMonth, Value(temporal_date->iso_month()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMonth, Value(temporal_date->iso_month())));
 
 
     // 7. Perform ! CreateDataPropertyOrThrow(fields, "isoYear", 𝔽(temporalDate.[[ISOYear]])).
     // 7. Perform ! CreateDataPropertyOrThrow(fields, "isoYear", 𝔽(temporalDate.[[ISOYear]])).
-    fields->create_data_property_or_throw(vm.names.isoYear, Value(temporal_date->iso_year()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoYear, Value(temporal_date->iso_year())));
 
 
     // 8. Return fields.
     // 8. Return fields.
     return fields;
     return fields;

+ 10 - 10
Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTimePrototype.cpp

@@ -553,34 +553,34 @@ JS_DEFINE_NATIVE_FUNCTION(PlainDateTimePrototype::get_iso_fields)
     auto* fields = Object::create(global_object, global_object.object_prototype());
     auto* fields = Object::create(global_object, global_object.object_prototype());
 
 
     // 4. Perform ! CreateDataPropertyOrThrow(fields, "calendar", dateTime.[[Calendar]]).
     // 4. Perform ! CreateDataPropertyOrThrow(fields, "calendar", dateTime.[[Calendar]]).
-    fields->create_data_property_or_throw(vm.names.calendar, Value(&date_time->calendar()));
+    MUST(fields->create_data_property_or_throw(vm.names.calendar, Value(&date_time->calendar())));
 
 
     // 5. Perform ! CreateDataPropertyOrThrow(fields, "isoDay", 𝔽(dateTime.[[ISODay]])).
     // 5. Perform ! CreateDataPropertyOrThrow(fields, "isoDay", 𝔽(dateTime.[[ISODay]])).
-    fields->create_data_property_or_throw(vm.names.isoDay, Value(date_time->iso_day()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoDay, Value(date_time->iso_day())));
 
 
     // 6. Perform ! CreateDataPropertyOrThrow(fields, "isoHour", 𝔽(dateTime.[[ISOHour]])).
     // 6. Perform ! CreateDataPropertyOrThrow(fields, "isoHour", 𝔽(dateTime.[[ISOHour]])).
-    fields->create_data_property_or_throw(vm.names.isoHour, Value(date_time->iso_hour()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoHour, Value(date_time->iso_hour())));
 
 
     // 7. Perform ! CreateDataPropertyOrThrow(fields, "isoMicrosecond", 𝔽(dateTime.[[ISOMicrosecond]])).
     // 7. Perform ! CreateDataPropertyOrThrow(fields, "isoMicrosecond", 𝔽(dateTime.[[ISOMicrosecond]])).
-    fields->create_data_property_or_throw(vm.names.isoMicrosecond, Value(date_time->iso_microsecond()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMicrosecond, Value(date_time->iso_microsecond())));
 
 
     // 8. Perform ! CreateDataPropertyOrThrow(fields, "isoMillisecond", 𝔽(dateTime.[[ISOMillisecond]])).
     // 8. Perform ! CreateDataPropertyOrThrow(fields, "isoMillisecond", 𝔽(dateTime.[[ISOMillisecond]])).
-    fields->create_data_property_or_throw(vm.names.isoMillisecond, Value(date_time->iso_millisecond()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMillisecond, Value(date_time->iso_millisecond())));
 
 
     // 9. Perform ! CreateDataPropertyOrThrow(fields, "isoMinute", 𝔽(dateTime.[[ISOMinute]])).
     // 9. Perform ! CreateDataPropertyOrThrow(fields, "isoMinute", 𝔽(dateTime.[[ISOMinute]])).
-    fields->create_data_property_or_throw(vm.names.isoMinute, Value(date_time->iso_minute()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMinute, Value(date_time->iso_minute())));
 
 
     // 10. Perform ! CreateDataPropertyOrThrow(fields, "isoMonth", 𝔽(dateTime.[[ISOMonth]])).
     // 10. Perform ! CreateDataPropertyOrThrow(fields, "isoMonth", 𝔽(dateTime.[[ISOMonth]])).
-    fields->create_data_property_or_throw(vm.names.isoMonth, Value(date_time->iso_month()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMonth, Value(date_time->iso_month())));
 
 
     // 11. Perform ! CreateDataPropertyOrThrow(fields, "isoNanosecond", 𝔽(dateTime.[[ISONanosecond]])).
     // 11. Perform ! CreateDataPropertyOrThrow(fields, "isoNanosecond", 𝔽(dateTime.[[ISONanosecond]])).
-    fields->create_data_property_or_throw(vm.names.isoNanosecond, Value(date_time->iso_nanosecond()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoNanosecond, Value(date_time->iso_nanosecond())));
 
 
     // 12. Perform ! CreateDataPropertyOrThrow(fields, "isoSecond", 𝔽(dateTime.[[ISOSecond]])).
     // 12. Perform ! CreateDataPropertyOrThrow(fields, "isoSecond", 𝔽(dateTime.[[ISOSecond]])).
-    fields->create_data_property_or_throw(vm.names.isoSecond, Value(date_time->iso_second()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoSecond, Value(date_time->iso_second())));
 
 
     // 13. Perform ! CreateDataPropertyOrThrow(fields, "isoYear", 𝔽(dateTime.[[ISOYear]])).
     // 13. Perform ! CreateDataPropertyOrThrow(fields, "isoYear", 𝔽(dateTime.[[ISOYear]])).
-    fields->create_data_property_or_throw(vm.names.isoYear, Value(date_time->iso_year()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoYear, Value(date_time->iso_year())));
 
 
     // 14. Return fields.
     // 14. Return fields.
     return fields;
     return fields;

+ 1 - 1
Userland/Libraries/LibJS/Runtime/Temporal/PlainMonthDay.cpp

@@ -111,7 +111,7 @@ ThrowCompletionOr<PlainMonthDay*> to_temporal_month_day(GlobalObject& global_obj
         // i. If calendarAbsent is true, and month is not undefined, and monthCode is undefined and year is undefined, then
         // i. If calendarAbsent is true, and month is not undefined, and monthCode is undefined and year is undefined, then
         if (calendar_absent && !month.is_undefined() && month_code.is_undefined() && year.is_undefined()) {
         if (calendar_absent && !month.is_undefined() && month_code.is_undefined() && year.is_undefined()) {
             // i. Perform ! CreateDataPropertyOrThrow(fields, "year", 𝔽(referenceISOYear)).
             // i. Perform ! CreateDataPropertyOrThrow(fields, "year", 𝔽(referenceISOYear)).
-            fields->create_data_property_or_throw(vm.names.year, Value(reference_iso_year));
+            MUST(fields->create_data_property_or_throw(vm.names.year, Value(reference_iso_year)));
         }
         }
 
 
         // j. Return ? MonthDayFromFields(calendar, fields, options).
         // j. Return ? MonthDayFromFields(calendar, fields, options).

+ 4 - 4
Userland/Libraries/LibJS/Runtime/Temporal/PlainMonthDayPrototype.cpp

@@ -181,16 +181,16 @@ JS_DEFINE_NATIVE_FUNCTION(PlainMonthDayPrototype::get_iso_fields)
     auto* fields = Object::create(global_object, global_object.object_prototype());
     auto* fields = Object::create(global_object, global_object.object_prototype());
 
 
     // 4. Perform ! CreateDataPropertyOrThrow(fields, "calendar", monthDay.[[Calendar]]).
     // 4. Perform ! CreateDataPropertyOrThrow(fields, "calendar", monthDay.[[Calendar]]).
-    fields->create_data_property_or_throw(vm.names.calendar, Value(&month_day->calendar()));
+    MUST(fields->create_data_property_or_throw(vm.names.calendar, Value(&month_day->calendar())));
 
 
     // 5. Perform ! CreateDataPropertyOrThrow(fields, "isoDay", 𝔽(monthDay.[[ISODay]])).
     // 5. Perform ! CreateDataPropertyOrThrow(fields, "isoDay", 𝔽(monthDay.[[ISODay]])).
-    fields->create_data_property_or_throw(vm.names.isoDay, Value(month_day->iso_day()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoDay, Value(month_day->iso_day())));
 
 
     // 6. Perform ! CreateDataPropertyOrThrow(fields, "isoMonth", 𝔽(monthDay.[[ISOMonth]])).
     // 6. Perform ! CreateDataPropertyOrThrow(fields, "isoMonth", 𝔽(monthDay.[[ISOMonth]])).
-    fields->create_data_property_or_throw(vm.names.isoMonth, Value(month_day->iso_month()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMonth, Value(month_day->iso_month())));
 
 
     // 7. Perform ! CreateDataPropertyOrThrow(fields, "isoYear", 𝔽(monthDay.[[ISOYear]])).
     // 7. Perform ! CreateDataPropertyOrThrow(fields, "isoYear", 𝔽(monthDay.[[ISOYear]])).
-    fields->create_data_property_or_throw(vm.names.isoYear, Value(month_day->iso_year()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoYear, Value(month_day->iso_year())));
 
 
     // 8. Return fields.
     // 8. Return fields.
     return fields;
     return fields;

+ 7 - 7
Userland/Libraries/LibJS/Runtime/Temporal/PlainTimePrototype.cpp

@@ -303,25 +303,25 @@ JS_DEFINE_NATIVE_FUNCTION(PlainTimePrototype::get_iso_fields)
     auto* fields = Object::create(global_object, global_object.object_prototype());
     auto* fields = Object::create(global_object, global_object.object_prototype());
 
 
     // 4. Perform ! CreateDataPropertyOrThrow(fields, "calendar", temporalTime.[[Calendar]]).
     // 4. Perform ! CreateDataPropertyOrThrow(fields, "calendar", temporalTime.[[Calendar]]).
-    fields->create_data_property_or_throw(vm.names.calendar, Value(&temporal_time->calendar()));
+    MUST(fields->create_data_property_or_throw(vm.names.calendar, Value(&temporal_time->calendar())));
 
 
     // 5. Perform ! CreateDataPropertyOrThrow(fields, "isoHour", 𝔽(temporalTime.[[ISOHour]])).
     // 5. Perform ! CreateDataPropertyOrThrow(fields, "isoHour", 𝔽(temporalTime.[[ISOHour]])).
-    fields->create_data_property_or_throw(vm.names.isoHour, Value(temporal_time->iso_hour()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoHour, Value(temporal_time->iso_hour())));
 
 
     // 6. Perform ! CreateDataPropertyOrThrow(fields, "isoMicrosecond", 𝔽(temporalTime.[[ISOMicrosecond]])).
     // 6. Perform ! CreateDataPropertyOrThrow(fields, "isoMicrosecond", 𝔽(temporalTime.[[ISOMicrosecond]])).
-    fields->create_data_property_or_throw(vm.names.isoMicrosecond, Value(temporal_time->iso_microsecond()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMicrosecond, Value(temporal_time->iso_microsecond())));
 
 
     // 7. Perform ! CreateDataPropertyOrThrow(fields, "isoMillisecond", 𝔽(temporalTime.[[ISOMillisecond]])).
     // 7. Perform ! CreateDataPropertyOrThrow(fields, "isoMillisecond", 𝔽(temporalTime.[[ISOMillisecond]])).
-    fields->create_data_property_or_throw(vm.names.isoMillisecond, Value(temporal_time->iso_millisecond()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMillisecond, Value(temporal_time->iso_millisecond())));
 
 
     // 8. Perform ! CreateDataPropertyOrThrow(fields, "isoMinute", 𝔽(temporalTime.[[ISOMinute]])).
     // 8. Perform ! CreateDataPropertyOrThrow(fields, "isoMinute", 𝔽(temporalTime.[[ISOMinute]])).
-    fields->create_data_property_or_throw(vm.names.isoMinute, Value(temporal_time->iso_minute()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMinute, Value(temporal_time->iso_minute())));
 
 
     // 9. Perform ! CreateDataPropertyOrThrow(fields, "isoNanosecond", 𝔽(temporalTime.[[ISONanosecond]])).
     // 9. Perform ! CreateDataPropertyOrThrow(fields, "isoNanosecond", 𝔽(temporalTime.[[ISONanosecond]])).
-    fields->create_data_property_or_throw(vm.names.isoNanosecond, Value(temporal_time->iso_nanosecond()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoNanosecond, Value(temporal_time->iso_nanosecond())));
 
 
     // 10. Perform ! CreateDataPropertyOrThrow(fields, "isoSecond", 𝔽(temporalTime.[[ISOSecond]])).
     // 10. Perform ! CreateDataPropertyOrThrow(fields, "isoSecond", 𝔽(temporalTime.[[ISOSecond]])).
-    fields->create_data_property_or_throw(vm.names.isoSecond, Value(temporal_time->iso_second()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoSecond, Value(temporal_time->iso_second())));
 
 
     // 11. Return fields.
     // 11. Return fields.
     return fields;
     return fields;

+ 4 - 4
Userland/Libraries/LibJS/Runtime/Temporal/PlainYearMonthPrototype.cpp

@@ -302,16 +302,16 @@ JS_DEFINE_NATIVE_FUNCTION(PlainYearMonthPrototype::get_iso_fields)
     auto* fields = Object::create(global_object, global_object.object_prototype());
     auto* fields = Object::create(global_object, global_object.object_prototype());
 
 
     // 4. Perform ! CreateDataPropertyOrThrow(fields, "calendar", yearMonth.[[Calendar]]).
     // 4. Perform ! CreateDataPropertyOrThrow(fields, "calendar", yearMonth.[[Calendar]]).
-    fields->create_data_property_or_throw(vm.names.calendar, Value(&year_month->calendar()));
+    MUST(fields->create_data_property_or_throw(vm.names.calendar, Value(&year_month->calendar())));
 
 
     // 5. Perform ! CreateDataPropertyOrThrow(fields, "isoDay", 𝔽(yearMonth.[[ISODay]])).
     // 5. Perform ! CreateDataPropertyOrThrow(fields, "isoDay", 𝔽(yearMonth.[[ISODay]])).
-    fields->create_data_property_or_throw(vm.names.isoDay, Value(year_month->iso_day()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoDay, Value(year_month->iso_day())));
 
 
     // 6. Perform ! CreateDataPropertyOrThrow(fields, "isoMonth", 𝔽(yearMonth.[[ISOMonth]])).
     // 6. Perform ! CreateDataPropertyOrThrow(fields, "isoMonth", 𝔽(yearMonth.[[ISOMonth]])).
-    fields->create_data_property_or_throw(vm.names.isoMonth, Value(year_month->iso_month()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMonth, Value(year_month->iso_month())));
 
 
     // 7. Perform ! CreateDataPropertyOrThrow(fields, "isoYear", 𝔽(yearMonth.[[ISOYear]])).
     // 7. Perform ! CreateDataPropertyOrThrow(fields, "isoYear", 𝔽(yearMonth.[[ISOYear]])).
-    fields->create_data_property_or_throw(vm.names.isoYear, Value(year_month->iso_year()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoYear, Value(year_month->iso_year())));
 
 
     // 8. Return fields.
     // 8. Return fields.
     return fields;
     return fields;

+ 12 - 12
Userland/Libraries/LibJS/Runtime/Temporal/ZonedDateTimePrototype.cpp

@@ -887,40 +887,40 @@ JS_DEFINE_NATIVE_FUNCTION(ZonedDateTimePrototype::get_iso_fields)
     auto offset = TRY_OR_DISCARD(builtin_time_zone_get_offset_string_for(global_object, &time_zone, *instant));
     auto offset = TRY_OR_DISCARD(builtin_time_zone_get_offset_string_for(global_object, &time_zone, *instant));
 
 
     // 9. Perform ! CreateDataPropertyOrThrow(fields, "calendar", calendar).
     // 9. Perform ! CreateDataPropertyOrThrow(fields, "calendar", calendar).
-    fields->create_data_property_or_throw(vm.names.calendar, Value(&calendar));
+    MUST(fields->create_data_property_or_throw(vm.names.calendar, Value(&calendar)));
 
 
     // 10. Perform ! CreateDataPropertyOrThrow(fields, "isoDay", dateTime.[[ISODay]]).
     // 10. Perform ! CreateDataPropertyOrThrow(fields, "isoDay", dateTime.[[ISODay]]).
-    fields->create_data_property_or_throw(vm.names.isoDay, Value(date_time->iso_day()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoDay, Value(date_time->iso_day())));
 
 
     // 11. Perform ! CreateDataPropertyOrThrow(fields, "isoHour", dateTime.[[ISOHour]]).
     // 11. Perform ! CreateDataPropertyOrThrow(fields, "isoHour", dateTime.[[ISOHour]]).
-    fields->create_data_property_or_throw(vm.names.isoHour, Value(date_time->iso_hour()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoHour, Value(date_time->iso_hour())));
 
 
     // 12. Perform ! CreateDataPropertyOrThrow(fields, "isoMicrosecond", dateTime.[[ISOMicrosecond]]).
     // 12. Perform ! CreateDataPropertyOrThrow(fields, "isoMicrosecond", dateTime.[[ISOMicrosecond]]).
-    fields->create_data_property_or_throw(vm.names.isoMicrosecond, Value(date_time->iso_microsecond()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMicrosecond, Value(date_time->iso_microsecond())));
 
 
     // 13. Perform ! CreateDataPropertyOrThrow(fields, "isoMillisecond", dateTime.[[ISOMillisecond]]).
     // 13. Perform ! CreateDataPropertyOrThrow(fields, "isoMillisecond", dateTime.[[ISOMillisecond]]).
-    fields->create_data_property_or_throw(vm.names.isoMillisecond, Value(date_time->iso_millisecond()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMillisecond, Value(date_time->iso_millisecond())));
 
 
     // 14. Perform ! CreateDataPropertyOrThrow(fields, "isoMinute", dateTime.[[ISOMinute]]).
     // 14. Perform ! CreateDataPropertyOrThrow(fields, "isoMinute", dateTime.[[ISOMinute]]).
-    fields->create_data_property_or_throw(vm.names.isoMinute, Value(date_time->iso_minute()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMinute, Value(date_time->iso_minute())));
 
 
     // 15. Perform ! CreateDataPropertyOrThrow(fields, "isoMonth", dateTime.[[ISOMonth]]).
     // 15. Perform ! CreateDataPropertyOrThrow(fields, "isoMonth", dateTime.[[ISOMonth]]).
-    fields->create_data_property_or_throw(vm.names.isoMonth, Value(date_time->iso_month()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoMonth, Value(date_time->iso_month())));
 
 
     // 16. Perform ! CreateDataPropertyOrThrow(fields, "isoNanosecond", dateTime.[[ISONanosecond]]).
     // 16. Perform ! CreateDataPropertyOrThrow(fields, "isoNanosecond", dateTime.[[ISONanosecond]]).
-    fields->create_data_property_or_throw(vm.names.isoNanosecond, Value(date_time->iso_nanosecond()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoNanosecond, Value(date_time->iso_nanosecond())));
 
 
     // 17. Perform ! CreateDataPropertyOrThrow(fields, "isoSecond", dateTime.[[ISOSecond]]).
     // 17. Perform ! CreateDataPropertyOrThrow(fields, "isoSecond", dateTime.[[ISOSecond]]).
-    fields->create_data_property_or_throw(vm.names.isoSecond, Value(date_time->iso_second()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoSecond, Value(date_time->iso_second())));
 
 
     // 18. Perform ! CreateDataPropertyOrThrow(fields, "isoYear", dateTime.[[ISOYear]]).
     // 18. Perform ! CreateDataPropertyOrThrow(fields, "isoYear", dateTime.[[ISOYear]]).
-    fields->create_data_property_or_throw(vm.names.isoYear, Value(date_time->iso_year()));
+    MUST(fields->create_data_property_or_throw(vm.names.isoYear, Value(date_time->iso_year())));
 
 
     // 19. Perform ! CreateDataPropertyOrThrow(fields, "offset", offset).
     // 19. Perform ! CreateDataPropertyOrThrow(fields, "offset", offset).
-    fields->create_data_property_or_throw(vm.names.offset, js_string(vm, offset));
+    MUST(fields->create_data_property_or_throw(vm.names.offset, js_string(vm, offset)));
 
 
     // 20. Perform ! CreateDataPropertyOrThrow(fields, "timeZone", timeZone).
     // 20. Perform ! CreateDataPropertyOrThrow(fields, "timeZone", timeZone).
-    fields->create_data_property_or_throw(vm.names.timeZone, Value(&time_zone));
+    MUST(fields->create_data_property_or_throw(vm.names.timeZone, Value(&time_zone)));
 
 
     // 21. Return fields.
     // 21. Return fields.
     return fields;
     return fields;