diff options
| author | Mel <einebeere@gmail.com> | 2022-07-19 02:27:19 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2022-07-19 02:27:19 +0200 |
| commit | b6fa4bc82398b09307f2e6b75e27422d1d1ecb33 (patch) | |
| tree | e5b7aec7eb7f72f1c2f55e4b2a78d331bd81485e /pkg/lang/vm/exec.go | |
| parent | e06aeb7fa2fcb9046b8861ed3c23417555e823f5 (diff) | |
| download | jinx-b6fa4bc82398b09307f2e6b75e27422d1d1ecb33.tar.zst jinx-b6fa4bc82398b09307f2e6b75e27422d1d1ecb33.zip | |
Implement stack hygiene
Diffstat (limited to 'pkg/lang/vm/exec.go')
| -rw-r--r-- | pkg/lang/vm/exec.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/pkg/lang/vm/exec.go b/pkg/lang/vm/exec.go index f92e486..3a1ce36 100644 --- a/pkg/lang/vm/exec.go +++ b/pkg/lang/vm/exec.go @@ -97,6 +97,16 @@ func (vm *VM) execPushType(name string) error { return nil } +func (vm *VM) execDrop(dropAmount uint) error { + for i := 0; i < int(dropAmount); i++ { + if _, err := vm.popAndDrop(); err != nil { + return err + } + } + + return nil +} + func (vm *VM) execGetMember(name string) error { parent, err := vm.stack.Pop() if err != nil { |
