Prior to this change, transitions used transition.each internally, which had the unexpected side-effect of enabling transitions on d3.transition(selection) when called from within a tween function. This would only occur on the first invocation of the tween function when the elapsed time between the transition creation and the transition start was greater than the transition delay; however, this is fairly common as the default delay for transitions is zero. This bug caused unexpected behavior if you tried to redraw an axis within a custom tween function: in some cases, the synchronous redraw of the axis would compete with a concurrent transition, causing unexpected behavior. By avoiding the use of transition.each internally, the user now controls when automatic transitions are enabled.
…liminate null strings, which generate an error from classed(value, false). Fixes #675.
…lement to select. When using Sizzle, `undefined` is returned since ` === undefined`. Without Sizzle, `d3_select` returns `null`. This is a problem, because IE9 does not support calling `HTMLElement.insertBefore` (see selection-insert.js) with `undefined` as the second argument; `null` is fine, though.