summaryrefslogtreecommitdiff
path: root/vm/vm.go
diff options
context:
space:
mode:
Diffstat (limited to 'vm/vm.go')
-rw-r--r--vm/vm.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/vm/vm.go b/vm/vm.go
index f5bb78e..96d61eb 100644
--- a/vm/vm.go
+++ b/vm/vm.go
@@ -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++
}