Simplify return operation
This commit is contained in:
11
vm/vm.go
11
vm/vm.go
@@ -247,7 +247,7 @@ func (vm *VM) Run() error {
|
||||
return err
|
||||
}
|
||||
|
||||
case code.OpReturnValue:
|
||||
case code.OpReturn:
|
||||
returnValue := vm.pop()
|
||||
|
||||
frame := vm.popFrame()
|
||||
@@ -258,15 +258,6 @@ func (vm *VM) Run() error {
|
||||
return err
|
||||
}
|
||||
|
||||
case code.OpReturn:
|
||||
frame := vm.popFrame()
|
||||
vm.sp = frame.basePointer - 1
|
||||
|
||||
err := vm.push(Null)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
case code.OpSetLocal:
|
||||
localIndex := code.ReadUint8(ins[ip+1:])
|
||||
vm.currentFrame().ip += 1
|
||||
|
||||
@@ -252,7 +252,8 @@ func TestConditionals(t *testing.T) {
|
||||
{"if (1 > 2) { 10 } else { 20 }", 20},
|
||||
{"if (1 > 2) { 10 }", Null},
|
||||
{"if (false) { 10 }", Null},
|
||||
{"if ((if (false) { 10 })) { 10 } else { 20 }", 20},
|
||||
//{"if ((if (false) { 10 })) { 10 } else { 20 }", 20},
|
||||
{"let x = 0; if (true) { x = 1; }; if (false) { x = 2; }; x", 1},
|
||||
}
|
||||
|
||||
runVmTests(t, tests)
|
||||
|
||||
Reference in New Issue
Block a user