71859e5566
Will be needed for array_filter/array_map etc This sets things up so that if we define a builtin in systemlib, we rename the corresponding c++ builtin with the prefix __builtin_, so its still available (in case the php builtin wants to delegate some edge cases, and to make it easy to run comparisons between the php and c++ implementations). Also did a little reorganization to get rid of Func::isPHPBuiltin, and use an Attr to identify functions as builtins. C++ builtins can still be identified by checking the Func::info() method. This is needed to allow builtin methods defined in php (such as array_map) to lookup their arguments in the correct context.
840 linhas
11 KiB
Plaintext
840 linhas
11 KiB
Plaintext
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(13) "fb_setprofile"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(15) "pure_function_2"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(2) {
|
|
[0]=>
|
|
int(3)
|
|
[1]=>
|
|
int(4)
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(13) "pure_function"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
int(3)
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(13) "pure_function"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
int(7)
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(13) "pure_function"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
int(4)
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(13) "pure_function"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
int(7)
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(15) "pure_function_2"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
int(14)
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(5) "srand"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
int(3735928559)
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(5) "srand"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(14) "test_exception"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(19) "Exception::__init__"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(20) "Exception::initTrace"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(26) "Exception::getTraceOptions"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(26) "Exception::getTraceOptions"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
bool(false)
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(15) "debug_backtrace"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
bool(false)
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(15) "debug_backtrace"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(11) "array_shift"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
array(4) {
|
|
[0]=>
|
|
array(4) {
|
|
["function"]=>
|
|
string(9) "initTrace"
|
|
["class"]=>
|
|
string(9) "Exception"
|
|
["type"]=>
|
|
string(2) "->"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
[1]=>
|
|
array(6) {
|
|
["file"]=>
|
|
string(%d) "%s"
|
|
["line"]=>
|
|
int(16)
|
|
["function"]=>
|
|
string(8) "__init__"
|
|
["class"]=>
|
|
string(9) "Exception"
|
|
["type"]=>
|
|
string(2) "->"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
[2]=>
|
|
array(4) {
|
|
["file"]=>
|
|
string(%d) "%s"
|
|
["line"]=>
|
|
int(37)
|
|
["function"]=>
|
|
string(14) "test_exception"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
[3]=>
|
|
array(4) {
|
|
["file"]=>
|
|
string(%d) "%s"
|
|
["line"]=>
|
|
int(45)
|
|
["function"]=>
|
|
string(4) "main"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(11) "array_shift"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(10) "strcasecmp"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(2) {
|
|
[0]=>
|
|
string(9) "Exception"
|
|
[1]=>
|
|
string(9) "exception"
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(10) "strcasecmp"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(10) "strcasecmp"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(2) {
|
|
[0]=>
|
|
string(9) "initTrace"
|
|
[1]=>
|
|
string(8) "__init__"
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(10) "strcasecmp"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(11) "array_shift"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
array(3) {
|
|
[0]=>
|
|
array(6) {
|
|
["file"]=>
|
|
string(%d) "%s"
|
|
["line"]=>
|
|
int(16)
|
|
["function"]=>
|
|
string(8) "__init__"
|
|
["class"]=>
|
|
string(9) "Exception"
|
|
["type"]=>
|
|
string(2) "->"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
[1]=>
|
|
array(4) {
|
|
["file"]=>
|
|
string(%d) "%s"
|
|
["line"]=>
|
|
int(37)
|
|
["function"]=>
|
|
string(14) "test_exception"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
[2]=>
|
|
array(4) {
|
|
["file"]=>
|
|
string(%d) "%s"
|
|
["line"]=>
|
|
int(45)
|
|
["function"]=>
|
|
string(4) "main"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(11) "array_shift"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(10) "strcasecmp"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(2) {
|
|
[0]=>
|
|
string(9) "Exception"
|
|
[1]=>
|
|
string(9) "exception"
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(10) "strcasecmp"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(10) "strcasecmp"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(2) {
|
|
[0]=>
|
|
string(8) "__init__"
|
|
[1]=>
|
|
string(8) "__init__"
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(10) "strcasecmp"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(20) "Exception::initTrace"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
NULL
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(19) "Exception::__init__"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
NULL
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(22) "Exception::__construct"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
string(4) "test"
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(22) "Exception::__construct"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
NULL
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(14) "test_exception"
|
|
[2]=>
|
|
array(1) {
|
|
["exception"]=>
|
|
object(Exception)#1 (7) {
|
|
["message":protected]=>
|
|
string(4) "test"
|
|
["code":protected]=>
|
|
int(0)
|
|
["previous":protected]=>
|
|
NULL
|
|
["file":protected]=>
|
|
string(%d) "%s"
|
|
["line":protected]=>
|
|
int(16)
|
|
["trace":protected]=>
|
|
array(2) {
|
|
[0]=>
|
|
array(4) {
|
|
["file"]=>
|
|
string(%d) "%s"
|
|
["line"]=>
|
|
int(37)
|
|
["function"]=>
|
|
string(14) "test_exception"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
[1]=>
|
|
array(4) {
|
|
["file"]=>
|
|
string(%d) "%s"
|
|
["line"]=>
|
|
int(45)
|
|
["function"]=>
|
|
string(4) "main"
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
["inited":"Exception":private]=>
|
|
bool(true)
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(3) "gen"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(3) "gen"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
object(Continuation)#2 (0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(20) "Continuation::rewind"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(18) "Continuation::next"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(16) "gen$continuation"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
object(Continuation)#2 (0) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(16) "gen$continuation"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(18) "Continuation::next"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
NULL
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(20) "Continuation::rewind"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(19) "Continuation::valid"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(19) "Continuation::valid"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
bool(true)
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(21) "Continuation::current"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(21) "Continuation::current"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
int(1)
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(18) "Continuation::next"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(16) "gen$continuation"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
object(Continuation)#2 (0) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(16) "gen$continuation"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(18) "Continuation::next"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
NULL
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(19) "Continuation::valid"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(19) "Continuation::valid"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
bool(true)
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(21) "Continuation::current"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(21) "Continuation::current"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
int(2)
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(18) "Continuation::next"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(16) "gen$continuation"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
object(Continuation)#2 (0) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(16) "gen$continuation"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(18) "Continuation::next"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
NULL
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(19) "Continuation::valid"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(0) {
|
|
}
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(19) "Continuation::valid"
|
|
[2]=>
|
|
array(1) {
|
|
["return"]=>
|
|
bool(false)
|
|
}
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(4) "exit"
|
|
[1]=>
|
|
string(16) "gen$continuation"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(5) "enter"
|
|
[1]=>
|
|
string(13) "fb_setprofile"
|
|
[2]=>
|
|
array(1) {
|
|
["args"]=>
|
|
array(1) {
|
|
[0]=>
|
|
NULL
|
|
}
|
|
}
|
|
}
|