summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibJS/Runtime
diff options
context:
space:
mode:
authorTimothy Flynn <trflynn89@pm.me>2022-12-14 15:04:59 -0500
committerLinus Groh <mail@linusgroh.de>2022-12-15 09:40:09 +0000
commit85f079dc6b0e448bb4433237767a92d8ed976877 (patch)
tree043b9e1feb8d86b775812016b5ceb2df0a22bee9 /Userland/Libraries/LibJS/Runtime
parent0086a3acdbe2af06bae4c45523b20c7bbb19ab90 (diff)
downloadserenity-85f079dc6b0e448bb4433237767a92d8ed976877.zip
LibJS: Move IsValidDurationRecord check to ToDurationRecord
This is an editorial change in the Intl.DurationFormat proposal. See: https://github.com/tc39/proposal-intl-duration-format/commit/fb21723
Diffstat (limited to 'Userland/Libraries/LibJS/Runtime')
-rw-r--r--Userland/Libraries/LibJS/Runtime/Intl/DurationFormat.cpp6
-rw-r--r--Userland/Libraries/LibJS/Runtime/Intl/DurationFormatPrototype.cpp26
2 files changed, 14 insertions, 18 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/Intl/DurationFormat.cpp b/Userland/Libraries/LibJS/Runtime/Intl/DurationFormat.cpp
index 076cc5e786..eb9a667207 100644
--- a/Userland/Libraries/LibJS/Runtime/Intl/DurationFormat.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Intl/DurationFormat.cpp
@@ -173,7 +173,11 @@ ThrowCompletionOr<Temporal::DurationRecord> to_duration_record(VM& vm, Value inp
if (!any)
return vm.throw_completion<TypeError>(ErrorType::TemporalInvalidDurationLikeObject);
- // 6. Return result.
+ // 6. If IsValidDurationRecord(result) is false, throw a RangeError exception.
+ if (!is_valid_duration_record(result))
+ return vm.throw_completion<RangeError>(ErrorType::TemporalInvalidDurationLikeObject);
+
+ // 7. Return result.
return result;
}
diff --git a/Userland/Libraries/LibJS/Runtime/Intl/DurationFormatPrototype.cpp b/Userland/Libraries/LibJS/Runtime/Intl/DurationFormatPrototype.cpp
index d3435c8958..127d9db050 100644
--- a/Userland/Libraries/LibJS/Runtime/Intl/DurationFormatPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Intl/DurationFormatPrototype.cpp
@@ -42,23 +42,19 @@ JS_DEFINE_NATIVE_FUNCTION(DurationFormatPrototype::format)
// 3. Let record be ? ToDurationRecord(duration).
auto record = TRY(to_duration_record(vm, vm.argument(0)));
- // 4. If IsValidDurationRecord(record) is false, throw a RangeError exception.
- if (!is_valid_duration_record(record))
- return vm.throw_completion<RangeError>(ErrorType::TemporalInvalidDurationLikeObject);
-
- // 5. Let parts be PartitionDurationFormatPattern(df, record).
+ // 4. Let parts be PartitionDurationFormatPattern(df, record).
auto parts = partition_duration_format_pattern(vm, *duration_format, record);
- // 6. Let result be a new empty String.
+ // 5. Let result be a new empty String.
StringBuilder result;
- // 7. For each Record { [[Type]], [[Value]] } part in parts, do
+ // 6. For each Record { [[Type]], [[Value]] } part in parts, do
for (auto const& part : parts) {
// a. Set result to the string-concatenation of result and part.[[Value]].
result.append(part.value);
}
- // 8. Return result.
+ // 7. Return result.
return PrimitiveString::create(vm, result.build());
}
@@ -74,18 +70,14 @@ JS_DEFINE_NATIVE_FUNCTION(DurationFormatPrototype::format_to_parts)
// 3. Let record be ? ToDurationRecord(duration).
auto record = TRY(to_duration_record(vm, vm.argument(0)));
- // 4. If IsValidDurationRecord(record) is false, throw a RangeError exception.
- if (!is_valid_duration_record(record))
- return vm.throw_completion<RangeError>(ErrorType::TemporalInvalidDurationLikeObject);
-
- // 5. Let parts be PartitionDurationFormatPattern(df, record).
+ // 4. Let parts be PartitionDurationFormatPattern(df, record).
auto parts = partition_duration_format_pattern(vm, *duration_format, record);
- // 6. Let result be ! ArrayCreate(0).
+ // 5. Let result be ! ArrayCreate(0).
auto result = MUST(Array::create(realm, 0));
- // 7. Let n be 0.
- // 8. For each { [[Type]], [[Value]] } part in parts, do
+ // 6. Let n be 0.
+ // 7. For each { [[Type]], [[Value]] } part in parts, do
for (size_t n = 0; n < parts.size(); ++n) {
auto const& part = parts[n];
@@ -104,7 +96,7 @@ JS_DEFINE_NATIVE_FUNCTION(DurationFormatPrototype::format_to_parts)
// e. Increment n by 1.
}
- // 9. Return result.
+ // 8. Return result.
return result;
}