replacing for loops with push.apply where appropriate

This commit is contained in:
Danny Yoo 2011-09-09 13:38:41 -04:00
parent 6bc6a0aad9
commit b68eca9735
2 changed files with 3 additions and 7 deletions

View File

@ -79,7 +79,7 @@
",")))]
[(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)
"M.env=M.env[M.env.length-2].slice(0);"]

View File

@ -65,8 +65,7 @@
var i, returnArgs = [].slice.call(arguments, 1);
// clear out stack space
// TODO: replace with a splice.
MACHINE.env.length = MACHINE.env.length - MACHINE.argcount;
MACHINE.env.length -= MACHINE.argcount;
if (returnArgs.length === 1) {
MACHINE.val = returnArgs[0];
@ -77,10 +76,7 @@
} else {
MACHINE.argcount = returnArgs.length;
MACHINE.val = returnArgs.shift();
// TODO: replace with a splice.
for (i = 0; i < MACHINE.argcount - 1; i++) {
MACHINE.env.push(returnArgs.pop());
}
MACHINE.env.push.apply(MACHINE.env, returnArgs.reverse());
return MACHINE.control.pop().label.multipleValueReturn(MACHINE);
}
};