sequential: function(object) { var callbacks = this._callbacks(slice(arguments, 1)); each(object, function(value, key) { this._push(callbacks, [value, key]); }, this); return this; },
push: function(session, preset) { session = merge({}, session); preset = merge({}, preset); var sliced = this.index < this.session.length - 1; if (this.index < this.session.length - 1) this.session = slice(this.session, 0, -(this.session.length - 1 - this.index)); session = { time: +(new Date()), data: session, preset: preset }; if (this.equals(session.data)) { return session; } this.session.push(session); this.index = this.session.length - 1; this.emit('push', session, this.index, sliced); return session; },
return function() { var control = new Controller(self, self._index++); self._controls.push(control); parallel.apply(control, args ? args.concat(slice(arguments)) : arguments); };
cancel = method(function(time){ queued = false fn.apply(context, slice(args).concat(time)) })