Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/YW00P
function name: (null)
number of ops: 3
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
86 0 E > INIT_NS_FCALL_BY_NAME 'RefactoringGuru%5CPrototype%5CConceptual%5CclientCode'
1 DO_FCALL 0
2 > RETURN 1
Function refactoringguru%5Cprototype%5Cconceptual%5Cclientcode:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 20, Position 2 = 22
Branch analysis from position: 20
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 29
Branch analysis from position: 27
1 jumps found. (Code = 42) Position 1 = 30
Branch analysis from position: 30
2 jumps found. (Code = 43) Position 1 = 34, Position 2 = 36
Branch analysis from position: 34
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
2 jumps found. (Code = 43) Position 1 = 43, Position 2 = 45
Branch analysis from position: 43
1 jumps found. (Code = 42) Position 1 = 46
Branch analysis from position: 46
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 45
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 36
2 jumps found. (Code = 43) Position 1 = 43, Position 2 = 45
Branch analysis from position: 43
Branch analysis from position: 45
Branch analysis from position: 29
2 jumps found. (Code = 43) Position 1 = 34, Position 2 = 36
Branch analysis from position: 34
Branch analysis from position: 36
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 29
Branch analysis from position: 27
Branch analysis from position: 29
filename: /in/YW00P
function name: RefactoringGuru\Prototype\Conceptual\clientCode
number of ops: 47
compiled vars: !0 = $p1, !1 = $p2
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
56 0 E > NEW $2 'RefactoringGuru%5CPrototype%5CConceptual%5CPrototype'
1 DO_FCALL 0
2 ASSIGN !0, $2
57 3 ASSIGN_OBJ !0, 'primitive'
4 OP_DATA 245
58 5 NEW $7 'DateTime'
6 DO_FCALL 0
7 ASSIGN_OBJ !0, 'component'
8 OP_DATA $7
59 9 NEW $10 'RefactoringGuru%5CPrototype%5CConceptual%5CComponentWithBackReference'
10 SEND_VAR_EX !0
11 DO_FCALL 0
12 ASSIGN_OBJ !0, 'circularReference'
13 OP_DATA $10
61 14 CLONE ~12 !0
15 ASSIGN !1, ~12
62 16 FETCH_OBJ_R ~14 !0, 'primitive'
17 FETCH_OBJ_R ~15 !1, 'primitive'
18 IS_IDENTICAL ~14, ~15
19 > JMPZ ~16, ->22
63 20 > ECHO 'Primitive+field+values+have+been+carried+over+to+a+clone.+Yay%21%0A'
62 21 > JMP ->23
65 22 > ECHO 'Primitive+field+values+have+not+been+copied.+Booo%21%0A'
67 23 > FETCH_OBJ_R ~17 !0, 'component'
24 FETCH_OBJ_R ~18 !1, 'component'
25 IS_IDENTICAL ~17, ~18
26 > JMPZ ~19, ->29
68 27 > ECHO 'Simple+component+has+not+been+cloned.+Booo%21%0A'
67 28 > JMP ->30
70 29 > ECHO 'Simple+component+has+been+cloned.+Yay%21%0A'
73 30 > FETCH_OBJ_R ~20 !0, 'circularReference'
31 FETCH_OBJ_R ~21 !1, 'circularReference'
32 IS_IDENTICAL ~20, ~21
33 > JMPZ ~22, ->36
74 34 > ECHO 'Component+with+back+reference+has+not+been+cloned.+Booo%21%0A'
73 35 > JMP ->37
76 36 > ECHO 'Component+with+back+reference+has+been+cloned.+Yay%21%0A'
79 37 > FETCH_OBJ_R ~23 !0, 'circularReference'
38 FETCH_OBJ_R ~24 ~23, 'prototype'
39 FETCH_OBJ_R ~25 !1, 'circularReference'
40 FETCH_OBJ_R ~26 ~25, 'prototype'
41 IS_IDENTICAL ~24, ~26
42 > JMPZ ~27, ->45
80 43 > ECHO 'Component+with+back+reference+is+linked+to+original+object.+Booo%21%0A'
79 44 > JMP ->46
82 45 > ECHO 'Component+with+back+reference+is+linked+to+the+clone.+Yay%21%0A'
84 46 > > RETURN null
End of function refactoringguru%5Cprototype%5Cconceptual%5Cclientcode
Class RefactoringGuru\Prototype\Conceptual\Prototype:
Function __clone:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/YW00P
function name: __clone
number of ops: 13
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
25 0 E > FETCH_OBJ_R ~1 'component'
1 CLONE ~2 ~1
2 ASSIGN_OBJ 'component'
3 OP_DATA ~2
31 4 FETCH_OBJ_R ~4 'circularReference'
5 CLONE ~5 ~4
6 ASSIGN_OBJ 'circularReference'
7 OP_DATA ~5
32 8 FETCH_THIS ~8
9 FETCH_OBJ_W $6 'circularReference'
10 ASSIGN_OBJ $6, 'prototype'
11 OP_DATA ~8
33 12 > RETURN null
End of function __clone
End of class RefactoringGuru\Prototype\Conceptual\Prototype.
Class RefactoringGuru\Prototype\Conceptual\ComponentWithBackReference:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/YW00P
function name: __construct
number of ops: 4
compiled vars: !0 = $prototype
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
45 0 E > RECV !0
47 1 ASSIGN_OBJ 'prototype'
2 OP_DATA !0
48 3 > RETURN null
End of function __construct
End of class RefactoringGuru\Prototype\Conceptual\ComponentWithBackReference.
Generated using Vulcan Logic Dumper, using php 8.0.0