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