1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 07:47:37 +00:00

LibJS: Reflect recent editorial changes in the Temporal proposal

See:

- 2148441
- 08c04cc
- b77da58
This commit is contained in:
Linus Groh 2021-07-19 00:20:34 +01:00
parent 5c77885873
commit d159938acc
5 changed files with 16 additions and 12 deletions

View file

@ -874,7 +874,7 @@ JS_DEFINE_NATIVE_FUNCTION(DatePrototype::to_temporal_instant)
return {}; return {};
ns = js_bigint(vm.heap(), ns->big_integer().multiplied_by(Crypto::UnsignedBigInteger { 1'000'000 })); ns = js_bigint(vm.heap(), ns->big_integer().multiplied_by(Crypto::UnsignedBigInteger { 1'000'000 }));
// 3. Return ? CreateTemporalInstant(ns). // 3. Return ! CreateTemporalInstant(ns).
return Temporal::create_temporal_instant(global_object, *ns); return Temporal::create_temporal_instant(global_object, *ns);
} }

View file

@ -96,6 +96,7 @@ Instant* to_temporal_instant(GlobalObject& global_object, Value item)
if (vm.exception()) if (vm.exception())
return {}; return {};
// 4. Return ! CreateTemporalInstant((epochNanoseconds)).
return create_temporal_instant(global_object, *epoch_nanoseconds); return create_temporal_instant(global_object, *epoch_nanoseconds);
} }
@ -186,7 +187,10 @@ BigInt* round_temporal_instant(GlobalObject& global_object, BigInt const& nanose
} }
// 7. Else, // 7. Else,
else { else {
// a. Let incrementNs be increment. // a. Assert: unit is "nanosecond".
VERIFY(unit == "nanosecond");
// b. Let incrementNs be increment.
increment_nanoseconds = increment; increment_nanoseconds = increment;
} }

View file

@ -76,7 +76,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantConstructor::from)
// 1. If Type(item) is Object and item has an [[InitializedTemporalInstant]] internal slot, then // 1. If Type(item) is Object and item has an [[InitializedTemporalInstant]] internal slot, then
if (item.is_object() && is<Instant>(item.as_object())) { if (item.is_object() && is<Instant>(item.as_object())) {
// a. Return ? CreateTemporalInstant(item.[[Nanoseconds]]). // a. Return ! CreateTemporalInstant(item.[[Nanoseconds]]).
return create_temporal_instant(global_object, *js_bigint(vm.heap(), static_cast<Instant&>(item.as_object()).nanoseconds().big_integer())); return create_temporal_instant(global_object, *js_bigint(vm.heap(), static_cast<Instant&>(item.as_object()).nanoseconds().big_integer()));
} }
@ -106,7 +106,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantConstructor::from_epoch_seconds)
return {}; return {};
} }
// 5. Return ? CreateTemporalInstant(epochNanoseconds). // 5. Return ! CreateTemporalInstant(epochNanoseconds).
return create_temporal_instant(global_object, *epoch_nanoseconds); return create_temporal_instant(global_object, *epoch_nanoseconds);
} }
@ -132,7 +132,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantConstructor::from_epoch_milliseconds)
return {}; return {};
} }
// 5. Return ? CreateTemporalInstant(epochNanoseconds). // 5. Return ! CreateTemporalInstant(epochNanoseconds).
return create_temporal_instant(global_object, *epoch_nanoseconds); return create_temporal_instant(global_object, *epoch_nanoseconds);
} }
@ -153,7 +153,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantConstructor::from_epoch_microseconds)
return {}; return {};
} }
// 4. Return ? CreateTemporalInstant(epochNanoseconds). // 4. Return ! CreateTemporalInstant(epochNanoseconds).
return create_temporal_instant(global_object, *epoch_nanoseconds); return create_temporal_instant(global_object, *epoch_nanoseconds);
} }
@ -171,7 +171,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantConstructor::from_epoch_nanoseconds)
return {}; return {};
} }
// 3. Return ? CreateTemporalInstant(epochNanoseconds). // 3. Return ! CreateTemporalInstant(epochNanoseconds).
return create_temporal_instant(global_object, *epoch_nanoseconds); return create_temporal_instant(global_object, *epoch_nanoseconds);
} }

View file

@ -200,7 +200,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::round)
if (vm.exception()) if (vm.exception())
return {}; return {};
// 15. Return ? CreateTemporalInstant(roundedNs). // 15. Return ! CreateTemporalInstant(roundedNs).
return create_temporal_instant(global_object, *rounded_ns); return create_temporal_instant(global_object, *rounded_ns);
} }

View file

@ -33,14 +33,14 @@ void Now::initialize(GlobalObject& global_object)
// 2.1.1 Temporal.now.timeZone ( ), https://tc39.es/proposal-temporal/#sec-temporal.now.timezone // 2.1.1 Temporal.now.timeZone ( ), https://tc39.es/proposal-temporal/#sec-temporal.now.timezone
JS_DEFINE_NATIVE_FUNCTION(Now::time_zone) JS_DEFINE_NATIVE_FUNCTION(Now::time_zone)
{ {
// 1. Return ? SystemTimeZone(). // 1. Return ! SystemTimeZone().
return system_time_zone(global_object); return system_time_zone(global_object);
} }
// 2.1.2 Temporal.now.instant ( ), https://tc39.es/proposal-temporal/#sec-temporal.now.instant // 2.1.2 Temporal.now.instant ( ), https://tc39.es/proposal-temporal/#sec-temporal.now.instant
JS_DEFINE_NATIVE_FUNCTION(Now::instant) JS_DEFINE_NATIVE_FUNCTION(Now::instant)
{ {
// 1. Return ? SystemInstant(). // 1. Return ! SystemInstant().
return system_instant(global_object); return system_instant(global_object);
} }
@ -50,7 +50,7 @@ TimeZone* system_time_zone(GlobalObject& global_object)
// 1. Let identifier be ! DefaultTimeZone(). // 1. Let identifier be ! DefaultTimeZone().
auto identifier = default_time_zone(); auto identifier = default_time_zone();
// 2. Return ? CreateTemporalTimeZone(identifier). // 2. Return ! CreateTemporalTimeZone(identifier).
return create_temporal_time_zone(global_object, identifier); return create_temporal_time_zone(global_object, identifier);
} }
@ -83,7 +83,7 @@ Instant* system_instant(GlobalObject& global_object)
// 1. Let ns be ! SystemUTCEpochNanoseconds(). // 1. Let ns be ! SystemUTCEpochNanoseconds().
auto* ns = system_utc_epoch_nanoseconds(global_object); auto* ns = system_utc_epoch_nanoseconds(global_object);
// 2. Return ? CreateTemporalInstant(ns). // 2. Return ! CreateTemporalInstant(ns).
return create_temporal_instant(global_object, *ns); return create_temporal_instant(global_object, *ns);
} }