diff options
Diffstat (limited to 'node_modules/es6-iterator/string.js')
-rw-r--r-- | node_modules/es6-iterator/string.js | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/node_modules/es6-iterator/string.js b/node_modules/es6-iterator/string.js index cdb39ea4e..48882252b 100644 --- a/node_modules/es6-iterator/string.js +++ b/node_modules/es6-iterator/string.js @@ -1,37 +1,39 @@ // Thanks @mathiasbynens // http://mathiasbynens.be/notes/javascript-unicode#iterating-over-symbols -'use strict'; +"use strict"; -var setPrototypeOf = require('es5-ext/object/set-prototype-of') - , d = require('d') - , Iterator = require('./') +var setPrototypeOf = require("es5-ext/object/set-prototype-of") + , d = require("d") + , Symbol = require("es6-symbol") + , Iterator = require("./"); - , defineProperty = Object.defineProperty - , StringIterator; +var defineProperty = Object.defineProperty, StringIterator; StringIterator = module.exports = function (str) { - if (!(this instanceof StringIterator)) return new StringIterator(str); + if (!(this instanceof StringIterator)) throw new TypeError("Constructor requires 'new'"); str = String(str); Iterator.call(this, str); - defineProperty(this, '__length__', d('', str.length)); - + defineProperty(this, "__length__", d("", str.length)); }; if (setPrototypeOf) setPrototypeOf(StringIterator, Iterator); +// Internal %ArrayIteratorPrototype% doesn't expose its constructor +delete StringIterator.prototype.constructor; + StringIterator.prototype = Object.create(Iterator.prototype, { - constructor: d(StringIterator), _next: d(function () { - if (!this.__list__) return; + if (!this.__list__) return undefined; if (this.__nextIndex__ < this.__length__) return this.__nextIndex__++; this._unBind(); + return undefined; }), _resolve: d(function (i) { var char = this.__list__[i], code; if (this.__nextIndex__ === this.__length__) return char; code = char.charCodeAt(0); - if ((code >= 0xD800) && (code <= 0xDBFF)) return char + this.__list__[this.__nextIndex__++]; + if (code >= 0xd800 && code <= 0xdbff) return char + this.__list__[this.__nextIndex__++]; return char; - }), - toString: d(function () { return '[object String Iterator]'; }) + }) }); +defineProperty(StringIterator.prototype, Symbol.toStringTag, d("c", "String Iterator")); |