|
|
@@ -1,471 +0,0 @@
|
|
|
-define([], function() {
|
|
|
- /*!
|
|
|
- * Symbol-ES6 v0.1.2
|
|
|
- * ES6 Symbol polyfill in pure ES5.
|
|
|
- *
|
|
|
- * OL MODIFICATIONS:
|
|
|
- * Added isImplemented function to conditionally polyfill only if Symbol isn't
|
|
|
- * supported. Taken from https://github.com/medikoo/es6-symbol
|
|
|
- *
|
|
|
- * @license Copyright (c) 2017-2018 Rousan Ali, MIT License
|
|
|
- *
|
|
|
- * Codebase: https://github.com/rousan/symbol-es6
|
|
|
- * Date: 28th Jan, 2018
|
|
|
- */
|
|
|
-
|
|
|
- (function (global, factory) {
|
|
|
- "use strict";
|
|
|
-
|
|
|
- if (typeof module === "object" && typeof module.exports === "object") {
|
|
|
- // For the environment like NodeJS, CommonJS etc where module or
|
|
|
- // module.exports objects are available
|
|
|
- module.exports = factory(global);
|
|
|
- } else {
|
|
|
- // For browser context, where global object is window
|
|
|
- factory(global);
|
|
|
- }
|
|
|
-
|
|
|
- /* window is for browser environment and global is for NodeJS environment */
|
|
|
- })(typeof window !== "undefined" ? window : global, function (global) {
|
|
|
- "use strict";
|
|
|
-
|
|
|
- function isImplemented() {
|
|
|
- var symbol;
|
|
|
- if (typeof Symbol !== 'function') return false;
|
|
|
- symbol = Symbol('test symbol');
|
|
|
- try { String(symbol); } catch (e) { return false; }
|
|
|
-
|
|
|
- var validTypes = { object: true, symbol: true };
|
|
|
- // Return 'true' also for polyfills
|
|
|
- if (!validTypes[typeof Symbol.iterator]) return false;
|
|
|
- if (!validTypes[typeof Symbol.toPrimitive]) return false;
|
|
|
- if (!validTypes[typeof Symbol.toStringTag]) return false;
|
|
|
-
|
|
|
- return true;
|
|
|
- };
|
|
|
-
|
|
|
- if (!isImplemented()) {
|
|
|
- !(function (global, factory) {
|
|
|
- "use strict";
|
|
|
- "object" == typeof module && "object" == typeof module.exports
|
|
|
- ? (module.exports = factory(global))
|
|
|
- : factory(global);
|
|
|
- })("undefined" != typeof window ? window : global, function (global) {
|
|
|
- "use strict";
|
|
|
- var defineProperty = Object.defineProperty,
|
|
|
- defineProperties = Object.defineProperties,
|
|
|
- symbolHiddenCounter = 0,
|
|
|
- globalSymbolRegistry = [],
|
|
|
- slice = Array.prototype.slice,
|
|
|
- ES6 = "object" == typeof global.ES6 ? global.ES6 : (global.ES6 = {}),
|
|
|
- isArray = Array.isArray,
|
|
|
- objectToString = Object.prototype.toString,
|
|
|
- push = Array.prototype.push,
|
|
|
- emptyFunction = function () { },
|
|
|
- simpleFunction = function (arg) {
|
|
|
- return arg;
|
|
|
- },
|
|
|
- isCallable = function (fn) {
|
|
|
- return "function" == typeof fn;
|
|
|
- },
|
|
|
- Iterator = function () { },
|
|
|
- ArrayIterator = function (array, flag) {
|
|
|
- (this._array = array), (this._flag = flag), (this._nextIndex = 0);
|
|
|
- },
|
|
|
- StringIterator = function (string, flag) {
|
|
|
- (this._string = string), (this._flag = flag), (this._nextIndex = 0);
|
|
|
- },
|
|
|
- isObject = function (value) {
|
|
|
- return (
|
|
|
- null !== value &&
|
|
|
- ("object" == typeof value || "function" == typeof value)
|
|
|
- );
|
|
|
- },
|
|
|
- setupSymbolInternals = function (symbol, desc) {
|
|
|
- return (
|
|
|
- defineProperties(symbol, {
|
|
|
- _description: { value: desc },
|
|
|
- _isSymbol: { value: !0 },
|
|
|
- _id: { value: symbolHiddenCounter++ }
|
|
|
- }),
|
|
|
- symbol
|
|
|
- );
|
|
|
- },
|
|
|
- appendArray = function (array1, array2) {
|
|
|
- if (
|
|
|
- "number" == typeof array1.length &&
|
|
|
- array1.length >= 0 &&
|
|
|
- "number" == typeof array2.length &&
|
|
|
- array2.length >= 0
|
|
|
- ) {
|
|
|
- var length1 = Math.floor(array1.length),
|
|
|
- length2 = Math.floor(array2.length),
|
|
|
- i = 0;
|
|
|
- for (array1.length = length1 + length2; i < length2; ++i)
|
|
|
- array2.hasOwnProperty(i) && (array1[length1 + i] = array2[i]);
|
|
|
- }
|
|
|
- },
|
|
|
- simpleInheritance = function (child, parent) {
|
|
|
- if ("function" != typeof child || "function" != typeof parent)
|
|
|
- throw new TypeError("Child and Parent must be function type");
|
|
|
- (child.prototype = Object.create(parent.prototype)),
|
|
|
- (child.prototype.constructor = child);
|
|
|
- },
|
|
|
- Symbol = function Symbol(desc) {
|
|
|
- if (
|
|
|
- ((desc = void 0 === desc ? "" : String(desc)), this instanceof Symbol)
|
|
|
- )
|
|
|
- throw new TypeError("Symbol is not a constructor");
|
|
|
- return setupSymbolInternals(Object.create(Symbol.prototype), desc);
|
|
|
- };
|
|
|
- defineProperties(Symbol, {
|
|
|
- for: {
|
|
|
- value: function (key) {
|
|
|
- key = String(key);
|
|
|
- for (
|
|
|
- var record, registryLength = globalSymbolRegistry.length, i = 0;
|
|
|
- i < registryLength;
|
|
|
- ++i
|
|
|
- )
|
|
|
- if ((record = globalSymbolRegistry[i]).key === key)
|
|
|
- return record.symbol;
|
|
|
- return (
|
|
|
- (record = { key: key, symbol: Symbol(key) }),
|
|
|
- globalSymbolRegistry.push(record),
|
|
|
- record.symbol
|
|
|
- );
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- },
|
|
|
- keyFor: {
|
|
|
- value: function (symbol) {
|
|
|
- if (!ES6.isSymbol(symbol))
|
|
|
- throw new TypeError(String(symbol) + " is not a symbol");
|
|
|
- for (
|
|
|
- var record, registryLength = globalSymbolRegistry.length, i = 0;
|
|
|
- i < registryLength;
|
|
|
- ++i
|
|
|
- )
|
|
|
- if ((record = globalSymbolRegistry[i]).symbol === symbol)
|
|
|
- return record.key;
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- },
|
|
|
- hasInstance: { value: Symbol("Symbol.hasInstance") },
|
|
|
- isConcatSpreadable: { value: Symbol("Symbol.isConcatSpreadable") },
|
|
|
- iterator: { value: Symbol("Symbol.iterator") },
|
|
|
- toStringTag: { value: Symbol("Symbol.toStringTag") }
|
|
|
- }),
|
|
|
- (Symbol.prototype.toString = function () {
|
|
|
- return "@@_____" + this._id + "_____";
|
|
|
- }),
|
|
|
- (Symbol.prototype.valueOf = function () {
|
|
|
- return this;
|
|
|
- }),
|
|
|
- defineProperty(Iterator.prototype, Symbol.iterator.toString(), {
|
|
|
- value: function () {
|
|
|
- return this;
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- }),
|
|
|
- simpleInheritance(ArrayIterator, Iterator),
|
|
|
- simpleInheritance(StringIterator, Iterator),
|
|
|
- defineProperty(ArrayIterator.prototype, Symbol.toStringTag.toString(), {
|
|
|
- value: "Array Iterator",
|
|
|
- configurable: !0
|
|
|
- }),
|
|
|
- defineProperty(StringIterator.prototype, Symbol.toStringTag.toString(), {
|
|
|
- value: "String Iterator",
|
|
|
- configurable: !0
|
|
|
- }),
|
|
|
- (ArrayIterator.prototype.next = function () {
|
|
|
- if (!(this instanceof ArrayIterator))
|
|
|
- throw new TypeError(
|
|
|
- "Method Array Iterator.prototype.next called on incompatible receiver " +
|
|
|
- String(this)
|
|
|
- );
|
|
|
- var nextValue;
|
|
|
- return -1 === this._nextIndex
|
|
|
- ? { done: !0, value: void 0 }
|
|
|
- : "number" == typeof this._array.length &&
|
|
|
- this._array.length >= 0 &&
|
|
|
- this._nextIndex < Math.floor(this._array.length)
|
|
|
- ? (1 === this._flag
|
|
|
- ? (nextValue = [this._nextIndex, this._array[this._nextIndex]])
|
|
|
- : 2 === this._flag
|
|
|
- ? (nextValue = this._array[this._nextIndex])
|
|
|
- : 3 === this._flag && (nextValue = this._nextIndex),
|
|
|
- this._nextIndex++ ,
|
|
|
- { done: !1, value: nextValue })
|
|
|
- : ((this._nextIndex = -1), { done: !0, value: void 0 });
|
|
|
- }),
|
|
|
- (StringIterator.prototype.next = function () {
|
|
|
- if (!(this instanceof StringIterator))
|
|
|
- throw new TypeError(
|
|
|
- "Method String Iterator.prototype.next called on incompatible receiver " +
|
|
|
- String(this)
|
|
|
- );
|
|
|
- var nextValue,
|
|
|
- stringObject = new String(this._string);
|
|
|
- return -1 === this._nextIndex
|
|
|
- ? { done: !0, value: void 0 }
|
|
|
- : this._nextIndex < stringObject.length
|
|
|
- ? ((nextValue = stringObject[this._nextIndex]),
|
|
|
- this._nextIndex++ ,
|
|
|
- { done: !1, value: nextValue })
|
|
|
- : ((this._nextIndex = -1), { done: !0, value: void 0 });
|
|
|
- });
|
|
|
- var SpreadOperatorImpl = function (target, thisArg) {
|
|
|
- (this._target = target), (this._values = []), (this._thisArg = thisArg);
|
|
|
- };
|
|
|
- (SpreadOperatorImpl.prototype.spread = function () {
|
|
|
- var self = this;
|
|
|
- return (
|
|
|
- slice.call(arguments).forEach(function (iterable) {
|
|
|
- ES6.forOf(iterable, function (value) {
|
|
|
- self._values.push(value);
|
|
|
- });
|
|
|
- }),
|
|
|
- self
|
|
|
- );
|
|
|
- }),
|
|
|
- (SpreadOperatorImpl.prototype.add = function () {
|
|
|
- var self = this;
|
|
|
- return (
|
|
|
- slice.call(arguments).forEach(function (value) {
|
|
|
- self._values.push(value);
|
|
|
- }),
|
|
|
- self
|
|
|
- );
|
|
|
- }),
|
|
|
- (SpreadOperatorImpl.prototype.call = function (thisArg) {
|
|
|
- if ("function" != typeof this._target)
|
|
|
- throw new TypeError("Target is not a function");
|
|
|
- return (
|
|
|
- (thisArg = arguments.length <= 0 ? this._thisArg : thisArg),
|
|
|
- this._target.apply(thisArg, this._values)
|
|
|
- );
|
|
|
- }),
|
|
|
- (SpreadOperatorImpl.prototype.new = function () {
|
|
|
- if ("function" != typeof this._target)
|
|
|
- throw new TypeError("Target is not a constructor");
|
|
|
- var temp, returnValue;
|
|
|
- return (
|
|
|
- (temp = Object.create(this._target.prototype)),
|
|
|
- (returnValue = this._target.apply(temp, this._values)),
|
|
|
- isObject(returnValue) ? returnValue : temp
|
|
|
- );
|
|
|
- }),
|
|
|
- (SpreadOperatorImpl.prototype.array = function () {
|
|
|
- if (!isArray(this._target)) throw new TypeError("Target is not a array");
|
|
|
- return push.apply(this._target, this._values), this._target;
|
|
|
- });
|
|
|
- return (
|
|
|
- defineProperties(ES6, {
|
|
|
- isSymbol: {
|
|
|
- value: function (symbol) {
|
|
|
- return (
|
|
|
- symbol instanceof Symbol &&
|
|
|
- (function (symbol) {
|
|
|
- return (
|
|
|
- !0 === symbol._isSymbol &&
|
|
|
- "number" == typeof symbol._id &&
|
|
|
- "string" == typeof symbol._description
|
|
|
- );
|
|
|
- })(symbol)
|
|
|
- );
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- },
|
|
|
- instanceOf: {
|
|
|
- value: function (object, constructor) {
|
|
|
- if (!isObject(constructor))
|
|
|
- throw new TypeError(
|
|
|
- "Right-hand side of 'instanceof' is not an object"
|
|
|
- );
|
|
|
- var hasInstanceSymbolProp = constructor[Symbol.hasInstance];
|
|
|
- if (void 0 === hasInstanceSymbolProp)
|
|
|
- return object instanceof constructor;
|
|
|
- if ("function" != typeof hasInstanceSymbolProp)
|
|
|
- throw new TypeError(
|
|
|
- typeof hasInstanceSymbolProp + " is not a function"
|
|
|
- );
|
|
|
- return hasInstanceSymbolProp.call(constructor, object);
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- },
|
|
|
- forOf: {
|
|
|
- value: function (iterable, callback, thisArg) {
|
|
|
- if (
|
|
|
- ((callback =
|
|
|
- "function" != typeof callback ? emptyFunction : callback),
|
|
|
- "function" != typeof iterable[Symbol.iterator])
|
|
|
- )
|
|
|
- throw new TypeError("Iterable[Symbol.iterator] is not a function");
|
|
|
- var iterationResult,
|
|
|
- iterator = iterable[Symbol.iterator]();
|
|
|
- if ("function" != typeof iterator.next)
|
|
|
- throw new TypeError(".iterator.next is not a function");
|
|
|
- for (; ;) {
|
|
|
- if (
|
|
|
- ((iterationResult = iterator.next()), !isObject(iterationResult))
|
|
|
- )
|
|
|
- throw new TypeError(
|
|
|
- "Iterator result " + iterationResult + " is not an object"
|
|
|
- );
|
|
|
- if (iterationResult.done) break;
|
|
|
- callback.call(thisArg, iterationResult.value);
|
|
|
- }
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- },
|
|
|
- spreadOperator: {
|
|
|
- value: function (target, thisArg) {
|
|
|
- if ("function" != typeof target && !isArray(target))
|
|
|
- throw new TypeError(
|
|
|
- "Spread operator only supports on array and function objects at this moment"
|
|
|
- );
|
|
|
- return new SpreadOperatorImpl(target, thisArg);
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- }
|
|
|
- }),
|
|
|
- defineProperty(global, "Symbol", {
|
|
|
- value: Symbol,
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- }),
|
|
|
- defineProperty(Function.prototype, Symbol.hasInstance.toString(), {
|
|
|
- value: function (instance) {
|
|
|
- return "function" == typeof this && instance instanceof this;
|
|
|
- }
|
|
|
- }),
|
|
|
- defineProperty(Array.prototype, "concat", {
|
|
|
- value: function () {
|
|
|
- if (void 0 === this || null === this)
|
|
|
- throw new TypeError(
|
|
|
- "Array.prototype.concat called on null or undefined"
|
|
|
- );
|
|
|
- var self = Object(this),
|
|
|
- targets = slice.call(arguments),
|
|
|
- outputs = [];
|
|
|
- return (
|
|
|
- targets.unshift(self),
|
|
|
- targets.forEach(function (target) {
|
|
|
- isObject(target)
|
|
|
- ? void 0 !== target[Symbol.isConcatSpreadable]
|
|
|
- ? target[Symbol.isConcatSpreadable]
|
|
|
- ? appendArray(outputs, target)
|
|
|
- : outputs.push(target)
|
|
|
- : isArray(target)
|
|
|
- ? appendArray(outputs, target)
|
|
|
- : outputs.push(target)
|
|
|
- : outputs.push(target);
|
|
|
- }),
|
|
|
- outputs
|
|
|
- );
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- }),
|
|
|
- defineProperty(Object.prototype, "toString", {
|
|
|
- value: function () {
|
|
|
- return void 0 === this || null === this
|
|
|
- ? objectToString.call(this)
|
|
|
- : "string" == typeof this[Symbol.toStringTag]
|
|
|
- ? "[object " + this[Symbol.toStringTag] + "]"
|
|
|
- : objectToString.call(this);
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- }),
|
|
|
- defineProperty(Array.prototype, Symbol.iterator.toString(), {
|
|
|
- value: function () {
|
|
|
- if (void 0 === this || null === this)
|
|
|
- throw new TypeError("Cannot convert undefined or null to object");
|
|
|
- var self = Object(this);
|
|
|
- return new ArrayIterator(self, 2);
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- }),
|
|
|
- defineProperty(Array, "from", {
|
|
|
- value: function (arrayLike, mapFn, thisArg) {
|
|
|
- var constructor,
|
|
|
- length,
|
|
|
- outputs,
|
|
|
- i = 0;
|
|
|
- if (
|
|
|
- ((constructor = isCallable(this) ? this : Array),
|
|
|
- void 0 === arrayLike || null === arrayLike)
|
|
|
- )
|
|
|
- throw new TypeError("Cannot convert undefined or null to object");
|
|
|
- if (((arrayLike = Object(arrayLike)), void 0 === mapFn))
|
|
|
- mapFn = simpleFunction;
|
|
|
- else if (!isCallable(mapFn))
|
|
|
- throw new TypeError(mapFn + " is not a function");
|
|
|
- if (void 0 === arrayLike[Symbol.iterator]) {
|
|
|
- if (!("number" == typeof arrayLike.length && arrayLike.length >= 0))
|
|
|
- return ((outputs = new constructor(0)).length = 0), outputs;
|
|
|
- for (
|
|
|
- length = Math.floor(arrayLike.length),
|
|
|
- (outputs = new constructor(length)).length = length;
|
|
|
- i < length;
|
|
|
- ++i
|
|
|
- )
|
|
|
- outputs[i] = mapFn.call(thisArg, arrayLike[i]);
|
|
|
- } else
|
|
|
- ((outputs = new constructor()).length = 0),
|
|
|
- ES6.forOf(arrayLike, function (value) {
|
|
|
- outputs.length++ ,
|
|
|
- (outputs[outputs.length - 1] = mapFn.call(thisArg, value));
|
|
|
- });
|
|
|
- return outputs;
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- }),
|
|
|
- defineProperty(Array.prototype, "entries", {
|
|
|
- value: function () {
|
|
|
- if (void 0 === this || null === this)
|
|
|
- throw new TypeError("Cannot convert undefined or null to object");
|
|
|
- var self = Object(this);
|
|
|
- return new ArrayIterator(self, 1);
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- }),
|
|
|
- defineProperty(Array.prototype, "keys", {
|
|
|
- value: function () {
|
|
|
- if (void 0 === this || null === this)
|
|
|
- throw new TypeError("Cannot convert undefined or null to object");
|
|
|
- var self = Object(this);
|
|
|
- return new ArrayIterator(self, 3);
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- }),
|
|
|
- defineProperty(String.prototype, Symbol.iterator.toString(), {
|
|
|
- value: function () {
|
|
|
- if (void 0 === this || null === this)
|
|
|
- throw new TypeError(
|
|
|
- "String.prototype[Symbol.iterator] called on null or undefined"
|
|
|
- );
|
|
|
- return new StringIterator(String(this), 0);
|
|
|
- },
|
|
|
- writable: !0,
|
|
|
- configurable: !0
|
|
|
- }),
|
|
|
- ES6
|
|
|
- );
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
-});
|