ractivejs/ractive — pull request #842 by Rich-Harris (2014-06-21 00:35:26+00:00)
Title: Better runloop

This PR address the underlying issue behind #765, which was that changes were batched too aggressively. It meant that doing `ractive.set()` (or `ractive.update()` or `array.push()` or whatever) inside an observer didn't take effect immediately, and promises resulting from those operations wouldn't resolve.

That made it very hard to do things like

```js
ractive.observe( 'foo', function ( foo ) {
// we want this next line to change the dimensions of a ...
ractive.set( 'paddingLeft', getPadding( foo ) );

// ...but it doesn't, so `updateCanvas` will have out-of-date information
// to work with
updateCanvas();
});
```

That's now fixed. Along the way, a few oddly-named (and in some cases redundant) methods have been consolidated, tweaked and/or removed.