|
@@ -738,35 +738,31 @@ StringView larger_of_two_temporal_units(StringView unit1, StringView unit2)
|
|
|
}
|
|
|
|
|
|
// 13.18 MergeLargestUnitOption ( options, largestUnit ), https://tc39.es/proposal-temporal/#sec-temporal-mergelargestunitoption
|
|
|
-ThrowCompletionOr<Object*> merge_largest_unit_option(GlobalObject& global_object, Object const* options, String largest_unit)
|
|
|
+ThrowCompletionOr<Object*> merge_largest_unit_option(GlobalObject& global_object, Object const& options, String largest_unit)
|
|
|
{
|
|
|
auto& vm = global_object.vm();
|
|
|
|
|
|
- // 1. If options is undefined, set options to OrdinaryObjectCreate(null).
|
|
|
- if (options == nullptr)
|
|
|
- options = Object::create(global_object, nullptr);
|
|
|
-
|
|
|
- // 2. Let merged be OrdinaryObjectCreate(%Object.prototype%).
|
|
|
+ // 1. Let merged be OrdinaryObjectCreate(%Object.prototype%).
|
|
|
auto* merged = Object::create(global_object, global_object.object_prototype());
|
|
|
|
|
|
- // 3. Let keys be ? EnumerableOwnPropertyNames(options, key).
|
|
|
- auto keys = TRY(options->enumerable_own_property_names(Object::PropertyKind::Key));
|
|
|
+ // 2. Let keys be ? EnumerableOwnPropertyNames(options, key).
|
|
|
+ auto keys = TRY(options.enumerable_own_property_names(Object::PropertyKind::Key));
|
|
|
|
|
|
- // 4. For each element nextKey of keys, do
|
|
|
+ // 3. For each element nextKey of keys, do
|
|
|
for (auto& key : keys) {
|
|
|
auto next_key = MUST(PropertyKey::from_value(global_object, key));
|
|
|
|
|
|
// a. Let propValue be ? Get(options, nextKey).
|
|
|
- auto prop_value = TRY(options->get(next_key));
|
|
|
+ auto prop_value = TRY(options.get(next_key));
|
|
|
|
|
|
// b. Perform ! CreateDataPropertyOrThrow(merged, nextKey, propValue).
|
|
|
MUST(merged->create_data_property_or_throw(next_key, prop_value));
|
|
|
}
|
|
|
|
|
|
- // 5. Perform ! CreateDataPropertyOrThrow(merged, "largestUnit", largestUnit).
|
|
|
+ // 4. Perform ! CreateDataPropertyOrThrow(merged, "largestUnit", largestUnit).
|
|
|
MUST(merged->create_data_property_or_throw(vm.names.largestUnit, js_string(vm, move(largest_unit))));
|
|
|
|
|
|
- // 6. Return merged.
|
|
|
+ // 5. Return merged.
|
|
|
return merged;
|
|
|
}
|
|
|
|