diff options
Diffstat (limited to 'vm/vm.go')
| -rw-r--r-- | vm/vm.go | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -311,8 +311,13 @@ func (m *Machine) Run() (err error) { mem[sp-3].SetMapIndex(mem[sp-2].Value, mem[sp-1].Value) mem = mem[:sp-2] case Vassign: - mem[sp-2].Set(mem[sp-1].Value) - mem = mem[:sp-2] + n := c.Arg[0] + for i := 0; i < n; i++ { + mem[sp-n-i-1].Set(mem[sp-n+i].Value) + } + mem = mem[:sp-n-1] + // mem[sp-2].Set(mem[sp-1].Value) + // mem = mem[:sp-2] } ip++ } |
