forked from TrueCloudLab/neoneo-go
vm: make REVERSE consume an item from stack
This commit is contained in:
parent
fd264cb06f
commit
d2ccc3b017
2 changed files with 4 additions and 4 deletions
|
@ -722,7 +722,7 @@ func (v *VM) execute(ctx *Context, op Instruction) {
|
||||||
}
|
}
|
||||||
|
|
||||||
case REVERSE:
|
case REVERSE:
|
||||||
a := v.estack.Peek(0).Array()
|
a := v.estack.Pop().Array()
|
||||||
if len(a) > 1 {
|
if len(a) > 1 {
|
||||||
for i, j := 0, len(a)-1; i <= j; i, j = i+1, j-1 {
|
for i, j := 0, len(a)-1; i <= j; i, j = i+1, j-1 {
|
||||||
a[i], a[j] = a[j], a[i]
|
a[i], a[j] = a[j], a[i]
|
||||||
|
|
|
@ -1317,7 +1317,7 @@ func TestREVERSEBadNotArray(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestREVERSEGoodOneElem(t *testing.T) {
|
func TestREVERSEGoodOneElem(t *testing.T) {
|
||||||
prog := makeProgram(REVERSE)
|
prog := makeProgram(DUP, REVERSE)
|
||||||
elements := []int{22}
|
elements := []int{22}
|
||||||
vm := load(prog)
|
vm := load(prog)
|
||||||
vm.estack.PushVal(1)
|
vm.estack.PushVal(1)
|
||||||
|
@ -1337,7 +1337,7 @@ func TestREVERSEGoodStruct(t *testing.T) {
|
||||||
eall := [][]int{eodd, even}
|
eall := [][]int{eodd, even}
|
||||||
|
|
||||||
for _, elements := range eall {
|
for _, elements := range eall {
|
||||||
prog := makeProgram(REVERSE)
|
prog := makeProgram(DUP, REVERSE)
|
||||||
vm := load(prog)
|
vm := load(prog)
|
||||||
vm.estack.PushVal(1)
|
vm.estack.PushVal(1)
|
||||||
|
|
||||||
|
@ -1366,7 +1366,7 @@ func TestREVERSEGood(t *testing.T) {
|
||||||
eall := [][]int{eodd, even}
|
eall := [][]int{eodd, even}
|
||||||
|
|
||||||
for _, elements := range eall {
|
for _, elements := range eall {
|
||||||
prog := makeProgram(REVERSE)
|
prog := makeProgram(DUP, REVERSE)
|
||||||
vm := load(prog)
|
vm := load(prog)
|
||||||
vm.estack.PushVal(1)
|
vm.estack.PushVal(1)
|
||||||
vm.estack.PushVal(elements)
|
vm.estack.PushVal(elements)
|
||||||
|
|
Loading…
Reference in a new issue