From b3723a88a6609a4866ea990503127a383ec335ed Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Tue, 27 Jul 2021 18:47:23 +0100 Subject: [PATCH] LibJS: Implement Temporal[@@toStringTag] --- Userland/Libraries/LibJS/Runtime/Temporal/Temporal.cpp | 5 ++++- .../LibJS/Tests/builtins/Temporal/Temporal.@@toStringTag.js | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 Userland/Libraries/LibJS/Tests/builtins/Temporal/Temporal.@@toStringTag.js diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/Temporal.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/Temporal.cpp index 0c77d6a768..1a8b5b16db 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/Temporal.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/Temporal.cpp @@ -27,8 +27,11 @@ void Temporal::initialize(GlobalObject& global_object) Object::initialize(global_object); auto& vm = this->vm(); - u8 attr = Attribute::Writable | Attribute::Configurable; + // 1.1.1 Temporal [ @@toStringTag ], https://tc39.es/proposal-temporal/#sec-temporal-@@tostringtag + define_direct_property(*vm.well_known_symbol_to_string_tag(), js_string(vm.heap(), "Temporal"), Attribute::Configurable); + + u8 attr = Attribute::Writable | Attribute::Configurable; define_direct_property(vm.names.Now, heap().allocate(global_object, global_object), attr); define_direct_property(vm.names.Calendar, global_object.temporal_calendar_constructor(), attr); define_direct_property(vm.names.Duration, global_object.temporal_duration_constructor(), attr); diff --git a/Userland/Libraries/LibJS/Tests/builtins/Temporal/Temporal.@@toStringTag.js b/Userland/Libraries/LibJS/Tests/builtins/Temporal/Temporal.@@toStringTag.js new file mode 100644 index 0000000000..a9c98ba4be --- /dev/null +++ b/Userland/Libraries/LibJS/Tests/builtins/Temporal/Temporal.@@toStringTag.js @@ -0,0 +1,3 @@ +test("basic functionality", () => { + expect(Temporal[Symbol.toStringTag]).toBe("Temporal"); +});