diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-10-31 17:38:27 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-10-31 17:38:27 -0700 |
commit | 325f32c29b442d44111c68dc306b9ee5e859b3ac (patch) | |
tree | 574c9b3237635c5ef40ca6c6c641d05fd699132f /tools | |
parent | 0518234816e02f45b6bba9b7222636b8bdb29cbd (diff) |
fix eliminator bug of running on functions it shouldn't
Diffstat (limited to 'tools')
-rw-r--r-- | tools/eliminator/eliminator-test-output.js | 18 | ||||
-rw-r--r-- | tools/eliminator/eliminator-test.js | 20 | ||||
-rw-r--r-- | tools/eliminator/eliminator.coffee | 2 |
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() |