diff --git a/lib/Twig/Extension/Core.php b/lib/Twig/Extension/Core.php index d25e10885..bb5ad0c4d 100644 --- a/lib/Twig/Extension/Core.php +++ b/lib/Twig/Extension/Core.php @@ -693,7 +693,7 @@ function twig_first(Twig_Environment $env, $item) { $elements = twig_slice($env, $item, 0, 1, false); - return is_string($elements) ? $elements[0] : current($elements); + return is_string($elements) ? $elements : current($elements); } /** @@ -708,7 +708,7 @@ function twig_last(Twig_Environment $env, $item) { $elements = twig_slice($env, $item, -1, 1, false); - return is_string($elements) ? $elements[0] : current($elements); + return is_string($elements) ? $elements : current($elements); } /** diff --git a/test/Twig/Tests/Fixtures/filters/first.test b/test/Twig/Tests/Fixtures/filters/first.test index 853465b62..90f49271f 100644 --- a/test/Twig/Tests/Fixtures/filters/first.test +++ b/test/Twig/Tests/Fixtures/filters/first.test @@ -5,6 +5,7 @@ {{ {a: 1, b: 2, c: 3, d: 4}|first }} {{ '1234'|first }} {{ arr|first }} +{{ 'Ä€é'|first }} --DATA-- return array('arr' => new ArrayObject(array(1, 2, 3, 4))) --EXPECT-- @@ -12,3 +13,4 @@ return array('arr' => new ArrayObject(array(1, 2, 3, 4))) 1 1 1 +Ä diff --git a/test/Twig/Tests/Fixtures/filters/last.test b/test/Twig/Tests/Fixtures/filters/last.test index ca3ac0cf8..018fdad89 100644 --- a/test/Twig/Tests/Fixtures/filters/last.test +++ b/test/Twig/Tests/Fixtures/filters/last.test @@ -5,6 +5,7 @@ {{ {a: 1, b: 2, c: 3, d: 4}|last }} {{ '1234'|last }} {{ arr|last }} +{{ 'Ä€é'|last }} --DATA-- return array('arr' => new ArrayObject(array(1, 2, 3, 4))) --EXPECT-- @@ -12,3 +13,4 @@ return array('arr' => new ArrayObject(array(1, 2, 3, 4))) 4 4 4 +é