$8053687a for-of-iterator-close.js:6:1
  Registers: 9
  Blocks:    1
  Constants:
    [0] = Undefined

block0:
  [   0] GetGlobal dst:reg6, `forOfBreak`
  [  10] Call dst:reg5, callee:reg6, this_value:Undefined, forOfBreak
  [  30] GetGlobal dst:reg7, `forOfReturn`
  [  40] Call dst:reg6, callee:reg7, this_value:Undefined, forOfReturn
  [  60] GetGlobal dst:reg7, `forAwaitOfBreak`
  [  70] NewPrimitiveArray dst:reg8, elements:[1, 2, 3]
  [  98] Call dst:reg5, callee:reg7, this_value:Undefined, forAwaitOfBreak, arguments:[reg8]
  [  c0] End value:reg5


forOfBreak$7367477b for-of-iterator-close.js:2:18
  Registers: 13
  Blocks:    13
  Locals:    x~0
  Constants:
    [0] = Int32(2)
    [1] = Int32(3)
    [2] = Int32(1)
    [3] = Undefined

block0:
  [   0] GetLexicalEnvironment dst:reg4
  [   8] NewPrimitiveArray dst:reg5, elements:[1, 2, 3]
  [  30] GetIterator dst_iterator_object:reg6, dst_iterator_next:reg7, dst_iterator_done:reg8, iterable:reg5
  [  48] Jump target:block2

block1:
  [  50] End value:Undefined

block2:
  [  58] IteratorNextUnpack dst_value:reg10, dst_done:reg11, iterator_object:reg6, iterator_next:reg7, iterator_done:reg8
  [  70] JumpIf condition:reg11, true_target:block1, false_target:block5

block3:
  [  80] Catch dst:reg9
  [  88] SetLexicalEnvironment environment:reg4
  [  90] Mov dst:reg5, src:Int32(1)

block4:
  [  a0] JumpStrictlyEquals lhs:reg5, rhs:Int32(1), true_target:block8, false_target:block9

block5:
  [  b8] Mov dst:x~0, src:reg10
  [  c8] JumpStrictlyEquals lhs:x~0, rhs:Int32(2), true_target:block6, false_target:block7

block6:
  [  e0] Mov dst:reg5, src:Int32(3)
  [  f0] Jump target:block4

block7:
  [  f8] Jump target:block2

block8:
  [ 100] IteratorClose iterator_object:reg6, iterator_next:reg7, iterator_done:reg8, completion_value:reg9
  [ 118] Throw src:reg9

block9:
  [ 120] IteratorClose iterator_object:reg6, iterator_next:reg7, iterator_done:reg8, completion_value:Undefined
  [ 138] JumpStrictlyEquals lhs:reg5, rhs:Int32(3), true_target:block1, false_target:block10

block10:
  [ 150] JumpStrictlyEquals lhs:reg5, rhs:Int32(2), true_target:block11, false_target:block12

block11:
  [ 168] Return value:reg9

block12:
  [ 170] Throw src:reg9

Exception handlers:
  [  b8 ..  100] => handler block3


forOfReturn$3ba37d59 for-of-iterator-close.js:9:18
  Registers: 12
  Blocks:    10
  Locals:    x~0
  Constants:
    [0] = Int32(2)
    [1] = Int32(1)
    [2] = Undefined

block0:
  [   0] GetLexicalEnvironment dst:reg4
  [   8] NewPrimitiveArray dst:reg5, elements:[1, 2, 3]
  [  30] GetIterator dst_iterator_object:reg6, dst_iterator_next:reg7, dst_iterator_done:reg8, iterable:reg5
  [  48] Jump target:block2

block1:
  [  50] End value:Undefined

block2:
  [  58] IteratorNextUnpack dst_value:reg10, dst_done:reg11, iterator_object:reg6, iterator_next:reg7, iterator_done:reg8
  [  70] JumpIf condition:reg11, true_target:block1, false_target:block5

block3:
  [  80] Catch dst:reg9
  [  88] SetLexicalEnvironment environment:reg4
  [  90] Mov dst:reg5, src:Int32(1)

block4:
  [  a0] JumpStrictlyEquals lhs:reg5, rhs:Int32(1), true_target:block6, false_target:block7

block5:
  [  b8] Mov3 dst1:x~0, src1:reg10, dst2:reg9, src2:x~0, dst3:reg5, src3:Int32(2)
  [  d8] Jump target:block4

block6:
  [  e0] IteratorClose iterator_object:reg6, iterator_next:reg7, iterator_done:reg8, completion_value:reg9
  [  f8] Throw src:reg9

block7:
  [ 100] IteratorClose iterator_object:reg6, iterator_next:reg7, iterator_done:reg8, completion_value:Undefined
  [ 118] JumpStrictlyEquals lhs:reg5, rhs:Int32(2), true_target:block8, false_target:block9

block8:
  [ 130] Return value:reg9

block9:
  [ 138] Throw src:reg9

Exception handlers:
  [  b8 ..   e0] => handler block3


forAwaitOfBreak$976a8bbf for-of-iterator-close.js:16:24
  Registers: 18
  Blocks:    30
  Locals:    x~0
  Constants:
    [0] = Undefined
    [1] = Int32(1)
    [2] = Int32(2)
    [3] = Int32(3)

block0:
  [   0] Yield continuation_label:block1, value:Undefined

block1:
  [  10] GetLexicalEnvironment dst:reg4
  [  18] GetIterator dst_iterator_object:reg5, dst_iterator_next:reg6, dst_iterator_done:reg7, iterable:arg0
  [  30] Jump target:block3

block2:
  [  38] Yield value:Undefined

block3:
  [  48] IteratorNext dst:reg12, iterator_object:reg5, iterator_next:reg6, iterator_done:reg7
  [  60] Mov dst:reg13, src:reg0
  [  70] Await continuation_label:block6, argument:reg12

block4:
  [  80] Catch dst:reg9
  [  88] SetLexicalEnvironment environment:reg4
  [  90] Mov dst:reg8, src:Int32(1)

block5:
  [  a0] JumpStrictlyEquals lhs:reg8, rhs:Int32(1), true_target:block13, false_target:block14

block6:
  [  b8] Mov dst:reg13, src:reg0
  [  c8] GetCompletionFields type_dst:reg14, value_dst:reg15, completion:reg13
  [  d8] JumpStrictlyEquals lhs:reg14, rhs:Int32(1), true_target:block7, false_target:block8

block7:
  [  f0] Mov dst:reg12, src:reg15
  [ 100] ThrowIfNotObject src:reg12
  [ 108] GetById dst:reg11, base:reg12, `done`
  [ 120] JumpIf condition:reg11, true_target:block2, false_target:block9

block8:
  [ 130] Throw src:reg15

block9:
  [ 138] GetById dst:reg10, base:reg12, `value`

block10:
  [ 150] Mov dst:x~0, src:reg10
  [ 160] JumpStrictlyEquals lhs:x~0, rhs:Int32(2), true_target:block11, false_target:block12

block11:
  [ 178] Mov dst:reg8, src:Int32(3)
  [ 188] Jump target:block5

block12:
  [ 190] Jump target:block3

block13:
  [ 198] Jump target:block25

block14:
  [ 1a0] GetMethod dst:reg12, object:reg5, `return`
  [ 1b0] JumpUndefined condition:reg12, true_target:block15, false_target:block16

block15:
  [ 1c0] JumpStrictlyEquals lhs:reg8, rhs:Int32(3), true_target:block2, false_target:block20

block16:
  [ 1d8] Call dst:reg13, callee:reg12, this_value:reg5
  [ 1f8] Await continuation_label:block17, argument:reg13

block17:
  [ 208] Mov dst:reg14, src:reg0
  [ 218] GetCompletionFields type_dst:reg15, value_dst:reg16, completion:reg14
  [ 228] JumpStrictlyEquals lhs:reg15, rhs:Int32(1), true_target:block18, false_target:block19

block18:
  [ 240] ThrowIfNotObject src:reg16
  [ 248] Jump target:block15

block19:
  [ 250] Throw src:reg16

block20:
  [ 258] JumpStrictlyEquals lhs:reg8, rhs:Int32(2), true_target:block21, false_target:block22

block21:
  [ 270] Return value:reg9

block22:
  [ 278] Throw src:reg9

block23:
  [ 280] Throw src:reg9

block24:
  [ 288] Catch dst:reg12
  [ 290] Jump target:block23

block25:
  [ 298] GetMethod dst:reg12, object:reg5, `return`
  [ 2a8] JumpUndefined condition:reg12, true_target:block23, false_target:block26

block26:
  [ 2b8] Call dst:reg13, callee:reg12, this_value:reg5
  [ 2d8] Await continuation_label:block27, argument:reg13

block27:
  [ 2e8] Mov dst:reg14, src:reg0
  [ 2f8] GetCompletionFields type_dst:reg15, value_dst:reg16, completion:reg14
  [ 308] JumpStrictlyEquals lhs:reg15, rhs:Int32(1), true_target:block28, false_target:block29

block28:
  [ 320] Jump target:block23

block29:
  [ 328] Throw src:reg16

Exception handlers:
  [ 150 ..  198] => handler block4
  [ 298 ..  330] => handler block24
