From b0ee7f38d04800e962a882f8098b29fdf200b45f Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Wed, 13 Oct 2021 21:10:22 +0100 Subject: [PATCH] LibJS: Implement ShadowRealm.prototype[@@toStringTag] --- Userland/Libraries/LibJS/Runtime/ShadowRealmPrototype.cpp | 4 ++++ .../ShadowRealm/ShadowRealm.prototype.@@toStringTag.js | 3 +++ 2 files changed, 7 insertions(+) create mode 100644 Userland/Libraries/LibJS/Tests/builtins/ShadowRealm/ShadowRealm.prototype.@@toStringTag.js diff --git a/Userland/Libraries/LibJS/Runtime/ShadowRealmPrototype.cpp b/Userland/Libraries/LibJS/Runtime/ShadowRealmPrototype.cpp index 0f580107c6..9b9433461f 100644 --- a/Userland/Libraries/LibJS/Runtime/ShadowRealmPrototype.cpp +++ b/Userland/Libraries/LibJS/Runtime/ShadowRealmPrototype.cpp @@ -17,7 +17,11 @@ ShadowRealmPrototype::ShadowRealmPrototype(GlobalObject& global_object) void ShadowRealmPrototype::initialize(GlobalObject& global_object) { + auto& vm = this->vm(); Object::initialize(global_object); + + // 3.4.3 ShadowRealm.prototype [ @@toStringTag ], https://tc39.es/proposal-shadowrealm/#sec-shadowrealm.prototype-@@tostringtag + define_direct_property(*vm.well_known_symbol_to_string_tag(), js_string(vm, vm.names.ShadowRealm.as_string()), Attribute::Configurable); } } diff --git a/Userland/Libraries/LibJS/Tests/builtins/ShadowRealm/ShadowRealm.prototype.@@toStringTag.js b/Userland/Libraries/LibJS/Tests/builtins/ShadowRealm/ShadowRealm.prototype.@@toStringTag.js new file mode 100644 index 0000000000..7efe3de836 --- /dev/null +++ b/Userland/Libraries/LibJS/Tests/builtins/ShadowRealm/ShadowRealm.prototype.@@toStringTag.js @@ -0,0 +1,3 @@ +test("basic functionality", () => { + expect(ShadowRealm.prototype[Symbol.toStringTag]).toBe("ShadowRealm"); +});