19
20
```javascript
21
bb0 (block):
22
- [1] store $40[1:7]:TObject<Array> = Array []
23
- [2] store $42[2:7]:TObject<Array> = StoreLocal Let store x$41[2:38]:TObject<Array> = capture $40[1:7]:TObject<Array>
24
- [3] mutate $43[3:7]:TObject<Array> = LoadLocal capture x$41[2:38]:TObject<Array>
25
- [4] mutate $44 = LoadLocal read props$39
26
- [5] mutate $45 = PropertyLoad read $44.bar
27
- [6] mutate $46 = PropertyCall mutate $43[3:7]:TObject<Array>.push(read $45)
28
- [7] Ternary test:bb2 fallthrough=bb1
22
+ [1] store $44[1:8]:TObject<Array> = Array []
23
+ [2] store $46[2:8]:TObject<Array> = StoreLocal Let store x$45[2:42]:TObject<Array> = capture $44[1:8]:TObject<Array>
24
+ [3] mutate $47[3:8]:TObject<Array> = LoadLocal capture x$45[2:42]:TObject<Array>
25
+ [4] mutate $48 = LoadLocal read props$43
26
+ [5] mutate $49 = PropertyLoad read $48.bar
27
+ [6] mutate $50[6:8] = PropertyLoad read $47[3:8]:TObject<Array>.push
28
+ [7] mutate $51 = PropertyCall mutate $47[3:8]:TObject<Array>.[object Object](read $49)
29
+ [8] Ternary test:bb2 fallthrough=bb1
30
bb2 (value):
31
predecessor blocks: bb0
31
- [8] mutate $47 = LoadLocal read props$39
32
- [9] mutate $48 = PropertyLoad read $47.cond
33
- [10] Branch (read $48) then:bb3 else:bb4
32
+ [9] mutate $52 = LoadLocal read props$43
33
+ [10] mutate $53 = PropertyLoad read $52.cond
34
+ [11] Branch (read $53) then:bb3 else:bb4
35
bb3 (value):
36
predecessor blocks: bb2
36
- [13] store $52[13:38]:TObject<Array> = Array []
37
- [14] store $54[14:38]:TObject<Array> = StoreLocal Reassign store x$41[14:38]:TObject<Array> = capture $52[13:38]:TObject<Array>
38
- [15] mutate $55[15:38]:TObject<Array> = LoadLocal capture x$41[14:38]:TObject<Array>
39
- [16] mutate $56 = LoadLocal read props$39
40
- [17] mutate $57 = PropertyLoad read $56.foo
41
- [18] mutate $58[18:35] = PropertyCall mutate $55[15:38]:TObject<Array>.push(read $57)
42
- [19] store $60[19:35] = StoreLocal Const mutate $59[7:35] = capture $58[18:35]
43
- [20] Goto bb1
37
+ [14] store $57[14:42]:TObject<Array> = Array []
38
+ [15] store $59[15:42]:TObject<Array> = StoreLocal Reassign store x$45[15:42]:TObject<Array> = capture $57[14:42]:TObject<Array>
39
+ [16] mutate $60[16:42]:TObject<Array> = LoadLocal capture x$45[15:42]:TObject<Array>
40
+ [17] mutate $61 = LoadLocal read props$43
41
+ [18] mutate $62 = PropertyLoad read $61.foo
42
+ [19] mutate $63[19:42] = PropertyLoad read $60[16:42]:TObject<Array>.push
43
+ [20] mutate $64[20:39] = PropertyCall mutate $60[16:42]:TObject<Array>.[object Object](read $62)
44
+ [21] store $66[21:39] = StoreLocal Const mutate $65[8:39] = capture $64[20:39]
45
+ [22] Goto bb1
46
bb4 (value):
47
predecessor blocks: bb2
46
- [23] store $64[23:38]:TObject<Array> = Array []
47
- [24] store $66[24:38]:TObject<Array> = StoreLocal Reassign store x$41[24:38]:TObject<Array> = capture $64[23:38]:TObject<Array>
48
- [25] mutate $67[25:38]:TObject<Array> = LoadLocal capture x$41[24:38]:TObject<Array>
49
- [26] mutate $68 = LoadLocal read props$39
50
- [27] mutate $69 = PropertyLoad read $68.bar
51
- [28] mutate $70[28:35] = PropertyCall mutate $67[25:38]:TObject<Array>.push(read $69)
52
- [29] store $72[29:35] = StoreLocal Const mutate $59[7:35] = capture $70[28:35]
53
- [30] Goto bb1
48
+ [25] store $70[25:42]:TObject<Array> = Array []
49
+ [26] store $72[26:42]:TObject<Array> = StoreLocal Reassign store x$45[26:42]:TObject<Array> = capture $70[25:42]:TObject<Array>
50
+ [27] mutate $73[27:42]:TObject<Array> = LoadLocal capture x$45[26:42]:TObject<Array>
51
+ [28] mutate $74 = LoadLocal read props$43
52
+ [29] mutate $75 = PropertyLoad read $74.bar
53
+ [30] mutate $76[30:42] = PropertyLoad read $73[27:42]:TObject<Array>.push
54
+ [31] mutate $77[31:39] = PropertyCall mutate $73[27:42]:TObject<Array>.[object Object](read $75)
55
+ [32] store $79[32:39] = StoreLocal Const mutate $65[8:39] = capture $77[31:39]
56
+ [33] Goto bb1
57
bb1 (block):
58
predecessor blocks: bb3 bb4
56
- $75[7:35]:TPhi: phi(bb3: $59, bb4: $71)
57
- x$41[14:38]:TObject<Array>: phi(bb3: x$41, bb4: x$41)
58
- [31] store $74[31:35] = StoreLocal Const mutate _$73[31:35] = capture $59[7:35]
59
- [32] mutate $76 = Global console
60
- [33] mutate $77[33:35] = LoadLocal capture _$73[31:35]
61
- [34] mutate $78 = PropertyCall read $76.log(mutate $77[33:35])
62
- [35] mutate $79:TFunction = Global mut
63
- [36] mutate $80[36:38] = LoadLocal capture x$41[14:38]
64
- [37] mutate $82 = Call read $79:TFunction(mutate $80[36:38])
65
- [38] mutate $83 = LoadLocal capture x$41[14:38]
66
- [39] Return freeze $83
59
+ $82[8:39]:TPhi: phi(bb3: $65, bb4: $78)
60
+ x$45[15:42]:TObject<Array>: phi(bb3: x$45, bb4: x$45)
61
+ [34] store $81[34:39] = StoreLocal Const mutate _$80[34:39] = capture $65[8:39]
62
+ [35] mutate $83 = Global console
63
+ [36] mutate $84[36:39] = LoadLocal capture _$80[34:39]
64
+ [37] mutate $85 = PropertyLoad read $83.log
65
+ [38] mutate $86 = PropertyCall read $83.[object Object](mutate $84[36:39])
66
+ [39] mutate $87:TFunction = Global mut
67
+ [40] mutate $88[40:42] = LoadLocal capture x$45[15:42]
68
+ [41] mutate $90 = Call read $87:TFunction(mutate $88[40:42])
69
+ [42] mutate $91 = LoadLocal capture x$45[15:42]
70
+ [43] Return freeze $91
71
```
72
\ No newline at end of file