hoist param declaration when performing tco - fixes #1478

This commit is contained in:
Sebastian McKenzie
2015-05-07 23:14:03 +01:00
parent 11af066956
commit a5cda5caa7
6 changed files with 15 additions and 11 deletions

View File

@@ -7,8 +7,8 @@
var _again = true;
_function: while (_again) {
_again = false;
var n = _x;
_again = false;
if (n <= 0) {
console.log(_this, _arguments);

View File

@@ -6,8 +6,8 @@
var _again = true;
_function: while (_again) {
_again = false;
var n = _x;
_again = false;
if (n <= 0) {
return "foo";
} else {
@@ -26,4 +26,4 @@
continue _function;
}
}
})(1000000, true) === "foo";
})(1000000, true) === "foo";

View File

@@ -5,9 +5,9 @@ function fact(_x2) {
var _again = true;
_function: while (_again) {
var n = _x2;
acc = undefined;
_again = false;
var n = _x2;
var acc = _arguments[1] === undefined ? 1 : _arguments[1];
if (n > 1) {
_arguments = [_x2 = n - 1, acc * n];
@@ -17,4 +17,4 @@ function fact(_x2) {
return acc;
}
}
}
}

View File

@@ -5,12 +5,12 @@
var _again = true;
_function: while (_again) {
var n = _x2;
m = local1 = local2 = local3 = undefined;
var g = function g() {};
_again = false;
var n = _x2;
var m = _arguments[1] === undefined ? getDefaultValue() : _arguments[1];
// `m` should be `getDefaultValue()` after first pass
@@ -27,4 +27,4 @@
_again = true;
continue _function;
}
})(1000000, true) === "foo";
})(1000000, true) === "foo";

View File

@@ -14,8 +14,8 @@
var _again = true;
_function: while (_again) {
_again = false;
var n = _x;
_again = false;
if (n <= 0) {
return "foo";
@@ -47,8 +47,8 @@
var _again2 = true;
_function2: while (_again2) {
_again2 = false;
var n = _x2;
_again2 = false;
if (n <= 0) {
return "foo";
@@ -60,4 +60,4 @@
continue _function2;
}
}
})(1000000) === "foo";
})(1000000) === "foo";