diff options
Diffstat (limited to 'src/runtime.js')
-rw-r--r-- | src/runtime.js | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/runtime.js b/src/runtime.js index 786ae021..dedaf5ea 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -381,6 +381,18 @@ var Runtime = { #endif }, + getAsmConst: function(code, numArgs) { + // code is a constant string on the heap, so we can cache these + if (!Runtime.asmConstCache) Runtime.asmConstCache = {}; + var func = Runtime.asmConstCache[code]; + if (func) return func; + var args = []; + for (var i = 0; i < numArgs; i++) { + args.push(String.fromCharCode(36) + i); // $0, $1 etc + } + return Runtime.asmConstCache[code] = eval('(function(' + args.join(',') + '){ ' + Pointer_stringify(code) + ' })'); // new Function does not allow upvars in node + }, + warnOnce: function(text) { if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; if (!Runtime.warnOnce.shown[text]) { |