Fix createTempVariable to always record the name in the currentScopeNames

This commit is contained in:
Jason Freeman
2015-03-04 19:35:06 -08:00
parent 4d3265088b
commit 4bb0587dd4
17 changed files with 65 additions and 24 deletions
+10 -1
View File
@@ -1684,7 +1684,11 @@ module ts {
else {
name = generateUniqueName(baseName, n => isExistingName(location, n));
}
return putNameInCurrentScopeNames(name);
}
function putNameInCurrentScopeNames(name: string): string {
if (!currentScopeNames) {
currentScopeNames = {};
}
@@ -2099,6 +2103,11 @@ module ts {
name = "_" + (tempCount < 25 ? String.fromCharCode(tempCount + (tempCount < 8 ? 0 : 1) + CharacterCodes.a) : tempCount - 25);
tempCount++;
}
// This is necessary so that a name generated via renameNonTopLevelLetAndConst will see the name
// we just generated.
putNameInCurrentScopeNames(name);
var result = <Identifier>createSynthesizedNode(SyntaxKind.Identifier);
result.text = name;
return result;
+2 -2
View File
@@ -13,8 +13,8 @@ function foo() {
}
for (var _i = 0, _a = []; _i < _a.length; _i++) {
foo().x = _a[_i];
for (var _i_1 = 0, _a_1 = []; _i_1 < _a_1.length; _i_1++) {
foo().x = _a_1[_i_1];
for (var _b = 0, _c = []; _b < _c.length; _b++) {
foo().x = _c[_b];
var p = foo().x;
}
}
+2 -2
View File
@@ -10,8 +10,8 @@ for (let v of []) {
for (var _i = 0, _a = []; _i < _a.length; _i++) {
var v = _a[_i];
v;
for (var _i_1 = 0, _a_1 = []; _i_1 < _a_1.length; _i_1++) {
var _v = _a_1[_i_1];
for (var _b = 0, _c = []; _b < _c.length; _b++) {
var _v = _c[_b];
var x = _v;
}
}
+2 -2
View File
@@ -11,8 +11,8 @@ for (let v of []) {
for (var _i = 0, _a = []; _i < _a.length; _i++) {
var v = _a[_i];
v;
for (var _i_1 = 0, _a_1 = []; _i_1 < _a_1.length; _i_1++) {
var _v = _a_1[_i_1];
for (var _b = 0, _c = []; _b < _c.length; _b++) {
var _v = _c[_b];
var x = _v;
_v++;
}
+2 -2
View File
@@ -11,8 +11,8 @@ for (let v of []) {
for (var _i = 0, _a = []; _i < _a.length; _i++) {
var v = _a[_i];
v;
for (var _i_1 = 0, _a_1 = [v]; _i_1 < _a_1.length; _i_1++) {
var _v = _a_1[_i_1];
for (var _b = 0, _c = [v]; _b < _c.length; _b++) {
var _v = _c[_b];
var x = _v;
_v++;
}
+2 -2
View File
@@ -12,7 +12,7 @@ for (var _i = 0, _a = []; _i < _a.length; _i++) {
var v = _a[_i];
v;
}
for (var _i = 0, _b = []; _i < _b.length; _i++) {
var _v = _b[_i];
for (var _b = 0, _c = []; _b < _c.length; _b++) {
var _v = _c[_b];
_v;
}
+2 -2
View File
@@ -14,8 +14,8 @@ for (var _i = 0, _a = []; _i < _a.length; _i++) {
var v = _a[_i];
v;
function foo() {
for (var _i = 0, _a = []; _i < _a.length; _i++) {
var _v = _a[_i];
for (var _b = 0, _c = []; _b < _c.length; _b++) {
var _v = _c[_b];
_v;
}
}
+2 -2
View File
@@ -10,8 +10,8 @@ for (let v of []) {
for (var _i = 0, _a = []; _i < _a.length; _i++) {
var v = _a[_i];
var _v;
for (var _i_1 = 0, _a_1 = [v]; _i_1 < _a_1.length; _i_1++) {
var _v_1 = _a_1[_i_1];
for (var _b = 0, _c = [v]; _b < _c.length; _b++) {
var _v_1 = _c[_b];
var _v_2;
}
}
+1 -1
View File
@@ -7,6 +7,6 @@ for (let v of []) {
for (var _i = 0, _a = []; _i < _a.length; _i++) {
var v = _a[_i];
for (var _b = 0, _c = []; _b < _c.length; _b++) {
var _i = _c[_b];
var _i_1 = _c[_b];
}
}
+12
View File
@@ -0,0 +1,12 @@
//// [ES5For-of22.ts]
for (var x of [1, 2, 3]) {
let _a = 0;
console.log(x);
}
//// [ES5For-of22.js]
for (var _i = 0, _a = [1, 2, 3]; _i < _a.length; _i++) {
var x = _a[_i];
var _a_1 = 0;
console.log(x);
}
+12
View File
@@ -0,0 +1,12 @@
//// [ES5For-of23.ts]
for (var x of [1, 2, 3]) {
var _a = 0;
console.log(x);
}
//// [ES5For-of23.js]
for (var _i = 0, _b = [1, 2, 3]; _i < _b.length; _i++) {
var x = _b[_i];
var _a = 0;
console.log(x);
}
+2 -2
View File
@@ -8,8 +8,8 @@ for (var w of []) {
//// [ES5For-of6.js]
for (var _i = 0, _a = []; _i < _a.length; _i++) {
var w = _a[_i];
for (var _i_1 = 0, _a_1 = []; _i_1 < _a_1.length; _i_1++) {
var v = _a_1[_i_1];
for (var _b = 0, _c = []; _b < _c.length; _b++) {
var v = _c[_b];
var x = [w, v];
}
}
+2 -2
View File
@@ -12,7 +12,7 @@ for (var _i = 0, _a = []; _i < _a.length; _i++) {
var w = _a[_i];
var x = w;
}
for (var _i = 0, _b = []; _i < _b.length; _i++) {
var v = _b[_i];
for (var _b = 0, _c = []; _b < _c.length; _b++) {
var v = _c[_b];
var x = [w, v];
}
+2 -2
View File
@@ -14,8 +14,8 @@ function foo() {
}
for (var _i = 0, _a = []; _i < _a.length; _i++) {
foo().x = _a[_i];
for (var _i_1 = 0, _a_1 = []; _i_1 < _a_1.length; _i_1++) {
foo().x = _a_1[_i_1];
for (var _b = 0, _c = []; _b < _c.length; _b++) {
foo().x = _c[_b];
var p = foo().x;
}
}
@@ -39,8 +39,8 @@ var Bugs;
}
var result = message.replace(/\{(\d+)\}/g, function (match) {
var rest = [];
for (var _i = 1; _i < arguments.length; _i++) {
rest[_i - 1] = arguments[_i];
for (var _a = 1; _a < arguments.length; _a++) {
rest[_a - 1] = arguments[_a];
}
var index = rest[0];
return typeof args[index] !== 'undefined' ? args[index] : match;
@@ -0,0 +1,4 @@
for (var x of [1, 2, 3]) {
let _a = 0;
console.log(x);
}
@@ -0,0 +1,4 @@
for (var x of [1, 2, 3]) {
var _a = 0;
console.log(x);
}