Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: (null)
number of ops: 30
compiled vars: !0 = $model, !1 = $view, !2 = $controller
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
10 0 E > DECLARE_CLASS 'model'
88 1 DECLARE_CLASS 'view'
158 2 DECLARE_CLASS 'calculatormodel', 'model'
256 3 DECLARE_CLASS 'calculatorview', 'view'
462 4 NEW $3 'CalculatorModel'
5 DO_FCALL 0
6 ASSIGN !0, $3
463 7 NEW $6 'CalculatorView'
8 SEND_VAR_EX !0
9 DO_FCALL 0
10 ASSIGN !1, $6
464 11 NEW $9 'CalculatorController'
12 SEND_VAR_EX !0
13 DO_FCALL 0
14 ASSIGN !2, $9
467 15 INIT_METHOD_CALL !0, 'attach'
16 SEND_VAR_EX !1
17 DO_FCALL 0
470 18 INIT_METHOD_CALL !2, 'multiply'
19 SEND_VAL_EX 2
20 SEND_VAL_EX 3
21 DO_FCALL 0
473 22 INIT_METHOD_CALL !0, 'notify'
23 DO_FCALL 0
476 24 INIT_METHOD_CALL !1, 'multiply'
25 DO_FCALL 0
479 26 INIT_METHOD_CALL !1, 'render'
27 DO_FCALL 0 $16
28 ECHO $16
29 > RETURN 1
Class Model:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: __construct
number of ops: 5
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
26 0 E > NEW $1 'SplObjectStorage'
1 DO_FCALL 0
2 ASSIGN_OBJ 'observers'
3 OP_DATA $1
27 4 > RETURN null
End of function __construct
Function attach:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 7
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename: /in/6Rprp
function name: attach
number of ops: 8
compiled vars: !0 = $observer
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
35 0 E > RECV !0
36 1 INSTANCEOF !0, 'View'
2 > JMPZ ~1, ->7
37 3 > FETCH_OBJ_R ~2 'observers'
4 INIT_METHOD_CALL ~2, 'attach'
5 SEND_VAR_EX !0
6 DO_FCALL 0
39 7 > > RETURN null
End of function attach
Function detach:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 7
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename: /in/6Rprp
function name: detach
number of ops: 8
compiled vars: !0 = $observer
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
46 0 E > RECV !0
47 1 INSTANCEOF !0, 'View'
2 > JMPZ ~1, ->7
48 3 > FETCH_OBJ_R ~2 'observers'
4 INIT_METHOD_CALL ~2, 'detach'
5 SEND_VAR_EX !0
6 DO_FCALL 0
50 7 > > RETURN null
End of function detach
Function notify:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 8
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 8
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
filename: /in/6Rprp
function name: notify
number of ops: 10
compiled vars: !0 = $value
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
56 0 E > FETCH_OBJ_R ~1 'observers'
1 > FE_RESET_R $2 ~1, ->8
2 > > FE_FETCH_R $2, !0, ->8
57 3 > INIT_METHOD_CALL !0, 'update'
4 FETCH_THIS $3
5 SEND_VAR_EX $3
6 DO_FCALL 0
56 7 > JMP ->2
8 > FE_FREE $2
59 9 > RETURN null
End of function notify
Function set:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: set
number of ops: 9
compiled vars: !0 = $data
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
66 0 E > RECV !0
67 1 INIT_FCALL 'array_merge_recursive'
2 FETCH_OBJ_R ~2 'updates'
3 SEND_VAL ~2
4 SEND_VAR !0
5 DO_ICALL $3
6 ASSIGN_OBJ 'updates'
7 OP_DATA $3
68 8 > RETURN null
End of function set
Function get:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: get
number of ops: 5
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
76 0 E > FETCH_OBJ_R ~0 'updates'
1 VERIFY_RETURN_TYPE ~0
2 > RETURN ~0
77 3* VERIFY_RETURN_TYPE
4* > RETURN null
End of function get
End of class Model.
Class View:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: __construct
number of ops: 4
compiled vars: !0 = $model
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
110 0 E > RECV !0
111 1 ASSIGN_OBJ 'model'
2 OP_DATA !0
112 3 > RETURN null
End of function __construct
Function render:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: render
number of ops: 5
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
118 0 E > FETCH_OBJ_R ~0 'output'
1 VERIFY_RETURN_TYPE ~0
2 > RETURN ~0
119 3* VERIFY_RETURN_TYPE
4* > RETURN null
End of function render
Function update:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 12
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 12
filename: /in/6Rprp
function name: update
number of ops: 13
compiled vars: !0 = $subject
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
126 0 E > RECV !0
127 1 INSTANCEOF !0, 'Model'
2 > JMPZ ~1, ->12
128 3 > INIT_FCALL 'array_merge'
4 FETCH_OBJ_R ~3 'data'
5 SEND_VAL ~3
6 INIT_METHOD_CALL !0, 'get'
7 DO_FCALL 0 $4
8 SEND_VAR $4
9 DO_ICALL $5
10 ASSIGN_OBJ 'data'
11 OP_DATA $5
130 12 > > RETURN null
End of function update
End of class View.
Class Controller:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: __construct
number of ops: 4
compiled vars: !0 = $model
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
149 0 E > RECV !0
150 1 ASSIGN_OBJ 'model'
2 OP_DATA !0
151 3 > RETURN null
End of function __construct
End of class Controller.
Class CalculatorModel:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: __construct
number of ops: 3
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
164 0 E > INIT_STATIC_METHOD_CALL
1 DO_FCALL 0
165 2 > RETURN null
End of function __construct
Function multiply:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: multiply
number of ops: 11
compiled vars: !0 = $numbers
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
172 0 E > RECV !0
173 1 INIT_METHOD_CALL 'set'
174 2 INIT_METHOD_CALL 'operation'
3 SEND_VAL_EX '%2A'
4 SEND_VAR_EX !0
5 DO_FCALL 0 $1
6 INIT_ARRAY ~2 $1, 'result'
175 7 ADD_ARRAY_ELEMENT ~2 !0, 'operands'
8 SEND_VAL_EX ~2
173 9 DO_FCALL 0
177 10 > RETURN null
End of function multiply
Function divide:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: divide
number of ops: 11
compiled vars: !0 = $numbers
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
184 0 E > RECV !0
185 1 INIT_METHOD_CALL 'set'
186 2 INIT_METHOD_CALL 'operation'
3 SEND_VAL_EX '%2F'
4 SEND_VAR_EX !0
5 DO_FCALL 0 $1
6 INIT_ARRAY ~2 $1, 'result'
187 7 ADD_ARRAY_ELEMENT ~2 !0, 'operands'
8 SEND_VAL_EX ~2
185 9 DO_FCALL 0
189 10 > RETURN null
End of function divide
Function sub:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: sub
number of ops: 11
compiled vars: !0 = $numbers
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
196 0 E > RECV !0
197 1 INIT_METHOD_CALL 'set'
198 2 INIT_METHOD_CALL 'operation'
3 SEND_VAL_EX '-'
4 SEND_VAR_EX !0
5 DO_FCALL 0 $1
6 INIT_ARRAY ~2 $1, 'result'
199 7 ADD_ARRAY_ELEMENT ~2 !0, 'operands'
8 SEND_VAL_EX ~2
197 9 DO_FCALL 0
201 10 > RETURN null
End of function sub
Function add:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: add
number of ops: 11
compiled vars: !0 = $numbers
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
208 0 E > RECV !0
209 1 INIT_METHOD_CALL 'set'
210 2 INIT_METHOD_CALL 'operation'
3 SEND_VAL_EX '%2B'
4 SEND_VAR_EX !0
5 DO_FCALL 0 $1
6 INIT_ARRAY ~2 $1, 'result'
211 7 ADD_ARRAY_ELEMENT ~2 !0, 'operands'
8 SEND_VAL_EX ~2
209 9 DO_FCALL 0
213 10 > RETURN null
End of function add
Function operation:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 4, Position 2 = 32
Branch analysis from position: 4
2 jumps found. (Code = 78) Position 1 = 5, Position 2 = 32
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 9
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
Branch analysis from position: 9
6 jumps found. (Code = 188) Position 1 = 19, Position 2 = 22, Position 3 = 25, Position 4 = 28, Position 5 = 31, Position 6 = 10
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
Branch analysis from position: 22
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
Branch analysis from position: 25
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
Branch analysis from position: 31
Branch analysis from position: 10
2 jumps found. (Code = 44) Position 1 = 12, Position 2 = 19
Branch analysis from position: 12
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 22
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 16, Position 2 = 25
Branch analysis from position: 16
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 28
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
Branch analysis from position: 28
Branch analysis from position: 25
Branch analysis from position: 22
Branch analysis from position: 19
Branch analysis from position: 32
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 32
filename: /in/6Rprp
function name: operation
number of ops: 35
compiled vars: !0 = $operator, !1 = $numbers, !2 = $temp, !3 = $n
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
223 0 E > RECV !0
1 RECV !1
224 2 ASSIGN !2, null
225 3 > FE_RESET_R $5 !1, ->32
4 > > FE_FETCH_R $5, !3, ->32
226 5 > TYPE_CHECK 2 !2
6 > JMPZ ~6, ->9
227 7 > ASSIGN !2, !3
228 8 > JMP ->4
232 9 > > SWITCH_STRING !0, [ '%2A':->19, '%2F':->22, '-':->25, '%2B':->28, ], ->31
233 10 > IS_EQUAL !0, '%2A'
11 > JMPNZ ~8, ->19
236 12 > IS_EQUAL !0, '%2F'
13 > JMPNZ ~8, ->22
239 14 > IS_EQUAL !0, '-'
15 > JMPNZ ~8, ->25
242 16 > IS_EQUAL !0, '%2B'
17 > JMPNZ ~8, ->28
18 > > JMP ->31
234 19 > MUL ~9 !2, !3
20 ASSIGN !2, ~9
235 21 > JMP ->31
237 22 > DIV ~11 !2, !3
23 ASSIGN !2, ~11
238 24 > JMP ->31
240 25 > SUB ~13 !2, !3
26 ASSIGN !2, ~13
241 27 > JMP ->31
243 28 > ADD ~15 !2, !3
29 ASSIGN !2, ~15
244 30 > JMP ->31
225 31 > > JMP ->4
32 > FE_FREE $5
248 33 > RETURN !2
249 34* > RETURN null
End of function operation
End of class CalculatorModel.
Class CalculatorView:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: __construct
number of ops: 5
compiled vars: !0 = $model
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
263 0 E > RECV !0
264 1 INIT_STATIC_METHOD_CALL
2 SEND_VAR_EX !0
3 DO_FCALL 0
265 4 > RETURN null
End of function __construct
Function multiply:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: multiply
number of ops: 14
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
272 0 E > INIT_METHOD_CALL 'generateOutput'
273 1 SEND_VAL_EX 'Multiplication'
2 CHECK_FUNC_ARG
274 3 FETCH_OBJ_FUNC_ARG $1 'data'
4 FETCH_DIM_FUNC_ARG $2 $1, 'operands'
5 SEND_FUNC_ARG $2
6 CHECK_FUNC_ARG
275 7 FETCH_OBJ_FUNC_ARG $3 'data'
8 FETCH_DIM_FUNC_ARG $4 $3, 'result'
9 SEND_FUNC_ARG $4
272 10 DO_FCALL 0 $5
11 ASSIGN_OBJ 'output'
275 12 OP_DATA $5
277 13 > RETURN null
End of function multiply
Function divide:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: divide
number of ops: 14
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
283 0 E > INIT_METHOD_CALL 'generateOutput'
284 1 SEND_VAL_EX 'Division'
2 CHECK_FUNC_ARG
285 3 FETCH_OBJ_FUNC_ARG $1 'data'
4 FETCH_DIM_FUNC_ARG $2 $1, 'operands'
5 SEND_FUNC_ARG $2
6 CHECK_FUNC_ARG
286 7 FETCH_OBJ_FUNC_ARG $3 'data'
8 FETCH_DIM_FUNC_ARG $4 $3, 'result'
9 SEND_FUNC_ARG $4
283 10 DO_FCALL 0 $5
11 ASSIGN_OBJ 'output'
286 12 OP_DATA $5
288 13 > RETURN null
End of function divide
Function add:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: add
number of ops: 14
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
294 0 E > INIT_METHOD_CALL 'generateOutput'
295 1 SEND_VAL_EX 'Addiction'
2 CHECK_FUNC_ARG
296 3 FETCH_OBJ_FUNC_ARG $1 'data'
4 FETCH_DIM_FUNC_ARG $2 $1, 'operands'
5 SEND_FUNC_ARG $2
6 CHECK_FUNC_ARG
297 7 FETCH_OBJ_FUNC_ARG $3 'data'
8 FETCH_DIM_FUNC_ARG $4 $3, 'result'
9 SEND_FUNC_ARG $4
294 10 DO_FCALL 0 $5
11 ASSIGN_OBJ 'output'
297 12 OP_DATA $5
299 13 > RETURN null
End of function add
Function sub:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/6Rprp
function name: sub
number of ops: 14
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
305 0 E > INIT_METHOD_CALL 'generateOutput'
306 1 SEND_VAL_EX 'Subtraction'
2 CHECK_FUNC_ARG
307 3 FETCH_OBJ_FUNC_ARG $1 'data'
4 FETCH_DIM_FUNC_ARG $2 $1, 'operands'
5 SEND_FUNC_ARG $2
6 CHECK_FUNC_ARG
308 7 FETCH_OBJ_FUNC_ARG $3 'data'
8 FETCH_DIM_FUNC_ARG $4 $3, 'result'
9 SEND_FUNC_ARG $4
305 10 DO_FCALL 0 $5
11 ASSIGN_OBJ 'output'
308 12 OP_DATA $5
310 13 > RETURN null
End of function sub
Function generateoutput:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 6, Position 2 = 10
Branch analysis from position: 6
2 jumps found. (Code = 78) Position 1 = 7, Position 2 = 10
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
Branch analysis from position: 10
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 10
filename: /in/6Rprp
function name: generateOutput
number of ops: 25
compiled vars: !0 = $operation, !1 = $operands, !2 = $result, !3 = $string, !4 = $value
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
321 0 E > RECV !0
1 RECV !1
2 RECV !2
322 3 CONCAT ~5 !0, '%3Generated using Vulcan Logic Dumper, using php 8.0.0