2020-07-05 17:26:26 -07:00
|
|
|
test("var in for head", () => {
|
2020-07-06 07:37:45 -07:00
|
|
|
for (var v = 5; false; );
|
|
|
|
|
expect(v).toBe(5);
|
2020-07-05 17:26:26 -07:00
|
|
|
});
|
2020-05-05 01:58:53 +03:00
|
|
|
|
2020-07-05 17:26:26 -07:00
|
|
|
test("let in for head", () => {
|
2020-07-06 07:37:45 -07:00
|
|
|
for (let l = 5; false; );
|
|
|
|
|
expect(() => {
|
|
|
|
|
l;
|
|
|
|
|
}).toThrowWithMessage(ReferenceError, "'l' is not defined");
|
2020-07-05 17:26:26 -07:00
|
|
|
});
|
2020-05-05 01:58:53 +03:00
|
|
|
|
2020-07-05 17:26:26 -07:00
|
|
|
test("const in for head", () => {
|
2020-07-06 07:37:45 -07:00
|
|
|
for (const c = 5; false; );
|
|
|
|
|
expect(() => {
|
|
|
|
|
c;
|
|
|
|
|
}).toThrowWithMessage(ReferenceError, "'c' is not defined");
|
2020-07-05 17:26:26 -07:00
|
|
|
});
|
2024-07-16 16:56:02 -04:00
|
|
|
|
|
|
|
|
test("let variables captured by value", () => {
|
|
|
|
|
let result = "";
|
|
|
|
|
let functionList = [];
|
|
|
|
|
for (let i = 0; i < 9; i++) {
|
|
|
|
|
result += i;
|
|
|
|
|
functionList.push(function () {
|
|
|
|
|
return i;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
for (let i = 0; i < functionList.length; i++) {
|
|
|
|
|
result += functionList[i]();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
expect(result).toEqual("012345678012345678");
|
|
|
|
|
});
|