Skip to content

Commit fc5a586

Browse files
committed
Fix missing d3.transition in IE. Fixes d3#1491.
IE doesn’t support __proto__ patching, so if the selection.prototype.transition method isn’t yet defined at the time d3_selectionRoot is defined, it won’t inherit the method when the prototype is patched later! This restores the original order of dependencies so that the transition method is defined before d3_selectionRoot is created.
1 parent 354f54d commit fc5a586

11 files changed

Lines changed: 39 additions & 39 deletions

File tree

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "d3",
3-
"version": "3.3.1",
3+
"version": "3.3.2",
44
"main": "d3.js",
55
"scripts": [
66
"d3.js"

component.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"animation",
1111
"canvas"
1212
],
13-
"version": "3.3.1",
13+
"version": "3.3.2",
1414
"main": "index-browserify.js",
1515
"scripts": [
1616
"d3.js",

d3.js

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
d3 = function() {
22
var d3 = {
3-
version: "3.3.1"
3+
version: "3.3.2"
44
};
55
if (!Date.now) Date.now = function() {
66
return +new Date();
@@ -943,6 +943,29 @@ d3 = function() {
943943
return node;
944944
};
945945
}
946+
d3_selectionPrototype.transition = function() {
947+
var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = d3_transitionInherit || {
948+
time: Date.now(),
949+
ease: d3_ease_cubicInOut,
950+
delay: 0,
951+
duration: 250
952+
};
953+
for (var j = -1, m = this.length; ++j < m; ) {
954+
subgroups.push(subgroup = []);
955+
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
956+
if (node = group[i]) d3_transitionNode(node, i, id, transition);
957+
subgroup.push(node);
958+
}
959+
}
960+
return d3_transition(subgroups, id);
961+
};
962+
d3_selectionPrototype.interrupt = function() {
963+
return this.each(d3_selection_interrupt);
964+
};
965+
function d3_selection_interrupt() {
966+
var lock = this.__transition__;
967+
if (lock) ++lock.active;
968+
}
946969
d3.select = function(node) {
947970
var group = [ typeof node === "string" ? d3_select(node, d3_document) : node ];
948971
group.parentNode = d3_documentElement;
@@ -7584,29 +7607,6 @@ d3 = function() {
75847607
return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition();
75857608
};
75867609
d3.transition.prototype = d3_transitionPrototype;
7587-
d3_selectionPrototype.transition = function() {
7588-
var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = d3_transitionInherit || {
7589-
time: Date.now(),
7590-
ease: d3_ease_cubicInOut,
7591-
delay: 0,
7592-
duration: 250
7593-
};
7594-
for (var j = -1, m = this.length; ++j < m; ) {
7595-
subgroups.push(subgroup = []);
7596-
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
7597-
if (node = group[i]) d3_transitionNode(node, i, id, transition);
7598-
subgroup.push(node);
7599-
}
7600-
}
7601-
return d3_transition(subgroups, id);
7602-
};
7603-
d3_selectionPrototype.interrupt = function() {
7604-
return this.each(d3_selection_interrupt);
7605-
};
7606-
function d3_selection_interrupt() {
7607-
var lock = this.__transition__;
7608-
if (lock) ++lock.active;
7609-
}
76107610
d3_transitionPrototype.select = function(selector) {
76117611
var id = this.id, subgroups = [], subgroup, subnode, node;
76127612
selector = d3_selection_selector(selector);

d3.min.js

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "d3",
3-
"version": "3.3.1",
3+
"version": "3.3.2",
44
"description": "A small, free JavaScript library for manipulating documents based on data.",
55
"keywords": [
66
"dom",

src/selection/interrupt.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import "../transition/transition";
1+
// import "../transition/transition";
22
import "selection";
33

44
d3_selectionPrototype.interrupt = function() {

src/selection/selection.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ import "node";
5050
import "size";
5151
import "enter";
5252

53+
import "transition";
54+
import "interrupt";
55+
5356
// TODO fast singleton implementation?
5457
d3.select = function(node) {
5558
var group = [typeof node === "string" ? d3_select(node, d3_document) : node];

src/selection/transition.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import "../transition/transition";
1+
// import "../transition/transition";
22
import "selection";
33

44
d3_selectionPrototype.transition = function() {

src/start.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
d3 = (function(){
2-
var d3 = {version: "3.3.1"}; // semver
2+
var d3 = {version: "3.3.2"}; // semver

src/transition/transition.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@ d3.transition = function(selection) {
3131

3232
d3.transition.prototype = d3_transitionPrototype;
3333

34-
import "../selection/transition";
35-
import "../selection/interrupt";
36-
3734
import "select";
3835
import "selectAll";
3936
import "filter";

0 commit comments

Comments
 (0)