diff options
Diffstat (limited to 'vendor/github.com/d5/tengo/v2/compiler.go')
-rw-r--r-- | vendor/github.com/d5/tengo/v2/compiler.go | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/vendor/github.com/d5/tengo/v2/compiler.go b/vendor/github.com/d5/tengo/v2/compiler.go index e4e04303..6591603c 100644 --- a/vendor/github.com/d5/tengo/v2/compiler.go +++ b/vendor/github.com/d5/tengo/v2/compiler.go @@ -1220,14 +1220,14 @@ func (c *Compiler) optimizeFunc(node parser.Node) { iterateInstructions(c.scopes[c.scopeIndex].Instructions, func(pos int, opcode parser.Opcode, operands []int) bool { switch { + case dsts[pos]: + dstIdx++ + deadCode = false case opcode == parser.OpReturn: if deadCode { return true } deadCode = true - case dsts[pos]: - dstIdx++ - deadCode = false case deadCode: return true } @@ -1242,6 +1242,7 @@ func (c *Compiler) optimizeFunc(node parser.Node) { var appendReturn bool endPos := len(c.scopes[c.scopeIndex].Instructions) newEndPost := len(newInsts) + iterateInstructions(newInsts, func(pos int, opcode parser.Opcode, operands []int) bool { switch opcode { |