Do not create a temp for RHS if it's an identifier

This commit is contained in:
Jason Freeman
2015-03-04 16:06:37 -08:00
parent 4bb0587dd4
commit 905f35091f
22 changed files with 85 additions and 41 deletions

View File

@@ -0,0 +1,12 @@
//// [ES5For-of24.ts]
var a = [1, 2, 3];
for (var v of a) {
let a = 0;
}
//// [ES5For-of24.js]
var a = [1, 2, 3];
for (var _i = 0; _i < a.length; _i++) {
var v = a[_i];
var _a = 0;
}

View File

@@ -0,0 +1,14 @@
//// [ES5For-of25.ts]
var a = [1, 2, 3];
for (var v of a) {
v;
a;
}
//// [ES5For-of25.js]
var a = [1, 2, 3];
for (var _i = 0; _i < a.length; _i++) {
var v = a[_i];
v;
a;
}

View File

@@ -3,6 +3,6 @@ for (const v of X) {
}
//// [parserES5ForOfStatement10.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var v = _a[_i];
for (var _i = 0; _i < X.length; _i++) {
var v = X[_i];
}

View File

@@ -3,6 +3,6 @@ for (const [a, b] of X) {
}
//// [parserES5ForOfStatement11.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var _b = _a[_i], a = _b[0], b = _b[1];
for (var _i = 0; _i < X.length; _i++) {
var _a = X[_i], a = _a[0], b = _a[1];
}

View File

@@ -3,6 +3,6 @@ for (const {a, b} of X) {
}
//// [parserES5ForOfStatement12.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var _b = _a[_i], a = _b.a, b = _b.b;
for (var _i = 0; _i < X.length; _i++) {
var _a = X[_i], a = _a.a, b = _a.b;
}

View File

@@ -3,6 +3,6 @@ for (let {a, b} of X) {
}
//// [parserES5ForOfStatement13.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var _b = _a[_i], a = _b.a, b = _b.b;
for (var _i = 0; _i < X.length; _i++) {
var _a = X[_i], a = _a.a, b = _a.b;
}

View File

@@ -3,6 +3,6 @@ for (let [a, b] of X) {
}
//// [parserES5ForOfStatement14.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var _b = _a[_i], a = _b[0], b = _b[1];
for (var _i = 0; _i < X.length; _i++) {
var _a = X[_i], a = _a[0], b = _a[1];
}

View File

@@ -3,6 +3,6 @@ for (var [a, b] of X) {
}
//// [parserES5ForOfStatement15.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var _b = _a[_i], a = _b[0], b = _b[1];
for (var _i = 0; _i < X.length; _i++) {
var _a = X[_i], a = _a[0], b = _a[1];
}

View File

@@ -3,6 +3,6 @@ for (var {a, b} of X) {
}
//// [parserES5ForOfStatement16.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var _b = _a[_i], a = _b.a, b = _b.b;
for (var _i = 0; _i < X.length; _i++) {
var _a = X[_i], a = _a.a, b = _a.b;
}

View File

@@ -2,6 +2,6 @@
for (var of of of) { }
//// [parserES5ForOfStatement18.js]
for (var _i = 0, _a = of; _i < _a.length; _i++) {
var of = _a[_i];
for (var _i = 0; _i < of.length; _i++) {
var of = of[_i];
}

View File

@@ -3,6 +3,6 @@ for (var of X) {
}
//// [parserES5ForOfStatement2.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var _b = _a[_i];
for (var _i = 0; _i < X.length; _i++) {
var _a = X[_i];
}

View File

@@ -2,6 +2,6 @@
for (var of of) { }
//// [parserES5ForOfStatement21.js]
for (var _i = 0, _a = of; _i < _a.length; _i++) {
var _b = _a[_i];
for (var _i = 0; _i < of.length; _i++) {
var _a = of[_i];
}

View File

@@ -3,6 +3,6 @@ for (var a, b of X) {
}
//// [parserES5ForOfStatement3.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var a = _a[_i];
for (var _i = 0; _i < X.length; _i++) {
var a = X[_i];
}

View File

@@ -3,6 +3,6 @@ for (var a = 1 of X) {
}
//// [parserES5ForOfStatement4.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var a = 1 = _a[_i];
for (var _i = 0; _i < X.length; _i++) {
var a = 1 = X[_i];
}

View File

@@ -3,6 +3,6 @@ for (var a: number of X) {
}
//// [parserES5ForOfStatement5.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var a = _a[_i];
for (var _i = 0; _i < X.length; _i++) {
var a = X[_i];
}

View File

@@ -3,6 +3,6 @@ for (var a = 1, b = 2 of X) {
}
//// [parserES5ForOfStatement6.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var a = 1 = _a[_i];
for (var _i = 0; _i < X.length; _i++) {
var a = 1 = X[_i];
}

View File

@@ -3,6 +3,6 @@ for (var a: number = 1, b: string = "" of X) {
}
//// [parserES5ForOfStatement7.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var a = 1 = _a[_i];
for (var _i = 0; _i < X.length; _i++) {
var a = 1 = X[_i];
}

View File

@@ -3,6 +3,6 @@ for (var v of X) {
}
//// [parserES5ForOfStatement8.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var v = _a[_i];
for (var _i = 0; _i < X.length; _i++) {
var v = X[_i];
}

View File

@@ -3,6 +3,6 @@ for (let v of X) {
}
//// [parserES5ForOfStatement9.js]
for (var _i = 0, _a = X; _i < _a.length; _i++) {
var v = _a[_i];
for (var _i = 0; _i < X.length; _i++) {
var v = X[_i];
}

View File

@@ -0,0 +1,4 @@
var a = [1, 2, 3];
for (var v of a) {
let a = 0;
}

View File

@@ -0,0 +1,5 @@
var a = [1, 2, 3];
for (var v of a) {
v;
a;
}