ソースを参照

LibJS: Implement ShadowRealm.prototype[@@toStringTag]

Linus Groh 3 年 前
コミット
b0ee7f38d0

+ 4 - 0
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);
 }
 
 }

+ 3 - 0
Userland/Libraries/LibJS/Tests/builtins/ShadowRealm/ShadowRealm.prototype.@@toStringTag.js

@@ -0,0 +1,3 @@
+test("basic functionality", () => {
+    expect(ShadowRealm.prototype[Symbol.toStringTag]).toBe("ShadowRealm");
+});