3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Object Registry: get instance of requested and optionally registered object. * * Object (instance of a class) is generater, or returned from internal cache * if it was requested and instantiated before. * * @author Time.ly Network, Inc. * @since 2.0 * @package Ai1EC * @subpackage Ai1EC.Registry */ class Ai1ec_Object_Registry { /** * @var array The internal objects cache */ private $_objects = array(); /** * @var Ai1ec_Loader The Ai1ec_Loader instance used by the registry */ private $_loader = null; /** * Get class instance. * * Return an instance for the requested key, this method has an internal * cache. * * @param string $key Name of previously registered object or parseable * class name * * @return object Instance of the requested class */ public function get( $key ) { $class_data = $this->_loader->resolve_class_name( $key ); if ( ! $class_data ) { throw new Ai1ec_Bootstrap_Exception( 'Unable to resolve class for "' . $key . '"' ); } $class_name = $class_data['c']; $instantiator = $class_data['i']; $args = array_slice( func_get_args(), 1 ); if ( isset ( $class_data['r'] ) ) { array_unshift( $args, $this ); } if ( Ai1ec_Loader::NEWINST === $instantiator ) { return $this->initiate( $class_name, $args ); } if ( Ai1ec_Loader::GLOBALINST === $instantiator ) { if ( ! isset( $this->_objects[$class_name] ) ) { // Ask the loader to load the required files to avoid autoloader $this->_loader->load( $class_name ); $this->_objects[$class_name] = $this->initiate( $class_name, $args ); } return $this->_objects[$class_name]; } // Ok it's a factory. $factory = explode( '.', $instantiator ); return $this->dispatch( $factory[0], $factory[1], $args ); } /** * Instanciate the class given the class names and arguments. * * @param string $class_name The name of the class to instanciate. * @param array $argv An array of aguments for construction. * * @return object A new instance of the requested class */ public function initiate( $class_name, array $argv = array() ) { switch ( count( $argv ) ) { case 0: return new $class_name(); case 1: return new $class_name( $argv[0] ); case 2: return new $class_name( $argv[0], $argv[1] ); case 3: return new $class_name( $argv[0], $argv[1], $argv[2] ); case 4: return new $class_name( $argv[0], $argv[1], $argv[2], $argv[3] ); case 5: return new $class_name( $argv[0], $argv[1], $argv[2], $argv[3], $argv[4] ); } $reflected = new ReflectionClass( $class_name ); return $reflected->newInstanceArgs( $argv ); } /** * A call_user_func_array alternative. * * @param string $class * @param string $method * @param array $params * * @return mixed */ public function dispatch( $class, $method, $params = array() ) { if ( empty( $class ) ) { switch ( count( $params) ) { case 0: return $method(); case 1: return $method( $params[0] ); case 2: return $method( $params[0], $params[1] ); case 3: return $method( $params[0], $params[1], $params[2] ); default: return call_user_func_array( array( $class, $method ), $params ); } } else { // get an instance of the class $class = $this->get( $class ); switch ( count( $params) ) { case 0: return $class->{$method}(); case 1: return $class->{$method}( $params[0] ); case 2: return $class->{$method}( $params[0], $params[1] ); case 3: return $class->{$method}( $params[0], $params[1], $params[2] ); default: return call_user_func_array( array( $class, $method ), $params ); } } } /** * Constructor * * Initialize the Registry * * @param Ai1ec_Loader $ai1ec_loader Instance of Ai1EC classes loader * * @return void Constructor does not return */ public function __construct( $ai1ec_loader ) { $this->_loader = $ai1ec_loader; } } class Ai1ec_Core_Callback { protected $_registry = null; protected $_registry_name = null; protected $_method = null; public function __construct( Ai1ec_Objects_Registry $registry, $path, $method ) { $this->_registry = $registry; $this->_registry_name = $path; $this->_method = $method; } public function execute( array $argv ) { return $this->_registry->get( $this->_registry_name )->{$this->_method}( $argv ); } } $registry = new Ai1ec_Object_Registry(null); for($i = 0; $i < 200; $i++){ $obj = new Ai1ec_Core_Callback($registry, "bla bla bla", "method name"); }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
2 jumps found. (Code = 44) Position 1 = 15, Position 2 = 6
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 15, Position 2 = 6
Branch analysis from position: 15
Branch analysis from position: 6
filename:       /in/n5aFu
function name:  (null)
number of ops:  16
compiled vars:  !0 = $registry, !1 = $i, !2 = $obj
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  187     0  E >   NEW                                              $3      'Ai1ec_Object_Registry'
          1        SEND_VAL_EX                                              null
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !0, $3
  189     4        ASSIGN                                                   !1, 0
          5      > JMP                                                      ->13
  190     6    >   NEW                                              $7      'Ai1ec_Core_Callback'
          7        SEND_VAR_EX                                              !0
          8        SEND_VAL_EX                                              'bla+bla+bla'
          9        SEND_VAL_EX                                              'method+name'
         10        DO_FCALL                                      0          
         11        ASSIGN                                                   !2, $7
  189    12        PRE_INC                                                  !1
         13    >   IS_SMALLER                                               !1, 200
         14      > JMPNZ                                                    ~11, ->6
  191    15    > > RETURN                                                   1

Class Ai1ec_Object_Registry:
Function get:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 14
Branch analysis from position: 8
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 14
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 27
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 35
Branch analysis from position: 30
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 35
2 jumps found. (Code = 43) Position 1 = 38, Position 2 = 56
Branch analysis from position: 38
2 jumps found. (Code = 43) Position 1 = 42, Position 2 = 53
Branch analysis from position: 42
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 53
Branch analysis from position: 56
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
filename:       /in/n5aFu
function name:  get
number of ops:  72
compiled vars:  !0 = $key, !1 = $class_data, !2 = $class_name, !3 = $instantiator, !4 = $args, !5 = $factory
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   37     0  E >   RECV                                             !0      
   38     1        FETCH_OBJ_R                                      ~6      '_loader'
          2        INIT_METHOD_CALL                                         ~6, 'resolve_class_name'
          3        SEND_VAR_EX                                              !0
          4        DO_FCALL                                      0  $7      
          5        ASSIGN                                                   !1, $7
   39     6        BOOL_NOT                                         ~9      !1
          7      > JMPZ                                                     ~9, ->14
   40     8    >   NEW                                              $10     'Ai1ec_Bootstrap_Exception'
   41     9        CONCAT                                           ~11     'Unable+to+resolve+class+for+%22', !0
         10        CONCAT                                           ~12     ~11, '%22'
         11        SEND_VAL_EX                                              ~12
         12        DO_FCALL                                      0          
         13      > THROW                                         0          $10
   44    14    >   FETCH_DIM_R                                      ~14     !1, 'c'
         15        ASSIGN                                                   !2, ~14
   45    16        FETCH_DIM_R                                      ~16     !1, 'i'
         17        ASSIGN                                                   !3, ~16
   46    18        FUNC_GET_ARGS                                    ~18     1
         19        ASSIGN                                                   !4, ~18
   47    20        ISSET_ISEMPTY_DIM_OBJ                         0          !1, 'r'
         21      > JMPZ                                                     ~20, ->27
   48    22    >   INIT_FCALL                                               'array_unshift'
         23        SEND_REF                                                 !4
         24        FETCH_THIS                                       ~21     
         25        SEND_VAL                                                 ~21
         26        DO_ICALL                                                 
   50    27    >   FETCH_CLASS_CONSTANT                             ~23     'Ai1ec_Loader', 'NEWINST'
         28        IS_IDENTICAL                                             !3, ~23
         29      > JMPZ                                                     ~24, ->35
   51    30    >   INIT_METHOD_CALL                                         'initiate'
   52    31        SEND_VAR_EX                                              !2
         32        SEND_VAR_EX                                              !4
         33        DO_FCALL                                      0  $25     
         34      > RETURN                                                   $25
   56    35    >   FETCH_CLASS_CONSTANT                             ~26     'Ai1ec_Loader', 'GLOBALINST'
         36        IS_IDENTICAL                                             !3, ~26
         37      > JMPZ                                                     ~27, ->56
   57    38    >   FETCH_OBJ_IS                                     ~28     '_objects'
         39        ISSET_ISEMPTY_DIM_OBJ                         0  ~29     ~28, !2
         40        BOOL_NOT                                         ~30     ~29
         41      > JMPZ                                                     ~30, ->53
   59    42    >   FETCH_OBJ_R                                      ~31     '_loader'
         43        INIT_METHOD_CALL                                         ~31, 'load'
         44        SEND_VAR_EX                                              !2
         45        DO_FCALL                                      0          
   60    46        INIT_METHOD_CALL                                         'initiate'
   61    47        SEND_VAR_EX                                              !2
         48        SEND_VAR_EX                                              !4
         49        DO_FCALL                                      0  $35     
   60    50        FETCH_OBJ_W                                      $33     '_objects'
         51        ASSIGN_DIM                                               $33, !2
   61    52        OP_DATA                                                  $35
   65    53    >   FETCH_OBJ_R                                      ~36     '_objects'
         54        FETCH_DIM_R                                      ~37     ~36, !2
         55      > RETURN                                                   ~37
   68    56    >   INIT_FCALL                                               'explode'
         57        SEND_VAL                                                 '.'
         58        SEND_VAR                                                 !3
         59        DO_ICALL                                         $38     
         60        ASSIGN                                                   !5, $38
   69    61        INIT_METHOD_CALL                                         'dispatch'
         62        CHECK_FUNC_ARG                                           
   70    63        FETCH_DIM_FUNC_ARG                               $40     !5, 0
         64        SEND_FUNC_ARG                                            $40
         65        CHECK_FUNC_ARG                                           
   71    66        FETCH_DIM_FUNC_ARG                               $41     !5, 1
         67        SEND_FUNC_ARG                                            $41
   70    68        SEND_VAR_EX                                              !4
         69        DO_FCALL                                      0  $42     
         70      > RETURN                                                   $42
   74    71*     > RETURN                                                   null

End of function get

Function initiate:
Finding entry points
Branch analysis from position: 0
8 jumps found. (Code = 187) Position 1 = 17, Position 2 = 22, Position 3 = 30, Position 4 = 41, Position 5 = 55, Position 6 = 72, Position 7 = 92, Position 8 = 4
Branch analysis from position: 17
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 22
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 30
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 41
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 55
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 72
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 92
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 4
2 jumps found. (Code = 44) Position 1 = 6, Position 2 = 17
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 22
Branch analysis from position: 8
2 jumps found. (Code = 44) Position 1 = 10, Position 2 = 30
Branch analysis from position: 10
2 jumps found. (Code = 44) Position 1 = 12, Position 2 = 41
Branch analysis from position: 12
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 55
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 16, Position 2 = 72
Branch analysis from position: 16
1 jumps found. (Code = 42) Position 1 = 92
Branch analysis from position: 92
Branch analysis from position: 72
Branch analysis from position: 55
Branch analysis from position: 41
Branch analysis from position: 30
Branch analysis from position: 22
Branch analysis from position: 17
filename:       /in/n5aFu
function name:  initiate
number of ops:  102
compiled vars:  !0 = $class_name, !1 = $argv, !2 = $reflected
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   84     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      <array>
   85     2        COUNT                                            ~3      !1
          3      > SWITCH_LONG                                              ~3, [ 0:->17, 1:->22, 2:->30, 3:->41, 4:->55, 5:->72, ], ->92
   86     4    >   CASE                                                     ~3, 0
          5      > JMPNZ                                                    ~4, ->17
   89     6    >   CASE                                                     ~3, 1
          7      > JMPNZ                                                    ~4, ->22
   92     8    >   CASE                                                     ~3, 2
          9      > JMPNZ                                                    ~4, ->30
   95    10    >   CASE                                                     ~3, 3
         11      > JMPNZ                                                    ~4, ->41
   98    12    >   CASE                                                     ~3, 4
         13      > JMPNZ                                                    ~4, ->55
  101    14    >   CASE                                                     ~3, 5
         15      > JMPNZ                                                    ~4, ->72
         16    > > JMP                                                      ->92
   87    17    >   FETCH_CLASS                                   0  $5      !0
         18        NEW                                              $6      $5
         19        DO_FCALL                                      0          
         20        FREE                                                     ~3
         21      > RETURN                                                   $6
   90    22    >   FETCH_CLASS                                   0  $8      !0
         23        NEW                                              $9      $8
         24        CHECK_FUNC_ARG                                           
         25        FETCH_DIM_FUNC_ARG                               $10     !1, 0
         26        SEND_FUNC_ARG                                            $10
         27        DO_FCALL                                      0          
         28        FREE                                                     ~3
         29      > RETURN                                                   $9
   93    30    >   FETCH_CLASS                                   0  $12     !0
         31        NEW                                              $13     $12
         32        CHECK_FUNC_ARG                                           
         33        FETCH_DIM_FUNC_ARG                               $14     !1, 0
         34        SEND_FUNC_ARG                                            $14
         35        CHECK_FUNC_ARG                                           
         36        FETCH_DIM_FUNC_ARG                               $15     !1, 1
         37        SEND_FUNC_ARG                                            $15
         38        DO_FCALL                                      0          
         39        FREE                                                     ~3
         40      > RETURN                                                   $13
   96    41    >   FETCH_CLASS                                   0  $17     !0
         42        NEW                                              $18     $17
         43        CHECK_FUNC_ARG                                           
         44        FETCH_DIM_FUNC_ARG                               $19     !1, 0
         45        SEND_FUNC_ARG                                            $19
         46        CHECK_FUNC_ARG                                           
         47        FETCH_DIM_FUNC_ARG                               $20     !1, 1
         48        SEND_FUNC_ARG                                            $20
         49        CHECK_FUNC_ARG                                           
         50        FETCH_DIM_FUNC_ARG                               $21     !1, 2
         51        SEND_FUNC_ARG                                            $21
         52        DO_FCALL                                      0          
         53        FREE                                                     ~3
         54      > RETURN                                                   $18
   99    55    >   FETCH_CLASS                                   0  $23     !0
         56        NEW                                              $24     $23
         57        CHECK_FUNC_ARG                                           
         58        FETCH_DIM_FUNC_ARG                               $25     !1, 0
         59        SEND_FUNC_ARG                                            $25
         60        CHECK_FUNC_ARG                                           
         61        FETCH_DIM_FUNC_ARG                               $26     !1, 1
         62        SEND_FUNC_ARG                                            $26
         63        CHECK_FUNC_ARG                                           
         64        FETCH_DIM_FUNC_ARG                               $27     !1, 2
         65        SEND_FUNC_ARG                                            $27
         66        CHECK_FUNC_ARG                                           
         67        FETCH_DIM_FUNC_ARG                               $28     !1, 3
         68        SEND_FUNC_ARG                                            $28
         69        DO_FCALL                                      0          
         70        FREE                                                     ~3
         71      > RETURN                                                   $24
  102    72    >   FETCH_CLASS                                   0  $30     !0
         73        NEW                                              $31     $30
         74        CHECK_FUNC_ARG                                           
         75        FETCH_DIM_FUNC_ARG                               $32     !1, 0
         76        SEND_FUNC_ARG                                            $32
         77        CHECK_FUNC_ARG                                           
         78        FETCH_DIM_FUNC_ARG                               $33     !1, 1
         79        SEND_FUNC_ARG                                            $33
         80        CHECK_FUNC_ARG                                           
         81        FETCH_DIM_FUNC_ARG                               $34     !1, 2
         82        SEND_FUNC_ARG                                            $34
         83        CHECK_FUNC_ARG                                           
         84        FETCH_DIM_FUNC_ARG                               $35     !1, 3
         85        SEND_FUNC_ARG                                            $35
         86        CHECK_FUNC_ARG                                           
         87        FETCH_DIM_FUNC_ARG                               $36     !1, 4
         88        SEND_FUNC_ARG                                            $36
         89        DO_FCALL                                      0          
         90        FREE                                                     ~3
         91      > RETURN                                                   $31
         92    >   FREE                                                     ~3
  105    93        NEW                                              $38     'ReflectionClass'
         94        SEND_VAR_EX                                              !0
         95        DO_FCALL                                      0          
         96        ASSIGN                                                   !2, $38
  106    97        INIT_METHOD_CALL                                         !2, 'newInstanceArgs'
         98        SEND_VAR_EX                                              !1
         99        DO_FCALL                                      0  $41     
        100      > RETURN                                                   $41
  107   101*     > RETURN                                                   null

End of function initiate

Function dispatch:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 60
Branch analysis from position: 5
6 jumps found. (Code = 187) Position 1 = 16, Position 2 = 20, Position 3 = 27, Position 4 = 37, Position 5 = 50, Position 6 = 7
Branch analysis from position: 16
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 20
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 37
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 50
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
2 jumps found. (Code = 44) Position 1 = 9, Position 2 = 16
Branch analysis from position: 9
2 jumps found. (Code = 44) Position 1 = 11, Position 2 = 20
Branch analysis from position: 11
2 jumps found. (Code = 44) Position 1 = 13, Position 2 = 27
Branch analysis from position: 13
2 jumps found. (Code = 44) Position 1 = 15, Position 2 = 37
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 50
Branch analysis from position: 50
Branch analysis from position: 37
Branch analysis from position: 27
Branch analysis from position: 20
Branch analysis from position: 16
Branch analysis from position: 60
6 jumps found. (Code = 187) Position 1 = 75, Position 2 = 79, Position 3 = 86, Position 4 = 96, Position 5 = 109, Position 6 = 66
Branch analysis from position: 75
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 79
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 86
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 96
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 109
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 66
2 jumps found. (Code = 44) Position 1 = 68, Position 2 = 75
Branch analysis from position: 68
2 jumps found. (Code = 44) Position 1 = 70, Position 2 = 79
Branch analysis from position: 70
2 jumps found. (Code = 44) Position 1 = 72, Position 2 = 86
Branch analysis from position: 72
2 jumps found. (Code = 44) Position 1 = 74, Position 2 = 96
Branch analysis from position: 74
1 jumps found. (Code = 42) Position 1 = 109
Branch analysis from position: 109
Branch analysis from position: 96
Branch analysis from position: 86
Branch analysis from position: 79
Branch analysis from position: 75
filename:       /in/n5aFu
function name:  dispatch
number of ops:  119
compiled vars:  !0 = $class, !1 = $method, !2 = $params
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  118     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV_INIT                                        !2      <array>
  119     3        ISSET_ISEMPTY_CV                                         !0
          4      > JMPZ                                                     ~3, ->60
  120     5    >   COUNT                                            ~4      !2
          6      > SWITCH_LONG                                              ~4, [ 0:->16, 1:->20, 2:->27, 3:->37, ], ->50
  121     7    >   CASE                                                     ~4, 0
          8      > JMPNZ                                                    ~5, ->16
  123     9    >   CASE                                                     ~4, 1
         10      > JMPNZ                                                    ~5, ->20
  125    11    >   CASE                                                     ~4, 2
         12      > JMPNZ                                                    ~5, ->27
  127    13    >   CASE                                                     ~4, 3
         14      > JMPNZ                                                    ~5, ->37
         15    > > JMP                                                      ->50
  122    16    >   INIT_DYNAMIC_CALL                                        !1
         17        DO_FCALL                                      0  $6      
         18        FREE                                                     ~4
         19      > RETURN                                                   $6
  124    20    >   INIT_DYNAMIC_CALL                                        !1
         21        CHECK_FUNC_ARG                                           
         22        FETCH_DIM_FUNC_ARG                               $7      !2, 0
         23        SEND_FUNC_ARG                                            $7
         24        DO_FCALL                                      0  $8      
         25        FREE                                                     ~4
         26      > RETURN                                                   $8
  126    27    >   INIT_DYNAMIC_CALL                                        !1
         28        CHECK_FUNC_ARG                                           
         29        FETCH_DIM_FUNC_ARG                               $9      !2, 0
         30        SEND_FUNC_ARG                                            $9
         31        CHECK_FUNC_ARG                                           
         32        FETCH_DIM_FUNC_ARG                               $10     !2, 1
         33        SEND_FUNC_ARG                                            $10
         34        DO_FCALL                                      0  $11     
         35        FREE                                                     ~4
         36      > RETURN                                                   $11
  128    37    >   INIT_DYNAMIC_CALL                                        !1
         38        CHECK_FUNC_ARG                                           
         39        FETCH_DIM_FUNC_ARG                               $12     !2, 0
         40        SEND_FUNC_ARG                                            $12
         41        CHECK_FUNC_ARG                                           
         42        FETCH_DIM_FUNC_ARG                               $13     !2, 1
         43        SEND_FUNC_ARG                                            $13
         44        CHECK_FUNC_ARG                                           
         45        FETCH_DIM_FUNC_ARG                               $14     !2, 2
         46        SEND_FUNC_ARG                                            $14
         47        DO_FCALL                                      0  $15     
         48        FREE                                                     ~4
         49      > RETURN                                                   $15
  131    50    >   INIT_ARRAY                                       ~16     !0
         51        ADD_ARRAY_ELEMENT                                ~16     !1
         52        INIT_USER_CALL                                0          'call_user_func_array', ~16
  132    53        SEND_ARRAY                                               !2
         54        CHECK_UNDEF_ARGS                                         
         55        DO_FCALL                                      0  $17     
         56        FREE                                                     ~4
         57      > RETURN                                                   $17
         58*       FREE                                                     ~4
         59*       JMP                                                      ->118
  137    60    >   INIT_METHOD_CALL                                         'get'
         61        SEND_VAR_EX                                              !0
         62        DO_FCALL                                      0  $18     
         63        ASSIGN                                                   !0, $18
  138    64        COUNT                                            ~20     !2
         65      > SWITCH_LONG                                              ~20, [ 0:->75, 1:->79, 2:->86, 3:->96, ], ->109
  139    66    >   CASE                                                     ~20, 0
         67      > JMPNZ                                                    ~21, ->75
  141    68    >   CASE                                                     ~20, 1
         69      > JMPNZ                                                    ~21, ->79
  143    70    >   CASE                                                     ~20, 2
         71      > JMPNZ                                                    ~21, ->86
  145    72    >   CASE                                                     ~20, 3
         73      > JMPNZ                                                    ~21, ->96
         74    > > JMP                                                      ->109
  140    75    >   INIT_METHOD_CALL                                         !0, !1
         76        DO_FCALL                                      0  $22     
         77        FREE                                                     ~20
         78      > RETURN                                                   $22
  142    79    >   INIT_METHOD_CALL                                         !0, !1
         80        CHECK_FUNC_ARG                                           
         81        FETCH_DIM_FUNC_ARG                               $23     !2, 0
         82        SEND_FUNC_ARG                                            $23
         83        DO_FCALL                                      0  $24     
         84        FREE                                                     ~20
         85      > RETURN                                                   $24
  144    86    >   INIT_METHOD_CALL                                         !0, !1
         87        CHECK_FUNC_ARG                                           
         88        FETCH_DIM_FUNC_ARG                               $25     !2, 0
         89        SEND_FUNC_ARG                                            $25
         90        CHECK_FUNC_ARG                                           
         91        FETCH_DIM_FUNC_ARG                               $26     !2, 1
         92        SEND_FUNC_ARG                                            $26
         93        DO_FCALL                                      0  $27     
         94        FREE                                                     ~20
         95      > RETURN                                                   $27
  146    96    >   INIT_METHOD_CALL                                         !0, !1
         97        CHECK_FUNC_ARG                                           
         98        FETCH_DIM_FUNC_ARG                               $28     !2, 0
         99        SEND_FUNC_ARG                                            $28
        100        CHECK_FUNC_ARG                                           
        101        FETCH_DIM_FUNC_ARG                               $29     !2, 1
        102        SEND_FUNC_ARG                                            $29
        103        CHECK_FUNC_ARG                                           
        104        FETCH_DIM_FUNC_ARG                               $30     !2, 2
        105        SEND_FUNC_ARG                                            $30
        106        DO_FCALL                                      0  $31     
        107        FREE                                                     ~20
        108      > RETURN                                                   $31
  149   109    >   INIT_ARRAY                                       ~32     !0
        110        ADD_ARRAY_ELEMENT                                ~32     !1
        111        INIT_USER_CALL                                0          'call_user_func_array', ~32
  150   112        SEND_ARRAY                                               !2
        113        CHECK_UNDEF_ARGS                                         
        114        DO_FCALL                                      0  $33     
        115        FREE                                                     ~20
        116      > RETURN                                                   $33
        117*       FREE                                                     ~20
  154   118*     > RETURN                                                   null

End of function dispatch

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/n5aFu
function name:  __construct
number of ops:  4
compiled vars:  !0 = $ai1ec_loader
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  165     0  E >   RECV                                             !0      
  166     1        ASSIGN_OBJ                                               '_loader'
          2        OP_DATA                                                  !0
  167     3      > RETURN                                                   null

End of function __construct

En

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
159.8 ms | 1428 KiB | 17 Q