[Interpreter] Ensure ToBoolean bytecodes are correctly emitted at the start of basic blocks
Existing code was assuming that 'lexical' blocks were the same as basic blocks, therefore code which emitted jumps within a lexical block (e.g., logical or) would in some occassions incorrectly omit a necessary ToBoolean. This change removes Enter/LeaveBlock from BytecodeArrayBuilder and instead tracks basic blocks via label bindings and jump operations. The change also ensures we don't emit dead code at the end of a basic block, and adds tests of the edge cases. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1406983010 Cr-Commit-Position: refs/heads/master@{#31741}
Showing
This diff is collapsed.
Please
register
or
sign in
to comment