diff options
Diffstat (limited to 'src/vm.rs')
| -rw-r--r-- | src/vm.rs | 16 |
1 files changed, 11 insertions, 5 deletions
@@ -159,17 +159,23 @@ impl VM { self.pop(); } - Op::Yield => { - self.frame_mut().ip += 1; - return Ok(OpResult::Yield); - } - Op::PopUpvalue => { let value = self.pop(); let slot = self.stack.len(); self.drop_upvalue(slot, value); } + Op::Copy => { + let v = self.pop(); + self.push(v.clone()); + self.push(v); + } + + Op::Yield => { + self.frame_mut().ip += 1; + return Ok(OpResult::Yield); + } + Op::Constant(value) => { let offset = self.frame().stack_offset; let value = match value { |
