aboutsummaryrefslogtreecommitdiff
path: root/src/jsifier.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-04-04 12:22:21 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-04-04 14:19:18 -0700
commitf1369af42ba67251a291436a1d50494b9c49fe29 (patch)
tree183a27987abf44aa6173a43adf5a5a960b31b971 /src/jsifier.js
parent0712696d0666bfcb1f5e891aefdfc639ae5757bb (diff)
write out all the initial global allocations as one big ALLOC_NONE
Diffstat (limited to 'src/jsifier.js')
-rw-r--r--src/jsifier.js15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/jsifier.js b/src/jsifier.js
index 88f86d5b..aab3296b 100644
--- a/src/jsifier.js
+++ b/src/jsifier.js
@@ -323,7 +323,8 @@ function JSify(data, functionsOnly, givenFunctions) {
// allocations in a shared library.
constant = makePointer(constant, null, allocator, item.type, index);
- var js = (index !== null ? '' : item.ident + '=') + constant + ';';
+ var js = (index !== null ? '' : item.ident + '=') + constant;
+ if (js) js += ';';
if (!ASM_JS && (EXPORT_ALL || (item.ident in EXPORTED_GLOBALS))) {
js += '\nModule["' + item.ident + '"] = ' + item.ident + ';';
@@ -1497,8 +1498,17 @@ function JSify(data, functionsOnly, givenFunctions) {
print('assert(STATICTOP < TOTAL_MEMORY);\n');
}
}
- var generated = itemsDict.function.concat(itemsDict.type).concat(itemsDict.GlobalVariableStub).concat(itemsDict.GlobalVariable).concat(itemsDict.GlobalVariablePostSet);
+ var generated = itemsDict.function.concat(itemsDict.type).concat(itemsDict.GlobalVariableStub).concat(itemsDict.GlobalVariable);
if (!DEBUG_MEMORY) print(generated.map(function(item) { return item.JS }).join('\n'));
+
+ if (phase == 'pre') {
+ if (memoryInitialization.length > 0) {
+ // write out the singleton big memory initialization value
+ print('/* teh global */ ' + makePointer(memoryInitialization, null, 'ALLOC_NONE', 'i8', 'TOTAL_STACK', true)); // we assert on TOTAL_STACK == GLOBAL_BASE
+ }
+ }
+
+ if (!DEBUG_MEMORY) print(itemsDict.GlobalVariablePostSet.map(function(item) { return item.JS }).join('\n'));
return;
}
@@ -1520,7 +1530,6 @@ function JSify(data, functionsOnly, givenFunctions) {
}
});
}
-
JSify(globalsData, true, Functions);
globalsData = null;
data.unparsedGlobalss = null;