Fixed usage of LimitIterator
authorAndrey Grachov <andrey.grachov@gmail.com>
Fri, 10 Oct 2014 20:28:30 +0000 (23:28 +0300)
committerFabien Potencier <fabien.potencier@gmail.com>
Fri, 10 Oct 2014 23:28:33 +0000 (01:28 +0200)
lib/Twig/Extension/Core.php
test/Twig/Tests/Fixtures/filters/slice.test

index 761d737..a6bf955 100644 (file)
@@ -697,7 +697,7 @@ function twig_slice(Twig_Environment $env, $item, $start, $length = null, $prese
         }
 
         if ($start >= 0 && $length >= 0) {
-            return iterator_to_array(new LimitIterator($item, $start, $length), $preserveKeys);
+            return iterator_to_array(new LimitIterator($item, $start, $length === null ? -1 : $length), $preserveKeys);
         }
 
         $item = iterator_to_array($item, $preserveKeys);
index b37ad65..fb36a4e 100644 (file)
@@ -19,6 +19,9 @@
 {{ '1234'|slice(1) }}
 {{ '1234'[1:] }}
 {{ '1234'[:1] }}
+
+{{ arr|slice(3)|join('') }}
+{{ arr[2:]|join('') }}
 --DATA--
 return array('start' => 1, 'length' => 2, 'arr' => new ArrayObject(array(1, 2, 3, 4)))
 --EXPECT--
@@ -40,3 +43,6 @@ bc
 234
 234
 1
+
+4
+34
\ No newline at end of file