Commit abdcb7e8 authored by Mike Bostock's avatar Mike Bostock

Fix #2976. Document removed internals.

parent 55a8388d
......@@ -47,6 +47,7 @@ To the consternation of some users, 3.x employed Unicode variable names such as
* [Number Formats](#number-formats-d3-format)
* [Geographies](#geographies-d3-geo)
* [Hierarchies](#hierarchies-d3-hierarchy)
* [Internals](#internals)
* [Interpolators](#interpolators-d3-interpolate)
* [Paths](#paths-d3-path)
* [Polygons](#polygons-d3-polygon)
......@@ -553,6 +554,33 @@ The circle-packing layout, [d3.pack](, h
A non-hierarchical implementation is also available as [d3.packSiblings](, and the smallest enclosing circle implementation is available as [d3.packEnclose]( [Pack padding]( now applies between a parent and its children, as well as between adjacent siblings. In addition, you can now specify padding as a function that is computed dynamically for each parent.
## Internals
The d3.rebind method has been removed. (See the [3.x source]( If you want to wrap a getter-setter method, the recommend pattern is to implement a wrapper method and check the return value. For example, given a *component* that uses an internal [*dispatch*](#dispatches-d3-dispatch), *component*.on can rebind *dispatch*.on as follows:
component.on = function() {
var value = dispatch.on.apply(dispatch, arguments);
return value === dispatch ? component : value;
The d3.functor method has been removed. (See the [3.x source]( If you want to promote a constant value to a function, the recommended pattern is to implement a closure that returns the constant value. If desired, you can use a helper method as follows:
function constant(x) {
return function() {
return x;
Given a value *x*, to promote *x* to a function if it is not already:
var fx = typeof x === "function" ? x : constant(x);
## [Interpolators (d3-interpolate)](
The [d3.interpolate]( method no longer delegates to d3.interpolators, which has been removed; its behavior is now defined by the library. It is now slightly faster in the common case that *b* is a number. It only uses [d3.interpolateRgb]( if *b* is a valid CSS color specifier (and not approximately one). And if the end value *b* is null, undefined, true or false, d3.interpolate now returns a constant function which always returns *b*.
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment