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) [(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);"]

View File

@ -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);
} }
}; };