aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-12-21 22:04:28 -0800
committerAlon Zakai <alonzakai@gmail.com>2011-12-21 22:04:28 -0800
commitd85a66e494512af061f359a575c6be46b68e7e9d (patch)
tree62951a1fd04cc0fbba6822956a0b419a853a3979 /tools
parentb787b69400f66ee21f2e0acd2691d25751b7e746 (diff)
fix hoistMultiples bug
Diffstat (limited to 'tools')
-rw-r--r--tools/js-optimizer.js4
-rw-r--r--tools/test-js-optimizer-output.js4
-rw-r--r--tools/test-js-optimizer.js6
3 files changed, 12 insertions, 2 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js
index a4bb896a..c4de51e3 100644
--- a/tools/js-optimizer.js
+++ b/tools/js-optimizer.js
@@ -365,7 +365,7 @@ function simplifyExpressionsPost(ast) {
function hoistMultiples(ast) {
ast[1].forEach(function(node, i) {
var type = node[0];
- if (type == 'defun') {
+ if (type == 'defun' && isGenerated(node[1])) {
var statements = node[3];
for (var i = 0; i < statements.length-1; i++) {
var modified = false;
@@ -435,7 +435,7 @@ function hoistMultiples(ast) {
more = false;
ast[1].forEach(function(node, i) {
var type = node[0];
- if (type == 'defun') {
+ if (type == 'defun' && isGenerated(node[1])) {
traverse(node, function(node, type) {
if (type == 'if' && node[2][0] == 'block' && node[2][1].length == 0) {
more = true;
diff --git a/tools/test-js-optimizer-output.js b/tools/test-js-optimizer-output.js
index aa494a05..39b91039 100644
--- a/tools/test-js-optimizer-output.js
+++ b/tools/test-js-optimizer-output.js
@@ -164,4 +164,8 @@ var FS = {
return absolute.length == 1 ? "/" : absolute.join("/");
})
};
+function sleep() {
+ while (Date.now() - start < msec) {}
+ return 0;
+}
// EMSCRIPTEN_GENERATED_FUNCTIONS: ["abc", "xyz", "xyz2", "expr", "loopy", "bits", "maths", "hoisting"]
diff --git a/tools/test-js-optimizer.js b/tools/test-js-optimizer.js
index 8d10d222..09cc5472 100644
--- a/tools/test-js-optimizer.js
+++ b/tools/test-js-optimizer.js
@@ -181,4 +181,10 @@ var FS = {
return absolute.length == 1 ? '/' : absolute.join('/');
}
}
+function sleep() {
+ while (Date.now() - start < msec) {
+ // Do nothing. This empty block should remain untouched (c.f. _usleep)
+ }
+ return 0;
+}
// EMSCRIPTEN_GENERATED_FUNCTIONS: ["abc", "xyz", "xyz2", "expr", "loopy", "bits", "maths", "hoisting"]