$78a7573a optional-chain.js:25:1
  Registers: 8
  Blocks:    1
  Constants:
    [0] = Undefined
    [1] = Null

block0:
  [   0] GetGlobal dst:reg6, `member`
  [  10] Call dst:reg5, callee:reg6, this_value:Undefined, member, arguments:[Null]
  [  38] GetGlobal dst:reg7, `nested_member`
  [  48] Call dst:reg6, callee:reg7, this_value:Undefined, nested_member, arguments:[Null]
  [  70] GetGlobal dst:reg7, `call_no_args`
  [  80] Call dst:reg5, callee:reg7, this_value:Undefined, call_no_args, arguments:[Null]
  [  a8] GetGlobal dst:reg7, `call_with_args`
  [  b8] Call dst:reg6, callee:reg7, this_value:Undefined, call_with_args, arguments:[Null]
  [  e0] GetGlobal dst:reg7, `computed`
  [  f0] Call dst:reg5, callee:reg7, this_value:Undefined, computed, arguments:[Null]
  [ 118] GetGlobal dst:reg7, `member_then_call`
  [ 128] Call dst:reg6, callee:reg7, this_value:Undefined, member_then_call, arguments:[Null]
  [ 150] End value:reg6


member$b2c55037 optional-chain.js:7:5
  Registers: 7
  Blocks:    3
  Constants:
    [0] = Undefined

block0:
  [   0] Mov2 c0_dst:reg5, c0_src:Undefined, c1_dst:reg6, c1_src:arg0
  [  18] JumpNullish condition:reg6, true_target:block1, false_target:block2

block1:
  [  28] MovSrcUndefined dst:reg6
  [  30] Return value:reg6

block2:
  [  38] Mov dst:reg5, src:reg6
  [  48] GetById dst:reg6, base:reg6, `x`
  [  60] Return value:reg6


nested_member$046f1110 optional-chain.js:10:5
  Registers: 7
  Blocks:    4
  Constants:
    [0] = Undefined

block0:
  [   0] Mov2 c0_dst:reg5, c0_src:Undefined, c1_dst:reg6, c1_src:arg0
  [  18] JumpNullish condition:reg6, true_target:block1, false_target:block2

block1:
  [  28] MovSrcUndefined dst:reg6
  [  30] Return value:reg6

block2:
  [  38] Mov dst:reg5, src:reg6
  [  48] GetById dst:reg6, base:reg6, `x`
  [  60] JumpNullish condition:reg6, true_target:block1, false_target:block3

block3:
  [  70] Mov dst:reg5, src:reg6
  [  80] GetById dst:reg6, base:reg6, `y`
  [  98] Return value:reg6


call_no_args$6ddca629 optional-chain.js:13:5
  Registers: 8
  Blocks:    3
  Constants:
    [0] = Undefined

block0:
  [   0] Mov2 c0_dst:reg5, c0_src:Undefined, c1_dst:reg6, c1_src:arg0
  [  18] JumpNullish condition:reg6, true_target:block1, false_target:block2

block1:
  [  28] MovSrcUndefined dst:reg6
  [  30] Return value:reg6

block2:
  [  38] Mov dst:reg5, src:reg6
  [  48] GetById dst:reg6, base:reg6, `foo`
  [  60] NewArray dst:reg7
  [  70] CallWithArgumentArray dst:reg6, callee:reg6, this_value:reg5, arguments:reg7
  [  88] MovSrcUndefined dst:reg5
  [  90] Return value:reg6


call_with_args$ba85f82f optional-chain.js:16:5
  Registers: 11
  Blocks:    3
  Constants:
    [0] = Undefined
    [1] = Int32(1)
    [2] = Int32(2)
    [3] = Int32(3)

block0:
  [   0] Mov2 c0_dst:reg5, c0_src:Undefined, c1_dst:reg6, c1_src:arg0
  [  18] JumpNullish condition:reg6, true_target:block1, false_target:block2

block1:
  [  28] MovSrcUndefined dst:reg6
  [  30] Return value:reg6

block2:
  [  38] Mov dst:reg5, src:reg6
  [  48] GetById dst:reg6, base:reg6, `foo`
  [  60] Mov3 c0_dst:reg8, c0_src:Int32(1), c1_dst:reg9, c1_src:Int32(2), c2_dst:reg10, c2_src:Int32(3)
  [  80] NewArray dst:reg7, elements:[reg8, reg9, reg10]
  [  a0] CallWithArgumentArray dst:reg6, callee:reg6, this_value:reg5, arguments:reg7
  [  b8] MovSrcUndefined dst:reg5
  [  c0] Return value:reg6


computed$1ad267c2 optional-chain.js:19:5
  Registers: 7
  Blocks:    3
  Constants:
    [0] = Undefined
    [1] = String("hello")

block0:
  [   0] Mov2 c0_dst:reg5, c0_src:Undefined, c1_dst:reg6, c1_src:arg0
  [  18] JumpNullish condition:reg6, true_target:block1, false_target:block2

block1:
  [  28] MovSrcUndefined dst:reg6
  [  30] Return value:reg6

block2:
  [  38] Mov dst:reg5, src:reg6
  [  48] GetById dst:reg6, base:reg6, `hello`
  [  60] Return value:reg6


member_then_call$b33c44d3 optional-chain.js:22:5
  Registers: 8
  Blocks:    3
  Constants:
    [0] = Undefined

block0:
  [   0] Mov2 c0_dst:reg5, c0_src:Undefined, c1_dst:reg6, c1_src:arg0
  [  18] JumpNullish condition:reg6, true_target:block1, false_target:block2

block1:
  [  28] MovSrcUndefined dst:reg6
  [  30] Return value:reg6

block2:
  [  38] Mov dst:reg5, src:reg6
  [  48] GetById dst:reg6, base:reg6, `x`
  [  60] Mov dst:reg5, src:reg6
  [  70] GetById dst:reg6, base:reg6, `foo`
  [  88] NewArray dst:reg7
  [  98] CallWithArgumentArray dst:reg6, callee:reg6, this_value:reg5, arguments:reg7
  [  b0] MovSrcUndefined dst:reg5
  [  b8] Return value:reg6
