diff options
Diffstat (limited to 'src/runtime.js')
-rw-r--r-- | src/runtime.js | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/runtime.js b/src/runtime.js index a32785f3..f63690c0 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -311,13 +311,26 @@ var Runtime = { return ret; }, - getFunctionTable: function(sig) { - return FUNCTION_TABLE; // TODO: Support asm + dynCall: function(sig, ptr, args) { + if (args && args.length) { +#if ASM_JS + args.splice(0, 0, ptr); + return Module['dynCall_' + sig].apply(null, args); +#else + return FUNCTION_TABLE[ptr].apply(null, args); +#endif + } else { +#if ASM_JS + return Module['dynCall_' + sig].call(null, ptr); +#else + return FUNCTION_TABLE[ptr](); +#endif + } }, addFunction: function(func, sig) { assert(sig); - var table = Runtime.getFunctionTable(sig); + var table = FUNCTION_TABLE; // TODO: support asm var ret = table.length; table.push(func); table.push(0); |