diff options
author | Alon Zakai <azakai@mozilla.com> | 2010-11-27 13:12:21 -0800 |
---|---|---|
committer | Alon Zakai <azakai@mozilla.com> | 2010-11-27 13:12:21 -0800 |
commit | 7d1dcece2b37f5d7b75695b229f06f204766b647 (patch) | |
tree | 8842c70f10531ba22dce8def0b066a206d7bc894 /src/runtime.js | |
parent | 64ad6c85cf525d80187bbcc279674a1ba2475558 (diff) |
proper memory initialization with or without typed arrays; additional lua tests
Diffstat (limited to 'src/runtime.js')
-rw-r--r-- | src/runtime.js | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/runtime.js b/src/runtime.js index 2e76af39..cb79b68d 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -6,11 +6,13 @@ RuntimeGenerator = { alloc: function(size, type) { var ret = type + 'TOP'; if (GUARD_MEMORY) { - //if (!USE_TYPED_ARRAYS) { // No need for typed arrays - per the spec, initialized to 0 anyhow - // ret += '; for (var i = 0; i < ' + size + '; i++) HEAP[' + type + 'TOP+i] = 0'; - //} ret += '; assert(' + size + ' > 0)'; } + var initMemory = 'for (var i = 0; i < ' + size + '; i++) HEAP[' + type + 'TOP+i] = 0'; + if (USE_TYPED_ARRAYS) { // No need for typed arrays - per the spec, initialized to 0 anyhow + initMemory = 'if (!HAS_TYPED_ARRAYS) { ' + initMemory + '}'; + } + ret += '; ' + initMemory; ret += '; ' + type + 'TOP += ' + size; if (QUANTUM_SIZE > 1) { ret += ';' + RuntimeGenerator.alignMemory(type + 'TOP', QUANTUM_SIZE); @@ -36,6 +38,11 @@ RuntimeGenerator = { if (GUARD_MEMORY) { ret += '; assert(STACKTOP < STACK_MAX)'; } + var initMemory = 'for (var i = __stackBase__; i < STACKTOP; i++) HEAP[i] = 0'; + if (USE_TYPED_ARRAYS) { // No need for typed arrays - per the spec, initialized to 0 anyhow + initMemory = 'if (!HAS_TYPED_ARRAYS) { ' + initMemory + '}'; + } + ret += '; ' + initMemory; return ret; }, |