facebook/hiphop-php — pull request #1000 by javer (2013-08-29 10:32:23+00:00)
Title: Fixed ArrayIterator constructor zend compatibility

The following PHP code
```php
$arr = new ArrayObject(array(1, 2));

$iter1 = new ArrayIterator($arr);
var_dump($iter1->getArrayCopy());

$iter2 = new ArrayIterator($iter1);
var_dump($iter2->getArrayCopy());
```
prints before patch:
```
array(3) {
[".ArrayObject.storage"]=>
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
[".ArrayObject.flags"]=>
int(0)
[".ArrayObject.iteratorClass"]=>
string(13) "ArrayIterator"
}
array(2) {
[".*.arr"]=>
array(3) {
[".ArrayObject.storage"]=>
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
[".ArrayObject.flags"]=>
int(0)
[".ArrayObject.iteratorClass"]=>
string(13) "ArrayIterator"
}
[".*.flags"]=>
int(0)
}
```
and after patch (as in PHP 5.3-5.5):
```
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
```

This trick is used in Propel ORM and in many other frameworks.