diff options
| author | Edvard Thörnros <edvard.thornros@gmail.com> | 2021-02-01 10:23:17 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-01 10:23:17 +0100 |
| commit | 8cf92ff7ed32ceda9d4a2518a784467595c36db5 (patch) | |
| tree | 6f086d71b24a230fe7f656a9780536808b56644b /src/vm.rs | |
| parent | cc4bacf33c98e9bd186a2a3da7335577df879a9d (diff) | |
| parent | afc4a3fe1618239017e15cabc664dd70abc1d75b (diff) | |
| download | sylt-8cf92ff7ed32ceda9d4a2518a784467595c36db5.tar.gz | |
Merge pull request #5 from FredTheDino/op-assign
op assign
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 { |
