replacing for loops with push.apply where appropriate
This commit is contained in:
parent
6bc6a0aad9
commit
b68eca9735
|
@ -79,7 +79,7 @@
|
||||||
",")))]
|
",")))]
|
||||||
|
|
||||||
[(InstallClosureValues!? op)
|
[(InstallClosureValues!? op)
|
||||||
"M.env.splice.apply(M.env,[M.env.length, 0].concat(M.proc.closedVals));"]
|
"M.env.push.apply(M.env,M.proc.closedVals);"]
|
||||||
|
|
||||||
[(RestoreEnvironment!? op)
|
[(RestoreEnvironment!? op)
|
||||||
"M.env=M.env[M.env.length-2].slice(0);"]
|
"M.env=M.env[M.env.length-2].slice(0);"]
|
||||||
|
|
|
@ -65,8 +65,7 @@
|
||||||
var i, returnArgs = [].slice.call(arguments, 1);
|
var i, returnArgs = [].slice.call(arguments, 1);
|
||||||
|
|
||||||
// clear out stack space
|
// clear out stack space
|
||||||
// TODO: replace with a splice.
|
MACHINE.env.length -= MACHINE.argcount;
|
||||||
MACHINE.env.length = MACHINE.env.length - MACHINE.argcount;
|
|
||||||
|
|
||||||
if (returnArgs.length === 1) {
|
if (returnArgs.length === 1) {
|
||||||
MACHINE.val = returnArgs[0];
|
MACHINE.val = returnArgs[0];
|
||||||
|
@ -77,10 +76,7 @@
|
||||||
} else {
|
} else {
|
||||||
MACHINE.argcount = returnArgs.length;
|
MACHINE.argcount = returnArgs.length;
|
||||||
MACHINE.val = returnArgs.shift();
|
MACHINE.val = returnArgs.shift();
|
||||||
// TODO: replace with a splice.
|
MACHINE.env.push.apply(MACHINE.env, returnArgs.reverse());
|
||||||
for (i = 0; i < MACHINE.argcount - 1; i++) {
|
|
||||||
MACHINE.env.push(returnArgs.pop());
|
|
||||||
}
|
|
||||||
return MACHINE.control.pop().label.multipleValueReturn(MACHINE);
|
return MACHINE.control.pop().label.multipleValueReturn(MACHINE);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user