aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-10-31 17:38:27 -0700
committerAlon Zakai <alonzakai@gmail.com>2011-10-31 17:38:27 -0700
commit325f32c29b442d44111c68dc306b9ee5e859b3ac (patch)
tree574c9b3237635c5ef40ca6c6c641d05fd699132f /tools
parent0518234816e02f45b6bba9b7222636b8bdb29cbd (diff)
fix eliminator bug of running on functions it shouldn't
Diffstat (limited to 'tools')
-rw-r--r--tools/eliminator/eliminator-test-output.js18
-rw-r--r--tools/eliminator/eliminator-test.js20
-rw-r--r--tools/eliminator/eliminator.coffee2
3 files changed, 34 insertions, 6 deletions
diff --git a/tools/eliminator/eliminator-test-output.js b/tools/eliminator/eliminator-test-output.js
index 2324124e..b7a983cc 100644
--- a/tools/eliminator/eliminator-test-output.js
+++ b/tools/eliminator/eliminator-test-output.js
@@ -5,7 +5,7 @@ function f() {
HEAP[123] = (GLOB[1] + 1) / 2;
}
-var g = (function(a1, a2) {
+function g(a1, a2) {
var a = 1;
var c = a * 2 - 1;
@@ -39,7 +39,7 @@ var g = (function(a1, a2) {
unquoted: 3,
4: 5
};
-});
+}
function h() {
var out;
bar(hello);
@@ -91,3 +91,17 @@ function py() {
var $8 = HEAP[__PyThreadState_Current] + 12;
HEAP[$8] = $7;
}
+function otherPy() {
+ var $4 = HEAP[__PyThreadState_Current];
+ var $5 = $4 + 12;
+ var $7 = HEAP[$5] + 1;
+ var $8 = $4 + 12;
+ HEAP[$8] = $7;
+}
+var anon = (function(x) {
+ var $4 = HEAP[__PyThreadState_Current];
+ var $5 = $4 + 12;
+ var $7 = HEAP[$5] + 1;
+ var $8 = $4 + 12;
+ HEAP[$8] = $7;
+});
diff --git a/tools/eliminator/eliminator-test.js b/tools/eliminator/eliminator-test.js
index d3ee88cb..681b6cf7 100644
--- a/tools/eliminator/eliminator-test.js
+++ b/tools/eliminator/eliminator-test.js
@@ -5,7 +5,7 @@ function f() {
var z = y / 2;
HEAP[123] = z;
}
-var g = function (a1, a2) {
+function g(a1, a2) {
var a = 1;
var b = a * 2;
var c = b - 1;
@@ -39,7 +39,7 @@ var g = function (a1, a2) {
unquoted: 3,
4: 5
};
-};
+}
function h() {
var out;
bar(hello);
@@ -91,5 +91,19 @@ function py() {
var $8 = $4 + 12;
HEAP[$8] = $7;
}
-// EMSCRIPTEN_GENERATED_FUNCTIONS: ["f", "g", "h"]
+function otherPy() {
+ var $4 = HEAP[__PyThreadState_Current];
+ var $5 = $4 + 12;
+ var $7 = HEAP[$5] + 1;
+ var $8 = $4 + 12;
+ HEAP[$8] = $7;
+}
+var anon = function(x) {
+ var $4 = HEAP[__PyThreadState_Current];
+ var $5 = $4 + 12;
+ var $7 = HEAP[$5] + 1;
+ var $8 = $4 + 12;
+ HEAP[$8] = $7;
+}
+// EMSCRIPTEN_GENERATED_FUNCTIONS: ["f", "g", "h", "py"]
diff --git a/tools/eliminator/eliminator.coffee b/tools/eliminator/eliminator.coffee
index 891718e2..c6de8690 100644
--- a/tools/eliminator/eliminator.coffee
+++ b/tools/eliminator/eliminator.coffee
@@ -113,7 +113,7 @@ class Eliminator
# @returns: The number of variables eliminated, or undefined if skipped.
run: ->
# Our optimization does not account for closures.
- if not @isGenerated then return undefined
+ if not @isGenerated() then return undefined
@calculateBasicVarStats()
@analyzeInitialValues()