protected function &iteratorGenerator(IGenerator $iterator) { $maxKey = 0; $nonScalarKeyMap = new OrderedMap(); foreach ($iterator as $key => &$value) { $this->makeKeyCompatible($key, $maxKey, $nonScalarKeyMap); (yield $key => $value); } }