optimize access to loop, key and value variables
Fixed "in" operator
Use LimitIterator on Iterable objects within the splice filter
Update convert_encoding.rst

The arguments were in incorrect order. The first should be `to` and the second should be `from` - just like the text describes it.
date() documentation correction
minor #1520 date() documentation correction (brandonkelly)

This PR was merged into the 1.16-dev branch.

Discussion
----------

date() documentation correction

The date() docs were incorrectly stating that the argument should be in a format supported by PHP’s [date()](http://php.net/manual/en/function.date.php) function. That’s true of the |date filter which is used to _format_ dates, but not the date() function, which is used to _create_ new dates.

I double-checked the code and whatever you pass into date() ultimately will get passed to a [DateTime constructor](http://php.net/manual/en/datetime.construct.php), which accepts an actual date string, formatted in one of PHP’s [date and time format](http://php.net/manual/en/datetime.formats.php), which is a different beast than the actual format definition string you might pass into PHP’s date() function.

Commits
-------

2f5a927 date() documentation correction
fix inconsistent response from twig_slice
bug #1500 fix inconsistent response from twig_slice (rodnaph)

This PR was squashed before being merged into the 1.16-dev branch (closes #1500).

Discussion
----------

fix inconsistent response from twig_slice

twig_slice can return a boolean when slicing a string outside of its bounds and mbstring is not available.  this would cause a knock-on error in twig_first/twig_last when calling current()

this (as suggested) adds a cast to emulate the behaviour of mb_substr for substr.

Commits
-------

c740060 fix inconsistent response from twig_slice
fixed some assertions
minor #1509 Update convert_encoding.rst: wrong argument order (binarious)

This PR was merged into the 1.16-dev branch.

Discussion
----------

Update convert_encoding.rst: wrong argument order

The arguments are in incorrect order. The first should be `to` and the second should be `from` - just like the text describes it.

Commits
-------

4e1d9a7 Update convert_encoding.rst
deprecated Node::toXml()
fixed typo
feature #1503 Use LimitIterator on Iterable objects within the slice filter (Anthony Sterling)

This PR was merged into the 1.16-dev branch.

Discussion
----------

Use LimitIterator on Iterable objects within the slice filter

Previously the `slice` filter would create an array of items if the subject to be sliced implemented Traversable, this PR instead passes the subject to LimitIterator first - but only if `$start` and `$length` are positive values as LimitIterator does not support the "n'th from end" behaviour.

Our use case is that we have an API client, which we pass to slice, that implements Traversable but lazy loads the items to be returned via an API when `Iterator::current()` is called. Here a quick example:-

```
{% for item in client.items | slice(0,5) %}
    {{ item.name }}
{% endfor %}

<img src="/assets/useless-sodding-banner.jpg" />

{% for item in client.items | slice(5,10) %}
    {{ item.name }}
{% endfor %}
```

Current behaviour would mean that the client would issue 15 requests to the API, 5 for the first block, and 10 for the second (but only return items 5 to 10). This PR means only 10 requests are made, 5 in each block.

I'd imagine this would lower memory usage too.

Commits
-------

fdddb1c Use LimitIterator on Iterable objects within the splice filter
udpated CHANGELOG
bug #1470 Fixed "in" operator (hason)

This PR was merged into the 1.16-dev branch.

Discussion
----------

Fixed "in" operator

Commits
-------

9b6497f Fixed "in" operator
updated CHANGELOG
Fixed resetting debug info in compiler
Fixed guessing a template info for exceptions
Improved error reporting in a sandboxed template
bug #1527 Fixed resetting debug info in compiler (hason)

This PR was merged into the 1.16-dev branch.

Discussion
----------

Fixed resetting debug info in compiler

Commits
-------

0e7cec5 Fixed resetting debug info in compiler