diff --git a/src/transition/schedule.js b/src/transition/schedule.js index f1385be..0e8c0d1 100644 --- a/src/transition/schedule.js +++ b/src/transition/schedule.js @@ -2,7 +2,7 @@ import {dispatch} from "d3-dispatch"; import {timer, timeout} from "d3-timer"; var emptyOn = dispatch("start", "end", "interrupt"); -var emptyTweens = []; +var emptyTween = []; var CREATED = 0, SCHEDULED = 1, @@ -17,7 +17,7 @@ export default function(node, key, id, index, group, timing) { index: index, // For context during callback. group: group, // For context during callback. on: emptyOn, - tweens: emptyTweens, + tween: emptyTween, time: timing.time, delay: timing.delay, duration: timing.duration, @@ -56,7 +56,7 @@ export function get(node, key, id) { function start(node, key, self) { var schedules = node[key], - tweens; + tween; // Initialize the self timer when the transition is created. // Note the actual delay is not known until the first callback! @@ -108,18 +108,18 @@ function start(node, key, self) { }); // Dispatch the start event. - // Note this must be done before the tweens are initialized. + // Note this must be done before the tween are initialized. self.on.call("start", node, node.__data__, self.index, self.group); self.state = STARTED; - // Initialize the tweens, deleting null tweens. - tweens = new Array(n = self.tweens.length); + // Initialize the tween, deleting null tween. + tween = new Array(n = self.tween.length); for (i = 0, j = -1; i < n; ++i) { - if (o = self.tweens[i].value.call(node, node.__data__, self.index, self.group)) { - tweens[++j] = o; + if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { + tween[++j] = o; } } - tweens.length = j + 1; + tween.length = j + 1; } function tick(elapsed) { @@ -127,8 +127,8 @@ function start(node, key, self) { e = t >= 1 ? 1 : self.ease.call(null, t), i, n; - for (i = 0, n = tweens.length; i < n; ++i) { - tweens[i].call(null, e); + for (i = 0, n = tween.length; i < n; ++i) { + tween[i].call(null, e); } // Dispatch the end event. diff --git a/src/transition/tween.js b/src/transition/tween.js index a25cc8a..bc2d4cd 100644 --- a/src/transition/tween.js +++ b/src/transition/tween.js @@ -1,26 +1,26 @@ import {get, set} from "./schedule"; function tweenFunction(key, id, name, value) { - var tweens0, tweens1; + var tween0, tween1; return function() { var schedule = set(this, key, id), - tweens = schedule.tweens; + tween = schedule.tween; - // If this node shared tweens with the previous node, - // just assign the updated shared tweens and we’re done! + // If this node shared tween with the previous node, + // just assign the updated shared tween and we’re done! // Otherwise, copy-on-write. - if (tweens !== tweens0) { - tweens1 = (tweens0 = tweens).slice(); - for (var t = {name: name, value: value}, i = 0, n = tweens1.length; i < n; ++i) { - if (tweens1[i].name === name) { - tweens1[i] = t; + if (tween !== tween0) { + tween1 = (tween0 = tween).slice(); + for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1[i] = t; break; } } - if (i === n) tweens1.push(t); + if (i === n) tween1.push(t); } - schedule.tweens = tweens1; + schedule.tween = tween1; }; } @@ -31,9 +31,9 @@ export default function(name, value) { name += ""; if (arguments.length < 2) { - var tweens = get(this.node(), key, id).tweens; - for (var i = 0, n = tweens.length, t; i < n; ++i) { - if ((t = tweens[i]).name === name) { + var tween = get(this.node(), key, id).tween; + for (var i = 0, n = tween.length, t; i < n; ++i) { + if ((t = tween[i]).name === name) { return t.value; } } @@ -50,10 +50,10 @@ export function tweenValue(transition, name, value) { transition.each(function() { var schedule = set(this, key, id), v = value.apply(this, arguments); - (schedule.values || (schedule.values = {}))[name] = v == null ? null : v + ""; + (schedule.value || (schedule.value = {}))[name] = v == null ? null : v + ""; }); return function(node) { - return get(node, key, id).values[name]; + return get(node, key, id).value[name]; }; }