ladybird/Userland/Libraries/LibJS/Tests/global-var-let-const.js
Andreas Kling 4bc98fd39f LibJS: Only "var" declarations go in the global object at program level
"let" and "const" go in the lexical environment.

This fixes one part of #4001 (Lexically declared variables are mixed up
with global object properties)
2021-06-09 23:25:16 +02:00

21 lines
556 B
JavaScript

var foo = 1;
let bar = 2;
const baz = 3;
test("behavior of program-level var/let/const", () => {
expect(foo).toBe(1);
expect(bar).toBe(2);
expect(baz).toBe(3);
expect(globalThis.foo).toBe(1);
expect(globalThis.bar).toBeUndefined();
expect(globalThis.baz).toBeUndefined();
globalThis.foo = 4;
globalThis.bar = 5;
globalThis.baz = 6;
expect(foo).toBe(4);
expect(bar).toBe(2);
expect(baz).toBe(3);
expect(globalThis.foo).toBe(4);
expect(globalThis.bar).toBe(5);
expect(globalThis.baz).toBe(6);
});