static void CopyStackFrameArguments(const AbstractFramePtr frame, HeapValue *dst, unsigned totalArgs) { JS_ASSERT_IF(frame.isStackFrame(), !frame.asStackFrame()->runningInIon()); unsigned numActuals = frame.numActualArgs(); unsigned numFormals = frame.callee()->nargs; JS_ASSERT(numActuals <= totalArgs); JS_ASSERT(numFormals <= totalArgs); JS_ASSERT(Max(numActuals, numFormals) == totalArgs); /* Copy formal arguments. */ Value *src = frame.formals(); Value *end = src + numFormals; while (src != end) (dst++)->init(*src++); /* Copy actual argument which are not contignous. */ if (numFormals < numActuals) { src = frame.actuals() + numFormals; end = src + (numActuals - numFormals); while (src != end) (dst++)->init(*src++); } }