mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Merge pull request #5208 from Microsoft/capturedBlockScopedVars
support block scoped vars captured in closures inside loops
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
//==== let
|
||||
for (let x in {}) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (let x of []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
let x;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
do {
|
||||
let x;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
} while (1 === 1)
|
||||
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
do {
|
||||
let x, y;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
} while (1 === 1)
|
||||
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
//=========const
|
||||
for (const x in {}) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (const x of []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (const x = 0; x < 1;) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
do {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
} while (1 === 1)
|
||||
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
const x = 1, y = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
} while (1 === 1)
|
||||
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
// @target: ES6
|
||||
//==== let
|
||||
for (let x in {}) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (let x of []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
let x;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
do {
|
||||
let x;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
} while (1 === 1)
|
||||
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
do {
|
||||
let x, y;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
} while (1 === 1)
|
||||
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
//=========const
|
||||
for (const x in {}) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (const x of []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (const x = 0; x < 1;) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
do {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
} while (1 === 1)
|
||||
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
const x = 1, y = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
} while (1 === 1)
|
||||
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
|
||||
|
||||
// ========let
|
||||
function foo0(x) {
|
||||
for (let x of []) {
|
||||
let a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo0_1(x) {
|
||||
for (let x in []) {
|
||||
let a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo1(x) {
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
let a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo2(x) {
|
||||
while (1 === 1) {
|
||||
let a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo3(x) {
|
||||
do {
|
||||
let x;
|
||||
let a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
} while (1 === 1)
|
||||
}
|
||||
|
||||
function foo4(x) {
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let a = arguments.length;
|
||||
let x = 1;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo5(x) {
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
let a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function foo6(x) {
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
let a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo7(x) {
|
||||
do {
|
||||
let x, y;
|
||||
let a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
} while (1 === 1)
|
||||
}
|
||||
|
||||
|
||||
function foo8(x) {
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
let a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
}
|
||||
}
|
||||
///=======const
|
||||
function foo0_c(x) {
|
||||
for (const x of []) {
|
||||
const a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo0_1_c(x) {
|
||||
for (const x in []) {
|
||||
const a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo1_c(x) {
|
||||
for (const x = 0; x < 1;) {
|
||||
const a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo2_c(x) {
|
||||
while (1 === 1) {
|
||||
const a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo3_c(x) {
|
||||
do {
|
||||
const x = 1;
|
||||
const a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
} while (1 === 1)
|
||||
}
|
||||
|
||||
function foo4_c(x) {
|
||||
for (const y = 0; y < 1;) {
|
||||
const a = arguments.length;
|
||||
const x = 1;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo5_c(x) {
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
const a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function foo6_c(x) {
|
||||
while (1 === 1) {
|
||||
const x = 1, y =1 ;
|
||||
const a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo7_c(x) {
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
const a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
} while (1 === 1)
|
||||
}
|
||||
|
||||
|
||||
function foo8_c(x) {
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
const a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
// @target: ES6
|
||||
|
||||
// ========let
|
||||
function foo0(x) {
|
||||
for (let x of []) {
|
||||
let a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo0_1(x) {
|
||||
for (let x in []) {
|
||||
let a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo1(x) {
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
let a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo2(x) {
|
||||
while (1 === 1) {
|
||||
let a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo3(x) {
|
||||
do {
|
||||
let x;
|
||||
let a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
} while (1 === 1)
|
||||
}
|
||||
|
||||
function foo4(x) {
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let a = arguments.length;
|
||||
let x = 1;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo5(x) {
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
let a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function foo6(x) {
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
let a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo7(x) {
|
||||
do {
|
||||
let x, y;
|
||||
let a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
} while (1 === 1)
|
||||
}
|
||||
|
||||
|
||||
function foo8(x) {
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
let a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
}
|
||||
}
|
||||
///=======const
|
||||
function foo0_c(x) {
|
||||
for (const x of []) {
|
||||
const a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo0_1_c(x) {
|
||||
for (const x in []) {
|
||||
const a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo1_c(x) {
|
||||
for (const x = 0; x < 1;) {
|
||||
const a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo2_c(x) {
|
||||
while (1 === 1) {
|
||||
const a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo3_c(x) {
|
||||
do {
|
||||
const x = 1;
|
||||
const a = arguments.length;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
} while (1 === 1)
|
||||
}
|
||||
|
||||
function foo4_c(x) {
|
||||
for (const y = 0; y < 1;) {
|
||||
const a = arguments.length;
|
||||
const x = 1;
|
||||
(function() { return x + a });
|
||||
(() => x + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo5_c(x) {
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
const a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function foo6_c(x) {
|
||||
while (1 === 1) {
|
||||
const x = 1, y =1 ;
|
||||
const a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
}
|
||||
}
|
||||
|
||||
function foo7_c(x) {
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
const a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
} while (1 === 1)
|
||||
}
|
||||
|
||||
|
||||
function foo8_c(x) {
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
const a = arguments.length;
|
||||
(function() { return x + y + a });
|
||||
(() => x + y + a);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,217 @@
|
||||
///=========let
|
||||
declare function use(a: any);
|
||||
function foo0(x) {
|
||||
for (let x of []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo0_1(x) {
|
||||
for (let x in []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo1(x) {
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo2(x) {
|
||||
while (1 === 1) {
|
||||
let x = 1;
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo3(x) {
|
||||
do {
|
||||
let x;
|
||||
var v;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
} while (1 === 1);
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo4(x) {
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
var v = y;
|
||||
let x = 1;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo5(x) {
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo6(x) {
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
}
|
||||
|
||||
use(v)
|
||||
}
|
||||
|
||||
function foo7(x) {
|
||||
do {
|
||||
let x, y;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
} while (1 === 1);
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo8(x) {
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
//===const
|
||||
function foo0_c(x) {
|
||||
for (const x of []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo0_1_c(x) {
|
||||
for (const x in []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo1_c(x) {
|
||||
for (const x = 0; x < 1;) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo2_c(x) {
|
||||
while (1 === 1) {
|
||||
const x = 1;
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo3_c(x) {
|
||||
do {
|
||||
const x = 1;
|
||||
var v;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
} while (1 === 1);
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo4_c(x) {
|
||||
for (const y = 0; y < 1;) {
|
||||
var v = y;
|
||||
const x = 1;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo5_c(x) {
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo6_c(x) {
|
||||
while (1 === 1) {
|
||||
const x = 1, y = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
}
|
||||
|
||||
use(v)
|
||||
}
|
||||
|
||||
function foo7_c(x) {
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
} while (1 === 1);
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo8_c(x) {
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
@@ -0,0 +1,219 @@
|
||||
// @target: ES6
|
||||
|
||||
///=========let
|
||||
declare function use(a: any);
|
||||
function foo0(x) {
|
||||
for (let x of []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo0_1(x) {
|
||||
for (let x in []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo1(x) {
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo2(x) {
|
||||
while (1 === 1) {
|
||||
let x = 1;
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo3(x) {
|
||||
do {
|
||||
let x;
|
||||
var v;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
} while (1 === 1);
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo4(x) {
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
var v = y;
|
||||
let x = 1;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo5(x) {
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo6(x) {
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
}
|
||||
|
||||
use(v)
|
||||
}
|
||||
|
||||
function foo7(x) {
|
||||
do {
|
||||
let x, y;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
} while (1 === 1);
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo8(x) {
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
//===const
|
||||
function foo0_c(x) {
|
||||
for (const x of []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo0_1_c(x) {
|
||||
for (const x in []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo1_c(x) {
|
||||
for (const x = 0; x < 1;) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo2_c(x) {
|
||||
while (1 === 1) {
|
||||
const x = 1;
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo3_c(x) {
|
||||
do {
|
||||
const x = 1;
|
||||
var v;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
} while (1 === 1);
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo4_c(x) {
|
||||
for (const y = 0; y < 1;) {
|
||||
var v = y;
|
||||
const x = 1;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo5_c(x) {
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo6_c(x) {
|
||||
while (1 === 1) {
|
||||
const x = 1, y = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
}
|
||||
|
||||
use(v)
|
||||
}
|
||||
|
||||
function foo7_c(x) {
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
} while (1 === 1);
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo8_c(x) {
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
// @module: system
|
||||
|
||||
//======let
|
||||
export function exportedFoo() {
|
||||
return v0 + v00 + v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8;
|
||||
}
|
||||
|
||||
for (let x of []) {
|
||||
var v0 = x;
|
||||
(function() { return x + v0});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (let x in []) {
|
||||
var v00 = x;
|
||||
(function() { return x + v00});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
var v1 = x;
|
||||
(function() { return x + v1});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
let x;
|
||||
var v2 = x;
|
||||
(function() { return x + v2});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
do {
|
||||
let x;
|
||||
var v3 = x;
|
||||
(function() { return x + v3});
|
||||
(() => x);
|
||||
} while (1 === 1)
|
||||
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
var v4 = x;
|
||||
(function() { return x + v4});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
var v5 = x;
|
||||
(function() { return x + y + v5});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
var v6 = x;
|
||||
(function() { return x + y + v6});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
do {
|
||||
let x, y;
|
||||
var v7 = x;
|
||||
(function() { return x + y + v7});
|
||||
(() => x + y);
|
||||
} while (1 === 1)
|
||||
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
var v8 = x;
|
||||
(function() { return x + y + v8});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
//======const
|
||||
export function exportedFoo2() {
|
||||
return v0_c + v00_c + v1_c + v2_c + v3_c + v4_c + v5_c + v6_c + v7_c + v8_c;
|
||||
}
|
||||
|
||||
for (const x of []) {
|
||||
var v0_c = x;
|
||||
(function() { return x + v0_c});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (const x in []) {
|
||||
var v00_c = x;
|
||||
(function() { return x + v00});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (const x = 0; x < 1;) {
|
||||
var v1_c = x;
|
||||
(function() { return x + v1_c});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
const x =1;
|
||||
var v2_c = x;
|
||||
(function() { return x + v2_c});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
do {
|
||||
const x = 1;
|
||||
var v3_c = x;
|
||||
(function() { return x + v3_c});
|
||||
(() => x);
|
||||
} while (1 === 1)
|
||||
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
var v4_c = x;
|
||||
(function() { return x + v4_c});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
var v5_c = x;
|
||||
(function() { return x + y + v5_c});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
const x = 1, y = 1;
|
||||
var v6_c = x;
|
||||
(function() { return x + y + v6_c});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
var v7_c = x;
|
||||
(function() { return x + y + v7_c});
|
||||
(() => x + y);
|
||||
} while (1 === 1)
|
||||
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
var v8_c = x;
|
||||
(function() { return x + y + v8_c});
|
||||
(() => x + y);
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
// @target: ES6
|
||||
|
||||
//======let
|
||||
export function exportedFoo() {
|
||||
return v0 + v00 + v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8;
|
||||
}
|
||||
|
||||
for (let x of []) {
|
||||
var v0 = x;
|
||||
(function() { return x + v0});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (let x in []) {
|
||||
var v00 = x;
|
||||
(function() { return x + v00});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
var v1 = x;
|
||||
(function() { return x + v1});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
let x;
|
||||
var v2 = x;
|
||||
(function() { return x + v2});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
do {
|
||||
let x;
|
||||
var v3 = x;
|
||||
(function() { return x + v3});
|
||||
(() => x);
|
||||
} while (1 === 1)
|
||||
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
var v4 = x;
|
||||
(function() { return x + v4});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
var v5 = x;
|
||||
(function() { return x + y + v5});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
var v6 = x;
|
||||
(function() { return x + y + v6});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
do {
|
||||
let x, y;
|
||||
var v7 = x;
|
||||
(function() { return x + y + v7});
|
||||
(() => x + y);
|
||||
} while (1 === 1)
|
||||
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
var v8 = x;
|
||||
(function() { return x + y + v8});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
//======const
|
||||
export function exportedFoo2() {
|
||||
return v0_c + v00_c + v1_c + v2_c + v3_c + v4_c + v5_c + v6_c + v7_c + v8_c;
|
||||
}
|
||||
|
||||
for (const x of []) {
|
||||
var v0_c = x;
|
||||
(function() { return x + v0_c});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (const x in []) {
|
||||
var v00_c = x;
|
||||
(function() { return x + v00});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (const x = 0; x < 1;) {
|
||||
var v1_c = x;
|
||||
(function() { return x + v1_c});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
const x =1;
|
||||
var v2_c = x;
|
||||
(function() { return x + v2_c});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
do {
|
||||
const x = 1;
|
||||
var v3_c = x;
|
||||
(function() { return x + v3_c});
|
||||
(() => x);
|
||||
} while (1 === 1)
|
||||
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
var v4_c = x;
|
||||
(function() { return x + v4_c});
|
||||
(() => x);
|
||||
}
|
||||
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
var v5_c = x;
|
||||
(function() { return x + y + v5_c});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
const x = 1, y = 1;
|
||||
var v6_c = x;
|
||||
(function() { return x + y + v6_c});
|
||||
(() => x + y);
|
||||
}
|
||||
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
var v7_c = x;
|
||||
(function() { return x + y + v7_c});
|
||||
(() => x + y);
|
||||
} while (1 === 1)
|
||||
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
var v8_c = x;
|
||||
(function() { return x + y + v8_c});
|
||||
(() => x + y);
|
||||
}
|
||||
@@ -0,0 +1,279 @@
|
||||
declare function use(a: any);
|
||||
|
||||
//====let
|
||||
function foo0(x) {
|
||||
for (let x of []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo00(x) {
|
||||
for (let x in []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo1(x) {
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo2(x) {
|
||||
while (1 === 1) {
|
||||
let x = 1;
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo3(x) {
|
||||
do {
|
||||
let x;
|
||||
var v;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo4(x) {
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
var v = y;
|
||||
let x = 1;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo5(x) {
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo6(x) {
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
use(v)
|
||||
}
|
||||
|
||||
function foo7(x) {
|
||||
do {
|
||||
let x, y;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
} while (1 === 1);
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo8(x) {
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
//====const
|
||||
function foo0_c(x) {
|
||||
for (const x of []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo00_c(x) {
|
||||
for (const x in []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo1_c(x) {
|
||||
for (const x = 0; x < 1;) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo2_c(x) {
|
||||
while (1 === 1) {
|
||||
const x = 1;
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo3_c(x) {
|
||||
do {
|
||||
const x = 1;
|
||||
var v;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo4_c(x) {
|
||||
for (const y = 0; y < 1;) {
|
||||
var v = y;
|
||||
let x = 1;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo5_c(x) {
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo6_c(x) {
|
||||
while (1 === 1) {
|
||||
const x = 1, y = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v)
|
||||
}
|
||||
|
||||
function foo7_c(x) {
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo8_c(x) {
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
@@ -0,0 +1,281 @@
|
||||
// @target: ES6
|
||||
|
||||
declare function use(a: any);
|
||||
|
||||
//====let
|
||||
function foo0(x) {
|
||||
for (let x of []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo00(x) {
|
||||
for (let x in []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo1(x) {
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo2(x) {
|
||||
while (1 === 1) {
|
||||
let x = 1;
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo3(x) {
|
||||
do {
|
||||
let x;
|
||||
var v;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo4(x) {
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
var v = y;
|
||||
let x = 1;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo5(x) {
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo6(x) {
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
use(v)
|
||||
}
|
||||
|
||||
function foo7(x) {
|
||||
do {
|
||||
let x, y;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
} while (1 === 1);
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo8(x) {
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
//====const
|
||||
function foo0_c(x) {
|
||||
for (const x of []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo00_c(x) {
|
||||
for (const x in []) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo1_c(x) {
|
||||
for (const x = 0; x < 1;) {
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo2_c(x) {
|
||||
while (1 === 1) {
|
||||
const x = 1;
|
||||
var v = x;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo3_c(x) {
|
||||
do {
|
||||
const x = 1;
|
||||
var v;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo4_c(x) {
|
||||
for (const y = 0; y < 1;) {
|
||||
var v = y;
|
||||
let x = 1;
|
||||
(function() { return x + v });
|
||||
(() => x + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
function foo5_c(x) {
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo6_c(x) {
|
||||
while (1 === 1) {
|
||||
const x = 1, y = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v)
|
||||
}
|
||||
|
||||
function foo7_c(x) {
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
use(v);
|
||||
}
|
||||
|
||||
|
||||
function foo8_c(x) {
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
var v = x;
|
||||
(function() { return x + y + v });
|
||||
(() => x + y + v);
|
||||
if (x == 1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
use(v);
|
||||
}
|
||||
@@ -0,0 +1,237 @@
|
||||
// ====let
|
||||
for (let x of []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
for (let x in []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
let x;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
do {
|
||||
let x;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
do {
|
||||
let x, y;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// ====const
|
||||
|
||||
for (const x of []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
for (const x in []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (const x = 0; x < 1;) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
do {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
const x = 1, y = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,238 @@
|
||||
// @target: ES6
|
||||
// ====let
|
||||
for (let x of []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
for (let x in []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
let x;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
do {
|
||||
let x;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
do {
|
||||
let x, y;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// ====const
|
||||
|
||||
for (const x of []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
for (const x in []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (const x = 0; x < 1;) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
do {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
const x = 1, y = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,375 @@
|
||||
//===let
|
||||
l0:
|
||||
for (let x of []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l0;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l0;
|
||||
}
|
||||
}
|
||||
|
||||
l00:
|
||||
for (let x in []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l00;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l00;
|
||||
}
|
||||
}
|
||||
|
||||
l1:
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l1;
|
||||
}
|
||||
}
|
||||
|
||||
l2:
|
||||
while (1 === 1) {
|
||||
let x;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l2;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l2;
|
||||
}
|
||||
}
|
||||
|
||||
l3:
|
||||
do {
|
||||
let x;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l3;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l3;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
l4:
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l4;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l4;
|
||||
}
|
||||
}
|
||||
|
||||
l5:
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l5;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l5;
|
||||
}
|
||||
}
|
||||
|
||||
l6:
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l6;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l6;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
l7:
|
||||
do {
|
||||
let x, y;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l7;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l7;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
l8:
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l8;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l8;
|
||||
}
|
||||
}
|
||||
|
||||
//===const
|
||||
l0_c:
|
||||
for (const x of []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l0_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l0_c;
|
||||
}
|
||||
}
|
||||
|
||||
l00_c:
|
||||
for (const x in []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l00_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l00_c;
|
||||
}
|
||||
}
|
||||
|
||||
l1_c:
|
||||
for (const x = 0; x < 1;) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l1_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l1_c;
|
||||
}
|
||||
}
|
||||
|
||||
l2_c:
|
||||
while (1 === 1) {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l2_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l2_c;
|
||||
}
|
||||
}
|
||||
|
||||
l3_c:
|
||||
do {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l3_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l3_c;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
l4_c:
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l4_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l4_c;
|
||||
}
|
||||
}
|
||||
|
||||
l5_c:
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l5_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l5_c;
|
||||
}
|
||||
}
|
||||
|
||||
l6_c:
|
||||
while (1 === 1) {
|
||||
const x = 1, y = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l6_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l6_c;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
l7_c:
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l7_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l7_c;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
l8_c:
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l8_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l8_c;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,376 @@
|
||||
// @target: ES6
|
||||
//===let
|
||||
l0:
|
||||
for (let x of []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l0;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l0;
|
||||
}
|
||||
}
|
||||
|
||||
l00:
|
||||
for (let x in []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l00;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l00;
|
||||
}
|
||||
}
|
||||
|
||||
l1:
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l1;
|
||||
}
|
||||
}
|
||||
|
||||
l2:
|
||||
while (1 === 1) {
|
||||
let x;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l2;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l2;
|
||||
}
|
||||
}
|
||||
|
||||
l3:
|
||||
do {
|
||||
let x;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l3;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l3;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
l4:
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l4;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l4;
|
||||
}
|
||||
}
|
||||
|
||||
l5:
|
||||
for (let x = 0, y = 1; x < 1; ++x) {
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l5;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l5;
|
||||
}
|
||||
}
|
||||
|
||||
l6:
|
||||
while (1 === 1) {
|
||||
let x, y;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l6;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l6;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
l7:
|
||||
do {
|
||||
let x, y;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l7;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l7;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
l8:
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
let x = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l8;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l8;
|
||||
}
|
||||
}
|
||||
|
||||
//===const
|
||||
l0_c:
|
||||
for (const x of []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l0_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l0_c;
|
||||
}
|
||||
}
|
||||
|
||||
l00_c:
|
||||
for (const x in []) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l00_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l00_c;
|
||||
}
|
||||
}
|
||||
|
||||
l1_c:
|
||||
for (const x = 0; x < 1;) {
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l1_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l1_c;
|
||||
}
|
||||
}
|
||||
|
||||
l2_c:
|
||||
while (1 === 1) {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l2_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l2_c;
|
||||
}
|
||||
}
|
||||
|
||||
l3_c:
|
||||
do {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l3_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l3_c;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
l4_c:
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
(function() { return x});
|
||||
(() => x);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l4_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l4_c;
|
||||
}
|
||||
}
|
||||
|
||||
l5_c:
|
||||
for (const x = 0, y = 1; x < 1;) {
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l5_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l5_c;
|
||||
}
|
||||
}
|
||||
|
||||
l6_c:
|
||||
while (1 === 1) {
|
||||
const x = 1, y = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l6_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l6_c;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
l7_c:
|
||||
do {
|
||||
const x = 1, y = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l7_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l7_c;
|
||||
}
|
||||
} while (1 === 1)
|
||||
|
||||
l8_c:
|
||||
for (const y = 0; y < 1;) {
|
||||
const x = 1;
|
||||
(function() { return x + y});
|
||||
(() => x + y);
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l8_c;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l8_c;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
function foo() {
|
||||
l0:
|
||||
for (let z = 0; z < 1; ++z) {
|
||||
l1:
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
ll1:
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
(function() { return x + y });
|
||||
(() => x + y);
|
||||
if (y == 1) {
|
||||
break;
|
||||
}
|
||||
if (y == 1) {
|
||||
break l1;
|
||||
}
|
||||
if (y == 1) {
|
||||
break ll1;
|
||||
}
|
||||
if (y == 1) {
|
||||
continue l0;
|
||||
}
|
||||
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue ll1;
|
||||
}
|
||||
if (x == 2) {
|
||||
return "123"
|
||||
}
|
||||
if (x == 3) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l0;
|
||||
}
|
||||
if (x == 2) {
|
||||
return "456";
|
||||
}
|
||||
if (x == 3) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function foo_c() {
|
||||
l0:
|
||||
for (const z = 0; z < 1;) {
|
||||
l1:
|
||||
for (const x = 0; x < 1;) {
|
||||
ll1:
|
||||
for (const y = 0; y < 1;) {
|
||||
(function() { return x + y });
|
||||
(() => x + y);
|
||||
if (y == 1) {
|
||||
break;
|
||||
}
|
||||
if (y == 1) {
|
||||
break l1;
|
||||
}
|
||||
if (y == 1) {
|
||||
break ll1;
|
||||
}
|
||||
if (y == 1) {
|
||||
continue l0;
|
||||
}
|
||||
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue ll1;
|
||||
}
|
||||
if (x == 2) {
|
||||
return "123"
|
||||
}
|
||||
if (x == 3) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l0;
|
||||
}
|
||||
if (x == 2) {
|
||||
return "456";
|
||||
}
|
||||
if (x == 3) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
// @target: ES6
|
||||
function foo() {
|
||||
l0:
|
||||
for (let z = 0; z < 1; ++z) {
|
||||
l1:
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
ll1:
|
||||
for (let y = 0; y < 1; ++y) {
|
||||
(function() { return x + y });
|
||||
(() => x + y);
|
||||
if (y == 1) {
|
||||
break;
|
||||
}
|
||||
if (y == 1) {
|
||||
break l1;
|
||||
}
|
||||
if (y == 1) {
|
||||
break ll1;
|
||||
}
|
||||
if (y == 1) {
|
||||
continue l0;
|
||||
}
|
||||
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue ll1;
|
||||
}
|
||||
if (x == 2) {
|
||||
return "123"
|
||||
}
|
||||
if (x == 3) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l0;
|
||||
}
|
||||
if (x == 2) {
|
||||
return "456";
|
||||
}
|
||||
if (x == 3) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function foo_c() {
|
||||
l0:
|
||||
for (const z = 0; z < 1;) {
|
||||
l1:
|
||||
for (const x = 0; x < 1;) {
|
||||
ll1:
|
||||
for (const y = 0; y < 1;) {
|
||||
(function() { return x + y });
|
||||
(() => x + y);
|
||||
if (y == 1) {
|
||||
break;
|
||||
}
|
||||
if (y == 1) {
|
||||
break l1;
|
||||
}
|
||||
if (y == 1) {
|
||||
break ll1;
|
||||
}
|
||||
if (y == 1) {
|
||||
continue l0;
|
||||
}
|
||||
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue ll1;
|
||||
}
|
||||
if (x == 2) {
|
||||
return "123"
|
||||
}
|
||||
if (x == 3) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (x == 1) {
|
||||
break;
|
||||
}
|
||||
if (x == 1) {
|
||||
break l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l1;
|
||||
}
|
||||
if (x == 2) {
|
||||
continue l0;
|
||||
}
|
||||
if (x == 2) {
|
||||
return "456";
|
||||
}
|
||||
if (x == 3) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
let x;
|
||||
(function() { return x });
|
||||
{
|
||||
let x;
|
||||
(function() { return x });
|
||||
}
|
||||
|
||||
try { }
|
||||
catch (e) {
|
||||
let x;
|
||||
(function() { return x });
|
||||
}
|
||||
|
||||
switch (x) {
|
||||
case 1:
|
||||
let x;
|
||||
(function() { return x });
|
||||
break;
|
||||
}
|
||||
|
||||
while (1 == 1) {
|
||||
let x;
|
||||
(function() { return x });
|
||||
}
|
||||
|
||||
class A {
|
||||
m() {
|
||||
return x + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
declare function use(a: any);
|
||||
|
||||
function foo() {
|
||||
l0:
|
||||
for (let a of []) {
|
||||
|
||||
if (a === 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (a === 2) {
|
||||
break l0;
|
||||
}
|
||||
|
||||
for (let b of []) {
|
||||
var [{x, y:z}] = [{x:1, y:2}];
|
||||
if (b === 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (b === 2) {
|
||||
break l0;
|
||||
}
|
||||
|
||||
l1:
|
||||
if (b === 3) {
|
||||
break l1;
|
||||
}
|
||||
|
||||
return 50;
|
||||
}
|
||||
|
||||
for (let b of []) {
|
||||
var [{x1, y:z1}] = [{x1:1, y:arguments.length}];
|
||||
if (b === 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (b === 2) {
|
||||
break l0;
|
||||
}
|
||||
|
||||
return 100;
|
||||
|
||||
() => b
|
||||
}
|
||||
|
||||
|
||||
() => a;
|
||||
}
|
||||
|
||||
use(x);
|
||||
use(z);
|
||||
use(x1);
|
||||
use(z1);
|
||||
}
|
||||
|
||||
function foo2() {
|
||||
for (let x of []) {
|
||||
if (x === 1) {
|
||||
break;
|
||||
}
|
||||
else if (x === 2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
if (x) {
|
||||
break;
|
||||
}
|
||||
else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
switch(x) {
|
||||
case 1: break;
|
||||
case 2: continue;
|
||||
}
|
||||
|
||||
for (let y of []) {
|
||||
switch(y) {
|
||||
case 1: break;
|
||||
case 2: continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class C {
|
||||
constructor(private N: number) { }
|
||||
foo() {
|
||||
for (let i = 0; i < 100; i++) {
|
||||
let f = () => this.N * i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function foo3 () {
|
||||
let x = arguments.length;
|
||||
for (let y of []) {
|
||||
let z = arguments.length;
|
||||
(function() { return y + z + arguments.length; });
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
// @target: ES6
|
||||
|
||||
for (let x = 0; x < 1; ++x) {
|
||||
let x;
|
||||
(function() { return x });
|
||||
{
|
||||
let x;
|
||||
(function() { return x });
|
||||
}
|
||||
|
||||
try { }
|
||||
catch (e) {
|
||||
let x;
|
||||
(function() { return x });
|
||||
}
|
||||
|
||||
switch (x) {
|
||||
case 1:
|
||||
let x;
|
||||
(function() { return x });
|
||||
break;
|
||||
}
|
||||
|
||||
while (1 == 1) {
|
||||
let x;
|
||||
(function() { return x });
|
||||
}
|
||||
|
||||
class A {
|
||||
m() {
|
||||
return x + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
declare function use(a: any);
|
||||
|
||||
function foo() {
|
||||
l0:
|
||||
for (let a of []) {
|
||||
|
||||
if (a === 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (a === 2) {
|
||||
break l0;
|
||||
}
|
||||
|
||||
for (let b of []) {
|
||||
var [{x, y:z}] = [{x:1, y:2}];
|
||||
if (b === 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (b === 2) {
|
||||
break l0;
|
||||
}
|
||||
|
||||
l1:
|
||||
if (b === 3) {
|
||||
break l1;
|
||||
}
|
||||
|
||||
return 50;
|
||||
}
|
||||
|
||||
for (let b of []) {
|
||||
var [{x1, y:z1}] = [{x1:1, y:arguments.length}];
|
||||
if (b === 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (b === 2) {
|
||||
break l0;
|
||||
}
|
||||
|
||||
return 100;
|
||||
|
||||
() => b
|
||||
}
|
||||
|
||||
|
||||
() => a;
|
||||
}
|
||||
|
||||
use(x);
|
||||
use(z);
|
||||
use(x1);
|
||||
use(z1);
|
||||
}
|
||||
|
||||
function foo2() {
|
||||
for (let x of []) {
|
||||
if (x === 1) {
|
||||
break;
|
||||
}
|
||||
else if (x === 2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
while (1 === 1) {
|
||||
if (x) {
|
||||
break;
|
||||
}
|
||||
else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
switch(x) {
|
||||
case 1: break;
|
||||
case 2: continue;
|
||||
}
|
||||
|
||||
for (let y of []) {
|
||||
switch(y) {
|
||||
case 1: break;
|
||||
case 2: continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class C {
|
||||
constructor(private N: number) { }
|
||||
foo() {
|
||||
for (let i = 0; i < 100; i++) {
|
||||
let f = () => this.N * i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function foo3 () {
|
||||
let x = arguments.length;
|
||||
for (let y of []) {
|
||||
let z = arguments.length;
|
||||
(function() { return y + z + arguments.length; });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user