0d5d5bca72
Added IR opcodes to perform MIter* instructions in JIT. Added IterBreakV bytecode operation to break out of multiple loops containing iterators. Emitter and assembler were modified to support such use.
25 linhas
403 B
PHP
25 linhas
403 B
PHP
<?php
|
|
|
|
function main() {
|
|
$arr = null;
|
|
print "start iter loop\n";
|
|
foreach ($arr as $x => $y) {
|
|
print "fail";
|
|
}
|
|
print "end iter loop\n";
|
|
$ref = &$arr;
|
|
print "start witer loop\n";
|
|
foreach ($arr as $x => $y) {
|
|
print "fail";
|
|
}
|
|
print "end witer loop\n";
|
|
print "start miter loop\n";
|
|
foreach ($arr as $x => &$y) {
|
|
print "fail";
|
|
}
|
|
print "end of miter loop\n";
|
|
}
|
|
|
|
main();
|
|
|