aboutsummaryrefslogtreecommitdiff
path: root/pkg/lang/vm
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/lang/vm')
-rw-r--r--pkg/lang/vm/exec.go5
-rw-r--r--pkg/lang/vm/vm_test.go4
2 files changed, 4 insertions, 5 deletions
diff --git a/pkg/lang/vm/exec.go b/pkg/lang/vm/exec.go
index ade6cc0..34cf444 100644
--- a/pkg/lang/vm/exec.go
+++ b/pkg/lang/vm/exec.go
@@ -836,9 +836,8 @@ func (vm *VM) execCall(argCount uint) error {
var err error
args := make([]value.Value, argCount)
- for i := 0; i < int(argCount); i++ {
- args[i], err = vm.stack.Pop()
- if err != nil {
+ for i := int(argCount - 1); i >= 0; i-- {
+ if args[i], err = vm.stack.Pop(); err != nil {
return err
}
}
diff --git a/pkg/lang/vm/vm_test.go b/pkg/lang/vm/vm_test.go
index 17edb2e..178d756 100644
--- a/pkg/lang/vm/vm_test.go
+++ b/pkg/lang/vm/vm_test.go
@@ -326,11 +326,11 @@ func TestTypeConstruct(t *testing.T) {
anchor_type
get_local 2
- get_local 1
+ get_local 0
set_member "name"
get_local 2
- get_local 0
+ get_local 1
set_member "age"
ret