diff options
| author | Mel <einebeere@gmail.com> | 2022-05-31 01:01:32 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-31 01:02:20 +0000 |
| commit | 338744d066704e48e22d8ec56a43acb4b20da7f1 (patch) | |
| tree | b508eb6764efc64ac611b6ea063ab44d9e6b0a9c /pkg/lang/vm/vm.go | |
| parent | 78a29c41098db5e5f8291e0345a3cd443c52b329 (diff) | |
| download | jinx-338744d066704e48e22d8ec56a43acb4b20da7f1.tar.zst jinx-338744d066704e48e22d8ec56a43acb4b20da7f1.zip | |
Add untyped Objects (for now)
Diffstat (limited to 'pkg/lang/vm/vm.go')
| -rw-r--r-- | pkg/lang/vm/vm.go | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/pkg/lang/vm/vm.go b/pkg/lang/vm/vm.go index 2377d89..8422299 100644 --- a/pkg/lang/vm/vm.go +++ b/pkg/lang/vm/vm.go @@ -89,7 +89,7 @@ func (vm *VM) step(op code.Op) (stepDecision, error) { str, advance := vm.code.GetString(vm.pc) vm.pc += advance - vm.execPushString(str) + err = vm.execPushString(str) case code.OpPushNull: vm.execPushNull() case code.OpPushTrue: @@ -104,7 +104,7 @@ func (vm *VM) step(op code.Op) (stepDecision, error) { vm.execPushFunction(int(x)) case code.OpPushObject: - panic("not implemented") + err = vm.execPushObject() case code.OpDrop: _, err = vm.stack.Pop() @@ -121,6 +121,11 @@ func (vm *VM) step(op code.Op) (stepDecision, error) { vm.pc += advance err = vm.execGetMember(name) + case code.OpSetMember: + name, advance := vm.code.GetString(vm.pc) + vm.pc += advance + + err = vm.execSetMember(name) case code.OpGetEnv: envIndex, advance := vm.code.GetUint(vm.pc) |
