trying to eliminate primitives again and see how it affects code size
This commit is contained in:
parent
b68eca9735
commit
ad83451030
|
@ -62,7 +62,7 @@
|
||||||
// extra function call here.
|
// extra function call here.
|
||||||
var finalizeClosureCall = function (MACHINE) {
|
var finalizeClosureCall = function (MACHINE) {
|
||||||
MACHINE.callsBeforeTrampoline--;
|
MACHINE.callsBeforeTrampoline--;
|
||||||
var i, returnArgs = [].slice.call(arguments, 1);
|
var returnArgs = [].slice.call(arguments, 1);
|
||||||
|
|
||||||
// clear out stack space
|
// clear out stack space
|
||||||
MACHINE.env.length -= MACHINE.argcount;
|
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) {
|
var makeClosure = function (name, arity, f, closureArgs) {
|
||||||
if (! closureArgs) { closureArgs = []; }
|
if (! closureArgs) { closureArgs = []; }
|
||||||
return new Closure(f,
|
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);
|
||||||
|
},
|
||||||
|
[]);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user