Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pbMST
function name: (null)
number of ops: 51
compiled vars: !0 = $callable, !1 = $answer
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
159 0 E > INIT_FCALL 'add_filter'
1 SEND_VAL 'hello'
2 DECLARE_LAMBDA_FUNCTION ~2 [0]
161 3 SEND_VAL ~2
159 4 DO_FCALL 0
163 5 INIT_FCALL 'add_filter'
6 SEND_VAL 'hello'
7 DECLARE_LAMBDA_FUNCTION ~4 [1]
167 8 SEND_VAL ~4
163 9 DO_FCALL 0
171 10 INIT_FCALL 'apply_filters_typesafe'
11 SEND_VAL 'hello'
12 SEND_VAL <array>
13 SEND_VAL '__return_empty_string'
14 DO_FCALL 0 $6
15 ASSIGN !0, $6
172 16 INIT_DYNAMIC_CALL !0
17 DO_FCALL 0 $8
18 ECHO $8
174 19 ECHO '%0A----------------------%0A'
179 20 INIT_FCALL 'add_filter'
21 SEND_VAL 'answer'
22 DECLARE_LAMBDA_FUNCTION ~9 [2]
181 23 SEND_VAL ~9
179 24 DO_FCALL 0
183 25 INIT_FCALL 'add_filter'
26 SEND_VAL 'answer'
27 DECLARE_LAMBDA_FUNCTION ~11 [3]
185 28 SEND_VAL ~11
183 29 DO_FCALL 0
187 30 INIT_FCALL 'add_filter'
31 SEND_VAL 'answer'
32 DECLARE_LAMBDA_FUNCTION ~13 [4]
189 33 SEND_VAL ~13
187 34 DO_FCALL 0
191 35 INIT_FCALL 'add_filter'
36 SEND_VAL 'answer'
37 DECLARE_LAMBDA_FUNCTION ~15 [5]
193 38 SEND_VAL ~15
191 39 DO_FCALL 0
195 40 INIT_FCALL 'apply_filters_typesafe'
41 SEND_VAL 'answer'
42 SEND_VAL <array>
43 SEND_VAL 0
44 DO_FCALL 0 $17
45 ASSIGN !1, $17
196 46 INIT_FCALL 'printf'
47 SEND_VAL 'The+answer+is%3A+%25d.'
48 SEND_VAR !1
49 DO_ICALL
50 > RETURN 1
Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pbMST
function name: {closure}
number of ops: 2
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
160 0 E > > RETURN 'This+is+not+a+callable'
161 1* > RETURN null
End of Dynamic Function 0
Dynamic Function 1
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pbMST
function name: {closure}
number of ops: 3
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
164 0 E > DECLARE_LAMBDA_FUNCTION ~0 [0]
166 1 > RETURN ~0
167 2* > RETURN null
Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pbMST
function name: {closure}
number of ops: 2
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
165 0 E > > RETURN 'It+works%21'
166 1* > RETURN null
End of Dynamic Function 0
End of Dynamic Function 1
Dynamic Function 2
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pbMST
function name: {closure}
number of ops: 2
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
180 0 E > > RETURN null
181 1* > RETURN null
End of Dynamic Function 2
Dynamic Function 3
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pbMST
function name: {closure}
number of ops: 5
compiled vars: !0 = $previous
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
183 0 E > RECV_INIT !0 null
184 1 COALESCE ~1 !0
2 QM_ASSIGN ~1 21
3 > RETURN ~1
185 4* > RETURN null
End of Dynamic Function 3
Dynamic Function 4
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pbMST
function name: {closure}
number of ops: 3
compiled vars: !0 = $previous
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
187 0 E > RECV_INIT !0 null
188 1 > RETURN '%3Atroll%3A'
189 2* > RETURN null
End of Dynamic Function 4
Dynamic Function 5
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 5
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 7
Branch analysis from position: 7
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pbMST
function name: {closure}
number of ops: 9
compiled vars: !0 = $previous
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
191 0 E > RECV_INIT !0 null
192 1 TYPE_CHECK 2 !0
2 > JMPZ ~1, ->5
3 > QM_ASSIGN ~2 null
4 > JMP ->7
5 > MUL ~3 !0, 2
6 QM_ASSIGN ~2 ~3
7 > > RETURN ~2
193 8* > RETURN null
End of Dynamic Function 5
Function add_filter:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pbMST
function name: add_filter
number of ops: 6
compiled vars: !0 = $tag, !1 = $value
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
4 0 E > RECV !0
1 RECV !1
5 2 FETCH_W global $2 !0
3 ASSIGN_DIM $2
4 OP_DATA !1
6 5 > RETURN null
End of function add_filter
Function _doing_it_wrong:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/pbMST
function name: _doing_it_wrong
number of ops: 8
compiled vars: !0 = $fn, !1 = $message, !2 = $ver
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
8 0 E > RECV !0
1 RECV !1
2 RECV !2
9 3 ROPE_INIT 3 ~4 '%0A--------------%0ADOING+IT+WRONG%3A+'
4 ROPE_ADD 1 ~4 ~4, !1
5 ROPE_END 2 ~3 ~4, '%0A--------------%0A'
6 ECHO ~3
10 7 > RETURN null
End of function _doing_it_wrong
Function apply_filters_typesafe:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 11
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 21
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 22
Branch analysis from position: 22
2 jumps found. (Code = 46) Position 1 = 25, Position 2 = 27
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 28, Position 2 = 59
Branch analysis from position: 28
2 jumps found. (Code = 43) Position 1 = 32, Position 2 = 35
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 57
Branch analysis from position: 57
2 jumps found. (Code = 43) Position 1 = 68, Position 2 = 71
Branch analysis from position: 68
1 jumps found. (Code = 42) Position 1 = 72
Branch analysis from position: 72
2 jumps found. (Code = 43) Position 1 = 91, Position 2 = 104
Branch analysis from position: 91
2 jumps found. (Code = 43) Position 1 = 93, Position 2 = 102
Branch analysis from position: 93
1 jumps found. (Code = 42) Position 1 = 103
Branch analysis from position: 103
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 102
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 104
2 jumps found. (Code = 46) Position 1 = 107, Position 2 = 111
Branch analysis from position: 107
2 jumps found. (Code = 43) Position 1 = 112, Position 2 = 113
Branch analysis from position: 112
2 jumps found. (Code = 43) Position 1 = 115, Position 2 = 141
Branch analysis from position: 115
2 jumps found. (Code = 43) Position 1 = 118, Position 2 = 128
Branch analysis from position: 118
2 jumps found. (Code = 43) Position 1 = 120, Position 2 = 128
Branch analysis from position: 120
2 jumps found. (Code = 43) Position 1 = 130, Position 2 = 139
Branch analysis from position: 130
1 jumps found. (Code = 42) Position 1 = 140
Branch analysis from position: 140
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 139
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 128
Branch analysis from position: 128
Branch analysis from position: 141
2 jumps found. (Code = 43) Position 1 = 144, Position 2 = 145
Branch analysis from position: 144
2 jumps found. (Code = 77) Position 1 = 148, Position 2 = 196
Branch analysis from position: 148
2 jumps found. (Code = 78) Position 1 = 149, Position 2 = 196
Branch analysis from position: 149
2 jumps found. (Code = 46) Position 1 = 151, Position 2 = 156
Branch analysis from position: 151
2 jumps found. (Code = 43) Position 1 = 157, Position 2 = 171
Branch analysis from position: 157
2 jumps found. (Code = 43) Position 1 = 159, Position 2 = 168
Branch analysis from position: 159
1 jumps found. (Code = 42) Position 1 = 169
Branch analysis from position: 169
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 168
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 171
2 jumps found. (Code = 46) Position 1 = 172, Position 2 = 174
Branch analysis from position: 172
2 jumps found. (Code = 46) Position 1 = 175, Position 2 = 180
Branch analysis from position: 175
2 jumps found. (Code = 43) Position 1 = 181, Position 2 = 195
Branch analysis from position: 181
2 jumps found. (Code = 43) Position 1 = 183, Position 2 = 192
Branch analysis from position: 183
1 jumps found. (Code = 42) Position 1 = 193
Branch analysis from position: 193
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 192
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 195
1 jumps found. (Code = 42) Position 1 = 148
Branch analysis from position: 148
Branch analysis from position: 180
Branch analysis from position: 174
Branch analysis from position: 156
Branch analysis from position: 196
2 jumps found. (Code = 43) Position 1 = 198, Position 2 = 225
Branch analysis from position: 198
2 jumps found. (Code = 43) Position 1 = 206, Position 2 = 210
Branch analysis from position: 206
1 jumps found. (Code = 42) Position 1 = 212
Branch analysis from position: 212
2 jumps found. (Code = 43) Position 1 = 227, Position 2 = 236
Branch analysis from position: 227
1 jumps found. (Code = 42) Position 1 = 237
Branch analysis from position: 237
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 236
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 210
2 jumps found. (Code = 43) Position 1 = 227, Position 2 = 236
Branch analysis from position: 227
Branch analysis from position: 236
Branch analysis from position: 225
Branch analysis from position: 196
Branch analysis from position: 145
Branch analysis from position: 113
Branch analysis from position: 111
Branch analysis from position: 71
2 jumps found. (Code = 43) Position 1 = 91, Position 2 = 104
Branch analysis from position: 91
Branch analysis from position: 104
Branch analysis from position: 35
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 42
Branch analysis from position: 49
2 jumps found. (Code = 43) Position 1 = 68, Position 2 = 71
Branch analysis from position: 68
Branch analysis from position: 71
Branch analysis from position: 42
2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 42
Branch analysis from position: 49
Branch analysis from position: 42
Branch analysis from position: 59
Branch analysis from position: 27
Branch analysis from position: 21
2 jumps found. (Code = 46) Position 1 = 25, Position 2 = 27
Branch analysis from position: 25
Branch analysis from position: 27
Branch analysis from position: 11
filename: /in/pbMST
function name: apply_filters_typesafe
number of ops: 239
compiled vars: !0 = $tag, !1 = $arguments, !2 = $value, !3 = $values, !4 = $types_map, !5 = $type, !6 = $is_object, !7 = $accepted_types, !8 = $classes_types, !9 = $class, !10 = $parent, !11 = $original, !12 = $to_filter, !13 = $filter, !14 = $filtered, !15 = $can_do_it_wrong, !16 = $functions, !17 = $expected, !18 = $actual
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
14 0 E > RECV !0
1 RECV_INIT !1 <array>
2 RECV_INIT !2 null
3 RECV_VARIADIC !3
16 4 ISSET_ISEMPTY_VAR 3 !0
5 > JMPZ ~19, ->7
17 6 > > RETURN !2
20 7 > BIND_STATIC !4
21 8 BOOL_NOT ~20 !4
9 > JMPZ ~20, ->11
22 10 > ASSIGN !4, <array>
34 11 > GET_TYPE ~22 !2
12 ASSIGN !5, ~22
35 13 TYPE_CHECK 256 ~24 !2
14 ASSIGN !6, ~24
36 15 ISSET_ISEMPTY_DIM_OBJ 0 !4, !5
16 > JMPZ ~26, ->21
17 > FETCH_DIM_R ~27 !4, !5
18 INIT_ARRAY ~28 ~27
19 QM_ASSIGN ~29 ~28
20 > JMP ->22
21 > QM_ASSIGN ~29 <array>
22 > ASSIGN !7, ~29
39 23 BIND_STATIC !8
41 24 > JMPZ_EX ~31 !6, ->27
25 > ISSET_ISEMPTY_DIM_OBJ 1 ~32 !1, 'accepted_types'
26 BOOL ~31 ~32
27 > > JMPZ ~31, ->59
42 28 > GET_CLASS ~33 !2
29 ASSIGN !9, ~33
43 30 ISSET_ISEMPTY_DIM_OBJ 0 !8, !9
31 > JMPZ ~35, ->35
44 32 > FETCH_DIM_R ~36 !8, !9
33 ASSIGN !7, ~36
43 34 > JMP ->57
46 35 > INIT_ARRAY ~38 !9
36 ASSIGN !7, ~38
47 37 INIT_FCALL 'get_parent_class'
38 SEND_VAR !9
39 DO_ICALL $40
40 ASSIGN !10, $40
48 41 > JMP ->48
49 42 > ASSIGN_DIM !7
43 OP_DATA !10
50 44 INIT_FCALL 'get_parent_class'
45 SEND_VAR !10
46 DO_ICALL $43
47 ASSIGN !10, $43
48 48 > > JMPNZ !10, ->42
53 49 > INIT_FCALL 'array_merge'
50 SEND_VAR !7
51 INIT_FCALL 'class_implements'
52 SEND_VAR !9
53 DO_ICALL $45
54 SEND_VAR $45
55 DO_ICALL $46
56 ASSIGN !7, $46
56 57 > ASSIGN_DIM !8, !9
58 OP_DATA !7
59 59 > INIT_FCALL 'array_replace'
61 60 INIT_ARRAY ~49 <false>, 'nullable'
62 61 ADD_ARRAY_ELEMENT ~49 !7, 'accepted_types'
62 SEND_VAL ~49
64 63 SEND_VAR !1
59 64 DO_ICALL $50
65 ASSIGN !1, $50
67 66 ASSIGN !11, !2
69 67 > JMPZ !6, ->71
68 > CLONE ~53 !2
69 QM_ASSIGN ~54 ~53
70 > JMP ->72
71 > QM_ASSIGN ~54 !2
72 > ASSIGN !12, ~54
71 73 INIT_FCALL 'array_shift'
74 FETCH_W global $56 !0
75 SEND_REF $56
76 DO_ICALL $57
77 ASSIGN !13, $57
73 78 INIT_DYNAMIC_CALL !13
79 SEND_VAR_EX !12
80 SEND_UNPACK !3
81 CHECK_UNDEF_ARGS
82 DO_FCALL 1 $59
83 ASSIGN !14, $59
77 84 INIT_FCALL 'in_array'
85 SEND_VAL 'mixed'
86 FETCH_DIM_R ~61 !1, 'accepted_types'
87 CAST 7 ~62 ~61
88 SEND_VAL ~62
89 DO_ICALL $63
90 > JMPZ $63, ->104
78 91 > FETCH_R global ~64 !0
92 > JMPZ ~64, ->102
79 93 > INIT_FCALL_BY_NAME 'apply_filters_typesafe'
94 SEND_VAR_EX !0
95 SEND_VAR_EX !1
96 SEND_VAR_EX !14
97 SEND_UNPACK !3
98 CHECK_UNDEF_ARGS
99 DO_FCALL 1 $65
100 QM_ASSIGN ~66 $65
101 > JMP ->103
80 102 > QM_ASSIGN ~66 !14
103 > > RETURN ~66
83 104 > BIND_STATIC !15
84 105 BOOL_NOT ~67 !15
106 > JMPZ_EX ~67 ~67, ->111
107 > INIT_FCALL 'function_exists'
108 SEND_VAL '_doing_it_wrong'
109 DO_ICALL $68
110 BOOL ~67 $68
111 > > JMPZ ~67, ->113
85 112 > ASSIGN !15, <true>
88 113 > TYPE_CHECK 2 !14
114 > JMPZ ~70, ->141
89 115 > FETCH_DIM_R ~71 !1, 'nullable'
116 BOOL_NOT ~72 ~71
117 > JMPZ ~72, ->128
90 118 > ASSIGN !14, !11
92 119 > JMPZ !15, ->128
93 120 > INIT_FCALL '_doing_it_wrong'
94 121 SEND_VAL 'apply_filters_typesafe'
95 122 ROPE_INIT 3 ~75 'Filters+for+%27'
123 ROPE_ADD 1 ~75 ~75, !0
124 ROPE_END 2 ~74 ~75, '%27+where+not+expected+to+return+null.'
125 SEND_VAL ~74
96 126 SEND_VAL '5.6'
93 127 DO_FCALL 0
101 128 > FETCH_R global ~78 !0
129 > JMPZ ~78, ->139
102 130 > INIT_FCALL_BY_NAME 'apply_filters_typesafe'
131 SEND_VAR_EX !0
132 SEND_VAR_EX !1
133 SEND_VAR_EX !14
134 SEND_UNPACK !3
135 CHECK_UNDEF_ARGS
136 DO_FCALL 1 $79
137 QM_ASSIGN ~80 $79
138 > JMP ->140
103 139 > QM_ASSIGN ~80 !14
140 > > RETURN ~80
106 141 > BIND_STATIC !16
107 142 BOOL_NOT ~81 !16
143 > JMPZ ~81, ->145
108 144 > ASSIGN !16, <array>
127 145 > FETCH_DIM_R ~83 !1, 'accepted_types'
146 CAST 7 ~84 ~83
147 > FE_RESET_R $85 ~84, ->196
148 > > FE_FETCH_R $85, !5, ->196
128 149 > ISSET_ISEMPTY_DIM_OBJ 0 ~86 !16, !5
150 > JMPZ_EX ~86 ~86, ->156
151 > FETCH_DIM_R ~87 !16, !5
152 INIT_USER_CALL 1 'call_user_func', ~87
153 SEND_USER !14
154 DO_FCALL 0 $88
155 BOOL ~86 $88
156 > > JMPZ ~86, ->171
129 157 > FETCH_R global ~89 !0
158 > JMPZ ~89, ->168
130 159 > INIT_FCALL_BY_NAME 'apply_filters_typesafe'
160 SEND_VAR_EX !0
161 SEND_VAR_EX !1
162 SEND_VAR_EX !14
163 SEND_UNPACK !3
164 CHECK_UNDEF_ARGS
165 DO_FCALL 1 $90
166 QM_ASSIGN ~91 $90
167 > JMP ->169
131 168 > QM_ASSIGN ~91 !14
169 > FE_FREE $85
170 > RETURN ~91
134 171 > > JMPZ_EX ~92 !6, ->174
172 > TYPE_CHECK Generated using Vulcan Logic Dumper, using php 8.0.0