aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/eliminator/asm-eliminator-test-output.js14
-rw-r--r--tools/eliminator/asm-eliminator-test.js16
-rw-r--r--tools/js-optimizer.js2
3 files changed, 30 insertions, 2 deletions
diff --git a/tools/eliminator/asm-eliminator-test-output.js b/tools/eliminator/asm-eliminator-test-output.js
index e744b847..15d3a74c 100644
--- a/tools/eliminator/asm-eliminator-test-output.js
+++ b/tools/eliminator/asm-eliminator-test-output.js
@@ -50,4 +50,18 @@ function _segment_holding($addr) {
return $_0;
}
}
+function __ZN5identC2EiPKcPci($this, $n, $a) {
+ $this = $this | 0;
+ $n = $n | 0;
+ $a = $a | 0;
+ HEAP32[($this & 16777215) >> 2] = __ZTV5ident + 8 | 0;
+ HEAP32[($this + 4 & 16777215) >> 2] = 5;
+ HEAP32[($this + 8 & 16777215) >> 2] = $n;
+ HEAP32[($this + 20 & 16777215) >> 2] = 2147483647;
+ HEAP32[($this + 24 & 16777215) >> 2] = 0;
+ HEAP32[($this + 28 & 16777215) >> 2] = $a;
+ HEAP32[($this + 32 & 16777215) >> 2] = 0;
+ HEAP32[($this + 40 & 16777215) >> 2] = 1;
+ return;
+}
diff --git a/tools/eliminator/asm-eliminator-test.js b/tools/eliminator/asm-eliminator-test.js
index 6e006d46..67cdf2a0 100644
--- a/tools/eliminator/asm-eliminator-test.js
+++ b/tools/eliminator/asm-eliminator-test.js
@@ -69,5 +69,19 @@ function _segment_holding($addr) {
return $_0;
}
}
-// EMSCRIPTEN_GENERATED_FUNCTIONS: ["asm", "__Z11printResultPiS_j", "_segment_holding"]
+function __ZN5identC2EiPKcPci($this, $n, $a) {
+ $this = $this | 0;
+ $n = $n | 0;
+ $a = $a | 0;
+ HEAP32[($this & 16777215) >> 2] = __ZTV5ident + 8 | 0;
+ HEAP32[($this + 4 & 16777215) >> 2] = 5;
+ HEAP32[($this + 8 & 16777215) >> 2] = $n;
+ HEAP32[($this + 20 & 16777215) >> 2] = 2147483647;
+ HEAP32[($this + 24 & 16777215) >> 2] = 0;
+ HEAP32[($this + 28 & 16777215) >> 2] = $a;
+ HEAP32[($this + 32 & 16777215) >> 2] = 0;
+ HEAP32[($this + 40 & 16777215) >> 2] = 1;
+ return;
+}
+// EMSCRIPTEN_GENERATED_FUNCTIONS: ["asm", "__Z11printResultPiS_j", "_segment_holding", "__ZN5identC2EiPKcPci"]
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js
index 33baa821..0697cdb9 100644
--- a/tools/js-optimizer.js
+++ b/tools/js-optimizer.js
@@ -1230,7 +1230,7 @@ function normalizeAsm(func) {
var i = 0;
while (i < stats.length) {
var node = stats[i];
- if (node[0] != 'stat' || node[1][0] != 'assign') break;
+ if (node[0] != 'stat' || node[1][0] != 'assign' || node[1][2][0] != 'name') break;
node = node[1];
data.params[node[2][1]] = detectAsmCoercion(node[3]);
stats[i] = emptyNode();