From ad83451030a2e25452e73cd0569a5ad4eeb247bb Mon Sep 17 00:00:00 2001 From: Danny Yoo Date: Fri, 9 Sep 2011 13:46:29 -0400 Subject: [PATCH] trying to eliminate primitives again and see how it affects code size --- js-assembler/runtime-src/baselib-functions.js | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/js-assembler/runtime-src/baselib-functions.js b/js-assembler/runtime-src/baselib-functions.js index 0de0ed5..8529731 100644 --- a/js-assembler/runtime-src/baselib-functions.js +++ b/js-assembler/runtime-src/baselib-functions.js @@ -62,7 +62,7 @@ // extra function call here. var finalizeClosureCall = function (MACHINE) { MACHINE.callsBeforeTrampoline--; - var i, returnArgs = [].slice.call(arguments, 1); + var returnArgs = [].slice.call(arguments, 1); // clear out stack space MACHINE.env.length -= MACHINE.argcount; @@ -307,15 +307,6 @@ - - - - var makePrimitiveProcedure = function (name, arity, f) { - f.racketArity = arity; - f.displayName = name; - return f; - }; - var makeClosure = function (name, arity, f, closureArgs) { if (! closureArgs) { closureArgs = []; } return new Closure(f, @@ -325,6 +316,23 @@ }; + var makePrimitiveProcedure = function (name, arity, f) { + // f.racketArity = arity; + // f.displayName = name; + // return f; + return makeClosure(name, + arity, + function(M) { + --M.callsBeforeTrampoline; + M.val = f(M); + M.env.length -= M.argcount; + return M.control.pop().label(M); + }, + []); + }; + + +