ladybird/Userland/Libraries/LibJS/Tests/operators/delete-global-variable.js
Aliaksandr Kalenik 331f6a9e60 LibJS: Invalidate cached environment coordinate after delete in global
Fixes the bug in interpreter when cached environment coordinate is not
invalidated after `delete` operator usage on global `this`.
2023-06-24 18:33:44 +02:00

23 lines
434 B
JavaScript

a = 1;
b = 42;
test("basic functionality", () => {
expect(delete a).toBeTrue();
expect(() => {
a;
}).toThrowWithMessage(ReferenceError, "'a' is not defined");
});
test("delete global var after usage", () => {
let errors = 0;
for (let i = 0; i < 3; ++i) {
try {
b++;
} catch {
++errors;
}
delete globalThis.b;
}
expect(errors).toBe(2);
});