1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
function whileLoop() {
console.log(hoisted);
while (globalThis.unknown) {
throw new Error();
}
console.log('retained');
throw new Error();
while (globalThis.unknown) {
var hoisted;
}
}
try {
whileLoop();
} catch {}
function doWhileLoop() {
console.log(hoisted);
do {
if (globalThis.unknown) {
break;
}
throw new Error();
} while (globalThis.unknown);
console.log('retained');
throw new Error();
do {
var hoisted;
} while (globalThis.unknown);
}
try {
doWhileLoop();
} catch {}
function forLoop() {
console.log(hoisted);
for (let i = 0; i < globalThis.unknown; i++) {
throw new Error();
}
console.log('retained');
throw new Error();
for (let i = 0; i < globalThis.unknown; i++) {
var hoisted;
}
}
try {
forLoop();
} catch {}
function forOfLoop() {
console.log(hoisted);
for (const foo of globalThis.unknown) {
throw new Error();
}
console.log('retained');
throw new Error();
for (const foo of globalThis.unknown) {
var hoisted;
}
}
try {
forOfLoop();
} catch {}
function forInLoop() {
console.log(hoisted);
for (const foo in globalThis.unknown) {
throw new Error();
}
console.log('retained');
throw new Error();
for (const foo in globalThis.unknown) {
var hoisted;
}
}
try {
forInLoop();
} catch {}
|