From b6fa4bc82398b09307f2e6b75e27422d1d1ecb33 Mon Sep 17 00:00:00 2001 From: Mel Date: Tue, 19 Jul 2022 02:27:19 +0200 Subject: Implement stack hygiene --- pkg/lang/vm/vm.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'pkg/lang/vm/vm.go') diff --git a/pkg/lang/vm/vm.go b/pkg/lang/vm/vm.go index ff9c28e..8b47915 100644 --- a/pkg/lang/vm/vm.go +++ b/pkg/lang/vm/vm.go @@ -116,7 +116,10 @@ func (vm *VM) step(op code.Op) (stepDecision, error) { err = vm.execPushType(name) case code.OpDrop: - _, err = vm.stack.Pop() + dropAmount, advance := vm.code.GetUint(vm.pc) + vm.pc += advance + + err = vm.execDrop(uint(dropAmount)) case code.OpGetGlobal: panic("not implemented") -- cgit 1.4.1