$b5fc1514 for-loop-scoping.js:8:1
  Registers: 10
  Blocks:    1
  Constants:
    [0] = Undefined

block0:
  [   0] GetGlobal dst:reg6, `console`
  [  10] GetById dst:reg7, base:reg6, `log` (console.log)
  [  28] GetGlobal dst:reg9, `forLetClosure`
  [  38] Call dst:reg8, callee:reg9, this_value:Undefined, forLetClosure
  [  58] Call dst:reg5, callee:reg7, this_value:reg6, console.log, arguments:[reg8]
  [  80] End value:reg5


forLetClosure$1bcc2cf5 for-loop-scoping.js:2:15
  Registers: 10
  Blocks:    4
  Locals:    fns~0
  Constants:
    [0] = Int32(0)
    [1] = Int32(3)

block0:
  [   0] GetLexicalEnvironment dst:reg4
  [   8] NewArray dst:fns~0
  [  18] CreateLexicalEnvironment dst:reg5, parent:reg4, capacity:0, is_catch_environment:false
  [  30] CreateVariable `i`, is_immutable:false, is_global:false, is_strict:false
  [  40] InitializeLexicalBinding `i`, src:Int32(0)
  [  58] GetBinding dst:reg6, `i`
  [  70] SetLexicalEnvironment environment:reg4
  [  78] CreateLexicalEnvironment dst:reg5, parent:reg4, capacity:0, is_catch_environment:false
  [  90] CreateVariable `i`, is_immutable:false, is_global:false, is_strict:false
  [  a0] InitializeLexicalBinding `i`, src:reg6
  [  b8] Jump target:block2

block1:
  [  c0] GetById dst:reg7, base:fns~0, `push` (fns.push)
  [  d8] Mov dst:reg8, src:fns~0
  [  e8] NewFunction dst:reg9, shared_function_data_index:0
  [ 100] Call dst:reg6, callee:reg7, this_value:reg8, fns.push, arguments:[reg9]
  [ 128] GetBinding dst:reg6, `i`
  [ 140] SetLexicalEnvironment environment:reg4
  [ 148] CreateLexicalEnvironment dst:reg5, parent:reg4, capacity:0, is_catch_environment:false
  [ 160] CreateVariable `i`, is_immutable:false, is_global:false, is_strict:false
  [ 170] InitializeLexicalBinding `i`, src:reg6
  [ 188] GetBinding dst:reg7, `i`
  [ 1a0] PostfixIncrement dst:reg6, src:reg7
  [ 1b0] SetLexicalBinding `i`, src:reg7

block2:
  [ 1c8] GetBinding dst:reg6, `i`
  [ 1e0] JumpLessThan lhs:reg6, rhs:Int32(3), true_target:block1, false_target:block3

block3:
  [ 1f8] SetLexicalEnvironment environment:reg4
  [ 200] GetById dst:reg6, base:fns~0, `map` (fns.map)
  [ 218] Mov dst:reg7, src:fns~0
  [ 228] NewFunction dst:reg8, shared_function_data_index:1
  [ 240] Call dst:reg5, callee:reg6, this_value:reg7, fns.map, arguments:[reg8]
  [ 268] Return value:reg5


$617ce76f for-loop-scoping.js:6:20
  Registers: 6
  Blocks:    1
  Constants:
    [0] = Undefined

block0:
  [   0] Call dst:reg5, callee:arg0, this_value:Undefined, f
  [  20] Return value:reg5


$f755759b for-loop-scoping.js:4:18
  Registers: 6
  Blocks:    1

block0:
  [   0] DynamicGetBinding dst:reg5, `i`
  [  10] Return value:reg5


[ 0, 1, 2 ]
