diff --git a/Userland/Libraries/LibJS/Runtime/Reference.h b/Userland/Libraries/LibJS/Runtime/Reference.h index acf16722637..33f1ed8426f 100644 --- a/Userland/Libraries/LibJS/Runtime/Reference.h +++ b/Userland/Libraries/LibJS/Runtime/Reference.h @@ -38,12 +38,6 @@ public: , m_this_value(this_value) , m_strict(strict) { - if (base.is_nullish()) { - m_base_type = BaseType::Unresolvable; - m_base_value = {}; - m_this_value = {}; - m_name = {}; - } } Reference(Environment& base, DeprecatedFlyString referenced_name, bool strict = false, Optional environment_coordinate = {}) diff --git a/Userland/Libraries/LibJS/Tests/operators/delete-basic.js b/Userland/Libraries/LibJS/Tests/operators/delete-basic.js index bbb1b580585..31fbfdb28ad 100644 --- a/Userland/Libraries/LibJS/Tests/operators/delete-basic.js +++ b/Userland/Libraries/LibJS/Tests/operators/delete-basic.js @@ -87,6 +87,12 @@ test("deleting super property", () => { } } + class C { + static foo() { + delete super.bar; + } + } + const obj = new B(); expect(() => { obj.bar(); @@ -95,6 +101,11 @@ test("deleting super property", () => { expect(() => { obj.baz(); }).toThrowWithMessage(ReferenceError, "Can't delete a property on 'super'"); + + Object.setPrototypeOf(C, null); + expect(() => { + C.foo(); + }).toThrowWithMessage(ReferenceError, "Can't delete a property on 'super'"); }); test("deleting an object computed property coerces the object to a property key", () => {