Add production dependencies
This commit is contained in:
parent
5a0114f3e2
commit
579ccdc29f
12113 changed files with 978046 additions and 3 deletions
106
node_modules/es6-iterator/index.js
generated
vendored
Normal file
106
node_modules/es6-iterator/index.js
generated
vendored
Normal file
|
@ -0,0 +1,106 @@
|
|||
"use strict";
|
||||
|
||||
var clear = require("es5-ext/array/#/clear")
|
||||
, assign = require("es5-ext/object/assign")
|
||||
, callable = require("es5-ext/object/valid-callable")
|
||||
, value = require("es5-ext/object/valid-value")
|
||||
, d = require("d")
|
||||
, autoBind = require("d/auto-bind")
|
||||
, Symbol = require("es6-symbol");
|
||||
|
||||
var defineProperty = Object.defineProperty, defineProperties = Object.defineProperties, Iterator;
|
||||
|
||||
module.exports = Iterator = function (list, context) {
|
||||
if (!(this instanceof Iterator)) throw new TypeError("Constructor requires 'new'");
|
||||
defineProperties(this, {
|
||||
__list__: d("w", value(list)),
|
||||
__context__: d("w", context),
|
||||
__nextIndex__: d("w", 0)
|
||||
});
|
||||
if (!context) return;
|
||||
callable(context.on);
|
||||
context.on("_add", this._onAdd);
|
||||
context.on("_delete", this._onDelete);
|
||||
context.on("_clear", this._onClear);
|
||||
};
|
||||
|
||||
// Internal %IteratorPrototype% doesn't expose its constructor
|
||||
delete Iterator.prototype.constructor;
|
||||
|
||||
defineProperties(
|
||||
Iterator.prototype,
|
||||
assign(
|
||||
{
|
||||
_next: d(function () {
|
||||
var i;
|
||||
if (!this.__list__) return undefined;
|
||||
if (this.__redo__) {
|
||||
i = this.__redo__.shift();
|
||||
if (i !== undefined) return i;
|
||||
}
|
||||
if (this.__nextIndex__ < this.__list__.length) return this.__nextIndex__++;
|
||||
this._unBind();
|
||||
return undefined;
|
||||
}),
|
||||
next: d(function () {
|
||||
return this._createResult(this._next());
|
||||
}),
|
||||
_createResult: d(function (i) {
|
||||
if (i === undefined) return { done: true, value: undefined };
|
||||
return { done: false, value: this._resolve(i) };
|
||||
}),
|
||||
_resolve: d(function (i) {
|
||||
return this.__list__[i];
|
||||
}),
|
||||
_unBind: d(function () {
|
||||
this.__list__ = null;
|
||||
delete this.__redo__;
|
||||
if (!this.__context__) return;
|
||||
this.__context__.off("_add", this._onAdd);
|
||||
this.__context__.off("_delete", this._onDelete);
|
||||
this.__context__.off("_clear", this._onClear);
|
||||
this.__context__ = null;
|
||||
}),
|
||||
toString: d(function () {
|
||||
return "[object " + (this[Symbol.toStringTag] || "Object") + "]";
|
||||
})
|
||||
},
|
||||
autoBind({
|
||||
_onAdd: d(function (index) {
|
||||
if (index >= this.__nextIndex__) return;
|
||||
++this.__nextIndex__;
|
||||
if (!this.__redo__) {
|
||||
defineProperty(this, "__redo__", d("c", [index]));
|
||||
return;
|
||||
}
|
||||
this.__redo__.forEach(function (redo, i) {
|
||||
if (redo >= index) this.__redo__[i] = ++redo;
|
||||
}, this);
|
||||
this.__redo__.push(index);
|
||||
}),
|
||||
_onDelete: d(function (index) {
|
||||
var i;
|
||||
if (index >= this.__nextIndex__) return;
|
||||
--this.__nextIndex__;
|
||||
if (!this.__redo__) return;
|
||||
i = this.__redo__.indexOf(index);
|
||||
if (i !== -1) this.__redo__.splice(i, 1);
|
||||
this.__redo__.forEach(function (redo, j) {
|
||||
if (redo > index) this.__redo__[j] = --redo;
|
||||
}, this);
|
||||
}),
|
||||
_onClear: d(function () {
|
||||
if (this.__redo__) clear.call(this.__redo__);
|
||||
this.__nextIndex__ = 0;
|
||||
})
|
||||
})
|
||||
)
|
||||
);
|
||||
|
||||
defineProperty(
|
||||
Iterator.prototype,
|
||||
Symbol.iterator,
|
||||
d(function () {
|
||||
return this;
|
||||
})
|
||||
);
|
Loading…
Add table
Add a link
Reference in a new issue