static void HandleNewFrame(Vm vm)
{
var instruction = vm.CurrentInstruction ();
var args = (string[])instruction.Arguments;
var frame = new VmEnvFrame () {
VarNames = args,
Values = new Value[args.Length],
IntroducedAtProgramCounter = vm.programCounter
};
var newEnv = new VmEnvironment () {
Frame = frame,
Next = vm.currentEnvironment
};
vm.currentEnvironment = newEnv;
vm.IncrementCells (args.Length * 3 + 5);
vm.programCounter++;
}