From 75541c48b5822759cdca06f889d8adb7d388768a Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Sat, 10 Jul 2021 16:44:56 +0300 Subject: LibJS: Add Temporal.Instant.prototype.valueOf --- .../Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp | 11 +++++++++++ Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp index 3ade1273de..4535502ab9 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.cpp @@ -30,6 +30,9 @@ void InstantPrototype::initialize(GlobalObject& global_object) // 8.3.2 Temporal.Instant.prototype[ @@toStringTag ], https://tc39.es/proposal-temporal/#sec-temporal.instant.prototype-@@tostringtag define_direct_property(*vm.well_known_symbol_to_string_tag(), js_string(vm.heap(), "Temporal.Instant"), Attribute::Configurable); + + u8 attr = Attribute::Writable | Attribute::Configurable; + define_native_function(vm.names.valueOf, value_of, 0, attr); } static Instant* typed_this(GlobalObject& global_object) @@ -118,4 +121,12 @@ JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::epoch_nanoseconds_getter) return &ns; } +// 8.3.16 Temporal.Instant.prototype.valueOf ( ), https://tc39.es/proposal-temporal/#sec-temporal.instant.prototype.valueof +JS_DEFINE_NATIVE_FUNCTION(InstantPrototype::value_of) +{ + // 1. Throw a TypeError exception. + vm.throw_exception(global_object, ErrorType::Convert, "Temporal.Instant", "a primitive value"); + return {}; +} + } diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.h b/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.h index 1854c59fb1..1f81ad62a0 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.h +++ b/Userland/Libraries/LibJS/Runtime/Temporal/InstantPrototype.h @@ -23,6 +23,8 @@ private: JS_DECLARE_NATIVE_FUNCTION(epoch_milliseconds_getter); JS_DECLARE_NATIVE_FUNCTION(epoch_microseconds_getter); JS_DECLARE_NATIVE_FUNCTION(epoch_nanoseconds_getter); + + JS_DECLARE_NATIVE_FUNCTION(value_of); }; } -- cgit v1.2.3