aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-02-17 12:35:16 +0100
committerAlon Zakai <alonzakai@gmail.com>2013-02-17 12:35:16 +0100
commit1ae2a2654a84f68d4b2618db6ccb2bb8336824b7 (patch)
tree2d913b9b59180acaf231eca02dbca5c3ebc841a1
parentd646177eae20378a379c5651d2150a81566a945c (diff)
fix registerize bug on functions with arguments but no locals
-rw-r--r--tools/js-optimizer.js2
-rw-r--r--tools/test-js-optimizer-regs-output.js4
-rw-r--r--tools/test-js-optimizer-regs.js6
3 files changed, 10 insertions, 2 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js
index efbfa8aa..f2dc516a 100644
--- a/tools/js-optimizer.js
+++ b/tools/js-optimizer.js
@@ -1598,7 +1598,7 @@ function registerize(ast) {
fun[2].push(reg);
}
}
- getStatements(fun).unshift(['var', vars]);
+ if (vars.length > 0) getStatements(fun).unshift(['var', vars]);
}
} else {
//printErr('unfake params: \n\n' + astToSrc(fun) + '\n\n');
diff --git a/tools/test-js-optimizer-regs-output.js b/tools/test-js-optimizer-regs-output.js
index 36006b7c..fe7de5fb 100644
--- a/tools/test-js-optimizer-regs-output.js
+++ b/tools/test-js-optimizer-regs-output.js
@@ -225,4 +225,8 @@ function switchey(r1) {
r9 = r1 + 2;
pp(r9);
}
+function __ZN14NetworkAddressC1EPKcti(r1) {
+ __ZN14NetworkAddressC2EPKcti(r1);
+ return;
+}
diff --git a/tools/test-js-optimizer-regs.js b/tools/test-js-optimizer-regs.js
index 4802afa3..3013e518 100644
--- a/tools/test-js-optimizer-regs.js
+++ b/tools/test-js-optimizer-regs.js
@@ -230,4 +230,8 @@ function switchey(x) {
var aaa = x+2;
pp(aaa);
}
-// EMSCRIPTEN_GENERATED_FUNCTIONS: ["test", "primes", "atomic", "fcntl_open", "ex", "switchey"]
+function __ZN14NetworkAddressC1EPKcti($this) {
+ __ZN14NetworkAddressC2EPKcti($this);
+ return;
+}
+// EMSCRIPTEN_GENERATED_FUNCTIONS: ["test", "primes", "atomic", "fcntl_open", "ex", "switchey", "__ZN14NetworkAddressC1EPKcti"]