$b3382404 try-finally.js:8:1 Registers: 8 Blocks: 1 Constants: [0] = Undefined block0: [ 0] GetGlobal dst:reg6, `basicTryFinally` [ 10] Call dst:reg5, callee:reg6, this_value:Undefined, basicTryFinally [ 30] GetGlobal dst:reg7, `breakThroughFinally` [ 40] Call dst:reg6, callee:reg7, this_value:Undefined, breakThroughFinally [ 60] GetGlobal dst:reg7, `nestedTryFinallyWithBreak` [ 70] Call dst:reg5, callee:reg7, this_value:Undefined, nestedTryFinallyWithBreak [ 90] End value:reg5 basicTryFinally$2acf4276 try-finally.js:2:5 Registers: 10 Blocks: 8 Constants: [0] = Int32(1) [1] = Int32(2) [2] = String("finally") [3] = Int32(0) [4] = Undefined block0: [ 0] GetLexicalEnvironment dst:reg4 [ 8] Jump target:block3 block1: [ 10] Catch dst:reg6 [ 18] SetLexicalEnvironment environment:reg4 [ 20] Mov dst:reg5, src:Int32(1) block2: [ 30] GetGlobal dst:reg8, `console` [ 40] GetById dst:reg9, base:reg8, `log` (console.log) [ 58] Call dst:reg7, callee:reg9, this_value:reg8, console.log, arguments:[String("finally")] [ 80] JumpStrictlyEquals lhs:reg5, rhs:Int32(0), true_target:block4, false_target:block5 block3: [ 98] Mov2 dst1:reg6, src1:Int32(1), dst2:reg5, src2:Int32(2) [ b0] Jump target:block2 block4: [ b8] End value:Undefined block5: [ c0] JumpStrictlyEquals lhs:reg5, rhs:Int32(2), true_target:block6, false_target:block7 block6: [ d8] Return value:reg6 block7: [ e0] Throw src:reg6 Exception handlers: [ 98 .. b8] => handler block1 breakThroughFinally$874a42d1 try-finally.js:11:5 Registers: 11 Blocks: 15 Locals: i~0 Constants: [0] = Int32(0) [1] = Int32(10) [2] = Int32(1) [3] = Int32(5) [4] = Int32(3) [5] = Int32(2) [6] = Undefined block0: [ 0] GetLexicalEnvironment dst:reg4 [ 8] Mov dst:i~0, src:Int32(0) [ 18] Jump target:block3 block1: [ 20] Jump target:block7 block2: [ 28] PostfixIncrement dst:reg5, src:i~0 block3: [ 38] JumpLessThan lhs:i~0, rhs:Int32(10), true_target:block1, false_target:block4 block4: [ 50] End value:Undefined block5: [ 58] Catch dst:reg6 [ 60] SetLexicalEnvironment environment:reg4 [ 68] Mov dst:reg5, src:Int32(1) block6: [ 78] GetGlobal dst:reg8, `console` [ 88] GetById dst:reg9, base:reg8, `log` (console.log) [ a0] Mov dst:reg10, src:i~0 [ b0] Call dst:reg7, callee:reg9, this_value:reg8, console.log, arguments:[reg10] [ d8] JumpStrictlyEquals lhs:reg5, rhs:Int32(0), true_target:block10, false_target:block11 block7: [ f0] JumpStrictlyEquals lhs:i~0, rhs:Int32(5), true_target:block8, false_target:block9 block8: [ 108] Mov dst:reg5, src:Int32(3) [ 118] Jump target:block6 block9: [ 120] Mov dst:reg5, src:Int32(0) [ 130] Jump target:block6 block10: [ 138] Jump target:block2 block11: [ 140] JumpStrictlyEquals lhs:reg5, rhs:Int32(3), true_target:block4, false_target:block12 block12: [ 158] JumpStrictlyEquals lhs:reg5, rhs:Int32(2), true_target:block13, false_target:block14 block13: [ 170] Return value:reg6 block14: [ 178] Throw src:reg6 Exception handlers: [ f0 .. 138] => handler block5 nestedTryFinallyWithBreak$ac0322db try-finally.js:22:12 Registers: 12 Blocks: 21 Locals: i~0 Constants: [0] = Int32(0) [1] = Int32(1) [2] = Int32(3) [3] = String("inner") [4] = Int32(2) [5] = Undefined [6] = String("outer") block0: [ 0] GetLexicalEnvironment dst:reg4 [ 8] Mov dst:i~0, src:Int32(0) block1: [ 18] Jump target:block6 block2: [ 20] PostfixIncrement dst:reg5, src:i~0 [ 30] Jump target:block1 block3: [ 38] End value:Undefined block4: [ 40] Catch dst:reg6 [ 48] SetLexicalEnvironment environment:reg4 [ 50] Mov dst:reg5, src:Int32(1) block5: [ 60] GetGlobal dst:reg8, `console` [ 70] GetById dst:reg9, base:reg8, `log` (console.log) [ 88] Call dst:reg7, callee:reg9, this_value:reg8, console.log, arguments:[String("outer")] [ b0] JumpStrictlyEquals lhs:reg5, rhs:Int32(0), true_target:block16, false_target:block17 block6: [ c8] Jump target:block9 block7: [ d0] Catch dst:reg8 [ d8] SetLexicalEnvironment environment:reg4 [ e0] Mov dst:reg7, src:Int32(1) block8: [ f0] GetGlobal dst:reg10, `console` [ 100] GetById dst:reg11, base:reg10, `log` (console.log) [ 118] Call dst:reg9, callee:reg11, this_value:reg10, console.log, arguments:[String("inner")] [ 140] JumpStrictlyEquals lhs:reg7, rhs:Int32(0), true_target:block11, false_target:block12 block9: [ 158] Mov dst:reg7, src:Int32(3) [ 168] Jump target:block8 block10: [ 170] Mov dst:reg5, src:Int32(3) [ 180] Jump target:block5 block11: [ 188] Mov dst:reg5, src:Int32(0) [ 198] Jump target:block5 block12: [ 1a0] JumpStrictlyEquals lhs:reg7, rhs:Int32(3), true_target:block10, false_target:block13 block13: [ 1b8] JumpStrictlyEquals lhs:reg7, rhs:Int32(2), true_target:block14, false_target:block15 block14: [ 1d0] Mov2 dst1:reg5, src1:reg7, dst2:reg6, src2:reg8 [ 1e8] Jump target:block5 block15: [ 1f0] Throw src:reg8 block16: [ 1f8] Jump target:block2 block17: [ 200] JumpStrictlyEquals lhs:reg5, rhs:Int32(3), true_target:block3, false_target:block18 block18: [ 218] JumpStrictlyEquals lhs:reg5, rhs:Int32(2), true_target:block19, false_target:block20 block19: [ 230] Return value:reg6 block20: [ 238] Throw src:reg6 Exception handlers: [ c8 .. 158] => handler block4 [ 158 .. 188] => handler block7 [ 188 .. 1f8] => handler block4 "finally" 0 1 2 3 4 5 "inner" "outer"