diff options
Diffstat (limited to 'node_modules/es6-iterator/array.js')
-rw-r--r-- | node_modules/es6-iterator/array.js | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/node_modules/es6-iterator/array.js b/node_modules/es6-iterator/array.js index 885ad0a4f..d7a46a481 100644 --- a/node_modules/es6-iterator/array.js +++ b/node_modules/es6-iterator/array.js @@ -1,30 +1,32 @@ -'use strict'; +"use strict"; -var setPrototypeOf = require('es5-ext/object/set-prototype-of') - , contains = require('es5-ext/string/#/contains') - , d = require('d') - , Iterator = require('./') +var setPrototypeOf = require("es5-ext/object/set-prototype-of") + , contains = require("es5-ext/string/#/contains") + , d = require("d") + , Symbol = require("es6-symbol") + , Iterator = require("./"); - , defineProperty = Object.defineProperty - , ArrayIterator; +var defineProperty = Object.defineProperty, ArrayIterator; ArrayIterator = module.exports = function (arr, kind) { - if (!(this instanceof ArrayIterator)) return new ArrayIterator(arr, kind); + if (!(this instanceof ArrayIterator)) throw new TypeError("Constructor requires 'new'"); Iterator.call(this, arr); - if (!kind) kind = 'value'; - else if (contains.call(kind, 'key+value')) kind = 'key+value'; - else if (contains.call(kind, 'key')) kind = 'key'; - else kind = 'value'; - defineProperty(this, '__kind__', d('', kind)); + if (!kind) kind = "value"; + else if (contains.call(kind, "key+value")) kind = "key+value"; + else if (contains.call(kind, "key")) kind = "key"; + else kind = "value"; + defineProperty(this, "__kind__", d("", kind)); }; if (setPrototypeOf) setPrototypeOf(ArrayIterator, Iterator); +// Internal %ArrayIteratorPrototype% doesn't expose its constructor +delete ArrayIterator.prototype.constructor; + ArrayIterator.prototype = Object.create(Iterator.prototype, { - constructor: d(ArrayIterator), _resolve: d(function (i) { - if (this.__kind__ === 'value') return this.__list__[i]; - if (this.__kind__ === 'key+value') return [i, this.__list__[i]]; + if (this.__kind__ === "value") return this.__list__[i]; + if (this.__kind__ === "key+value") return [i, this.__list__[i]]; return i; - }), - toString: d(function () { return '[object Array Iterator]'; }) + }) }); +defineProperty(ArrayIterator.prototype, Symbol.toStringTag, d("c", "Array Iterator")); |