aboutsummaryrefslogtreecommitdiff
path: root/src/jsifier.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-11-29 10:44:04 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-12-07 14:23:19 -0800
commita10b76178eec4cc5db8f89619751d2a38c66c37e (patch)
tree618bf439662128a655cc2a79d50042fcbafd2cbd /src/jsifier.js
parent098716f2517a1536a8eab615d1ee14f9939fcec9 (diff)
define local vars asm.js style
Diffstat (limited to 'src/jsifier.js')
-rw-r--r--src/jsifier.js10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/jsifier.js b/src/jsifier.js
index 0d962dc9..7d777575 100644
--- a/src/jsifier.js
+++ b/src/jsifier.js
@@ -546,6 +546,14 @@ function JSify(data, functionsOnly, givenFunctions) {
func.params.forEach(function(param) {
func.JS += ' ' + param.ident + ' = ' + asmCoercion(param.ident, param.type) + ';\n';
});
+
+ // spell out local variables
+ var vars = values(func.variables);
+ if (vars.length) {
+ func.JS += ' var ' + vars.filter(function(v) { return v.origin != 'funcparam' }).map(function(v) {
+ return v.ident + ' = ' + asmInitializer(v.type);
+ }).join(', ') + ';\n';
+ }
}
if (PROFILE) {
@@ -764,7 +772,7 @@ function JSify(data, functionsOnly, givenFunctions) {
var valueJS = item.JS;
item.JS = '';
if (CLOSURE_ANNOTATIONS) item.JS += '/** @type {number} */ ';
- item.JS += (item.overrideSSA ? '' : 'var ') + toNiceIdent(item.assignTo);
+ item.JS += ((item.overrideSSA || ASM_JS) ? '' : 'var ') + toNiceIdent(item.assignTo);
var value = parseNumerical(valueJS);
var impl = getVarImpl(item.funcData, item.assignTo);