Skip to content

Commit d3fee6e

Browse files
committed
Fix OpLoadEnv disassemble
1 parent 3c23d10 commit d3fee6e

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

vm/program.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ func (program *Program) Disassemble() string {
9797
case OpLoadFunc:
9898
argument("OpLoadFunc")
9999

100+
case OpLoadEnv:
101+
code("OpLoadEnv")
102+
100103
case OpFetch:
101104
code("OpFetch")
102105

@@ -270,7 +273,7 @@ func (program *Program) Disassemble() string {
270273
code("OpEnd")
271274

272275
default:
273-
_, _ = fmt.Fprintf(w, "%v\t%#x\n", ip, op)
276+
_, _ = fmt.Fprintf(w, "%v\t%#x (unknown)\n", ip, op)
274277
}
275278
}
276279
_ = w.Flush()

vm/program_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func TestProgram_Disassemble(t *testing.T) {
1515
Arguments: []int{1},
1616
}
1717
d := program.Disassemble()
18-
if strings.Contains(d, "\t0x") {
18+
if strings.Contains(d, "(unknown)") {
1919
t.Errorf("cannot disassemble all opcodes")
2020
}
2121
}

vm/vm.go

+1
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ func (vm *VM) Run(program *Program, env interface{}) (_ interface{}, err error)
125125

126126
case OpLoadEnv:
127127
vm.push(env)
128+
128129
case OpMethod:
129130
a := vm.pop()
130131
vm.push(runtime.FetchMethod(a, program.Constants[arg].(*runtime.Method)))

0 commit comments

Comments
 (0)