From 0bafcaa037f69d3791771857d7f95cbd40a171c1 Mon Sep 17 00:00:00 2001
From: cdcolor7 <276214101@qq.com>
Date: Tue, 16 Nov 2021 23:23:02 +0800
Subject: [PATCH] =?UTF-8?q?build:=20=E5=8F=91=E5=B8=83=E5=85=AC=E5=85=B1?=
=?UTF-8?q?=E5=BA=93=E6=9E=84=E5=BB=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.babelrc | 10 +
build/README.md | 5 +
build/package.json | 13 +
build/vue.esm.js | 2464 ++++++++++++++++++++++++
build/vue.iife.js | 2469 ++++++++++++++++++++++++
dist/vue.common.js | 2466 ++++++++++++++++++++++++
dist/vue.esm.js | 2464 ++++++++++++++++++++++++
dist/vue.js | 2702 +++++++++++++++++++++++---
dist/vue.js.map | 2 +-
examples/index.html | 4 +-
package-lock.json | 4453 ++++++++++++++++++++++++++++++++++++-------
package.json | 24 +-
prod.config.js | 28 +
rollup.config.js | 31 +-
src/entry-dev.js | 2 +-
15 files changed, 16122 insertions(+), 1015 deletions(-)
create mode 100644 .babelrc
create mode 100644 build/README.md
create mode 100644 build/package.json
create mode 100644 build/vue.esm.js
create mode 100644 build/vue.iife.js
create mode 100644 dist/vue.common.js
create mode 100644 dist/vue.esm.js
create mode 100644 prod.config.js
diff --git a/.babelrc b/.babelrc
new file mode 100644
index 0000000..f644e0e
--- /dev/null
+++ b/.babelrc
@@ -0,0 +1,10 @@
+{
+ "presets": [["@babel/preset-env", {
+ "targets": {
+ "browsers": ["last 2 versions","> 1%"]
+ },
+ "corejs":2,
+ "useBuiltIns": "usage"
+ }]
+ ]
+}
\ No newline at end of file
diff --git a/build/README.md b/build/README.md
new file mode 100644
index 0000000..0100cbb
--- /dev/null
+++ b/build/README.md
@@ -0,0 +1,5 @@
+# VUE2源码 && 思维导图(源码、组件化)
+[vue2源码思维导图](https://www.processon.com/view/link/61509b135653bb0d3ef2b9b7)
+
+[vue2组件化思维导图](https://www.processon.com/view/link/61509b680e3e74520cb8cff7)
+
\ No newline at end of file
diff --git a/build/package.json b/build/package.json
new file mode 100644
index 0000000..130fad6
--- /dev/null
+++ b/build/package.json
@@ -0,0 +1,13 @@
+{
+ "name": "miniedv--vue2",
+ "version": "1.0.0",
+ "description": "",
+ "main": "vue.iife.js",
+ "module": "vue.esm.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "MIT"
+}
diff --git a/build/vue.esm.js b/build/vue.esm.js
new file mode 100644
index 0000000..7f4e0d7
--- /dev/null
+++ b/build/vue.esm.js
@@ -0,0 +1,2464 @@
+function _typeof(obj) {
+ "@babel/helpers - typeof";
+
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+ _typeof = function (obj) {
+ return typeof obj;
+ };
+ } else {
+ _typeof = function (obj) {
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+ }
+
+ return _typeof(obj);
+}
+
+function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+}
+
+function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+}
+
+function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+}
+
+function createCommonjsModule(fn, module) {
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
+}
+
+var _global = createCommonjsModule(function (module) {
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+var global = module.exports = typeof window != 'undefined' && window.Math == Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self
+ // eslint-disable-next-line no-new-func
+ : Function('return this')();
+if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
+});
+
+var _core = createCommonjsModule(function (module) {
+var core = module.exports = { version: '2.6.12' };
+if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
+});
+_core.version;
+
+var _isObject = function (it) {
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
+};
+
+var _anObject = function (it) {
+ if (!_isObject(it)) throw TypeError(it + ' is not an object!');
+ return it;
+};
+
+var _fails = function (exec) {
+ try {
+ return !!exec();
+ } catch (e) {
+ return true;
+ }
+};
+
+// Thank's IE8 for his funny defineProperty
+var _descriptors = !_fails(function () {
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
+});
+
+var document$2 = _global.document;
+// typeof document.createElement is 'object' in old IE
+var is = _isObject(document$2) && _isObject(document$2.createElement);
+var _domCreate = function (it) {
+ return is ? document$2.createElement(it) : {};
+};
+
+var _ie8DomDefine = !_descriptors && !_fails(function () {
+ return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;
+});
+
+// 7.1.1 ToPrimitive(input [, PreferredType])
+
+// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+// and the second argument - flag - preferred type is a string
+var _toPrimitive = function (it, S) {
+ if (!_isObject(it)) return it;
+ var fn, val;
+ if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
+ if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) return val;
+ if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
+ throw TypeError("Can't convert object to primitive value");
+};
+
+var dP$4 = Object.defineProperty;
+
+var f$6 = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
+ _anObject(O);
+ P = _toPrimitive(P, true);
+ _anObject(Attributes);
+ if (_ie8DomDefine) try {
+ return dP$4(O, P, Attributes);
+ } catch (e) { /* empty */ }
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
+ if ('value' in Attributes) O[P] = Attributes.value;
+ return O;
+};
+
+var _objectDp = {
+ f: f$6
+};
+
+var _propertyDesc = function (bitmap, value) {
+ return {
+ enumerable: !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable: !(bitmap & 4),
+ value: value
+ };
+};
+
+var _hide = _descriptors ? function (object, key, value) {
+ return _objectDp.f(object, key, _propertyDesc(1, value));
+} : function (object, key, value) {
+ object[key] = value;
+ return object;
+};
+
+var hasOwnProperty$1 = {}.hasOwnProperty;
+var _has = function (it, key) {
+ return hasOwnProperty$1.call(it, key);
+};
+
+var id = 0;
+var px = Math.random();
+var _uid = function (key) {
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
+};
+
+var _library = false;
+
+var _shared = createCommonjsModule(function (module) {
+var SHARED = '__core-js_shared__';
+var store = _global[SHARED] || (_global[SHARED] = {});
+
+(module.exports = function (key, value) {
+ return store[key] || (store[key] = value !== undefined ? value : {});
+})('versions', []).push({
+ version: _core.version,
+ mode: 'global',
+ copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
+});
+});
+
+var _functionToString = _shared('native-function-to-string', Function.toString);
+
+var _redefine = createCommonjsModule(function (module) {
+var SRC = _uid('src');
+
+var TO_STRING = 'toString';
+var TPL = ('' + _functionToString).split(TO_STRING);
+
+_core.inspectSource = function (it) {
+ return _functionToString.call(it);
+};
+
+(module.exports = function (O, key, val, safe) {
+ var isFunction = typeof val == 'function';
+ if (isFunction) _has(val, 'name') || _hide(val, 'name', key);
+ if (O[key] === val) return;
+ if (isFunction) _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
+ if (O === _global) {
+ O[key] = val;
+ } else if (!safe) {
+ delete O[key];
+ _hide(O, key, val);
+ } else if (O[key]) {
+ O[key] = val;
+ } else {
+ _hide(O, key, val);
+ }
+// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
+})(Function.prototype, TO_STRING, function toString() {
+ return typeof this == 'function' && this[SRC] || _functionToString.call(this);
+});
+});
+
+var _aFunction = function (it) {
+ if (typeof it != 'function') throw TypeError(it + ' is not a function!');
+ return it;
+};
+
+// optional / simple context binding
+
+var _ctx = function (fn, that, length) {
+ _aFunction(fn);
+ if (that === undefined) return fn;
+ switch (length) {
+ case 1: return function (a) {
+ return fn.call(that, a);
+ };
+ case 2: return function (a, b) {
+ return fn.call(that, a, b);
+ };
+ case 3: return function (a, b, c) {
+ return fn.call(that, a, b, c);
+ };
+ }
+ return function (/* ...args */) {
+ return fn.apply(that, arguments);
+ };
+};
+
+var PROTOTYPE$2 = 'prototype';
+
+var $export = function (type, name, source) {
+ var IS_FORCED = type & $export.F;
+ var IS_GLOBAL = type & $export.G;
+ var IS_STATIC = type & $export.S;
+ var IS_PROTO = type & $export.P;
+ var IS_BIND = type & $export.B;
+ var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE$2];
+ var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});
+ var expProto = exports[PROTOTYPE$2] || (exports[PROTOTYPE$2] = {});
+ var key, own, out, exp;
+ if (IS_GLOBAL) source = name;
+ for (key in source) {
+ // contains in native
+ own = !IS_FORCED && target && target[key] !== undefined;
+ // export native or passed
+ out = (own ? target : source)[key];
+ // bind timers to global for call from export context
+ exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;
+ // extend global
+ if (target) _redefine(target, key, out, type & $export.U);
+ // export
+ if (exports[key] != out) _hide(exports, key, exp);
+ if (IS_PROTO && expProto[key] != out) expProto[key] = out;
+ }
+};
+_global.core = _core;
+// type bitmap
+$export.F = 1; // forced
+$export.G = 2; // global
+$export.S = 4; // static
+$export.P = 8; // proto
+$export.B = 16; // bind
+$export.W = 32; // wrap
+$export.U = 64; // safe
+$export.R = 128; // real proto method for `library`
+var _export = $export;
+
+var document$1 = _global.document;
+var _html = document$1 && document$1.documentElement;
+
+var toString$1 = {}.toString;
+
+var _cof = function (it) {
+ return toString$1.call(it).slice(8, -1);
+};
+
+// 7.1.4 ToInteger
+var ceil = Math.ceil;
+var floor$1 = Math.floor;
+var _toInteger = function (it) {
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor$1 : ceil)(it);
+};
+
+var max$1 = Math.max;
+var min$2 = Math.min;
+var _toAbsoluteIndex = function (index, length) {
+ index = _toInteger(index);
+ return index < 0 ? max$1(index + length, 0) : min$2(index, length);
+};
+
+// 7.1.15 ToLength
+
+var min$1 = Math.min;
+var _toLength = function (it) {
+ return it > 0 ? min$1(_toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
+};
+
+var arraySlice = [].slice;
+
+// fallback for not array-like ES3 strings and DOM objects
+_export(_export.P + _export.F * _fails(function () {
+ if (_html) arraySlice.call(_html);
+}), 'Array', {
+ slice: function slice(begin, end) {
+ var len = _toLength(this.length);
+ var klass = _cof(this);
+ end = end === undefined ? len : end;
+ if (klass == 'Array') return arraySlice.call(this, begin, end);
+ var start = _toAbsoluteIndex(begin, len);
+ var upTo = _toAbsoluteIndex(end, len);
+ var size = _toLength(upTo - start);
+ var cloned = new Array(size);
+ var i = 0;
+ for (; i < size; i++) cloned[i] = klass == 'String'
+ ? this.charAt(start + i)
+ : this[start + i];
+ return cloned;
+ }
+});
+
+// 7.2.1 RequireObjectCoercible(argument)
+var _defined = function (it) {
+ if (it == undefined) throw TypeError("Can't call method on " + it);
+ return it;
+};
+
+// 7.1.13 ToObject(argument)
+
+var _toObject = function (it) {
+ return Object(_defined(it));
+};
+
+// fallback for non-array-like ES3 and non-enumerable old V8 strings
+
+// eslint-disable-next-line no-prototype-builtins
+var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
+ return _cof(it) == 'String' ? it.split('') : Object(it);
+};
+
+// to indexed object, toObject with fallback for non-array-like ES3 strings
+
+
+var _toIobject = function (it) {
+ return _iobject(_defined(it));
+};
+
+// false -> Array#indexOf
+// true -> Array#includes
+
+
+
+var _arrayIncludes = function (IS_INCLUDES) {
+ return function ($this, el, fromIndex) {
+ var O = _toIobject($this);
+ var length = _toLength(O.length);
+ var index = _toAbsoluteIndex(fromIndex, length);
+ var value;
+ // Array#includes uses SameValueZero equality algorithm
+ // eslint-disable-next-line no-self-compare
+ if (IS_INCLUDES && el != el) while (length > index) {
+ value = O[index++];
+ // eslint-disable-next-line no-self-compare
+ if (value != value) return true;
+ // Array#indexOf ignores holes, Array#includes - not
+ } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
+ if (O[index] === el) return IS_INCLUDES || index || 0;
+ } return !IS_INCLUDES && -1;
+ };
+};
+
+var shared = _shared('keys');
+
+var _sharedKey = function (key) {
+ return shared[key] || (shared[key] = _uid(key));
+};
+
+var arrayIndexOf = _arrayIncludes(false);
+var IE_PROTO$2 = _sharedKey('IE_PROTO');
+
+var _objectKeysInternal = function (object, names) {
+ var O = _toIobject(object);
+ var i = 0;
+ var result = [];
+ var key;
+ for (key in O) if (key != IE_PROTO$2) _has(O, key) && result.push(key);
+ // Don't enum bug & hidden keys
+ while (names.length > i) if (_has(O, key = names[i++])) {
+ ~arrayIndexOf(result, key) || result.push(key);
+ }
+ return result;
+};
+
+// IE 8- don't enum bug keys
+var _enumBugKeys = (
+ 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
+).split(',');
+
+// 19.1.2.14 / 15.2.3.14 Object.keys(O)
+
+
+
+var _objectKeys = Object.keys || function keys(O) {
+ return _objectKeysInternal(O, _enumBugKeys);
+};
+
+// most Object methods by ES6 should accept primitives
+
+
+
+var _objectSap = function (KEY, exec) {
+ var fn = (_core.Object || {})[KEY] || Object[KEY];
+ var exp = {};
+ exp[KEY] = exec(fn);
+ _export(_export.S + _export.F * _fails(function () { fn(1); }), 'Object', exp);
+};
+
+// 19.1.2.14 Object.keys(O)
+
+
+
+_objectSap('keys', function () {
+ return function keys(it) {
+ return _objectKeys(_toObject(it));
+ };
+});
+
+var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
+ _anObject(O);
+ var keys = _objectKeys(Properties);
+ var length = keys.length;
+ var i = 0;
+ var P;
+ while (length > i) _objectDp.f(O, P = keys[i++], Properties[P]);
+ return O;
+};
+
+// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+
+
+
+var IE_PROTO$1 = _sharedKey('IE_PROTO');
+var Empty = function () { /* empty */ };
+var PROTOTYPE$1 = 'prototype';
+
+// Create object with fake `null` prototype: use iframe Object with cleared prototype
+var createDict = function () {
+ // Thrash, waste and sodomy: IE GC bug
+ var iframe = _domCreate('iframe');
+ var i = _enumBugKeys.length;
+ var lt = '<';
+ var gt = '>';
+ var iframeDocument;
+ iframe.style.display = 'none';
+ _html.appendChild(iframe);
+ iframe.src = 'javascript:'; // eslint-disable-line no-script-url
+ // createDict = iframe.contentWindow.Object;
+ // html.removeChild(iframe);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
+ iframeDocument.close();
+ createDict = iframeDocument.F;
+ while (i--) delete createDict[PROTOTYPE$1][_enumBugKeys[i]];
+ return createDict();
+};
+
+var _objectCreate = Object.create || function create(O, Properties) {
+ var result;
+ if (O !== null) {
+ Empty[PROTOTYPE$1] = _anObject(O);
+ result = new Empty();
+ Empty[PROTOTYPE$1] = null;
+ // add "__proto__" for Object.getPrototypeOf polyfill
+ result[IE_PROTO$1] = O;
+ } else result = createDict();
+ return Properties === undefined ? result : _objectDps(result, Properties);
+};
+
+var _redefineAll = function (target, src, safe) {
+ for (var key in src) _redefine(target, key, src[key], safe);
+ return target;
+};
+
+var _anInstance = function (it, Constructor, name, forbiddenField) {
+ if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
+ throw TypeError(name + ': incorrect invocation!');
+ } return it;
+};
+
+// call something on iterator step with safe closing on error
+
+var _iterCall = function (iterator, fn, value, entries) {
+ try {
+ return entries ? fn(_anObject(value)[0], value[1]) : fn(value);
+ // 7.4.6 IteratorClose(iterator, completion)
+ } catch (e) {
+ var ret = iterator['return'];
+ if (ret !== undefined) _anObject(ret.call(iterator));
+ throw e;
+ }
+};
+
+var _iterators = {};
+
+var _wks = createCommonjsModule(function (module) {
+var store = _shared('wks');
+
+var Symbol = _global.Symbol;
+var USE_SYMBOL = typeof Symbol == 'function';
+
+var $exports = module.exports = function (name) {
+ return store[name] || (store[name] =
+ USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : _uid)('Symbol.' + name));
+};
+
+$exports.store = store;
+});
+
+// check on default Array iterator
+
+var ITERATOR$4 = _wks('iterator');
+var ArrayProto$1 = Array.prototype;
+
+var _isArrayIter = function (it) {
+ return it !== undefined && (_iterators.Array === it || ArrayProto$1[ITERATOR$4] === it);
+};
+
+// getting tag from 19.1.3.6 Object.prototype.toString()
+
+var TAG$1 = _wks('toStringTag');
+// ES3 wrong here
+var ARG = _cof(function () { return arguments; }()) == 'Arguments';
+
+// fallback for IE11 Script Access Denied error
+var tryGet = function (it, key) {
+ try {
+ return it[key];
+ } catch (e) { /* empty */ }
+};
+
+var _classof = function (it) {
+ var O, T, B;
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
+ // @@toStringTag case
+ : typeof (T = tryGet(O = Object(it), TAG$1)) == 'string' ? T
+ // builtinTag case
+ : ARG ? _cof(O)
+ // ES3 arguments fallback
+ : (B = _cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
+};
+
+var ITERATOR$3 = _wks('iterator');
+
+var core_getIteratorMethod = _core.getIteratorMethod = function (it) {
+ if (it != undefined) return it[ITERATOR$3]
+ || it['@@iterator']
+ || _iterators[_classof(it)];
+};
+
+var _forOf = createCommonjsModule(function (module) {
+var BREAK = {};
+var RETURN = {};
+var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
+ var iterFn = ITERATOR ? function () { return iterable; } : core_getIteratorMethod(iterable);
+ var f = _ctx(fn, that, entries ? 2 : 1);
+ var index = 0;
+ var length, step, iterator, result;
+ if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
+ // fast case for arrays with default iterator
+ if (_isArrayIter(iterFn)) for (length = _toLength(iterable.length); length > index; index++) {
+ result = entries ? f(_anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ if (result === BREAK || result === RETURN) return result;
+ } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
+ result = _iterCall(iterator, f, step.value, entries);
+ if (result === BREAK || result === RETURN) return result;
+ }
+};
+exports.BREAK = BREAK;
+exports.RETURN = RETURN;
+});
+
+var def$1 = _objectDp.f;
+
+var TAG = _wks('toStringTag');
+
+var _setToStringTag = function (it, tag, stat) {
+ if (it && !_has(it = stat ? it : it.prototype, TAG)) def$1(it, TAG, { configurable: true, value: tag });
+};
+
+var IteratorPrototype = {};
+
+// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
+_hide(IteratorPrototype, _wks('iterator'), function () { return this; });
+
+var _iterCreate = function (Constructor, NAME, next) {
+ Constructor.prototype = _objectCreate(IteratorPrototype, { next: _propertyDesc(1, next) });
+ _setToStringTag(Constructor, NAME + ' Iterator');
+};
+
+// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
+
+
+var IE_PROTO = _sharedKey('IE_PROTO');
+var ObjectProto$1 = Object.prototype;
+
+var _objectGpo = Object.getPrototypeOf || function (O) {
+ O = _toObject(O);
+ if (_has(O, IE_PROTO)) return O[IE_PROTO];
+ if (typeof O.constructor == 'function' && O instanceof O.constructor) {
+ return O.constructor.prototype;
+ } return O instanceof Object ? ObjectProto$1 : null;
+};
+
+var ITERATOR$2 = _wks('iterator');
+var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
+var FF_ITERATOR = '@@iterator';
+var KEYS = 'keys';
+var VALUES = 'values';
+
+var returnThis = function () { return this; };
+
+var _iterDefine = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
+ _iterCreate(Constructor, NAME, next);
+ var getMethod = function (kind) {
+ if (!BUGGY && kind in proto) return proto[kind];
+ switch (kind) {
+ case KEYS: return function keys() { return new Constructor(this, kind); };
+ case VALUES: return function values() { return new Constructor(this, kind); };
+ } return function entries() { return new Constructor(this, kind); };
+ };
+ var TAG = NAME + ' Iterator';
+ var DEF_VALUES = DEFAULT == VALUES;
+ var VALUES_BUG = false;
+ var proto = Base.prototype;
+ var $native = proto[ITERATOR$2] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
+ var $default = $native || getMethod(DEFAULT);
+ var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
+ var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
+ var methods, key, IteratorPrototype;
+ // Fix native
+ if ($anyNative) {
+ IteratorPrototype = _objectGpo($anyNative.call(new Base()));
+ if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
+ // Set @@toStringTag to native iterators
+ _setToStringTag(IteratorPrototype, TAG, true);
+ // fix for some old engines
+ if (typeof IteratorPrototype[ITERATOR$2] != 'function') _hide(IteratorPrototype, ITERATOR$2, returnThis);
+ }
+ }
+ // fix Array#{values, @@iterator}.name in V8 / FF
+ if (DEF_VALUES && $native && $native.name !== VALUES) {
+ VALUES_BUG = true;
+ $default = function values() { return $native.call(this); };
+ }
+ // Define iterator
+ if ((BUGGY || VALUES_BUG || !proto[ITERATOR$2])) {
+ _hide(proto, ITERATOR$2, $default);
+ }
+ // Plug for library
+ _iterators[NAME] = $default;
+ _iterators[TAG] = returnThis;
+ if (DEFAULT) {
+ methods = {
+ values: DEF_VALUES ? $default : getMethod(VALUES),
+ keys: IS_SET ? $default : getMethod(KEYS),
+ entries: $entries
+ };
+ if (FORCED) for (key in methods) {
+ if (!(key in proto)) _redefine(proto, key, methods[key]);
+ } else _export(_export.P + _export.F * (BUGGY || VALUES_BUG), NAME, methods);
+ }
+ return methods;
+};
+
+var _iterStep = function (done, value) {
+ return { value: value, done: !!done };
+};
+
+var SPECIES$2 = _wks('species');
+
+var _setSpecies = function (KEY) {
+ var C = _global[KEY];
+ if (_descriptors && C && !C[SPECIES$2]) _objectDp.f(C, SPECIES$2, {
+ configurable: true,
+ get: function () { return this; }
+ });
+};
+
+var _meta = createCommonjsModule(function (module) {
+var META = _uid('meta');
+
+
+var setDesc = _objectDp.f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+ return true;
+};
+var FREEZE = !_fails(function () {
+ return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+ setDesc(it, META, { value: {
+ i: 'O' + ++id, // object ID
+ w: {} // weak collections IDs
+ } });
+};
+var fastKey = function (it, create) {
+ // return primitive with prefix
+ if (!_isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+ if (!_has(it, META)) {
+ // can't set metadata to uncaught frozen object
+ if (!isExtensible(it)) return 'F';
+ // not necessary to add metadata
+ if (!create) return 'E';
+ // add missing metadata
+ setMeta(it);
+ // return object ID
+ } return it[META].i;
+};
+var getWeak = function (it, create) {
+ if (!_has(it, META)) {
+ // can't set metadata to uncaught frozen object
+ if (!isExtensible(it)) return true;
+ // not necessary to add metadata
+ if (!create) return false;
+ // add missing metadata
+ setMeta(it);
+ // return hash weak collections IDs
+ } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+ if (FREEZE && meta.NEED && isExtensible(it) && !_has(it, META)) setMeta(it);
+ return it;
+};
+var meta = module.exports = {
+ KEY: META,
+ NEED: false,
+ fastKey: fastKey,
+ getWeak: getWeak,
+ onFreeze: onFreeze
+};
+});
+_meta.KEY;
+_meta.NEED;
+_meta.fastKey;
+_meta.getWeak;
+_meta.onFreeze;
+
+var _validateCollection = function (it, TYPE) {
+ if (!_isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+ return it;
+};
+
+var dP$3 = _objectDp.f;
+
+
+
+
+
+
+
+
+
+var fastKey = _meta.fastKey;
+
+var SIZE = _descriptors ? '_s' : 'size';
+
+var getEntry = function (that, key) {
+ // fast case
+ var index = fastKey(key);
+ var entry;
+ if (index !== 'F') return that._i[index];
+ // frozen object case
+ for (entry = that._f; entry; entry = entry.n) {
+ if (entry.k == key) return entry;
+ }
+};
+
+var _collectionStrong = {
+ getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+ var C = wrapper(function (that, iterable) {
+ _anInstance(that, C, NAME, '_i');
+ that._t = NAME; // collection type
+ that._i = _objectCreate(null); // index
+ that._f = undefined; // first entry
+ that._l = undefined; // last entry
+ that[SIZE] = 0; // size
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
+ });
+ _redefineAll(C.prototype, {
+ // 23.1.3.1 Map.prototype.clear()
+ // 23.2.3.2 Set.prototype.clear()
+ clear: function clear() {
+ for (var that = _validateCollection(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+ entry.r = true;
+ if (entry.p) entry.p = entry.p.n = undefined;
+ delete data[entry.i];
+ }
+ that._f = that._l = undefined;
+ that[SIZE] = 0;
+ },
+ // 23.1.3.3 Map.prototype.delete(key)
+ // 23.2.3.4 Set.prototype.delete(value)
+ 'delete': function (key) {
+ var that = _validateCollection(this, NAME);
+ var entry = getEntry(that, key);
+ if (entry) {
+ var next = entry.n;
+ var prev = entry.p;
+ delete that._i[entry.i];
+ entry.r = true;
+ if (prev) prev.n = next;
+ if (next) next.p = prev;
+ if (that._f == entry) that._f = next;
+ if (that._l == entry) that._l = prev;
+ that[SIZE]--;
+ } return !!entry;
+ },
+ // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
+ // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
+ forEach: function forEach(callbackfn /* , that = undefined */) {
+ _validateCollection(this, NAME);
+ var f = _ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+ var entry;
+ while (entry = entry ? entry.n : this._f) {
+ f(entry.v, entry.k, this);
+ // revert to the last existing entry
+ while (entry && entry.r) entry = entry.p;
+ }
+ },
+ // 23.1.3.7 Map.prototype.has(key)
+ // 23.2.3.7 Set.prototype.has(value)
+ has: function has(key) {
+ return !!getEntry(_validateCollection(this, NAME), key);
+ }
+ });
+ if (_descriptors) dP$3(C.prototype, 'size', {
+ get: function () {
+ return _validateCollection(this, NAME)[SIZE];
+ }
+ });
+ return C;
+ },
+ def: function (that, key, value) {
+ var entry = getEntry(that, key);
+ var prev, index;
+ // change existing entry
+ if (entry) {
+ entry.v = value;
+ // create new entry
+ } else {
+ that._l = entry = {
+ i: index = fastKey(key, true), // <- index
+ k: key, // <- key
+ v: value, // <- value
+ p: prev = that._l, // <- previous entry
+ n: undefined, // <- next entry
+ r: false // <- removed
+ };
+ if (!that._f) that._f = entry;
+ if (prev) prev.n = entry;
+ that[SIZE]++;
+ // add to index
+ if (index !== 'F') that._i[index] = entry;
+ } return that;
+ },
+ getEntry: getEntry,
+ setStrong: function (C, NAME, IS_MAP) {
+ // add .keys, .values, .entries, [@@iterator]
+ // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
+ _iterDefine(C, NAME, function (iterated, kind) {
+ this._t = _validateCollection(iterated, NAME); // target
+ this._k = kind; // kind
+ this._l = undefined; // previous
+ }, function () {
+ var that = this;
+ var kind = that._k;
+ var entry = that._l;
+ // revert to the last existing entry
+ while (entry && entry.r) entry = entry.p;
+ // get next entry
+ if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
+ // or finish the iteration
+ that._t = undefined;
+ return _iterStep(1);
+ }
+ // return step by kind
+ if (kind == 'keys') return _iterStep(0, entry.k);
+ if (kind == 'values') return _iterStep(0, entry.v);
+ return _iterStep(0, [entry.k, entry.v]);
+ }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
+
+ // add [@@species], 23.1.2.2, 23.2.2.2
+ _setSpecies(NAME);
+ }
+};
+_collectionStrong.getConstructor;
+_collectionStrong.def;
+_collectionStrong.getEntry;
+_collectionStrong.setStrong;
+
+var ITERATOR$1 = _wks('iterator');
+var SAFE_CLOSING = false;
+
+try {
+ var riter = [7][ITERATOR$1]();
+ riter['return'] = function () { SAFE_CLOSING = true; };
+ // eslint-disable-next-line no-throw-literal
+ Array.from(riter, function () { throw 2; });
+} catch (e) { /* empty */ }
+
+var _iterDetect = function (exec, skipClosing) {
+ if (!skipClosing && !SAFE_CLOSING) return false;
+ var safe = false;
+ try {
+ var arr = [7];
+ var iter = arr[ITERATOR$1]();
+ iter.next = function () { return { done: safe = true }; };
+ arr[ITERATOR$1] = function () { return iter; };
+ exec(arr);
+ } catch (e) { /* empty */ }
+ return safe;
+};
+
+var f$5 = {}.propertyIsEnumerable;
+
+var _objectPie = {
+ f: f$5
+};
+
+var gOPD$1 = Object.getOwnPropertyDescriptor;
+
+var f$4 = _descriptors ? gOPD$1 : function getOwnPropertyDescriptor(O, P) {
+ O = _toIobject(O);
+ P = _toPrimitive(P, true);
+ if (_ie8DomDefine) try {
+ return gOPD$1(O, P);
+ } catch (e) { /* empty */ }
+ if (_has(O, P)) return _propertyDesc(!_objectPie.f.call(O, P), O[P]);
+};
+
+var _objectGopd = {
+ f: f$4
+};
+
+// Works with __proto__ only. Old v8 can't work with null proto objects.
+/* eslint-disable no-proto */
+
+
+var check = function (O, proto) {
+ _anObject(O);
+ if (!_isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
+};
+var _setProto = {
+ set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
+ function (test, buggy, set) {
+ try {
+ set = _ctx(Function.call, _objectGopd.f(Object.prototype, '__proto__').set, 2);
+ set(test, []);
+ buggy = !(test instanceof Array);
+ } catch (e) { buggy = true; }
+ return function setPrototypeOf(O, proto) {
+ check(O, proto);
+ if (buggy) O.__proto__ = proto;
+ else set(O, proto);
+ return O;
+ };
+ }({}, false) : undefined),
+ check: check
+};
+
+var setPrototypeOf = _setProto.set;
+var _inheritIfRequired = function (that, target, C) {
+ var S = target.constructor;
+ var P;
+ if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && _isObject(P) && setPrototypeOf) {
+ setPrototypeOf(that, P);
+ } return that;
+};
+
+var _collection = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+ var Base = _global[NAME];
+ var C = Base;
+ var ADDER = IS_MAP ? 'set' : 'add';
+ var proto = C && C.prototype;
+ var O = {};
+ var fixMethod = function (KEY) {
+ var fn = proto[KEY];
+ _redefine(proto, KEY,
+ KEY == 'delete' ? function (a) {
+ return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'has' ? function has(a) {
+ return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'get' ? function get(a) {
+ return IS_WEAK && !_isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
+ : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
+ );
+ };
+ if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !_fails(function () {
+ new C().entries().next();
+ }))) {
+ // create collection constructor
+ C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+ _redefineAll(C.prototype, methods);
+ _meta.NEED = true;
+ } else {
+ var instance = new C();
+ // early implementations not supports chaining
+ var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
+ // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
+ var THROWS_ON_PRIMITIVES = _fails(function () { instance.has(1); });
+ // most early implementations doesn't supports iterables, most modern - not close it correctly
+ var ACCEPT_ITERABLES = _iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
+ // for early implementations -0 and +0 not the same
+ var BUGGY_ZERO = !IS_WEAK && _fails(function () {
+ // V8 ~ Chromium 42- fails only with 5+ elements
+ var $instance = new C();
+ var index = 5;
+ while (index--) $instance[ADDER](index, index);
+ return !$instance.has(-0);
+ });
+ if (!ACCEPT_ITERABLES) {
+ C = wrapper(function (target, iterable) {
+ _anInstance(target, C, NAME);
+ var that = _inheritIfRequired(new Base(), target, C);
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
+ return that;
+ });
+ C.prototype = proto;
+ proto.constructor = C;
+ }
+ if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
+ fixMethod('delete');
+ fixMethod('has');
+ IS_MAP && fixMethod('get');
+ }
+ if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
+ // weak collections should not contains .clear method
+ if (IS_WEAK && proto.clear) delete proto.clear;
+ }
+
+ _setToStringTag(C, NAME);
+
+ O[NAME] = C;
+ _export(_export.G + _export.W + _export.F * (C != Base), O);
+
+ if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+ return C;
+};
+
+var SET = 'Set';
+
+// 23.2 Set Objects
+_collection(SET, function (get) {
+ return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
+}, {
+ // 23.2.3.1 Set.prototype.add(value)
+ add: function add(value) {
+ return _collectionStrong.def(_validateCollection(this, SET), value = value === 0 ? 0 : value, value);
+ }
+}, _collectionStrong);
+
+// true -> String#at
+// false -> String#codePointAt
+var _stringAt = function (TO_STRING) {
+ return function (that, pos) {
+ var s = String(_defined(that));
+ var i = _toInteger(pos);
+ var l = s.length;
+ var a, b;
+ if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
+ a = s.charCodeAt(i);
+ return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
+ ? TO_STRING ? s.charAt(i) : a
+ : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
+ };
+};
+
+var $at = _stringAt(true);
+
+// 21.1.3.27 String.prototype[@@iterator]()
+_iterDefine(String, 'String', function (iterated) {
+ this._t = String(iterated); // target
+ this._i = 0; // next index
+// 21.1.5.2.1 %StringIteratorPrototype%.next()
+}, function () {
+ var O = this._t;
+ var index = this._i;
+ var point;
+ if (index >= O.length) return { value: undefined, done: true };
+ point = $at(O, index);
+ this._i += point.length;
+ return { value: point, done: false };
+});
+
+// 19.1.3.6 Object.prototype.toString()
+
+var test = {};
+test[_wks('toStringTag')] = 'z';
+if (test + '' != '[object z]') {
+ _redefine(Object.prototype, 'toString', function toString() {
+ return '[object ' + _classof(this) + ']';
+ }, true);
+}
+
+// 22.1.3.31 Array.prototype[@@unscopables]
+var UNSCOPABLES = _wks('unscopables');
+var ArrayProto = Array.prototype;
+if (ArrayProto[UNSCOPABLES] == undefined) _hide(ArrayProto, UNSCOPABLES, {});
+var _addToUnscopables = function (key) {
+ ArrayProto[UNSCOPABLES][key] = true;
+};
+
+// 22.1.3.4 Array.prototype.entries()
+// 22.1.3.13 Array.prototype.keys()
+// 22.1.3.29 Array.prototype.values()
+// 22.1.3.30 Array.prototype[@@iterator]()
+var es6_array_iterator = _iterDefine(Array, 'Array', function (iterated, kind) {
+ this._t = _toIobject(iterated); // target
+ this._i = 0; // next index
+ this._k = kind; // kind
+// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
+}, function () {
+ var O = this._t;
+ var kind = this._k;
+ var index = this._i++;
+ if (!O || index >= O.length) {
+ this._t = undefined;
+ return _iterStep(1);
+ }
+ if (kind == 'keys') return _iterStep(0, index);
+ if (kind == 'values') return _iterStep(0, O[index]);
+ return _iterStep(0, [index, O[index]]);
+}, 'values');
+
+// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
+_iterators.Arguments = _iterators.Array;
+
+_addToUnscopables('keys');
+_addToUnscopables('values');
+_addToUnscopables('entries');
+
+var ITERATOR = _wks('iterator');
+var TO_STRING_TAG = _wks('toStringTag');
+var ArrayValues = _iterators.Array;
+
+var DOMIterables = {
+ CSSRuleList: true, // TODO: Not spec compliant, should be false.
+ CSSStyleDeclaration: false,
+ CSSValueList: false,
+ ClientRectList: false,
+ DOMRectList: false,
+ DOMStringList: false,
+ DOMTokenList: true,
+ DataTransferItemList: false,
+ FileList: false,
+ HTMLAllCollection: false,
+ HTMLCollection: false,
+ HTMLFormElement: false,
+ HTMLSelectElement: false,
+ MediaList: true, // TODO: Not spec compliant, should be false.
+ MimeTypeArray: false,
+ NamedNodeMap: false,
+ NodeList: true,
+ PaintRequestList: false,
+ Plugin: false,
+ PluginArray: false,
+ SVGLengthList: false,
+ SVGNumberList: false,
+ SVGPathSegList: false,
+ SVGPointList: false,
+ SVGStringList: false,
+ SVGTransformList: false,
+ SourceBufferList: false,
+ StyleSheetList: true, // TODO: Not spec compliant, should be false.
+ TextTrackCueList: false,
+ TextTrackList: false,
+ TouchList: false
+};
+
+for (var collections = _objectKeys(DOMIterables), i$1 = 0; i$1 < collections.length; i$1++) {
+ var NAME$1 = collections[i$1];
+ var explicit = DOMIterables[NAME$1];
+ var Collection = _global[NAME$1];
+ var proto$1 = Collection && Collection.prototype;
+ var key;
+ if (proto$1) {
+ if (!proto$1[ITERATOR]) _hide(proto$1, ITERATOR, ArrayValues);
+ if (!proto$1[TO_STRING_TAG]) _hide(proto$1, TO_STRING_TAG, NAME$1);
+ _iterators[NAME$1] = ArrayValues;
+ if (explicit) for (key in es6_array_iterator) if (!proto$1[key]) _redefine(proto$1, key, es6_array_iterator[key], true);
+ }
+}
+
+/**
+ * 消息管理器
+ */
+var Dep = /*#__PURE__*/function () {
+ function Dep() {
+ _classCallCheck(this, Dep);
+
+ this.deps = new Set();
+ } // 添加订阅者
+
+
+ _createClass(Dep, [{
+ key: "addSub",
+ value: function addSub(watcher) {
+ this.deps.add(watcher);
+ } // 操作watcher addDep 方法
+
+ }, {
+ key: "depend",
+ value: function depend() {
+ if (Dep.target) {
+ Dep.target.addDep(this);
+ }
+ } // 通知更新
+
+ }, {
+ key: "notify",
+ value: function notify() {
+ this.deps.forEach(function (watcher) {
+ return watcher.update();
+ });
+ }
+ }]);
+
+ return Dep;
+}();
+
+// 7.2.8 IsRegExp(argument)
+
+
+var MATCH = _wks('match');
+var _isRegexp = function (it) {
+ var isRegExp;
+ return _isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : _cof(it) == 'RegExp');
+};
+
+// 7.3.20 SpeciesConstructor(O, defaultConstructor)
+
+
+var SPECIES$1 = _wks('species');
+var _speciesConstructor = function (O, D) {
+ var C = _anObject(O).constructor;
+ var S;
+ return C === undefined || (S = _anObject(C)[SPECIES$1]) == undefined ? D : _aFunction(S);
+};
+
+var at = _stringAt(true);
+
+ // `AdvanceStringIndex` abstract operation
+// https://tc39.github.io/ecma262/#sec-advancestringindex
+var _advanceStringIndex = function (S, index, unicode) {
+ return index + (unicode ? at(S, index).length : 1);
+};
+
+var builtinExec = RegExp.prototype.exec;
+
+ // `RegExpExec` abstract operation
+// https://tc39.github.io/ecma262/#sec-regexpexec
+var _regexpExecAbstract = function (R, S) {
+ var exec = R.exec;
+ if (typeof exec === 'function') {
+ var result = exec.call(R, S);
+ if (typeof result !== 'object') {
+ throw new TypeError('RegExp exec method returned something other than an Object or null');
+ }
+ return result;
+ }
+ if (_classof(R) !== 'RegExp') {
+ throw new TypeError('RegExp#exec called on incompatible receiver');
+ }
+ return builtinExec.call(R, S);
+};
+
+// 21.2.5.3 get RegExp.prototype.flags
+
+var _flags = function () {
+ var that = _anObject(this);
+ var result = '';
+ if (that.global) result += 'g';
+ if (that.ignoreCase) result += 'i';
+ if (that.multiline) result += 'm';
+ if (that.unicode) result += 'u';
+ if (that.sticky) result += 'y';
+ return result;
+};
+
+var nativeExec = RegExp.prototype.exec;
+// This always refers to the native implementation, because the
+// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
+// which loads this file before patching the method.
+var nativeReplace = String.prototype.replace;
+
+var patchedExec = nativeExec;
+
+var LAST_INDEX$1 = 'lastIndex';
+
+var UPDATES_LAST_INDEX_WRONG = (function () {
+ var re1 = /a/,
+ re2 = /b*/g;
+ nativeExec.call(re1, 'a');
+ nativeExec.call(re2, 'a');
+ return re1[LAST_INDEX$1] !== 0 || re2[LAST_INDEX$1] !== 0;
+})();
+
+// nonparticipating capturing group, copied from es5-shim's String#split patch.
+var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
+
+var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
+
+if (PATCH) {
+ patchedExec = function exec(str) {
+ var re = this;
+ var lastIndex, reCopy, match, i;
+
+ if (NPCG_INCLUDED) {
+ reCopy = new RegExp('^' + re.source + '$(?!\\s)', _flags.call(re));
+ }
+ if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX$1];
+
+ match = nativeExec.call(re, str);
+
+ if (UPDATES_LAST_INDEX_WRONG && match) {
+ re[LAST_INDEX$1] = re.global ? match.index + match[0].length : lastIndex;
+ }
+ if (NPCG_INCLUDED && match && match.length > 1) {
+ // Fix browsers whose `exec` methods don't consistently return `undefined`
+ // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
+ // eslint-disable-next-line no-loop-func
+ nativeReplace.call(match[0], reCopy, function () {
+ for (i = 1; i < arguments.length - 2; i++) {
+ if (arguments[i] === undefined) match[i] = undefined;
+ }
+ });
+ }
+
+ return match;
+ };
+}
+
+var _regexpExec = patchedExec;
+
+_export({
+ target: 'RegExp',
+ proto: true,
+ forced: _regexpExec !== /./.exec
+}, {
+ exec: _regexpExec
+});
+
+var SPECIES = _wks('species');
+
+var REPLACE_SUPPORTS_NAMED_GROUPS = !_fails(function () {
+ // #replace needs built-in support for named groups.
+ // #match works fine because it just return the exec results, even if it has
+ // a "grops" property.
+ var re = /./;
+ re.exec = function () {
+ var result = [];
+ result.groups = { a: '7' };
+ return result;
+ };
+ return ''.replace(re, '$') !== '7';
+});
+
+var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
+ // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
+ var re = /(?:)/;
+ var originalExec = re.exec;
+ re.exec = function () { return originalExec.apply(this, arguments); };
+ var result = 'ab'.split(re);
+ return result.length === 2 && result[0] === 'a' && result[1] === 'b';
+})();
+
+var _fixReWks = function (KEY, length, exec) {
+ var SYMBOL = _wks(KEY);
+
+ var DELEGATES_TO_SYMBOL = !_fails(function () {
+ // String methods call symbol-named RegEp methods
+ var O = {};
+ O[SYMBOL] = function () { return 7; };
+ return ''[KEY](O) != 7;
+ });
+
+ var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !_fails(function () {
+ // Symbol-named RegExp methods call .exec
+ var execCalled = false;
+ var re = /a/;
+ re.exec = function () { execCalled = true; return null; };
+ if (KEY === 'split') {
+ // RegExp[@@split] doesn't call the regex's exec method, but first creates
+ // a new one. We need to return the patched regex when creating the new one.
+ re.constructor = {};
+ re.constructor[SPECIES] = function () { return re; };
+ }
+ re[SYMBOL]('');
+ return !execCalled;
+ }) : undefined;
+
+ if (
+ !DELEGATES_TO_SYMBOL ||
+ !DELEGATES_TO_EXEC ||
+ (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
+ (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
+ ) {
+ var nativeRegExpMethod = /./[SYMBOL];
+ var fns = exec(
+ _defined,
+ SYMBOL,
+ ''[KEY],
+ function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
+ if (regexp.exec === _regexpExec) {
+ if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
+ // The native String method already delegates to @@method (this
+ // polyfilled function), leasing to infinite recursion.
+ // We avoid it by directly calling the native @@method method.
+ return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
+ }
+ return { done: true, value: nativeMethod.call(str, regexp, arg2) };
+ }
+ return { done: false };
+ }
+ );
+ var strfn = fns[0];
+ var rxfn = fns[1];
+
+ _redefine(String.prototype, KEY, strfn);
+ _hide(RegExp.prototype, SYMBOL, length == 2
+ // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
+ // 21.2.5.11 RegExp.prototype[@@split](string, limit)
+ ? function (string, arg) { return rxfn.call(string, this, arg); }
+ // 21.2.5.6 RegExp.prototype[@@match](string)
+ // 21.2.5.9 RegExp.prototype[@@search](string)
+ : function (string) { return rxfn.call(string, this); }
+ );
+ }
+};
+
+var $min = Math.min;
+var $push = [].push;
+var $SPLIT = 'split';
+var LENGTH = 'length';
+var LAST_INDEX = 'lastIndex';
+var MAX_UINT32 = 0xffffffff;
+
+// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
+var SUPPORTS_Y = !_fails(function () { RegExp(MAX_UINT32, 'y'); });
+
+// @@split logic
+_fixReWks('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
+ var internalSplit;
+ if (
+ 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
+ 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
+ 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
+ '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
+ '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
+ ''[$SPLIT](/.?/)[LENGTH]
+ ) {
+ // based on es5-shim implementation, need to rework it
+ internalSplit = function (separator, limit) {
+ var string = String(this);
+ if (separator === undefined && limit === 0) return [];
+ // If `separator` is not a regex, use native split
+ if (!_isRegexp(separator)) return $split.call(string, separator, limit);
+ var output = [];
+ var flags = (separator.ignoreCase ? 'i' : '') +
+ (separator.multiline ? 'm' : '') +
+ (separator.unicode ? 'u' : '') +
+ (separator.sticky ? 'y' : '');
+ var lastLastIndex = 0;
+ var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
+ // Make `global` and avoid `lastIndex` issues by working with a copy
+ var separatorCopy = new RegExp(separator.source, flags + 'g');
+ var match, lastIndex, lastLength;
+ while (match = _regexpExec.call(separatorCopy, string)) {
+ lastIndex = separatorCopy[LAST_INDEX];
+ if (lastIndex > lastLastIndex) {
+ output.push(string.slice(lastLastIndex, match.index));
+ if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
+ lastLength = match[0][LENGTH];
+ lastLastIndex = lastIndex;
+ if (output[LENGTH] >= splitLimit) break;
+ }
+ if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
+ }
+ if (lastLastIndex === string[LENGTH]) {
+ if (lastLength || !separatorCopy.test('')) output.push('');
+ } else output.push(string.slice(lastLastIndex));
+ return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
+ };
+ // Chakra, V8
+ } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
+ internalSplit = function (separator, limit) {
+ return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
+ };
+ } else {
+ internalSplit = $split;
+ }
+
+ return [
+ // `String.prototype.split` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.split
+ function split(separator, limit) {
+ var O = defined(this);
+ var splitter = separator == undefined ? undefined : separator[SPLIT];
+ return splitter !== undefined
+ ? splitter.call(separator, O, limit)
+ : internalSplit.call(String(O), separator, limit);
+ },
+ // `RegExp.prototype[@@split]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
+ //
+ // NOTE: This cannot be properly polyfilled in engines that don't support
+ // the 'y' flag.
+ function (regexp, limit) {
+ var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
+ if (res.done) return res.value;
+
+ var rx = _anObject(regexp);
+ var S = String(this);
+ var C = _speciesConstructor(rx, RegExp);
+
+ var unicodeMatching = rx.unicode;
+ var flags = (rx.ignoreCase ? 'i' : '') +
+ (rx.multiline ? 'm' : '') +
+ (rx.unicode ? 'u' : '') +
+ (SUPPORTS_Y ? 'y' : 'g');
+
+ // ^(? + rx + ) is needed, in combination with some S slicing, to
+ // simulate the 'y' flag.
+ var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
+ var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
+ if (lim === 0) return [];
+ if (S.length === 0) return _regexpExecAbstract(splitter, S) === null ? [S] : [];
+ var p = 0;
+ var q = 0;
+ var A = [];
+ while (q < S.length) {
+ splitter.lastIndex = SUPPORTS_Y ? q : 0;
+ var z = _regexpExecAbstract(splitter, SUPPORTS_Y ? S : S.slice(q));
+ var e;
+ if (
+ z === null ||
+ (e = $min(_toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
+ ) {
+ q = _advanceStringIndex(S, q, unicodeMatching);
+ } else {
+ A.push(S.slice(p, q));
+ if (A.length === lim) return A;
+ for (var i = 1; i <= z.length - 1; i++) {
+ A.push(z[i]);
+ if (A.length === lim) return A;
+ }
+ q = p = e;
+ }
+ }
+ A.push(S.slice(p));
+ return A;
+ }
+ ];
+});
+
+var max = Math.max;
+var min = Math.min;
+var floor = Math.floor;
+var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
+var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;
+
+var maybeToString = function (it) {
+ return it === undefined ? it : String(it);
+};
+
+// @@replace logic
+_fixReWks('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
+ return [
+ // `String.prototype.replace` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.replace
+ function replace(searchValue, replaceValue) {
+ var O = defined(this);
+ var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
+ return fn !== undefined
+ ? fn.call(searchValue, O, replaceValue)
+ : $replace.call(String(O), searchValue, replaceValue);
+ },
+ // `RegExp.prototype[@@replace]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
+ function (regexp, replaceValue) {
+ var res = maybeCallNative($replace, regexp, this, replaceValue);
+ if (res.done) return res.value;
+
+ var rx = _anObject(regexp);
+ var S = String(this);
+ var functionalReplace = typeof replaceValue === 'function';
+ if (!functionalReplace) replaceValue = String(replaceValue);
+ var global = rx.global;
+ if (global) {
+ var fullUnicode = rx.unicode;
+ rx.lastIndex = 0;
+ }
+ var results = [];
+ while (true) {
+ var result = _regexpExecAbstract(rx, S);
+ if (result === null) break;
+ results.push(result);
+ if (!global) break;
+ var matchStr = String(result[0]);
+ if (matchStr === '') rx.lastIndex = _advanceStringIndex(S, _toLength(rx.lastIndex), fullUnicode);
+ }
+ var accumulatedResult = '';
+ var nextSourcePosition = 0;
+ for (var i = 0; i < results.length; i++) {
+ result = results[i];
+ var matched = String(result[0]);
+ var position = max(min(_toInteger(result.index), S.length), 0);
+ var captures = [];
+ // NOTE: This is equivalent to
+ // captures = result.slice(1).map(maybeToString)
+ // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
+ // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
+ // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
+ for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
+ var namedCaptures = result.groups;
+ if (functionalReplace) {
+ var replacerArgs = [matched].concat(captures, position, S);
+ if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
+ var replacement = String(replaceValue.apply(undefined, replacerArgs));
+ } else {
+ replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
+ }
+ if (position >= nextSourcePosition) {
+ accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
+ nextSourcePosition = position + matched.length;
+ }
+ }
+ return accumulatedResult + S.slice(nextSourcePosition);
+ }
+ ];
+
+ // https://tc39.github.io/ecma262/#sec-getsubstitution
+ function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
+ var tailPos = position + matched.length;
+ var m = captures.length;
+ var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
+ if (namedCaptures !== undefined) {
+ namedCaptures = _toObject(namedCaptures);
+ symbols = SUBSTITUTION_SYMBOLS;
+ }
+ return $replace.call(replacement, symbols, function (match, ch) {
+ var capture;
+ switch (ch.charAt(0)) {
+ case '$': return '$';
+ case '&': return matched;
+ case '`': return str.slice(0, position);
+ case "'": return str.slice(tailPos);
+ case '<':
+ capture = namedCaptures[ch.slice(1, -1)];
+ break;
+ default: // \d\d?
+ var n = +ch;
+ if (n === 0) return match;
+ if (n > m) {
+ var f = floor(n / 10);
+ if (f === 0) return match;
+ if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
+ return match;
+ }
+ capture = captures[n - 1];
+ }
+ return capture === undefined ? '' : capture;
+ });
+ }
+});
+
+function def(obj, key, val, enumerable) {
+ Object.defineProperty(obj, key, {
+ value: val,
+ enumerable: !!enumerable,
+ writable: true,
+ configurable: true
+ });
+} // 数组响应式处理
+
+function dependArray(value) {
+ for (var e, i = 0, l = value.length; i < l; i++) {
+ e = value[i];
+ e && e.__ob__ && e.__ob__.dep.depend();
+
+ if (Array.isArray(e)) {
+ dependArray(e);
+ }
+ }
+} // 检测一个对象的属性是否存在
+
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+function hasOwn(obj, key) {
+ return hasOwnProperty.call(obj, key);
+}
+
+var arrayProto = Array.prototype;
+var arrayMethods = Object.create(arrayProto);
+var methodsToPatch = ["push", "pop", "shift", "unshift", "splice", "sort", "reverse"];
+methodsToPatch.forEach(function (method) {
+ // 保存原始方法
+ var original = arrayProto[method]; // 覆盖之
+
+ def(arrayMethods, method, function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ // 1.执行默认方法
+ var result = original.apply(this, args); // 2.变更通知
+
+ var ob = this.__ob__; // 可能会有新元素加入
+
+ var inserted;
+
+ switch (method) {
+ case 'push':
+ case 'unshift':
+ inserted = args;
+ break;
+
+ case 'splice':
+ inserted = args.slice(2);
+ break;
+ } // 对新加入的元素做响应式
+
+
+ if (inserted) ob.observeArray(inserted); // notify change
+ // ob内部有一个dep,让它去通知更新
+
+ ob.dep.notify();
+ return result;
+ });
+});
+
+var Observer = /*#__PURE__*/function () {
+ function Observer(value) {
+ _classCallCheck(this, Observer);
+
+ this.value = value;
+ this.dep = new Dep();
+ def(value, '__ob__', this);
+
+ if (Array.isArray(value)) {
+ if ('__proto__' in {}) {
+ value.__proto__ = arrayMethods;
+ }
+
+ this.observeArray(value);
+ } else {
+ this.walk(value);
+ }
+ } // 数组响应式处理
+
+
+ _createClass(Observer, [{
+ key: "observeArray",
+ value: function observeArray(arr) {
+ for (var i = 0, l = arr.length; i < l; i++) {
+ observe(arr[i]);
+ }
+ } // 对象响应式处理
+
+ }, {
+ key: "walk",
+ value: function walk(obj) {
+ Object.keys(obj).forEach(function (key) {
+ defineReactive(obj, key, obj[key]);
+ });
+ }
+ }]);
+
+ return Observer;
+}(); // 数据劫持
+
+function defineReactive(obj, key, val) {
+ var childOb = observe(val); // 每一可以对应一个 dep;
+
+ var dep = new Dep();
+ Object.defineProperty(obj, key, {
+ get: function get() {
+ // 依赖收集
+ dep.depend();
+
+ if (childOb) {
+ // 子ob也要做依赖收集
+ childOb.dep.depend();
+
+ if (Array.isArray(val)) {
+ dependArray(val);
+ }
+ }
+
+ return val;
+ },
+ set: function set(newVal) {
+ if (val !== newVal) {
+ observe(newVal);
+ val = newVal; // 通知更新
+
+ dep.notify();
+ }
+ }
+ });
+} // observe
+
+function observe(obj) {
+ if (_typeof(obj) !== 'object' || obj === null) {
+ return;
+ }
+
+ var ob;
+
+ if (hasOwn(obj, '__ob__') && obj.__ob__ instanceof Observer) {
+ ob = obj.__ob__;
+ } else {
+ ob = new Observer(obj);
+ }
+
+ return ob;
+} // porxy
+
+function proxy$1(vm) {
+ Object.keys(vm.$data).forEach(function (key) {
+ Object.defineProperty(vm, key, {
+ get: function get() {
+ return vm.$data[key];
+ },
+ set: function set(newVal) {
+ vm.$data[key] = newVal;
+ }
+ });
+ });
+}
+
+var f$3 = _wks;
+
+var _wksExt = {
+ f: f$3
+};
+
+var defineProperty = _objectDp.f;
+var _wksDefine = function (name) {
+ var $Symbol = _core.Symbol || (_core.Symbol = _global.Symbol || {});
+ if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: _wksExt.f(name) });
+};
+
+var f$2 = Object.getOwnPropertySymbols;
+
+var _objectGops = {
+ f: f$2
+};
+
+// all enumerable object keys, includes symbols
+
+
+
+var _enumKeys = function (it) {
+ var result = _objectKeys(it);
+ var getSymbols = _objectGops.f;
+ if (getSymbols) {
+ var symbols = getSymbols(it);
+ var isEnum = _objectPie.f;
+ var i = 0;
+ var key;
+ while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
+ } return result;
+};
+
+// 7.2.2 IsArray(argument)
+
+var _isArray = Array.isArray || function isArray(arg) {
+ return _cof(arg) == 'Array';
+};
+
+// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
+
+var hiddenKeys = _enumBugKeys.concat('length', 'prototype');
+
+var f$1 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
+ return _objectKeysInternal(O, hiddenKeys);
+};
+
+var _objectGopn = {
+ f: f$1
+};
+
+// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
+
+var gOPN$2 = _objectGopn.f;
+var toString = {}.toString;
+
+var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
+ ? Object.getOwnPropertyNames(window) : [];
+
+var getWindowNames = function (it) {
+ try {
+ return gOPN$2(it);
+ } catch (e) {
+ return windowNames.slice();
+ }
+};
+
+var f = function getOwnPropertyNames(it) {
+ return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN$2(_toIobject(it));
+};
+
+var _objectGopnExt = {
+ f: f
+};
+
+// ECMAScript 6 symbols shim
+
+
+
+
+
+var META = _meta.KEY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var gOPD = _objectGopd.f;
+var dP$2 = _objectDp.f;
+var gOPN$1 = _objectGopnExt.f;
+var $Symbol = _global.Symbol;
+var $JSON = _global.JSON;
+var _stringify = $JSON && $JSON.stringify;
+var PROTOTYPE = 'prototype';
+var HIDDEN = _wks('_hidden');
+var TO_PRIMITIVE = _wks('toPrimitive');
+var isEnum = {}.propertyIsEnumerable;
+var SymbolRegistry = _shared('symbol-registry');
+var AllSymbols = _shared('symbols');
+var OPSymbols = _shared('op-symbols');
+var ObjectProto = Object[PROTOTYPE];
+var USE_NATIVE = typeof $Symbol == 'function' && !!_objectGops.f;
+var QObject = _global.QObject;
+// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
+
+// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
+var setSymbolDesc = _descriptors && _fails(function () {
+ return _objectCreate(dP$2({}, 'a', {
+ get: function () { return dP$2(this, 'a', { value: 7 }).a; }
+ })).a != 7;
+}) ? function (it, key, D) {
+ var protoDesc = gOPD(ObjectProto, key);
+ if (protoDesc) delete ObjectProto[key];
+ dP$2(it, key, D);
+ if (protoDesc && it !== ObjectProto) dP$2(ObjectProto, key, protoDesc);
+} : dP$2;
+
+var wrap = function (tag) {
+ var sym = AllSymbols[tag] = _objectCreate($Symbol[PROTOTYPE]);
+ sym._k = tag;
+ return sym;
+};
+
+var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
+ return typeof it == 'symbol';
+} : function (it) {
+ return it instanceof $Symbol;
+};
+
+var $defineProperty = function defineProperty(it, key, D) {
+ if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
+ _anObject(it);
+ key = _toPrimitive(key, true);
+ _anObject(D);
+ if (_has(AllSymbols, key)) {
+ if (!D.enumerable) {
+ if (!_has(it, HIDDEN)) dP$2(it, HIDDEN, _propertyDesc(1, {}));
+ it[HIDDEN][key] = true;
+ } else {
+ if (_has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
+ D = _objectCreate(D, { enumerable: _propertyDesc(0, false) });
+ } return setSymbolDesc(it, key, D);
+ } return dP$2(it, key, D);
+};
+var $defineProperties = function defineProperties(it, P) {
+ _anObject(it);
+ var keys = _enumKeys(P = _toIobject(P));
+ var i = 0;
+ var l = keys.length;
+ var key;
+ while (l > i) $defineProperty(it, key = keys[i++], P[key]);
+ return it;
+};
+var $create = function create(it, P) {
+ return P === undefined ? _objectCreate(it) : $defineProperties(_objectCreate(it), P);
+};
+var $propertyIsEnumerable = function propertyIsEnumerable(key) {
+ var E = isEnum.call(this, key = _toPrimitive(key, true));
+ if (this === ObjectProto && _has(AllSymbols, key) && !_has(OPSymbols, key)) return false;
+ return E || !_has(this, key) || !_has(AllSymbols, key) || _has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
+};
+var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
+ it = _toIobject(it);
+ key = _toPrimitive(key, true);
+ if (it === ObjectProto && _has(AllSymbols, key) && !_has(OPSymbols, key)) return;
+ var D = gOPD(it, key);
+ if (D && _has(AllSymbols, key) && !(_has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
+ return D;
+};
+var $getOwnPropertyNames = function getOwnPropertyNames(it) {
+ var names = gOPN$1(_toIobject(it));
+ var result = [];
+ var i = 0;
+ var key;
+ while (names.length > i) {
+ if (!_has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
+ } return result;
+};
+var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
+ var IS_OP = it === ObjectProto;
+ var names = gOPN$1(IS_OP ? OPSymbols : _toIobject(it));
+ var result = [];
+ var i = 0;
+ var key;
+ while (names.length > i) {
+ if (_has(AllSymbols, key = names[i++]) && (IS_OP ? _has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
+ } return result;
+};
+
+// 19.4.1.1 Symbol([description])
+if (!USE_NATIVE) {
+ $Symbol = function Symbol() {
+ if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
+ var tag = _uid(arguments.length > 0 ? arguments[0] : undefined);
+ var $set = function (value) {
+ if (this === ObjectProto) $set.call(OPSymbols, value);
+ if (_has(this, HIDDEN) && _has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
+ setSymbolDesc(this, tag, _propertyDesc(1, value));
+ };
+ if (_descriptors && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
+ return wrap(tag);
+ };
+ _redefine($Symbol[PROTOTYPE], 'toString', function toString() {
+ return this._k;
+ });
+
+ _objectGopd.f = $getOwnPropertyDescriptor;
+ _objectDp.f = $defineProperty;
+ _objectGopn.f = _objectGopnExt.f = $getOwnPropertyNames;
+ _objectPie.f = $propertyIsEnumerable;
+ _objectGops.f = $getOwnPropertySymbols;
+
+ if (_descriptors && !_library) {
+ _redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
+ }
+
+ _wksExt.f = function (name) {
+ return wrap(_wks(name));
+ };
+}
+
+_export(_export.G + _export.W + _export.F * !USE_NATIVE, { Symbol: $Symbol });
+
+for (var es6Symbols = (
+ // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
+).split(','), j = 0; es6Symbols.length > j;)_wks(es6Symbols[j++]);
+
+for (var wellKnownSymbols = _objectKeys(_wks.store), k = 0; wellKnownSymbols.length > k;) _wksDefine(wellKnownSymbols[k++]);
+
+_export(_export.S + _export.F * !USE_NATIVE, 'Symbol', {
+ // 19.4.2.1 Symbol.for(key)
+ 'for': function (key) {
+ return _has(SymbolRegistry, key += '')
+ ? SymbolRegistry[key]
+ : SymbolRegistry[key] = $Symbol(key);
+ },
+ // 19.4.2.5 Symbol.keyFor(sym)
+ keyFor: function keyFor(sym) {
+ if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
+ for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
+ },
+ useSetter: function () { setter = true; },
+ useSimple: function () { setter = false; }
+});
+
+_export(_export.S + _export.F * !USE_NATIVE, 'Object', {
+ // 19.1.2.2 Object.create(O [, Properties])
+ create: $create,
+ // 19.1.2.4 Object.defineProperty(O, P, Attributes)
+ defineProperty: $defineProperty,
+ // 19.1.2.3 Object.defineProperties(O, Properties)
+ defineProperties: $defineProperties,
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ getOwnPropertyNames: $getOwnPropertyNames,
+ // 19.1.2.8 Object.getOwnPropertySymbols(O)
+ getOwnPropertySymbols: $getOwnPropertySymbols
+});
+
+// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
+// https://bugs.chromium.org/p/v8/issues/detail?id=3443
+var FAILS_ON_PRIMITIVES = _fails(function () { _objectGops.f(1); });
+
+_export(_export.S + _export.F * FAILS_ON_PRIMITIVES, 'Object', {
+ getOwnPropertySymbols: function getOwnPropertySymbols(it) {
+ return _objectGops.f(_toObject(it));
+ }
+});
+
+// 24.3.2 JSON.stringify(value [, replacer [, space]])
+$JSON && _export(_export.S + _export.F * (!USE_NATIVE || _fails(function () {
+ var S = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ // WebKit converts symbol values to JSON as null
+ // V8 throws on boxed symbols
+ return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
+})), 'JSON', {
+ stringify: function stringify(it) {
+ var args = [it];
+ var i = 1;
+ var replacer, $replacer;
+ while (arguments.length > i) args.push(arguments[i++]);
+ $replacer = replacer = args[1];
+ if (!_isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
+ if (!_isArray(replacer)) replacer = function (key, value) {
+ if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
+ if (!isSymbol(value)) return value;
+ };
+ args[1] = replacer;
+ return _stringify.apply($JSON, args);
+ }
+});
+
+// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
+$Symbol[PROTOTYPE][TO_PRIMITIVE] || _hide($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
+// 19.4.3.5 Symbol.prototype[@@toStringTag]
+_setToStringTag($Symbol, 'Symbol');
+// 20.2.1.9 Math[@@toStringTag]
+_setToStringTag(Math, 'Math', true);
+// 24.3.3 JSON[@@toStringTag]
+_setToStringTag(_global.JSON, 'JSON', true);
+
+var _createProperty = function (object, index, value) {
+ if (index in object) _objectDp.f(object, index, _propertyDesc(0, value));
+ else object[index] = value;
+};
+
+_export(_export.S + _export.F * !_iterDetect(function (iter) { Array.from(iter); }), 'Array', {
+ // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
+ from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
+ var O = _toObject(arrayLike);
+ var C = typeof this == 'function' ? this : Array;
+ var aLen = arguments.length;
+ var mapfn = aLen > 1 ? arguments[1] : undefined;
+ var mapping = mapfn !== undefined;
+ var index = 0;
+ var iterFn = core_getIteratorMethod(O);
+ var length, result, step, iterator;
+ if (mapping) mapfn = _ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
+ // if object isn't iterable or it's array with default iterator - use simple case
+ if (iterFn != undefined && !(C == Array && _isArrayIter(iterFn))) {
+ for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
+ _createProperty(result, index, mapping ? _iterCall(iterator, mapfn, [step.value, index], true) : step.value);
+ }
+ } else {
+ length = _toLength(O.length);
+ for (result = new C(length); length > index; index++) {
+ _createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
+ }
+ }
+ result.length = index;
+ return result;
+ }
+});
+
+var dP$1 = _objectDp.f;
+var FProto = Function.prototype;
+var nameRE = /^\s*function ([^ (]*)/;
+var NAME = 'name';
+
+// 19.2.4.2 name
+NAME in FProto || _descriptors && dP$1(FProto, NAME, {
+ configurable: true,
+ get: function () {
+ try {
+ return ('' + this).match(nameRE)[1];
+ } catch (e) {
+ return '';
+ }
+ }
+});
+
+var dP = _objectDp.f;
+var gOPN = _objectGopn.f;
+
+
+var $RegExp = _global.RegExp;
+var Base = $RegExp;
+var proto = $RegExp.prototype;
+var re1 = /a/g;
+var re2 = /a/g;
+// "new" creates a new object, old webkit buggy here
+var CORRECT_NEW = new $RegExp(re1) !== re1;
+
+if (_descriptors && (!CORRECT_NEW || _fails(function () {
+ re2[_wks('match')] = false;
+ // RegExp constructor can alter flags and IsRegExp works correct with @@match
+ return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
+}))) {
+ $RegExp = function RegExp(p, f) {
+ var tiRE = this instanceof $RegExp;
+ var piRE = _isRegexp(p);
+ var fiU = f === undefined;
+ return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
+ : _inheritIfRequired(CORRECT_NEW
+ ? new Base(piRE && !fiU ? p.source : p, f)
+ : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? _flags.call(p) : f)
+ , tiRE ? this : proto, $RegExp);
+ };
+ var proxy = function (key) {
+ key in $RegExp || dP($RegExp, key, {
+ configurable: true,
+ get: function () { return Base[key]; },
+ set: function (it) { Base[key] = it; }
+ });
+ };
+ for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);
+ proto.constructor = $RegExp;
+ $RegExp.prototype = proto;
+ _redefine(_global, 'RegExp', $RegExp);
+}
+
+_setSpecies('RegExp');
+
+var Watcher = /*#__PURE__*/function () {
+ function Watcher(vm, updaterFn) {
+ _classCallCheck(this, Watcher);
+
+ this.vm = vm;
+ this.getter = updaterFn; // 依赖收集
+
+ this.get();
+ }
+
+ _createClass(Watcher, [{
+ key: "get",
+ value: function get() {
+ Dep.target = this;
+ this.getter.call(this.vm);
+ Dep.target = null;
+ } // 相互添加引用
+
+ }, {
+ key: "addDep",
+ value: function addDep(dep) {
+ dep.addSub(this);
+ }
+ }, {
+ key: "update",
+ value: function update() {
+ this.get(); // this.updaterFn.call(this.vm, getDataVal.call(this.vm, this.key))
+ }
+ }]);
+
+ return Watcher;
+}();
+
+var Vue = /*#__PURE__*/function () {
+ function Vue(options) {
+ _classCallCheck(this, Vue);
+
+ this.$options = options;
+ this.$data = options.data;
+ observe(this.$data); // 代理data
+
+ proxy$1(this); // 代理methods
+
+ for (var key in options.methods) {
+ this[key] = typeof options.methods[key] === 'function' ? options.methods[key].bind(this) : noop;
+ } // 模板编译
+ // new Compile(options.el, this)
+
+
+ if (options.el) {
+ this.$mount(options.el);
+ }
+ } // 挂载
+
+
+ _createClass(Vue, [{
+ key: "$mount",
+ value: function $mount(el) {
+ var _this = this;
+
+ // 获取宿主原始
+ this.$el = document.querySelector(el); // 组件更新函数
+
+ var updateComponent = function updateComponent() {
+ var render = _this.$options.render;
+ var vnode = render.call(_this, _this.$createElement);
+
+ _this._update(vnode);
+ }; // 创建wather
+
+
+ new Watcher(this, updateComponent);
+ } // 获取vnode
+
+ }, {
+ key: "$createElement",
+ value: function $createElement(tag, props, children) {
+ return {
+ tag: tag,
+ props: props,
+ children: children
+ };
+ } // 更新
+
+ }, {
+ key: "_update",
+ value: function _update(vnode) {
+ var preVnode = this._vnode;
+
+ if (preVnode) {
+ // 更新
+ this.__patch__(preVnode, vnode);
+ } else {
+ // 初始化
+ this.__patch__(this.$el, vnode);
+ }
+ } // patch方法
+
+ }, {
+ key: "__patch__",
+ value: function __patch__(oldVode, vnode) {
+ var _this2 = this;
+
+ // 判断old是否为dom
+ if (oldVode.nodeType) {
+ // 初始化
+ var parent = oldVode.parentElement;
+ var refElm = oldVode.nextSibling; // 递归vnode创建dom树
+
+ var el = this.createElm(vnode);
+ parent.insertBefore(el, refElm);
+ parent.removeChild(oldVode);
+ } else {
+ // 更新
+ var _el = vnode.el = oldVode.el; // 判断是否是相同节点samenode
+
+
+ if (oldVode.tag === vnode.tag) {
+ // diff
+ // props
+ // children
+ var oldCh = oldVode.children;
+ var newCh = vnode.children;
+
+ if (typeof newCh === 'string') {
+ if (typeof oldCh === 'string') {
+ if (newCh !== oldCh) {
+ _el.textContent = newCh;
+ }
+ } else {
+ // 清空并替换为文本
+ _el.textContent = newCh;
+ }
+ } else {
+ // 数组
+ if (typeof oldCh === 'string') {
+ _el.innerHTML = '';
+ newCh.forEach(function (child) {
+ _el.appendChild(_this2.createElm(child));
+ });
+ } else {
+ // 双方都有孩子 diff
+ this.updateChildren(_el, oldCh, newCh);
+ }
+ }
+ }
+ } // 保存vnode
+
+
+ this._vnode = vnode;
+ } // 创建真实节点
+
+ }, {
+ key: "createElm",
+ value: function createElm(vnode) {
+ var _this3 = this;
+
+ var el = document.createElement(vnode.tag); // props
+
+ for (var key in vnode.props) {
+ el.setAttribute(key, vnode.props[key]);
+ } // 处理子节点
+
+
+ if (vnode.children) {
+ if (_typeof(vnode.children) !== 'object') {
+ el.textContent = vnode.children;
+ } else {
+ // 数组类子元素
+ vnode.children.forEach(function (vnode) {
+ el.appendChild(_this3.createElm(vnode));
+ });
+ }
+ }
+
+ vnode.el = el;
+ return el;
+ } // 更新子元素
+
+ }, {
+ key: "updateChildren",
+ value: function updateChildren(parentElm, oldCh, newCh) {
+ var _this4 = this;
+
+ var len = Math.min(oldCh.length, newCh.length); // 强制更新,不管节点是否相同
+
+ for (var i = 0; i < len; i++) {
+ this.__patch__(oldCh[i], newCh[i]);
+ }
+
+ if (oldCh.length > newCh.length) {
+ // 删除
+ oldCh.slice(len).forEach(function (child) {
+ parentElm.removeChild(child.el);
+ });
+ } else {
+ // 追加
+ newCh.slice(len).forEach(function (child) {
+ var el = _this4.createElm(child);
+
+ parentElm.appendChild(el);
+ });
+ }
+ }
+ }]);
+
+ return Vue;
+}(); // 空函数
+
+function noop() {}
+
+export { Vue as default };
diff --git a/build/vue.iife.js b/build/vue.iife.js
new file mode 100644
index 0000000..81d82a2
--- /dev/null
+++ b/build/vue.iife.js
@@ -0,0 +1,2469 @@
+var Vue = (function () {
+ 'use strict';
+
+ function _typeof(obj) {
+ "@babel/helpers - typeof";
+
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+ _typeof = function (obj) {
+ return typeof obj;
+ };
+ } else {
+ _typeof = function (obj) {
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+ }
+
+ return _typeof(obj);
+ }
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function createCommonjsModule(fn, module) {
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
+ }
+
+ var _global = createCommonjsModule(function (module) {
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+ var global = module.exports = typeof window != 'undefined' && window.Math == Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self
+ // eslint-disable-next-line no-new-func
+ : Function('return this')();
+ if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
+ });
+
+ var _core = createCommonjsModule(function (module) {
+ var core = module.exports = { version: '2.6.12' };
+ if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
+ });
+ _core.version;
+
+ var _isObject = function (it) {
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
+ };
+
+ var _anObject = function (it) {
+ if (!_isObject(it)) throw TypeError(it + ' is not an object!');
+ return it;
+ };
+
+ var _fails = function (exec) {
+ try {
+ return !!exec();
+ } catch (e) {
+ return true;
+ }
+ };
+
+ // Thank's IE8 for his funny defineProperty
+ var _descriptors = !_fails(function () {
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
+ });
+
+ var document$2 = _global.document;
+ // typeof document.createElement is 'object' in old IE
+ var is = _isObject(document$2) && _isObject(document$2.createElement);
+ var _domCreate = function (it) {
+ return is ? document$2.createElement(it) : {};
+ };
+
+ var _ie8DomDefine = !_descriptors && !_fails(function () {
+ return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;
+ });
+
+ // 7.1.1 ToPrimitive(input [, PreferredType])
+
+ // instead of the ES6 spec version, we didn't implement @@toPrimitive case
+ // and the second argument - flag - preferred type is a string
+ var _toPrimitive = function (it, S) {
+ if (!_isObject(it)) return it;
+ var fn, val;
+ if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
+ if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) return val;
+ if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
+ throw TypeError("Can't convert object to primitive value");
+ };
+
+ var dP$4 = Object.defineProperty;
+
+ var f$6 = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
+ _anObject(O);
+ P = _toPrimitive(P, true);
+ _anObject(Attributes);
+ if (_ie8DomDefine) try {
+ return dP$4(O, P, Attributes);
+ } catch (e) { /* empty */ }
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
+ if ('value' in Attributes) O[P] = Attributes.value;
+ return O;
+ };
+
+ var _objectDp = {
+ f: f$6
+ };
+
+ var _propertyDesc = function (bitmap, value) {
+ return {
+ enumerable: !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable: !(bitmap & 4),
+ value: value
+ };
+ };
+
+ var _hide = _descriptors ? function (object, key, value) {
+ return _objectDp.f(object, key, _propertyDesc(1, value));
+ } : function (object, key, value) {
+ object[key] = value;
+ return object;
+ };
+
+ var hasOwnProperty$1 = {}.hasOwnProperty;
+ var _has = function (it, key) {
+ return hasOwnProperty$1.call(it, key);
+ };
+
+ var id = 0;
+ var px = Math.random();
+ var _uid = function (key) {
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
+ };
+
+ var _library = false;
+
+ var _shared = createCommonjsModule(function (module) {
+ var SHARED = '__core-js_shared__';
+ var store = _global[SHARED] || (_global[SHARED] = {});
+
+ (module.exports = function (key, value) {
+ return store[key] || (store[key] = value !== undefined ? value : {});
+ })('versions', []).push({
+ version: _core.version,
+ mode: 'global',
+ copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
+ });
+ });
+
+ var _functionToString = _shared('native-function-to-string', Function.toString);
+
+ var _redefine = createCommonjsModule(function (module) {
+ var SRC = _uid('src');
+
+ var TO_STRING = 'toString';
+ var TPL = ('' + _functionToString).split(TO_STRING);
+
+ _core.inspectSource = function (it) {
+ return _functionToString.call(it);
+ };
+
+ (module.exports = function (O, key, val, safe) {
+ var isFunction = typeof val == 'function';
+ if (isFunction) _has(val, 'name') || _hide(val, 'name', key);
+ if (O[key] === val) return;
+ if (isFunction) _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
+ if (O === _global) {
+ O[key] = val;
+ } else if (!safe) {
+ delete O[key];
+ _hide(O, key, val);
+ } else if (O[key]) {
+ O[key] = val;
+ } else {
+ _hide(O, key, val);
+ }
+ // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
+ })(Function.prototype, TO_STRING, function toString() {
+ return typeof this == 'function' && this[SRC] || _functionToString.call(this);
+ });
+ });
+
+ var _aFunction = function (it) {
+ if (typeof it != 'function') throw TypeError(it + ' is not a function!');
+ return it;
+ };
+
+ // optional / simple context binding
+
+ var _ctx = function (fn, that, length) {
+ _aFunction(fn);
+ if (that === undefined) return fn;
+ switch (length) {
+ case 1: return function (a) {
+ return fn.call(that, a);
+ };
+ case 2: return function (a, b) {
+ return fn.call(that, a, b);
+ };
+ case 3: return function (a, b, c) {
+ return fn.call(that, a, b, c);
+ };
+ }
+ return function (/* ...args */) {
+ return fn.apply(that, arguments);
+ };
+ };
+
+ var PROTOTYPE$2 = 'prototype';
+
+ var $export = function (type, name, source) {
+ var IS_FORCED = type & $export.F;
+ var IS_GLOBAL = type & $export.G;
+ var IS_STATIC = type & $export.S;
+ var IS_PROTO = type & $export.P;
+ var IS_BIND = type & $export.B;
+ var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE$2];
+ var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});
+ var expProto = exports[PROTOTYPE$2] || (exports[PROTOTYPE$2] = {});
+ var key, own, out, exp;
+ if (IS_GLOBAL) source = name;
+ for (key in source) {
+ // contains in native
+ own = !IS_FORCED && target && target[key] !== undefined;
+ // export native or passed
+ out = (own ? target : source)[key];
+ // bind timers to global for call from export context
+ exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;
+ // extend global
+ if (target) _redefine(target, key, out, type & $export.U);
+ // export
+ if (exports[key] != out) _hide(exports, key, exp);
+ if (IS_PROTO && expProto[key] != out) expProto[key] = out;
+ }
+ };
+ _global.core = _core;
+ // type bitmap
+ $export.F = 1; // forced
+ $export.G = 2; // global
+ $export.S = 4; // static
+ $export.P = 8; // proto
+ $export.B = 16; // bind
+ $export.W = 32; // wrap
+ $export.U = 64; // safe
+ $export.R = 128; // real proto method for `library`
+ var _export = $export;
+
+ var document$1 = _global.document;
+ var _html = document$1 && document$1.documentElement;
+
+ var toString$1 = {}.toString;
+
+ var _cof = function (it) {
+ return toString$1.call(it).slice(8, -1);
+ };
+
+ // 7.1.4 ToInteger
+ var ceil = Math.ceil;
+ var floor$1 = Math.floor;
+ var _toInteger = function (it) {
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor$1 : ceil)(it);
+ };
+
+ var max$1 = Math.max;
+ var min$2 = Math.min;
+ var _toAbsoluteIndex = function (index, length) {
+ index = _toInteger(index);
+ return index < 0 ? max$1(index + length, 0) : min$2(index, length);
+ };
+
+ // 7.1.15 ToLength
+
+ var min$1 = Math.min;
+ var _toLength = function (it) {
+ return it > 0 ? min$1(_toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
+ };
+
+ var arraySlice = [].slice;
+
+ // fallback for not array-like ES3 strings and DOM objects
+ _export(_export.P + _export.F * _fails(function () {
+ if (_html) arraySlice.call(_html);
+ }), 'Array', {
+ slice: function slice(begin, end) {
+ var len = _toLength(this.length);
+ var klass = _cof(this);
+ end = end === undefined ? len : end;
+ if (klass == 'Array') return arraySlice.call(this, begin, end);
+ var start = _toAbsoluteIndex(begin, len);
+ var upTo = _toAbsoluteIndex(end, len);
+ var size = _toLength(upTo - start);
+ var cloned = new Array(size);
+ var i = 0;
+ for (; i < size; i++) cloned[i] = klass == 'String'
+ ? this.charAt(start + i)
+ : this[start + i];
+ return cloned;
+ }
+ });
+
+ // 7.2.1 RequireObjectCoercible(argument)
+ var _defined = function (it) {
+ if (it == undefined) throw TypeError("Can't call method on " + it);
+ return it;
+ };
+
+ // 7.1.13 ToObject(argument)
+
+ var _toObject = function (it) {
+ return Object(_defined(it));
+ };
+
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
+
+ // eslint-disable-next-line no-prototype-builtins
+ var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
+ return _cof(it) == 'String' ? it.split('') : Object(it);
+ };
+
+ // to indexed object, toObject with fallback for non-array-like ES3 strings
+
+
+ var _toIobject = function (it) {
+ return _iobject(_defined(it));
+ };
+
+ // false -> Array#indexOf
+ // true -> Array#includes
+
+
+
+ var _arrayIncludes = function (IS_INCLUDES) {
+ return function ($this, el, fromIndex) {
+ var O = _toIobject($this);
+ var length = _toLength(O.length);
+ var index = _toAbsoluteIndex(fromIndex, length);
+ var value;
+ // Array#includes uses SameValueZero equality algorithm
+ // eslint-disable-next-line no-self-compare
+ if (IS_INCLUDES && el != el) while (length > index) {
+ value = O[index++];
+ // eslint-disable-next-line no-self-compare
+ if (value != value) return true;
+ // Array#indexOf ignores holes, Array#includes - not
+ } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
+ if (O[index] === el) return IS_INCLUDES || index || 0;
+ } return !IS_INCLUDES && -1;
+ };
+ };
+
+ var shared = _shared('keys');
+
+ var _sharedKey = function (key) {
+ return shared[key] || (shared[key] = _uid(key));
+ };
+
+ var arrayIndexOf = _arrayIncludes(false);
+ var IE_PROTO$2 = _sharedKey('IE_PROTO');
+
+ var _objectKeysInternal = function (object, names) {
+ var O = _toIobject(object);
+ var i = 0;
+ var result = [];
+ var key;
+ for (key in O) if (key != IE_PROTO$2) _has(O, key) && result.push(key);
+ // Don't enum bug & hidden keys
+ while (names.length > i) if (_has(O, key = names[i++])) {
+ ~arrayIndexOf(result, key) || result.push(key);
+ }
+ return result;
+ };
+
+ // IE 8- don't enum bug keys
+ var _enumBugKeys = (
+ 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
+ ).split(',');
+
+ // 19.1.2.14 / 15.2.3.14 Object.keys(O)
+
+
+
+ var _objectKeys = Object.keys || function keys(O) {
+ return _objectKeysInternal(O, _enumBugKeys);
+ };
+
+ // most Object methods by ES6 should accept primitives
+
+
+
+ var _objectSap = function (KEY, exec) {
+ var fn = (_core.Object || {})[KEY] || Object[KEY];
+ var exp = {};
+ exp[KEY] = exec(fn);
+ _export(_export.S + _export.F * _fails(function () { fn(1); }), 'Object', exp);
+ };
+
+ // 19.1.2.14 Object.keys(O)
+
+
+
+ _objectSap('keys', function () {
+ return function keys(it) {
+ return _objectKeys(_toObject(it));
+ };
+ });
+
+ var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
+ _anObject(O);
+ var keys = _objectKeys(Properties);
+ var length = keys.length;
+ var i = 0;
+ var P;
+ while (length > i) _objectDp.f(O, P = keys[i++], Properties[P]);
+ return O;
+ };
+
+ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+
+
+
+ var IE_PROTO$1 = _sharedKey('IE_PROTO');
+ var Empty = function () { /* empty */ };
+ var PROTOTYPE$1 = 'prototype';
+
+ // Create object with fake `null` prototype: use iframe Object with cleared prototype
+ var createDict = function () {
+ // Thrash, waste and sodomy: IE GC bug
+ var iframe = _domCreate('iframe');
+ var i = _enumBugKeys.length;
+ var lt = '<';
+ var gt = '>';
+ var iframeDocument;
+ iframe.style.display = 'none';
+ _html.appendChild(iframe);
+ iframe.src = 'javascript:'; // eslint-disable-line no-script-url
+ // createDict = iframe.contentWindow.Object;
+ // html.removeChild(iframe);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
+ iframeDocument.close();
+ createDict = iframeDocument.F;
+ while (i--) delete createDict[PROTOTYPE$1][_enumBugKeys[i]];
+ return createDict();
+ };
+
+ var _objectCreate = Object.create || function create(O, Properties) {
+ var result;
+ if (O !== null) {
+ Empty[PROTOTYPE$1] = _anObject(O);
+ result = new Empty();
+ Empty[PROTOTYPE$1] = null;
+ // add "__proto__" for Object.getPrototypeOf polyfill
+ result[IE_PROTO$1] = O;
+ } else result = createDict();
+ return Properties === undefined ? result : _objectDps(result, Properties);
+ };
+
+ var _redefineAll = function (target, src, safe) {
+ for (var key in src) _redefine(target, key, src[key], safe);
+ return target;
+ };
+
+ var _anInstance = function (it, Constructor, name, forbiddenField) {
+ if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
+ throw TypeError(name + ': incorrect invocation!');
+ } return it;
+ };
+
+ // call something on iterator step with safe closing on error
+
+ var _iterCall = function (iterator, fn, value, entries) {
+ try {
+ return entries ? fn(_anObject(value)[0], value[1]) : fn(value);
+ // 7.4.6 IteratorClose(iterator, completion)
+ } catch (e) {
+ var ret = iterator['return'];
+ if (ret !== undefined) _anObject(ret.call(iterator));
+ throw e;
+ }
+ };
+
+ var _iterators = {};
+
+ var _wks = createCommonjsModule(function (module) {
+ var store = _shared('wks');
+
+ var Symbol = _global.Symbol;
+ var USE_SYMBOL = typeof Symbol == 'function';
+
+ var $exports = module.exports = function (name) {
+ return store[name] || (store[name] =
+ USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : _uid)('Symbol.' + name));
+ };
+
+ $exports.store = store;
+ });
+
+ // check on default Array iterator
+
+ var ITERATOR$4 = _wks('iterator');
+ var ArrayProto$1 = Array.prototype;
+
+ var _isArrayIter = function (it) {
+ return it !== undefined && (_iterators.Array === it || ArrayProto$1[ITERATOR$4] === it);
+ };
+
+ // getting tag from 19.1.3.6 Object.prototype.toString()
+
+ var TAG$1 = _wks('toStringTag');
+ // ES3 wrong here
+ var ARG = _cof(function () { return arguments; }()) == 'Arguments';
+
+ // fallback for IE11 Script Access Denied error
+ var tryGet = function (it, key) {
+ try {
+ return it[key];
+ } catch (e) { /* empty */ }
+ };
+
+ var _classof = function (it) {
+ var O, T, B;
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
+ // @@toStringTag case
+ : typeof (T = tryGet(O = Object(it), TAG$1)) == 'string' ? T
+ // builtinTag case
+ : ARG ? _cof(O)
+ // ES3 arguments fallback
+ : (B = _cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
+ };
+
+ var ITERATOR$3 = _wks('iterator');
+
+ var core_getIteratorMethod = _core.getIteratorMethod = function (it) {
+ if (it != undefined) return it[ITERATOR$3]
+ || it['@@iterator']
+ || _iterators[_classof(it)];
+ };
+
+ var _forOf = createCommonjsModule(function (module) {
+ var BREAK = {};
+ var RETURN = {};
+ var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
+ var iterFn = ITERATOR ? function () { return iterable; } : core_getIteratorMethod(iterable);
+ var f = _ctx(fn, that, entries ? 2 : 1);
+ var index = 0;
+ var length, step, iterator, result;
+ if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
+ // fast case for arrays with default iterator
+ if (_isArrayIter(iterFn)) for (length = _toLength(iterable.length); length > index; index++) {
+ result = entries ? f(_anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ if (result === BREAK || result === RETURN) return result;
+ } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
+ result = _iterCall(iterator, f, step.value, entries);
+ if (result === BREAK || result === RETURN) return result;
+ }
+ };
+ exports.BREAK = BREAK;
+ exports.RETURN = RETURN;
+ });
+
+ var def$1 = _objectDp.f;
+
+ var TAG = _wks('toStringTag');
+
+ var _setToStringTag = function (it, tag, stat) {
+ if (it && !_has(it = stat ? it : it.prototype, TAG)) def$1(it, TAG, { configurable: true, value: tag });
+ };
+
+ var IteratorPrototype = {};
+
+ // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
+ _hide(IteratorPrototype, _wks('iterator'), function () { return this; });
+
+ var _iterCreate = function (Constructor, NAME, next) {
+ Constructor.prototype = _objectCreate(IteratorPrototype, { next: _propertyDesc(1, next) });
+ _setToStringTag(Constructor, NAME + ' Iterator');
+ };
+
+ // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
+
+
+ var IE_PROTO = _sharedKey('IE_PROTO');
+ var ObjectProto$1 = Object.prototype;
+
+ var _objectGpo = Object.getPrototypeOf || function (O) {
+ O = _toObject(O);
+ if (_has(O, IE_PROTO)) return O[IE_PROTO];
+ if (typeof O.constructor == 'function' && O instanceof O.constructor) {
+ return O.constructor.prototype;
+ } return O instanceof Object ? ObjectProto$1 : null;
+ };
+
+ var ITERATOR$2 = _wks('iterator');
+ var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
+ var FF_ITERATOR = '@@iterator';
+ var KEYS = 'keys';
+ var VALUES = 'values';
+
+ var returnThis = function () { return this; };
+
+ var _iterDefine = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
+ _iterCreate(Constructor, NAME, next);
+ var getMethod = function (kind) {
+ if (!BUGGY && kind in proto) return proto[kind];
+ switch (kind) {
+ case KEYS: return function keys() { return new Constructor(this, kind); };
+ case VALUES: return function values() { return new Constructor(this, kind); };
+ } return function entries() { return new Constructor(this, kind); };
+ };
+ var TAG = NAME + ' Iterator';
+ var DEF_VALUES = DEFAULT == VALUES;
+ var VALUES_BUG = false;
+ var proto = Base.prototype;
+ var $native = proto[ITERATOR$2] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
+ var $default = $native || getMethod(DEFAULT);
+ var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
+ var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
+ var methods, key, IteratorPrototype;
+ // Fix native
+ if ($anyNative) {
+ IteratorPrototype = _objectGpo($anyNative.call(new Base()));
+ if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
+ // Set @@toStringTag to native iterators
+ _setToStringTag(IteratorPrototype, TAG, true);
+ // fix for some old engines
+ if (typeof IteratorPrototype[ITERATOR$2] != 'function') _hide(IteratorPrototype, ITERATOR$2, returnThis);
+ }
+ }
+ // fix Array#{values, @@iterator}.name in V8 / FF
+ if (DEF_VALUES && $native && $native.name !== VALUES) {
+ VALUES_BUG = true;
+ $default = function values() { return $native.call(this); };
+ }
+ // Define iterator
+ if ((BUGGY || VALUES_BUG || !proto[ITERATOR$2])) {
+ _hide(proto, ITERATOR$2, $default);
+ }
+ // Plug for library
+ _iterators[NAME] = $default;
+ _iterators[TAG] = returnThis;
+ if (DEFAULT) {
+ methods = {
+ values: DEF_VALUES ? $default : getMethod(VALUES),
+ keys: IS_SET ? $default : getMethod(KEYS),
+ entries: $entries
+ };
+ if (FORCED) for (key in methods) {
+ if (!(key in proto)) _redefine(proto, key, methods[key]);
+ } else _export(_export.P + _export.F * (BUGGY || VALUES_BUG), NAME, methods);
+ }
+ return methods;
+ };
+
+ var _iterStep = function (done, value) {
+ return { value: value, done: !!done };
+ };
+
+ var SPECIES$2 = _wks('species');
+
+ var _setSpecies = function (KEY) {
+ var C = _global[KEY];
+ if (_descriptors && C && !C[SPECIES$2]) _objectDp.f(C, SPECIES$2, {
+ configurable: true,
+ get: function () { return this; }
+ });
+ };
+
+ var _meta = createCommonjsModule(function (module) {
+ var META = _uid('meta');
+
+
+ var setDesc = _objectDp.f;
+ var id = 0;
+ var isExtensible = Object.isExtensible || function () {
+ return true;
+ };
+ var FREEZE = !_fails(function () {
+ return isExtensible(Object.preventExtensions({}));
+ });
+ var setMeta = function (it) {
+ setDesc(it, META, { value: {
+ i: 'O' + ++id, // object ID
+ w: {} // weak collections IDs
+ } });
+ };
+ var fastKey = function (it, create) {
+ // return primitive with prefix
+ if (!_isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+ if (!_has(it, META)) {
+ // can't set metadata to uncaught frozen object
+ if (!isExtensible(it)) return 'F';
+ // not necessary to add metadata
+ if (!create) return 'E';
+ // add missing metadata
+ setMeta(it);
+ // return object ID
+ } return it[META].i;
+ };
+ var getWeak = function (it, create) {
+ if (!_has(it, META)) {
+ // can't set metadata to uncaught frozen object
+ if (!isExtensible(it)) return true;
+ // not necessary to add metadata
+ if (!create) return false;
+ // add missing metadata
+ setMeta(it);
+ // return hash weak collections IDs
+ } return it[META].w;
+ };
+ // add metadata on freeze-family methods calling
+ var onFreeze = function (it) {
+ if (FREEZE && meta.NEED && isExtensible(it) && !_has(it, META)) setMeta(it);
+ return it;
+ };
+ var meta = module.exports = {
+ KEY: META,
+ NEED: false,
+ fastKey: fastKey,
+ getWeak: getWeak,
+ onFreeze: onFreeze
+ };
+ });
+ _meta.KEY;
+ _meta.NEED;
+ _meta.fastKey;
+ _meta.getWeak;
+ _meta.onFreeze;
+
+ var _validateCollection = function (it, TYPE) {
+ if (!_isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+ return it;
+ };
+
+ var dP$3 = _objectDp.f;
+
+
+
+
+
+
+
+
+
+ var fastKey = _meta.fastKey;
+
+ var SIZE = _descriptors ? '_s' : 'size';
+
+ var getEntry = function (that, key) {
+ // fast case
+ var index = fastKey(key);
+ var entry;
+ if (index !== 'F') return that._i[index];
+ // frozen object case
+ for (entry = that._f; entry; entry = entry.n) {
+ if (entry.k == key) return entry;
+ }
+ };
+
+ var _collectionStrong = {
+ getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+ var C = wrapper(function (that, iterable) {
+ _anInstance(that, C, NAME, '_i');
+ that._t = NAME; // collection type
+ that._i = _objectCreate(null); // index
+ that._f = undefined; // first entry
+ that._l = undefined; // last entry
+ that[SIZE] = 0; // size
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
+ });
+ _redefineAll(C.prototype, {
+ // 23.1.3.1 Map.prototype.clear()
+ // 23.2.3.2 Set.prototype.clear()
+ clear: function clear() {
+ for (var that = _validateCollection(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+ entry.r = true;
+ if (entry.p) entry.p = entry.p.n = undefined;
+ delete data[entry.i];
+ }
+ that._f = that._l = undefined;
+ that[SIZE] = 0;
+ },
+ // 23.1.3.3 Map.prototype.delete(key)
+ // 23.2.3.4 Set.prototype.delete(value)
+ 'delete': function (key) {
+ var that = _validateCollection(this, NAME);
+ var entry = getEntry(that, key);
+ if (entry) {
+ var next = entry.n;
+ var prev = entry.p;
+ delete that._i[entry.i];
+ entry.r = true;
+ if (prev) prev.n = next;
+ if (next) next.p = prev;
+ if (that._f == entry) that._f = next;
+ if (that._l == entry) that._l = prev;
+ that[SIZE]--;
+ } return !!entry;
+ },
+ // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
+ // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
+ forEach: function forEach(callbackfn /* , that = undefined */) {
+ _validateCollection(this, NAME);
+ var f = _ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+ var entry;
+ while (entry = entry ? entry.n : this._f) {
+ f(entry.v, entry.k, this);
+ // revert to the last existing entry
+ while (entry && entry.r) entry = entry.p;
+ }
+ },
+ // 23.1.3.7 Map.prototype.has(key)
+ // 23.2.3.7 Set.prototype.has(value)
+ has: function has(key) {
+ return !!getEntry(_validateCollection(this, NAME), key);
+ }
+ });
+ if (_descriptors) dP$3(C.prototype, 'size', {
+ get: function () {
+ return _validateCollection(this, NAME)[SIZE];
+ }
+ });
+ return C;
+ },
+ def: function (that, key, value) {
+ var entry = getEntry(that, key);
+ var prev, index;
+ // change existing entry
+ if (entry) {
+ entry.v = value;
+ // create new entry
+ } else {
+ that._l = entry = {
+ i: index = fastKey(key, true), // <- index
+ k: key, // <- key
+ v: value, // <- value
+ p: prev = that._l, // <- previous entry
+ n: undefined, // <- next entry
+ r: false // <- removed
+ };
+ if (!that._f) that._f = entry;
+ if (prev) prev.n = entry;
+ that[SIZE]++;
+ // add to index
+ if (index !== 'F') that._i[index] = entry;
+ } return that;
+ },
+ getEntry: getEntry,
+ setStrong: function (C, NAME, IS_MAP) {
+ // add .keys, .values, .entries, [@@iterator]
+ // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
+ _iterDefine(C, NAME, function (iterated, kind) {
+ this._t = _validateCollection(iterated, NAME); // target
+ this._k = kind; // kind
+ this._l = undefined; // previous
+ }, function () {
+ var that = this;
+ var kind = that._k;
+ var entry = that._l;
+ // revert to the last existing entry
+ while (entry && entry.r) entry = entry.p;
+ // get next entry
+ if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
+ // or finish the iteration
+ that._t = undefined;
+ return _iterStep(1);
+ }
+ // return step by kind
+ if (kind == 'keys') return _iterStep(0, entry.k);
+ if (kind == 'values') return _iterStep(0, entry.v);
+ return _iterStep(0, [entry.k, entry.v]);
+ }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
+
+ // add [@@species], 23.1.2.2, 23.2.2.2
+ _setSpecies(NAME);
+ }
+ };
+ _collectionStrong.getConstructor;
+ _collectionStrong.def;
+ _collectionStrong.getEntry;
+ _collectionStrong.setStrong;
+
+ var ITERATOR$1 = _wks('iterator');
+ var SAFE_CLOSING = false;
+
+ try {
+ var riter = [7][ITERATOR$1]();
+ riter['return'] = function () { SAFE_CLOSING = true; };
+ // eslint-disable-next-line no-throw-literal
+ Array.from(riter, function () { throw 2; });
+ } catch (e) { /* empty */ }
+
+ var _iterDetect = function (exec, skipClosing) {
+ if (!skipClosing && !SAFE_CLOSING) return false;
+ var safe = false;
+ try {
+ var arr = [7];
+ var iter = arr[ITERATOR$1]();
+ iter.next = function () { return { done: safe = true }; };
+ arr[ITERATOR$1] = function () { return iter; };
+ exec(arr);
+ } catch (e) { /* empty */ }
+ return safe;
+ };
+
+ var f$5 = {}.propertyIsEnumerable;
+
+ var _objectPie = {
+ f: f$5
+ };
+
+ var gOPD$1 = Object.getOwnPropertyDescriptor;
+
+ var f$4 = _descriptors ? gOPD$1 : function getOwnPropertyDescriptor(O, P) {
+ O = _toIobject(O);
+ P = _toPrimitive(P, true);
+ if (_ie8DomDefine) try {
+ return gOPD$1(O, P);
+ } catch (e) { /* empty */ }
+ if (_has(O, P)) return _propertyDesc(!_objectPie.f.call(O, P), O[P]);
+ };
+
+ var _objectGopd = {
+ f: f$4
+ };
+
+ // Works with __proto__ only. Old v8 can't work with null proto objects.
+ /* eslint-disable no-proto */
+
+
+ var check = function (O, proto) {
+ _anObject(O);
+ if (!_isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
+ };
+ var _setProto = {
+ set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
+ function (test, buggy, set) {
+ try {
+ set = _ctx(Function.call, _objectGopd.f(Object.prototype, '__proto__').set, 2);
+ set(test, []);
+ buggy = !(test instanceof Array);
+ } catch (e) { buggy = true; }
+ return function setPrototypeOf(O, proto) {
+ check(O, proto);
+ if (buggy) O.__proto__ = proto;
+ else set(O, proto);
+ return O;
+ };
+ }({}, false) : undefined),
+ check: check
+ };
+
+ var setPrototypeOf = _setProto.set;
+ var _inheritIfRequired = function (that, target, C) {
+ var S = target.constructor;
+ var P;
+ if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && _isObject(P) && setPrototypeOf) {
+ setPrototypeOf(that, P);
+ } return that;
+ };
+
+ var _collection = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+ var Base = _global[NAME];
+ var C = Base;
+ var ADDER = IS_MAP ? 'set' : 'add';
+ var proto = C && C.prototype;
+ var O = {};
+ var fixMethod = function (KEY) {
+ var fn = proto[KEY];
+ _redefine(proto, KEY,
+ KEY == 'delete' ? function (a) {
+ return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'has' ? function has(a) {
+ return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'get' ? function get(a) {
+ return IS_WEAK && !_isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
+ : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
+ );
+ };
+ if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !_fails(function () {
+ new C().entries().next();
+ }))) {
+ // create collection constructor
+ C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+ _redefineAll(C.prototype, methods);
+ _meta.NEED = true;
+ } else {
+ var instance = new C();
+ // early implementations not supports chaining
+ var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
+ // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
+ var THROWS_ON_PRIMITIVES = _fails(function () { instance.has(1); });
+ // most early implementations doesn't supports iterables, most modern - not close it correctly
+ var ACCEPT_ITERABLES = _iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
+ // for early implementations -0 and +0 not the same
+ var BUGGY_ZERO = !IS_WEAK && _fails(function () {
+ // V8 ~ Chromium 42- fails only with 5+ elements
+ var $instance = new C();
+ var index = 5;
+ while (index--) $instance[ADDER](index, index);
+ return !$instance.has(-0);
+ });
+ if (!ACCEPT_ITERABLES) {
+ C = wrapper(function (target, iterable) {
+ _anInstance(target, C, NAME);
+ var that = _inheritIfRequired(new Base(), target, C);
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
+ return that;
+ });
+ C.prototype = proto;
+ proto.constructor = C;
+ }
+ if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
+ fixMethod('delete');
+ fixMethod('has');
+ IS_MAP && fixMethod('get');
+ }
+ if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
+ // weak collections should not contains .clear method
+ if (IS_WEAK && proto.clear) delete proto.clear;
+ }
+
+ _setToStringTag(C, NAME);
+
+ O[NAME] = C;
+ _export(_export.G + _export.W + _export.F * (C != Base), O);
+
+ if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+ return C;
+ };
+
+ var SET = 'Set';
+
+ // 23.2 Set Objects
+ _collection(SET, function (get) {
+ return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
+ }, {
+ // 23.2.3.1 Set.prototype.add(value)
+ add: function add(value) {
+ return _collectionStrong.def(_validateCollection(this, SET), value = value === 0 ? 0 : value, value);
+ }
+ }, _collectionStrong);
+
+ // true -> String#at
+ // false -> String#codePointAt
+ var _stringAt = function (TO_STRING) {
+ return function (that, pos) {
+ var s = String(_defined(that));
+ var i = _toInteger(pos);
+ var l = s.length;
+ var a, b;
+ if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
+ a = s.charCodeAt(i);
+ return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
+ ? TO_STRING ? s.charAt(i) : a
+ : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
+ };
+ };
+
+ var $at = _stringAt(true);
+
+ // 21.1.3.27 String.prototype[@@iterator]()
+ _iterDefine(String, 'String', function (iterated) {
+ this._t = String(iterated); // target
+ this._i = 0; // next index
+ // 21.1.5.2.1 %StringIteratorPrototype%.next()
+ }, function () {
+ var O = this._t;
+ var index = this._i;
+ var point;
+ if (index >= O.length) return { value: undefined, done: true };
+ point = $at(O, index);
+ this._i += point.length;
+ return { value: point, done: false };
+ });
+
+ // 19.1.3.6 Object.prototype.toString()
+
+ var test = {};
+ test[_wks('toStringTag')] = 'z';
+ if (test + '' != '[object z]') {
+ _redefine(Object.prototype, 'toString', function toString() {
+ return '[object ' + _classof(this) + ']';
+ }, true);
+ }
+
+ // 22.1.3.31 Array.prototype[@@unscopables]
+ var UNSCOPABLES = _wks('unscopables');
+ var ArrayProto = Array.prototype;
+ if (ArrayProto[UNSCOPABLES] == undefined) _hide(ArrayProto, UNSCOPABLES, {});
+ var _addToUnscopables = function (key) {
+ ArrayProto[UNSCOPABLES][key] = true;
+ };
+
+ // 22.1.3.4 Array.prototype.entries()
+ // 22.1.3.13 Array.prototype.keys()
+ // 22.1.3.29 Array.prototype.values()
+ // 22.1.3.30 Array.prototype[@@iterator]()
+ var es6_array_iterator = _iterDefine(Array, 'Array', function (iterated, kind) {
+ this._t = _toIobject(iterated); // target
+ this._i = 0; // next index
+ this._k = kind; // kind
+ // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
+ }, function () {
+ var O = this._t;
+ var kind = this._k;
+ var index = this._i++;
+ if (!O || index >= O.length) {
+ this._t = undefined;
+ return _iterStep(1);
+ }
+ if (kind == 'keys') return _iterStep(0, index);
+ if (kind == 'values') return _iterStep(0, O[index]);
+ return _iterStep(0, [index, O[index]]);
+ }, 'values');
+
+ // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
+ _iterators.Arguments = _iterators.Array;
+
+ _addToUnscopables('keys');
+ _addToUnscopables('values');
+ _addToUnscopables('entries');
+
+ var ITERATOR = _wks('iterator');
+ var TO_STRING_TAG = _wks('toStringTag');
+ var ArrayValues = _iterators.Array;
+
+ var DOMIterables = {
+ CSSRuleList: true, // TODO: Not spec compliant, should be false.
+ CSSStyleDeclaration: false,
+ CSSValueList: false,
+ ClientRectList: false,
+ DOMRectList: false,
+ DOMStringList: false,
+ DOMTokenList: true,
+ DataTransferItemList: false,
+ FileList: false,
+ HTMLAllCollection: false,
+ HTMLCollection: false,
+ HTMLFormElement: false,
+ HTMLSelectElement: false,
+ MediaList: true, // TODO: Not spec compliant, should be false.
+ MimeTypeArray: false,
+ NamedNodeMap: false,
+ NodeList: true,
+ PaintRequestList: false,
+ Plugin: false,
+ PluginArray: false,
+ SVGLengthList: false,
+ SVGNumberList: false,
+ SVGPathSegList: false,
+ SVGPointList: false,
+ SVGStringList: false,
+ SVGTransformList: false,
+ SourceBufferList: false,
+ StyleSheetList: true, // TODO: Not spec compliant, should be false.
+ TextTrackCueList: false,
+ TextTrackList: false,
+ TouchList: false
+ };
+
+ for (var collections = _objectKeys(DOMIterables), i$1 = 0; i$1 < collections.length; i$1++) {
+ var NAME$1 = collections[i$1];
+ var explicit = DOMIterables[NAME$1];
+ var Collection = _global[NAME$1];
+ var proto$1 = Collection && Collection.prototype;
+ var key;
+ if (proto$1) {
+ if (!proto$1[ITERATOR]) _hide(proto$1, ITERATOR, ArrayValues);
+ if (!proto$1[TO_STRING_TAG]) _hide(proto$1, TO_STRING_TAG, NAME$1);
+ _iterators[NAME$1] = ArrayValues;
+ if (explicit) for (key in es6_array_iterator) if (!proto$1[key]) _redefine(proto$1, key, es6_array_iterator[key], true);
+ }
+ }
+
+ /**
+ * 消息管理器
+ */
+ var Dep = /*#__PURE__*/function () {
+ function Dep() {
+ _classCallCheck(this, Dep);
+
+ this.deps = new Set();
+ } // 添加订阅者
+
+
+ _createClass(Dep, [{
+ key: "addSub",
+ value: function addSub(watcher) {
+ this.deps.add(watcher);
+ } // 操作watcher addDep 方法
+
+ }, {
+ key: "depend",
+ value: function depend() {
+ if (Dep.target) {
+ Dep.target.addDep(this);
+ }
+ } // 通知更新
+
+ }, {
+ key: "notify",
+ value: function notify() {
+ this.deps.forEach(function (watcher) {
+ return watcher.update();
+ });
+ }
+ }]);
+
+ return Dep;
+ }();
+
+ // 7.2.8 IsRegExp(argument)
+
+
+ var MATCH = _wks('match');
+ var _isRegexp = function (it) {
+ var isRegExp;
+ return _isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : _cof(it) == 'RegExp');
+ };
+
+ // 7.3.20 SpeciesConstructor(O, defaultConstructor)
+
+
+ var SPECIES$1 = _wks('species');
+ var _speciesConstructor = function (O, D) {
+ var C = _anObject(O).constructor;
+ var S;
+ return C === undefined || (S = _anObject(C)[SPECIES$1]) == undefined ? D : _aFunction(S);
+ };
+
+ var at = _stringAt(true);
+
+ // `AdvanceStringIndex` abstract operation
+ // https://tc39.github.io/ecma262/#sec-advancestringindex
+ var _advanceStringIndex = function (S, index, unicode) {
+ return index + (unicode ? at(S, index).length : 1);
+ };
+
+ var builtinExec = RegExp.prototype.exec;
+
+ // `RegExpExec` abstract operation
+ // https://tc39.github.io/ecma262/#sec-regexpexec
+ var _regexpExecAbstract = function (R, S) {
+ var exec = R.exec;
+ if (typeof exec === 'function') {
+ var result = exec.call(R, S);
+ if (typeof result !== 'object') {
+ throw new TypeError('RegExp exec method returned something other than an Object or null');
+ }
+ return result;
+ }
+ if (_classof(R) !== 'RegExp') {
+ throw new TypeError('RegExp#exec called on incompatible receiver');
+ }
+ return builtinExec.call(R, S);
+ };
+
+ // 21.2.5.3 get RegExp.prototype.flags
+
+ var _flags = function () {
+ var that = _anObject(this);
+ var result = '';
+ if (that.global) result += 'g';
+ if (that.ignoreCase) result += 'i';
+ if (that.multiline) result += 'm';
+ if (that.unicode) result += 'u';
+ if (that.sticky) result += 'y';
+ return result;
+ };
+
+ var nativeExec = RegExp.prototype.exec;
+ // This always refers to the native implementation, because the
+ // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
+ // which loads this file before patching the method.
+ var nativeReplace = String.prototype.replace;
+
+ var patchedExec = nativeExec;
+
+ var LAST_INDEX$1 = 'lastIndex';
+
+ var UPDATES_LAST_INDEX_WRONG = (function () {
+ var re1 = /a/,
+ re2 = /b*/g;
+ nativeExec.call(re1, 'a');
+ nativeExec.call(re2, 'a');
+ return re1[LAST_INDEX$1] !== 0 || re2[LAST_INDEX$1] !== 0;
+ })();
+
+ // nonparticipating capturing group, copied from es5-shim's String#split patch.
+ var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
+
+ var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
+
+ if (PATCH) {
+ patchedExec = function exec(str) {
+ var re = this;
+ var lastIndex, reCopy, match, i;
+
+ if (NPCG_INCLUDED) {
+ reCopy = new RegExp('^' + re.source + '$(?!\\s)', _flags.call(re));
+ }
+ if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX$1];
+
+ match = nativeExec.call(re, str);
+
+ if (UPDATES_LAST_INDEX_WRONG && match) {
+ re[LAST_INDEX$1] = re.global ? match.index + match[0].length : lastIndex;
+ }
+ if (NPCG_INCLUDED && match && match.length > 1) {
+ // Fix browsers whose `exec` methods don't consistently return `undefined`
+ // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
+ // eslint-disable-next-line no-loop-func
+ nativeReplace.call(match[0], reCopy, function () {
+ for (i = 1; i < arguments.length - 2; i++) {
+ if (arguments[i] === undefined) match[i] = undefined;
+ }
+ });
+ }
+
+ return match;
+ };
+ }
+
+ var _regexpExec = patchedExec;
+
+ _export({
+ target: 'RegExp',
+ proto: true,
+ forced: _regexpExec !== /./.exec
+ }, {
+ exec: _regexpExec
+ });
+
+ var SPECIES = _wks('species');
+
+ var REPLACE_SUPPORTS_NAMED_GROUPS = !_fails(function () {
+ // #replace needs built-in support for named groups.
+ // #match works fine because it just return the exec results, even if it has
+ // a "grops" property.
+ var re = /./;
+ re.exec = function () {
+ var result = [];
+ result.groups = { a: '7' };
+ return result;
+ };
+ return ''.replace(re, '$') !== '7';
+ });
+
+ var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
+ // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
+ var re = /(?:)/;
+ var originalExec = re.exec;
+ re.exec = function () { return originalExec.apply(this, arguments); };
+ var result = 'ab'.split(re);
+ return result.length === 2 && result[0] === 'a' && result[1] === 'b';
+ })();
+
+ var _fixReWks = function (KEY, length, exec) {
+ var SYMBOL = _wks(KEY);
+
+ var DELEGATES_TO_SYMBOL = !_fails(function () {
+ // String methods call symbol-named RegEp methods
+ var O = {};
+ O[SYMBOL] = function () { return 7; };
+ return ''[KEY](O) != 7;
+ });
+
+ var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !_fails(function () {
+ // Symbol-named RegExp methods call .exec
+ var execCalled = false;
+ var re = /a/;
+ re.exec = function () { execCalled = true; return null; };
+ if (KEY === 'split') {
+ // RegExp[@@split] doesn't call the regex's exec method, but first creates
+ // a new one. We need to return the patched regex when creating the new one.
+ re.constructor = {};
+ re.constructor[SPECIES] = function () { return re; };
+ }
+ re[SYMBOL]('');
+ return !execCalled;
+ }) : undefined;
+
+ if (
+ !DELEGATES_TO_SYMBOL ||
+ !DELEGATES_TO_EXEC ||
+ (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
+ (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
+ ) {
+ var nativeRegExpMethod = /./[SYMBOL];
+ var fns = exec(
+ _defined,
+ SYMBOL,
+ ''[KEY],
+ function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
+ if (regexp.exec === _regexpExec) {
+ if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
+ // The native String method already delegates to @@method (this
+ // polyfilled function), leasing to infinite recursion.
+ // We avoid it by directly calling the native @@method method.
+ return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
+ }
+ return { done: true, value: nativeMethod.call(str, regexp, arg2) };
+ }
+ return { done: false };
+ }
+ );
+ var strfn = fns[0];
+ var rxfn = fns[1];
+
+ _redefine(String.prototype, KEY, strfn);
+ _hide(RegExp.prototype, SYMBOL, length == 2
+ // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
+ // 21.2.5.11 RegExp.prototype[@@split](string, limit)
+ ? function (string, arg) { return rxfn.call(string, this, arg); }
+ // 21.2.5.6 RegExp.prototype[@@match](string)
+ // 21.2.5.9 RegExp.prototype[@@search](string)
+ : function (string) { return rxfn.call(string, this); }
+ );
+ }
+ };
+
+ var $min = Math.min;
+ var $push = [].push;
+ var $SPLIT = 'split';
+ var LENGTH = 'length';
+ var LAST_INDEX = 'lastIndex';
+ var MAX_UINT32 = 0xffffffff;
+
+ // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
+ var SUPPORTS_Y = !_fails(function () { RegExp(MAX_UINT32, 'y'); });
+
+ // @@split logic
+ _fixReWks('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
+ var internalSplit;
+ if (
+ 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
+ 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
+ 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
+ '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
+ '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
+ ''[$SPLIT](/.?/)[LENGTH]
+ ) {
+ // based on es5-shim implementation, need to rework it
+ internalSplit = function (separator, limit) {
+ var string = String(this);
+ if (separator === undefined && limit === 0) return [];
+ // If `separator` is not a regex, use native split
+ if (!_isRegexp(separator)) return $split.call(string, separator, limit);
+ var output = [];
+ var flags = (separator.ignoreCase ? 'i' : '') +
+ (separator.multiline ? 'm' : '') +
+ (separator.unicode ? 'u' : '') +
+ (separator.sticky ? 'y' : '');
+ var lastLastIndex = 0;
+ var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
+ // Make `global` and avoid `lastIndex` issues by working with a copy
+ var separatorCopy = new RegExp(separator.source, flags + 'g');
+ var match, lastIndex, lastLength;
+ while (match = _regexpExec.call(separatorCopy, string)) {
+ lastIndex = separatorCopy[LAST_INDEX];
+ if (lastIndex > lastLastIndex) {
+ output.push(string.slice(lastLastIndex, match.index));
+ if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
+ lastLength = match[0][LENGTH];
+ lastLastIndex = lastIndex;
+ if (output[LENGTH] >= splitLimit) break;
+ }
+ if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
+ }
+ if (lastLastIndex === string[LENGTH]) {
+ if (lastLength || !separatorCopy.test('')) output.push('');
+ } else output.push(string.slice(lastLastIndex));
+ return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
+ };
+ // Chakra, V8
+ } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
+ internalSplit = function (separator, limit) {
+ return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
+ };
+ } else {
+ internalSplit = $split;
+ }
+
+ return [
+ // `String.prototype.split` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.split
+ function split(separator, limit) {
+ var O = defined(this);
+ var splitter = separator == undefined ? undefined : separator[SPLIT];
+ return splitter !== undefined
+ ? splitter.call(separator, O, limit)
+ : internalSplit.call(String(O), separator, limit);
+ },
+ // `RegExp.prototype[@@split]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
+ //
+ // NOTE: This cannot be properly polyfilled in engines that don't support
+ // the 'y' flag.
+ function (regexp, limit) {
+ var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
+ if (res.done) return res.value;
+
+ var rx = _anObject(regexp);
+ var S = String(this);
+ var C = _speciesConstructor(rx, RegExp);
+
+ var unicodeMatching = rx.unicode;
+ var flags = (rx.ignoreCase ? 'i' : '') +
+ (rx.multiline ? 'm' : '') +
+ (rx.unicode ? 'u' : '') +
+ (SUPPORTS_Y ? 'y' : 'g');
+
+ // ^(? + rx + ) is needed, in combination with some S slicing, to
+ // simulate the 'y' flag.
+ var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
+ var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
+ if (lim === 0) return [];
+ if (S.length === 0) return _regexpExecAbstract(splitter, S) === null ? [S] : [];
+ var p = 0;
+ var q = 0;
+ var A = [];
+ while (q < S.length) {
+ splitter.lastIndex = SUPPORTS_Y ? q : 0;
+ var z = _regexpExecAbstract(splitter, SUPPORTS_Y ? S : S.slice(q));
+ var e;
+ if (
+ z === null ||
+ (e = $min(_toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
+ ) {
+ q = _advanceStringIndex(S, q, unicodeMatching);
+ } else {
+ A.push(S.slice(p, q));
+ if (A.length === lim) return A;
+ for (var i = 1; i <= z.length - 1; i++) {
+ A.push(z[i]);
+ if (A.length === lim) return A;
+ }
+ q = p = e;
+ }
+ }
+ A.push(S.slice(p));
+ return A;
+ }
+ ];
+ });
+
+ var max = Math.max;
+ var min = Math.min;
+ var floor = Math.floor;
+ var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
+ var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;
+
+ var maybeToString = function (it) {
+ return it === undefined ? it : String(it);
+ };
+
+ // @@replace logic
+ _fixReWks('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
+ return [
+ // `String.prototype.replace` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.replace
+ function replace(searchValue, replaceValue) {
+ var O = defined(this);
+ var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
+ return fn !== undefined
+ ? fn.call(searchValue, O, replaceValue)
+ : $replace.call(String(O), searchValue, replaceValue);
+ },
+ // `RegExp.prototype[@@replace]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
+ function (regexp, replaceValue) {
+ var res = maybeCallNative($replace, regexp, this, replaceValue);
+ if (res.done) return res.value;
+
+ var rx = _anObject(regexp);
+ var S = String(this);
+ var functionalReplace = typeof replaceValue === 'function';
+ if (!functionalReplace) replaceValue = String(replaceValue);
+ var global = rx.global;
+ if (global) {
+ var fullUnicode = rx.unicode;
+ rx.lastIndex = 0;
+ }
+ var results = [];
+ while (true) {
+ var result = _regexpExecAbstract(rx, S);
+ if (result === null) break;
+ results.push(result);
+ if (!global) break;
+ var matchStr = String(result[0]);
+ if (matchStr === '') rx.lastIndex = _advanceStringIndex(S, _toLength(rx.lastIndex), fullUnicode);
+ }
+ var accumulatedResult = '';
+ var nextSourcePosition = 0;
+ for (var i = 0; i < results.length; i++) {
+ result = results[i];
+ var matched = String(result[0]);
+ var position = max(min(_toInteger(result.index), S.length), 0);
+ var captures = [];
+ // NOTE: This is equivalent to
+ // captures = result.slice(1).map(maybeToString)
+ // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
+ // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
+ // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
+ for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
+ var namedCaptures = result.groups;
+ if (functionalReplace) {
+ var replacerArgs = [matched].concat(captures, position, S);
+ if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
+ var replacement = String(replaceValue.apply(undefined, replacerArgs));
+ } else {
+ replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
+ }
+ if (position >= nextSourcePosition) {
+ accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
+ nextSourcePosition = position + matched.length;
+ }
+ }
+ return accumulatedResult + S.slice(nextSourcePosition);
+ }
+ ];
+
+ // https://tc39.github.io/ecma262/#sec-getsubstitution
+ function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
+ var tailPos = position + matched.length;
+ var m = captures.length;
+ var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
+ if (namedCaptures !== undefined) {
+ namedCaptures = _toObject(namedCaptures);
+ symbols = SUBSTITUTION_SYMBOLS;
+ }
+ return $replace.call(replacement, symbols, function (match, ch) {
+ var capture;
+ switch (ch.charAt(0)) {
+ case '$': return '$';
+ case '&': return matched;
+ case '`': return str.slice(0, position);
+ case "'": return str.slice(tailPos);
+ case '<':
+ capture = namedCaptures[ch.slice(1, -1)];
+ break;
+ default: // \d\d?
+ var n = +ch;
+ if (n === 0) return match;
+ if (n > m) {
+ var f = floor(n / 10);
+ if (f === 0) return match;
+ if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
+ return match;
+ }
+ capture = captures[n - 1];
+ }
+ return capture === undefined ? '' : capture;
+ });
+ }
+ });
+
+ function def(obj, key, val, enumerable) {
+ Object.defineProperty(obj, key, {
+ value: val,
+ enumerable: !!enumerable,
+ writable: true,
+ configurable: true
+ });
+ } // 数组响应式处理
+
+ function dependArray(value) {
+ for (var e, i = 0, l = value.length; i < l; i++) {
+ e = value[i];
+ e && e.__ob__ && e.__ob__.dep.depend();
+
+ if (Array.isArray(e)) {
+ dependArray(e);
+ }
+ }
+ } // 检测一个对象的属性是否存在
+
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ function hasOwn(obj, key) {
+ return hasOwnProperty.call(obj, key);
+ }
+
+ var arrayProto = Array.prototype;
+ var arrayMethods = Object.create(arrayProto);
+ var methodsToPatch = ["push", "pop", "shift", "unshift", "splice", "sort", "reverse"];
+ methodsToPatch.forEach(function (method) {
+ // 保存原始方法
+ var original = arrayProto[method]; // 覆盖之
+
+ def(arrayMethods, method, function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ // 1.执行默认方法
+ var result = original.apply(this, args); // 2.变更通知
+
+ var ob = this.__ob__; // 可能会有新元素加入
+
+ var inserted;
+
+ switch (method) {
+ case 'push':
+ case 'unshift':
+ inserted = args;
+ break;
+
+ case 'splice':
+ inserted = args.slice(2);
+ break;
+ } // 对新加入的元素做响应式
+
+
+ if (inserted) ob.observeArray(inserted); // notify change
+ // ob内部有一个dep,让它去通知更新
+
+ ob.dep.notify();
+ return result;
+ });
+ });
+
+ var Observer = /*#__PURE__*/function () {
+ function Observer(value) {
+ _classCallCheck(this, Observer);
+
+ this.value = value;
+ this.dep = new Dep();
+ def(value, '__ob__', this);
+
+ if (Array.isArray(value)) {
+ if ('__proto__' in {}) {
+ value.__proto__ = arrayMethods;
+ }
+
+ this.observeArray(value);
+ } else {
+ this.walk(value);
+ }
+ } // 数组响应式处理
+
+
+ _createClass(Observer, [{
+ key: "observeArray",
+ value: function observeArray(arr) {
+ for (var i = 0, l = arr.length; i < l; i++) {
+ observe(arr[i]);
+ }
+ } // 对象响应式处理
+
+ }, {
+ key: "walk",
+ value: function walk(obj) {
+ Object.keys(obj).forEach(function (key) {
+ defineReactive(obj, key, obj[key]);
+ });
+ }
+ }]);
+
+ return Observer;
+ }(); // 数据劫持
+
+ function defineReactive(obj, key, val) {
+ var childOb = observe(val); // 每一可以对应一个 dep;
+
+ var dep = new Dep();
+ Object.defineProperty(obj, key, {
+ get: function get() {
+ // 依赖收集
+ dep.depend();
+
+ if (childOb) {
+ // 子ob也要做依赖收集
+ childOb.dep.depend();
+
+ if (Array.isArray(val)) {
+ dependArray(val);
+ }
+ }
+
+ return val;
+ },
+ set: function set(newVal) {
+ if (val !== newVal) {
+ observe(newVal);
+ val = newVal; // 通知更新
+
+ dep.notify();
+ }
+ }
+ });
+ } // observe
+
+ function observe(obj) {
+ if (_typeof(obj) !== 'object' || obj === null) {
+ return;
+ }
+
+ var ob;
+
+ if (hasOwn(obj, '__ob__') && obj.__ob__ instanceof Observer) {
+ ob = obj.__ob__;
+ } else {
+ ob = new Observer(obj);
+ }
+
+ return ob;
+ } // porxy
+
+ function proxy$1(vm) {
+ Object.keys(vm.$data).forEach(function (key) {
+ Object.defineProperty(vm, key, {
+ get: function get() {
+ return vm.$data[key];
+ },
+ set: function set(newVal) {
+ vm.$data[key] = newVal;
+ }
+ });
+ });
+ }
+
+ var f$3 = _wks;
+
+ var _wksExt = {
+ f: f$3
+ };
+
+ var defineProperty = _objectDp.f;
+ var _wksDefine = function (name) {
+ var $Symbol = _core.Symbol || (_core.Symbol = _global.Symbol || {});
+ if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: _wksExt.f(name) });
+ };
+
+ var f$2 = Object.getOwnPropertySymbols;
+
+ var _objectGops = {
+ f: f$2
+ };
+
+ // all enumerable object keys, includes symbols
+
+
+
+ var _enumKeys = function (it) {
+ var result = _objectKeys(it);
+ var getSymbols = _objectGops.f;
+ if (getSymbols) {
+ var symbols = getSymbols(it);
+ var isEnum = _objectPie.f;
+ var i = 0;
+ var key;
+ while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
+ } return result;
+ };
+
+ // 7.2.2 IsArray(argument)
+
+ var _isArray = Array.isArray || function isArray(arg) {
+ return _cof(arg) == 'Array';
+ };
+
+ // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
+
+ var hiddenKeys = _enumBugKeys.concat('length', 'prototype');
+
+ var f$1 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
+ return _objectKeysInternal(O, hiddenKeys);
+ };
+
+ var _objectGopn = {
+ f: f$1
+ };
+
+ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
+
+ var gOPN$2 = _objectGopn.f;
+ var toString = {}.toString;
+
+ var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
+ ? Object.getOwnPropertyNames(window) : [];
+
+ var getWindowNames = function (it) {
+ try {
+ return gOPN$2(it);
+ } catch (e) {
+ return windowNames.slice();
+ }
+ };
+
+ var f = function getOwnPropertyNames(it) {
+ return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN$2(_toIobject(it));
+ };
+
+ var _objectGopnExt = {
+ f: f
+ };
+
+ // ECMAScript 6 symbols shim
+
+
+
+
+
+ var META = _meta.KEY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ var gOPD = _objectGopd.f;
+ var dP$2 = _objectDp.f;
+ var gOPN$1 = _objectGopnExt.f;
+ var $Symbol = _global.Symbol;
+ var $JSON = _global.JSON;
+ var _stringify = $JSON && $JSON.stringify;
+ var PROTOTYPE = 'prototype';
+ var HIDDEN = _wks('_hidden');
+ var TO_PRIMITIVE = _wks('toPrimitive');
+ var isEnum = {}.propertyIsEnumerable;
+ var SymbolRegistry = _shared('symbol-registry');
+ var AllSymbols = _shared('symbols');
+ var OPSymbols = _shared('op-symbols');
+ var ObjectProto = Object[PROTOTYPE];
+ var USE_NATIVE = typeof $Symbol == 'function' && !!_objectGops.f;
+ var QObject = _global.QObject;
+ // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+ var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
+
+ // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
+ var setSymbolDesc = _descriptors && _fails(function () {
+ return _objectCreate(dP$2({}, 'a', {
+ get: function () { return dP$2(this, 'a', { value: 7 }).a; }
+ })).a != 7;
+ }) ? function (it, key, D) {
+ var protoDesc = gOPD(ObjectProto, key);
+ if (protoDesc) delete ObjectProto[key];
+ dP$2(it, key, D);
+ if (protoDesc && it !== ObjectProto) dP$2(ObjectProto, key, protoDesc);
+ } : dP$2;
+
+ var wrap = function (tag) {
+ var sym = AllSymbols[tag] = _objectCreate($Symbol[PROTOTYPE]);
+ sym._k = tag;
+ return sym;
+ };
+
+ var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
+ return typeof it == 'symbol';
+ } : function (it) {
+ return it instanceof $Symbol;
+ };
+
+ var $defineProperty = function defineProperty(it, key, D) {
+ if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
+ _anObject(it);
+ key = _toPrimitive(key, true);
+ _anObject(D);
+ if (_has(AllSymbols, key)) {
+ if (!D.enumerable) {
+ if (!_has(it, HIDDEN)) dP$2(it, HIDDEN, _propertyDesc(1, {}));
+ it[HIDDEN][key] = true;
+ } else {
+ if (_has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
+ D = _objectCreate(D, { enumerable: _propertyDesc(0, false) });
+ } return setSymbolDesc(it, key, D);
+ } return dP$2(it, key, D);
+ };
+ var $defineProperties = function defineProperties(it, P) {
+ _anObject(it);
+ var keys = _enumKeys(P = _toIobject(P));
+ var i = 0;
+ var l = keys.length;
+ var key;
+ while (l > i) $defineProperty(it, key = keys[i++], P[key]);
+ return it;
+ };
+ var $create = function create(it, P) {
+ return P === undefined ? _objectCreate(it) : $defineProperties(_objectCreate(it), P);
+ };
+ var $propertyIsEnumerable = function propertyIsEnumerable(key) {
+ var E = isEnum.call(this, key = _toPrimitive(key, true));
+ if (this === ObjectProto && _has(AllSymbols, key) && !_has(OPSymbols, key)) return false;
+ return E || !_has(this, key) || !_has(AllSymbols, key) || _has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
+ };
+ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
+ it = _toIobject(it);
+ key = _toPrimitive(key, true);
+ if (it === ObjectProto && _has(AllSymbols, key) && !_has(OPSymbols, key)) return;
+ var D = gOPD(it, key);
+ if (D && _has(AllSymbols, key) && !(_has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
+ return D;
+ };
+ var $getOwnPropertyNames = function getOwnPropertyNames(it) {
+ var names = gOPN$1(_toIobject(it));
+ var result = [];
+ var i = 0;
+ var key;
+ while (names.length > i) {
+ if (!_has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
+ } return result;
+ };
+ var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
+ var IS_OP = it === ObjectProto;
+ var names = gOPN$1(IS_OP ? OPSymbols : _toIobject(it));
+ var result = [];
+ var i = 0;
+ var key;
+ while (names.length > i) {
+ if (_has(AllSymbols, key = names[i++]) && (IS_OP ? _has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
+ } return result;
+ };
+
+ // 19.4.1.1 Symbol([description])
+ if (!USE_NATIVE) {
+ $Symbol = function Symbol() {
+ if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
+ var tag = _uid(arguments.length > 0 ? arguments[0] : undefined);
+ var $set = function (value) {
+ if (this === ObjectProto) $set.call(OPSymbols, value);
+ if (_has(this, HIDDEN) && _has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
+ setSymbolDesc(this, tag, _propertyDesc(1, value));
+ };
+ if (_descriptors && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
+ return wrap(tag);
+ };
+ _redefine($Symbol[PROTOTYPE], 'toString', function toString() {
+ return this._k;
+ });
+
+ _objectGopd.f = $getOwnPropertyDescriptor;
+ _objectDp.f = $defineProperty;
+ _objectGopn.f = _objectGopnExt.f = $getOwnPropertyNames;
+ _objectPie.f = $propertyIsEnumerable;
+ _objectGops.f = $getOwnPropertySymbols;
+
+ if (_descriptors && !_library) {
+ _redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
+ }
+
+ _wksExt.f = function (name) {
+ return wrap(_wks(name));
+ };
+ }
+
+ _export(_export.G + _export.W + _export.F * !USE_NATIVE, { Symbol: $Symbol });
+
+ for (var es6Symbols = (
+ // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
+ ).split(','), j = 0; es6Symbols.length > j;)_wks(es6Symbols[j++]);
+
+ for (var wellKnownSymbols = _objectKeys(_wks.store), k = 0; wellKnownSymbols.length > k;) _wksDefine(wellKnownSymbols[k++]);
+
+ _export(_export.S + _export.F * !USE_NATIVE, 'Symbol', {
+ // 19.4.2.1 Symbol.for(key)
+ 'for': function (key) {
+ return _has(SymbolRegistry, key += '')
+ ? SymbolRegistry[key]
+ : SymbolRegistry[key] = $Symbol(key);
+ },
+ // 19.4.2.5 Symbol.keyFor(sym)
+ keyFor: function keyFor(sym) {
+ if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
+ for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
+ },
+ useSetter: function () { setter = true; },
+ useSimple: function () { setter = false; }
+ });
+
+ _export(_export.S + _export.F * !USE_NATIVE, 'Object', {
+ // 19.1.2.2 Object.create(O [, Properties])
+ create: $create,
+ // 19.1.2.4 Object.defineProperty(O, P, Attributes)
+ defineProperty: $defineProperty,
+ // 19.1.2.3 Object.defineProperties(O, Properties)
+ defineProperties: $defineProperties,
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ getOwnPropertyNames: $getOwnPropertyNames,
+ // 19.1.2.8 Object.getOwnPropertySymbols(O)
+ getOwnPropertySymbols: $getOwnPropertySymbols
+ });
+
+ // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3443
+ var FAILS_ON_PRIMITIVES = _fails(function () { _objectGops.f(1); });
+
+ _export(_export.S + _export.F * FAILS_ON_PRIMITIVES, 'Object', {
+ getOwnPropertySymbols: function getOwnPropertySymbols(it) {
+ return _objectGops.f(_toObject(it));
+ }
+ });
+
+ // 24.3.2 JSON.stringify(value [, replacer [, space]])
+ $JSON && _export(_export.S + _export.F * (!USE_NATIVE || _fails(function () {
+ var S = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ // WebKit converts symbol values to JSON as null
+ // V8 throws on boxed symbols
+ return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
+ })), 'JSON', {
+ stringify: function stringify(it) {
+ var args = [it];
+ var i = 1;
+ var replacer, $replacer;
+ while (arguments.length > i) args.push(arguments[i++]);
+ $replacer = replacer = args[1];
+ if (!_isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
+ if (!_isArray(replacer)) replacer = function (key, value) {
+ if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
+ if (!isSymbol(value)) return value;
+ };
+ args[1] = replacer;
+ return _stringify.apply($JSON, args);
+ }
+ });
+
+ // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
+ $Symbol[PROTOTYPE][TO_PRIMITIVE] || _hide($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
+ // 19.4.3.5 Symbol.prototype[@@toStringTag]
+ _setToStringTag($Symbol, 'Symbol');
+ // 20.2.1.9 Math[@@toStringTag]
+ _setToStringTag(Math, 'Math', true);
+ // 24.3.3 JSON[@@toStringTag]
+ _setToStringTag(_global.JSON, 'JSON', true);
+
+ var _createProperty = function (object, index, value) {
+ if (index in object) _objectDp.f(object, index, _propertyDesc(0, value));
+ else object[index] = value;
+ };
+
+ _export(_export.S + _export.F * !_iterDetect(function (iter) { Array.from(iter); }), 'Array', {
+ // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
+ from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
+ var O = _toObject(arrayLike);
+ var C = typeof this == 'function' ? this : Array;
+ var aLen = arguments.length;
+ var mapfn = aLen > 1 ? arguments[1] : undefined;
+ var mapping = mapfn !== undefined;
+ var index = 0;
+ var iterFn = core_getIteratorMethod(O);
+ var length, result, step, iterator;
+ if (mapping) mapfn = _ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
+ // if object isn't iterable or it's array with default iterator - use simple case
+ if (iterFn != undefined && !(C == Array && _isArrayIter(iterFn))) {
+ for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
+ _createProperty(result, index, mapping ? _iterCall(iterator, mapfn, [step.value, index], true) : step.value);
+ }
+ } else {
+ length = _toLength(O.length);
+ for (result = new C(length); length > index; index++) {
+ _createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
+ }
+ }
+ result.length = index;
+ return result;
+ }
+ });
+
+ var dP$1 = _objectDp.f;
+ var FProto = Function.prototype;
+ var nameRE = /^\s*function ([^ (]*)/;
+ var NAME = 'name';
+
+ // 19.2.4.2 name
+ NAME in FProto || _descriptors && dP$1(FProto, NAME, {
+ configurable: true,
+ get: function () {
+ try {
+ return ('' + this).match(nameRE)[1];
+ } catch (e) {
+ return '';
+ }
+ }
+ });
+
+ var dP = _objectDp.f;
+ var gOPN = _objectGopn.f;
+
+
+ var $RegExp = _global.RegExp;
+ var Base = $RegExp;
+ var proto = $RegExp.prototype;
+ var re1 = /a/g;
+ var re2 = /a/g;
+ // "new" creates a new object, old webkit buggy here
+ var CORRECT_NEW = new $RegExp(re1) !== re1;
+
+ if (_descriptors && (!CORRECT_NEW || _fails(function () {
+ re2[_wks('match')] = false;
+ // RegExp constructor can alter flags and IsRegExp works correct with @@match
+ return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
+ }))) {
+ $RegExp = function RegExp(p, f) {
+ var tiRE = this instanceof $RegExp;
+ var piRE = _isRegexp(p);
+ var fiU = f === undefined;
+ return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
+ : _inheritIfRequired(CORRECT_NEW
+ ? new Base(piRE && !fiU ? p.source : p, f)
+ : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? _flags.call(p) : f)
+ , tiRE ? this : proto, $RegExp);
+ };
+ var proxy = function (key) {
+ key in $RegExp || dP($RegExp, key, {
+ configurable: true,
+ get: function () { return Base[key]; },
+ set: function (it) { Base[key] = it; }
+ });
+ };
+ for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);
+ proto.constructor = $RegExp;
+ $RegExp.prototype = proto;
+ _redefine(_global, 'RegExp', $RegExp);
+ }
+
+ _setSpecies('RegExp');
+
+ var Watcher = /*#__PURE__*/function () {
+ function Watcher(vm, updaterFn) {
+ _classCallCheck(this, Watcher);
+
+ this.vm = vm;
+ this.getter = updaterFn; // 依赖收集
+
+ this.get();
+ }
+
+ _createClass(Watcher, [{
+ key: "get",
+ value: function get() {
+ Dep.target = this;
+ this.getter.call(this.vm);
+ Dep.target = null;
+ } // 相互添加引用
+
+ }, {
+ key: "addDep",
+ value: function addDep(dep) {
+ dep.addSub(this);
+ }
+ }, {
+ key: "update",
+ value: function update() {
+ this.get(); // this.updaterFn.call(this.vm, getDataVal.call(this.vm, this.key))
+ }
+ }]);
+
+ return Watcher;
+ }();
+
+ var Vue = /*#__PURE__*/function () {
+ function Vue(options) {
+ _classCallCheck(this, Vue);
+
+ this.$options = options;
+ this.$data = options.data;
+ observe(this.$data); // 代理data
+
+ proxy$1(this); // 代理methods
+
+ for (var key in options.methods) {
+ this[key] = typeof options.methods[key] === 'function' ? options.methods[key].bind(this) : noop;
+ } // 模板编译
+ // new Compile(options.el, this)
+
+
+ if (options.el) {
+ this.$mount(options.el);
+ }
+ } // 挂载
+
+
+ _createClass(Vue, [{
+ key: "$mount",
+ value: function $mount(el) {
+ var _this = this;
+
+ // 获取宿主原始
+ this.$el = document.querySelector(el); // 组件更新函数
+
+ var updateComponent = function updateComponent() {
+ var render = _this.$options.render;
+ var vnode = render.call(_this, _this.$createElement);
+
+ _this._update(vnode);
+ }; // 创建wather
+
+
+ new Watcher(this, updateComponent);
+ } // 获取vnode
+
+ }, {
+ key: "$createElement",
+ value: function $createElement(tag, props, children) {
+ return {
+ tag: tag,
+ props: props,
+ children: children
+ };
+ } // 更新
+
+ }, {
+ key: "_update",
+ value: function _update(vnode) {
+ var preVnode = this._vnode;
+
+ if (preVnode) {
+ // 更新
+ this.__patch__(preVnode, vnode);
+ } else {
+ // 初始化
+ this.__patch__(this.$el, vnode);
+ }
+ } // patch方法
+
+ }, {
+ key: "__patch__",
+ value: function __patch__(oldVode, vnode) {
+ var _this2 = this;
+
+ // 判断old是否为dom
+ if (oldVode.nodeType) {
+ // 初始化
+ var parent = oldVode.parentElement;
+ var refElm = oldVode.nextSibling; // 递归vnode创建dom树
+
+ var el = this.createElm(vnode);
+ parent.insertBefore(el, refElm);
+ parent.removeChild(oldVode);
+ } else {
+ // 更新
+ var _el = vnode.el = oldVode.el; // 判断是否是相同节点samenode
+
+
+ if (oldVode.tag === vnode.tag) {
+ // diff
+ // props
+ // children
+ var oldCh = oldVode.children;
+ var newCh = vnode.children;
+
+ if (typeof newCh === 'string') {
+ if (typeof oldCh === 'string') {
+ if (newCh !== oldCh) {
+ _el.textContent = newCh;
+ }
+ } else {
+ // 清空并替换为文本
+ _el.textContent = newCh;
+ }
+ } else {
+ // 数组
+ if (typeof oldCh === 'string') {
+ _el.innerHTML = '';
+ newCh.forEach(function (child) {
+ _el.appendChild(_this2.createElm(child));
+ });
+ } else {
+ // 双方都有孩子 diff
+ this.updateChildren(_el, oldCh, newCh);
+ }
+ }
+ }
+ } // 保存vnode
+
+
+ this._vnode = vnode;
+ } // 创建真实节点
+
+ }, {
+ key: "createElm",
+ value: function createElm(vnode) {
+ var _this3 = this;
+
+ var el = document.createElement(vnode.tag); // props
+
+ for (var key in vnode.props) {
+ el.setAttribute(key, vnode.props[key]);
+ } // 处理子节点
+
+
+ if (vnode.children) {
+ if (_typeof(vnode.children) !== 'object') {
+ el.textContent = vnode.children;
+ } else {
+ // 数组类子元素
+ vnode.children.forEach(function (vnode) {
+ el.appendChild(_this3.createElm(vnode));
+ });
+ }
+ }
+
+ vnode.el = el;
+ return el;
+ } // 更新子元素
+
+ }, {
+ key: "updateChildren",
+ value: function updateChildren(parentElm, oldCh, newCh) {
+ var _this4 = this;
+
+ var len = Math.min(oldCh.length, newCh.length); // 强制更新,不管节点是否相同
+
+ for (var i = 0; i < len; i++) {
+ this.__patch__(oldCh[i], newCh[i]);
+ }
+
+ if (oldCh.length > newCh.length) {
+ // 删除
+ oldCh.slice(len).forEach(function (child) {
+ parentElm.removeChild(child.el);
+ });
+ } else {
+ // 追加
+ newCh.slice(len).forEach(function (child) {
+ var el = _this4.createElm(child);
+
+ parentElm.appendChild(el);
+ });
+ }
+ }
+ }]);
+
+ return Vue;
+ }(); // 空函数
+
+ function noop() {}
+
+ return Vue;
+
+})();
diff --git a/dist/vue.common.js b/dist/vue.common.js
new file mode 100644
index 0000000..6f0eed2
--- /dev/null
+++ b/dist/vue.common.js
@@ -0,0 +1,2466 @@
+'use strict';
+
+function _typeof(obj) {
+ "@babel/helpers - typeof";
+
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+ _typeof = function (obj) {
+ return typeof obj;
+ };
+ } else {
+ _typeof = function (obj) {
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+ }
+
+ return _typeof(obj);
+}
+
+function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+}
+
+function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+}
+
+function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+}
+
+function createCommonjsModule(fn, module) {
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
+}
+
+var _global = createCommonjsModule(function (module) {
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+var global = module.exports = typeof window != 'undefined' && window.Math == Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self
+ // eslint-disable-next-line no-new-func
+ : Function('return this')();
+if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
+});
+
+var _core = createCommonjsModule(function (module) {
+var core = module.exports = { version: '2.6.12' };
+if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
+});
+_core.version;
+
+var _isObject = function (it) {
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
+};
+
+var _anObject = function (it) {
+ if (!_isObject(it)) throw TypeError(it + ' is not an object!');
+ return it;
+};
+
+var _fails = function (exec) {
+ try {
+ return !!exec();
+ } catch (e) {
+ return true;
+ }
+};
+
+// Thank's IE8 for his funny defineProperty
+var _descriptors = !_fails(function () {
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
+});
+
+var document$2 = _global.document;
+// typeof document.createElement is 'object' in old IE
+var is = _isObject(document$2) && _isObject(document$2.createElement);
+var _domCreate = function (it) {
+ return is ? document$2.createElement(it) : {};
+};
+
+var _ie8DomDefine = !_descriptors && !_fails(function () {
+ return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;
+});
+
+// 7.1.1 ToPrimitive(input [, PreferredType])
+
+// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+// and the second argument - flag - preferred type is a string
+var _toPrimitive = function (it, S) {
+ if (!_isObject(it)) return it;
+ var fn, val;
+ if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
+ if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) return val;
+ if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
+ throw TypeError("Can't convert object to primitive value");
+};
+
+var dP$4 = Object.defineProperty;
+
+var f$6 = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
+ _anObject(O);
+ P = _toPrimitive(P, true);
+ _anObject(Attributes);
+ if (_ie8DomDefine) try {
+ return dP$4(O, P, Attributes);
+ } catch (e) { /* empty */ }
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
+ if ('value' in Attributes) O[P] = Attributes.value;
+ return O;
+};
+
+var _objectDp = {
+ f: f$6
+};
+
+var _propertyDesc = function (bitmap, value) {
+ return {
+ enumerable: !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable: !(bitmap & 4),
+ value: value
+ };
+};
+
+var _hide = _descriptors ? function (object, key, value) {
+ return _objectDp.f(object, key, _propertyDesc(1, value));
+} : function (object, key, value) {
+ object[key] = value;
+ return object;
+};
+
+var hasOwnProperty$1 = {}.hasOwnProperty;
+var _has = function (it, key) {
+ return hasOwnProperty$1.call(it, key);
+};
+
+var id = 0;
+var px = Math.random();
+var _uid = function (key) {
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
+};
+
+var _library = false;
+
+var _shared = createCommonjsModule(function (module) {
+var SHARED = '__core-js_shared__';
+var store = _global[SHARED] || (_global[SHARED] = {});
+
+(module.exports = function (key, value) {
+ return store[key] || (store[key] = value !== undefined ? value : {});
+})('versions', []).push({
+ version: _core.version,
+ mode: 'global',
+ copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
+});
+});
+
+var _functionToString = _shared('native-function-to-string', Function.toString);
+
+var _redefine = createCommonjsModule(function (module) {
+var SRC = _uid('src');
+
+var TO_STRING = 'toString';
+var TPL = ('' + _functionToString).split(TO_STRING);
+
+_core.inspectSource = function (it) {
+ return _functionToString.call(it);
+};
+
+(module.exports = function (O, key, val, safe) {
+ var isFunction = typeof val == 'function';
+ if (isFunction) _has(val, 'name') || _hide(val, 'name', key);
+ if (O[key] === val) return;
+ if (isFunction) _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
+ if (O === _global) {
+ O[key] = val;
+ } else if (!safe) {
+ delete O[key];
+ _hide(O, key, val);
+ } else if (O[key]) {
+ O[key] = val;
+ } else {
+ _hide(O, key, val);
+ }
+// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
+})(Function.prototype, TO_STRING, function toString() {
+ return typeof this == 'function' && this[SRC] || _functionToString.call(this);
+});
+});
+
+var _aFunction = function (it) {
+ if (typeof it != 'function') throw TypeError(it + ' is not a function!');
+ return it;
+};
+
+// optional / simple context binding
+
+var _ctx = function (fn, that, length) {
+ _aFunction(fn);
+ if (that === undefined) return fn;
+ switch (length) {
+ case 1: return function (a) {
+ return fn.call(that, a);
+ };
+ case 2: return function (a, b) {
+ return fn.call(that, a, b);
+ };
+ case 3: return function (a, b, c) {
+ return fn.call(that, a, b, c);
+ };
+ }
+ return function (/* ...args */) {
+ return fn.apply(that, arguments);
+ };
+};
+
+var PROTOTYPE$2 = 'prototype';
+
+var $export = function (type, name, source) {
+ var IS_FORCED = type & $export.F;
+ var IS_GLOBAL = type & $export.G;
+ var IS_STATIC = type & $export.S;
+ var IS_PROTO = type & $export.P;
+ var IS_BIND = type & $export.B;
+ var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE$2];
+ var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});
+ var expProto = exports[PROTOTYPE$2] || (exports[PROTOTYPE$2] = {});
+ var key, own, out, exp;
+ if (IS_GLOBAL) source = name;
+ for (key in source) {
+ // contains in native
+ own = !IS_FORCED && target && target[key] !== undefined;
+ // export native or passed
+ out = (own ? target : source)[key];
+ // bind timers to global for call from export context
+ exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;
+ // extend global
+ if (target) _redefine(target, key, out, type & $export.U);
+ // export
+ if (exports[key] != out) _hide(exports, key, exp);
+ if (IS_PROTO && expProto[key] != out) expProto[key] = out;
+ }
+};
+_global.core = _core;
+// type bitmap
+$export.F = 1; // forced
+$export.G = 2; // global
+$export.S = 4; // static
+$export.P = 8; // proto
+$export.B = 16; // bind
+$export.W = 32; // wrap
+$export.U = 64; // safe
+$export.R = 128; // real proto method for `library`
+var _export = $export;
+
+var document$1 = _global.document;
+var _html = document$1 && document$1.documentElement;
+
+var toString$1 = {}.toString;
+
+var _cof = function (it) {
+ return toString$1.call(it).slice(8, -1);
+};
+
+// 7.1.4 ToInteger
+var ceil = Math.ceil;
+var floor$1 = Math.floor;
+var _toInteger = function (it) {
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor$1 : ceil)(it);
+};
+
+var max$1 = Math.max;
+var min$2 = Math.min;
+var _toAbsoluteIndex = function (index, length) {
+ index = _toInteger(index);
+ return index < 0 ? max$1(index + length, 0) : min$2(index, length);
+};
+
+// 7.1.15 ToLength
+
+var min$1 = Math.min;
+var _toLength = function (it) {
+ return it > 0 ? min$1(_toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
+};
+
+var arraySlice = [].slice;
+
+// fallback for not array-like ES3 strings and DOM objects
+_export(_export.P + _export.F * _fails(function () {
+ if (_html) arraySlice.call(_html);
+}), 'Array', {
+ slice: function slice(begin, end) {
+ var len = _toLength(this.length);
+ var klass = _cof(this);
+ end = end === undefined ? len : end;
+ if (klass == 'Array') return arraySlice.call(this, begin, end);
+ var start = _toAbsoluteIndex(begin, len);
+ var upTo = _toAbsoluteIndex(end, len);
+ var size = _toLength(upTo - start);
+ var cloned = new Array(size);
+ var i = 0;
+ for (; i < size; i++) cloned[i] = klass == 'String'
+ ? this.charAt(start + i)
+ : this[start + i];
+ return cloned;
+ }
+});
+
+// 7.2.1 RequireObjectCoercible(argument)
+var _defined = function (it) {
+ if (it == undefined) throw TypeError("Can't call method on " + it);
+ return it;
+};
+
+// 7.1.13 ToObject(argument)
+
+var _toObject = function (it) {
+ return Object(_defined(it));
+};
+
+// fallback for non-array-like ES3 and non-enumerable old V8 strings
+
+// eslint-disable-next-line no-prototype-builtins
+var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
+ return _cof(it) == 'String' ? it.split('') : Object(it);
+};
+
+// to indexed object, toObject with fallback for non-array-like ES3 strings
+
+
+var _toIobject = function (it) {
+ return _iobject(_defined(it));
+};
+
+// false -> Array#indexOf
+// true -> Array#includes
+
+
+
+var _arrayIncludes = function (IS_INCLUDES) {
+ return function ($this, el, fromIndex) {
+ var O = _toIobject($this);
+ var length = _toLength(O.length);
+ var index = _toAbsoluteIndex(fromIndex, length);
+ var value;
+ // Array#includes uses SameValueZero equality algorithm
+ // eslint-disable-next-line no-self-compare
+ if (IS_INCLUDES && el != el) while (length > index) {
+ value = O[index++];
+ // eslint-disable-next-line no-self-compare
+ if (value != value) return true;
+ // Array#indexOf ignores holes, Array#includes - not
+ } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
+ if (O[index] === el) return IS_INCLUDES || index || 0;
+ } return !IS_INCLUDES && -1;
+ };
+};
+
+var shared = _shared('keys');
+
+var _sharedKey = function (key) {
+ return shared[key] || (shared[key] = _uid(key));
+};
+
+var arrayIndexOf = _arrayIncludes(false);
+var IE_PROTO$2 = _sharedKey('IE_PROTO');
+
+var _objectKeysInternal = function (object, names) {
+ var O = _toIobject(object);
+ var i = 0;
+ var result = [];
+ var key;
+ for (key in O) if (key != IE_PROTO$2) _has(O, key) && result.push(key);
+ // Don't enum bug & hidden keys
+ while (names.length > i) if (_has(O, key = names[i++])) {
+ ~arrayIndexOf(result, key) || result.push(key);
+ }
+ return result;
+};
+
+// IE 8- don't enum bug keys
+var _enumBugKeys = (
+ 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
+).split(',');
+
+// 19.1.2.14 / 15.2.3.14 Object.keys(O)
+
+
+
+var _objectKeys = Object.keys || function keys(O) {
+ return _objectKeysInternal(O, _enumBugKeys);
+};
+
+// most Object methods by ES6 should accept primitives
+
+
+
+var _objectSap = function (KEY, exec) {
+ var fn = (_core.Object || {})[KEY] || Object[KEY];
+ var exp = {};
+ exp[KEY] = exec(fn);
+ _export(_export.S + _export.F * _fails(function () { fn(1); }), 'Object', exp);
+};
+
+// 19.1.2.14 Object.keys(O)
+
+
+
+_objectSap('keys', function () {
+ return function keys(it) {
+ return _objectKeys(_toObject(it));
+ };
+});
+
+var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
+ _anObject(O);
+ var keys = _objectKeys(Properties);
+ var length = keys.length;
+ var i = 0;
+ var P;
+ while (length > i) _objectDp.f(O, P = keys[i++], Properties[P]);
+ return O;
+};
+
+// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+
+
+
+var IE_PROTO$1 = _sharedKey('IE_PROTO');
+var Empty = function () { /* empty */ };
+var PROTOTYPE$1 = 'prototype';
+
+// Create object with fake `null` prototype: use iframe Object with cleared prototype
+var createDict = function () {
+ // Thrash, waste and sodomy: IE GC bug
+ var iframe = _domCreate('iframe');
+ var i = _enumBugKeys.length;
+ var lt = '<';
+ var gt = '>';
+ var iframeDocument;
+ iframe.style.display = 'none';
+ _html.appendChild(iframe);
+ iframe.src = 'javascript:'; // eslint-disable-line no-script-url
+ // createDict = iframe.contentWindow.Object;
+ // html.removeChild(iframe);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
+ iframeDocument.close();
+ createDict = iframeDocument.F;
+ while (i--) delete createDict[PROTOTYPE$1][_enumBugKeys[i]];
+ return createDict();
+};
+
+var _objectCreate = Object.create || function create(O, Properties) {
+ var result;
+ if (O !== null) {
+ Empty[PROTOTYPE$1] = _anObject(O);
+ result = new Empty();
+ Empty[PROTOTYPE$1] = null;
+ // add "__proto__" for Object.getPrototypeOf polyfill
+ result[IE_PROTO$1] = O;
+ } else result = createDict();
+ return Properties === undefined ? result : _objectDps(result, Properties);
+};
+
+var _redefineAll = function (target, src, safe) {
+ for (var key in src) _redefine(target, key, src[key], safe);
+ return target;
+};
+
+var _anInstance = function (it, Constructor, name, forbiddenField) {
+ if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
+ throw TypeError(name + ': incorrect invocation!');
+ } return it;
+};
+
+// call something on iterator step with safe closing on error
+
+var _iterCall = function (iterator, fn, value, entries) {
+ try {
+ return entries ? fn(_anObject(value)[0], value[1]) : fn(value);
+ // 7.4.6 IteratorClose(iterator, completion)
+ } catch (e) {
+ var ret = iterator['return'];
+ if (ret !== undefined) _anObject(ret.call(iterator));
+ throw e;
+ }
+};
+
+var _iterators = {};
+
+var _wks = createCommonjsModule(function (module) {
+var store = _shared('wks');
+
+var Symbol = _global.Symbol;
+var USE_SYMBOL = typeof Symbol == 'function';
+
+var $exports = module.exports = function (name) {
+ return store[name] || (store[name] =
+ USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : _uid)('Symbol.' + name));
+};
+
+$exports.store = store;
+});
+
+// check on default Array iterator
+
+var ITERATOR$4 = _wks('iterator');
+var ArrayProto$1 = Array.prototype;
+
+var _isArrayIter = function (it) {
+ return it !== undefined && (_iterators.Array === it || ArrayProto$1[ITERATOR$4] === it);
+};
+
+// getting tag from 19.1.3.6 Object.prototype.toString()
+
+var TAG$1 = _wks('toStringTag');
+// ES3 wrong here
+var ARG = _cof(function () { return arguments; }()) == 'Arguments';
+
+// fallback for IE11 Script Access Denied error
+var tryGet = function (it, key) {
+ try {
+ return it[key];
+ } catch (e) { /* empty */ }
+};
+
+var _classof = function (it) {
+ var O, T, B;
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
+ // @@toStringTag case
+ : typeof (T = tryGet(O = Object(it), TAG$1)) == 'string' ? T
+ // builtinTag case
+ : ARG ? _cof(O)
+ // ES3 arguments fallback
+ : (B = _cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
+};
+
+var ITERATOR$3 = _wks('iterator');
+
+var core_getIteratorMethod = _core.getIteratorMethod = function (it) {
+ if (it != undefined) return it[ITERATOR$3]
+ || it['@@iterator']
+ || _iterators[_classof(it)];
+};
+
+var _forOf = createCommonjsModule(function (module) {
+var BREAK = {};
+var RETURN = {};
+var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
+ var iterFn = ITERATOR ? function () { return iterable; } : core_getIteratorMethod(iterable);
+ var f = _ctx(fn, that, entries ? 2 : 1);
+ var index = 0;
+ var length, step, iterator, result;
+ if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
+ // fast case for arrays with default iterator
+ if (_isArrayIter(iterFn)) for (length = _toLength(iterable.length); length > index; index++) {
+ result = entries ? f(_anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ if (result === BREAK || result === RETURN) return result;
+ } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
+ result = _iterCall(iterator, f, step.value, entries);
+ if (result === BREAK || result === RETURN) return result;
+ }
+};
+exports.BREAK = BREAK;
+exports.RETURN = RETURN;
+});
+
+var def$1 = _objectDp.f;
+
+var TAG = _wks('toStringTag');
+
+var _setToStringTag = function (it, tag, stat) {
+ if (it && !_has(it = stat ? it : it.prototype, TAG)) def$1(it, TAG, { configurable: true, value: tag });
+};
+
+var IteratorPrototype = {};
+
+// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
+_hide(IteratorPrototype, _wks('iterator'), function () { return this; });
+
+var _iterCreate = function (Constructor, NAME, next) {
+ Constructor.prototype = _objectCreate(IteratorPrototype, { next: _propertyDesc(1, next) });
+ _setToStringTag(Constructor, NAME + ' Iterator');
+};
+
+// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
+
+
+var IE_PROTO = _sharedKey('IE_PROTO');
+var ObjectProto$1 = Object.prototype;
+
+var _objectGpo = Object.getPrototypeOf || function (O) {
+ O = _toObject(O);
+ if (_has(O, IE_PROTO)) return O[IE_PROTO];
+ if (typeof O.constructor == 'function' && O instanceof O.constructor) {
+ return O.constructor.prototype;
+ } return O instanceof Object ? ObjectProto$1 : null;
+};
+
+var ITERATOR$2 = _wks('iterator');
+var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
+var FF_ITERATOR = '@@iterator';
+var KEYS = 'keys';
+var VALUES = 'values';
+
+var returnThis = function () { return this; };
+
+var _iterDefine = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
+ _iterCreate(Constructor, NAME, next);
+ var getMethod = function (kind) {
+ if (!BUGGY && kind in proto) return proto[kind];
+ switch (kind) {
+ case KEYS: return function keys() { return new Constructor(this, kind); };
+ case VALUES: return function values() { return new Constructor(this, kind); };
+ } return function entries() { return new Constructor(this, kind); };
+ };
+ var TAG = NAME + ' Iterator';
+ var DEF_VALUES = DEFAULT == VALUES;
+ var VALUES_BUG = false;
+ var proto = Base.prototype;
+ var $native = proto[ITERATOR$2] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
+ var $default = $native || getMethod(DEFAULT);
+ var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
+ var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
+ var methods, key, IteratorPrototype;
+ // Fix native
+ if ($anyNative) {
+ IteratorPrototype = _objectGpo($anyNative.call(new Base()));
+ if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
+ // Set @@toStringTag to native iterators
+ _setToStringTag(IteratorPrototype, TAG, true);
+ // fix for some old engines
+ if (typeof IteratorPrototype[ITERATOR$2] != 'function') _hide(IteratorPrototype, ITERATOR$2, returnThis);
+ }
+ }
+ // fix Array#{values, @@iterator}.name in V8 / FF
+ if (DEF_VALUES && $native && $native.name !== VALUES) {
+ VALUES_BUG = true;
+ $default = function values() { return $native.call(this); };
+ }
+ // Define iterator
+ if ((BUGGY || VALUES_BUG || !proto[ITERATOR$2])) {
+ _hide(proto, ITERATOR$2, $default);
+ }
+ // Plug for library
+ _iterators[NAME] = $default;
+ _iterators[TAG] = returnThis;
+ if (DEFAULT) {
+ methods = {
+ values: DEF_VALUES ? $default : getMethod(VALUES),
+ keys: IS_SET ? $default : getMethod(KEYS),
+ entries: $entries
+ };
+ if (FORCED) for (key in methods) {
+ if (!(key in proto)) _redefine(proto, key, methods[key]);
+ } else _export(_export.P + _export.F * (BUGGY || VALUES_BUG), NAME, methods);
+ }
+ return methods;
+};
+
+var _iterStep = function (done, value) {
+ return { value: value, done: !!done };
+};
+
+var SPECIES$2 = _wks('species');
+
+var _setSpecies = function (KEY) {
+ var C = _global[KEY];
+ if (_descriptors && C && !C[SPECIES$2]) _objectDp.f(C, SPECIES$2, {
+ configurable: true,
+ get: function () { return this; }
+ });
+};
+
+var _meta = createCommonjsModule(function (module) {
+var META = _uid('meta');
+
+
+var setDesc = _objectDp.f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+ return true;
+};
+var FREEZE = !_fails(function () {
+ return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+ setDesc(it, META, { value: {
+ i: 'O' + ++id, // object ID
+ w: {} // weak collections IDs
+ } });
+};
+var fastKey = function (it, create) {
+ // return primitive with prefix
+ if (!_isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+ if (!_has(it, META)) {
+ // can't set metadata to uncaught frozen object
+ if (!isExtensible(it)) return 'F';
+ // not necessary to add metadata
+ if (!create) return 'E';
+ // add missing metadata
+ setMeta(it);
+ // return object ID
+ } return it[META].i;
+};
+var getWeak = function (it, create) {
+ if (!_has(it, META)) {
+ // can't set metadata to uncaught frozen object
+ if (!isExtensible(it)) return true;
+ // not necessary to add metadata
+ if (!create) return false;
+ // add missing metadata
+ setMeta(it);
+ // return hash weak collections IDs
+ } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+ if (FREEZE && meta.NEED && isExtensible(it) && !_has(it, META)) setMeta(it);
+ return it;
+};
+var meta = module.exports = {
+ KEY: META,
+ NEED: false,
+ fastKey: fastKey,
+ getWeak: getWeak,
+ onFreeze: onFreeze
+};
+});
+_meta.KEY;
+_meta.NEED;
+_meta.fastKey;
+_meta.getWeak;
+_meta.onFreeze;
+
+var _validateCollection = function (it, TYPE) {
+ if (!_isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+ return it;
+};
+
+var dP$3 = _objectDp.f;
+
+
+
+
+
+
+
+
+
+var fastKey = _meta.fastKey;
+
+var SIZE = _descriptors ? '_s' : 'size';
+
+var getEntry = function (that, key) {
+ // fast case
+ var index = fastKey(key);
+ var entry;
+ if (index !== 'F') return that._i[index];
+ // frozen object case
+ for (entry = that._f; entry; entry = entry.n) {
+ if (entry.k == key) return entry;
+ }
+};
+
+var _collectionStrong = {
+ getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+ var C = wrapper(function (that, iterable) {
+ _anInstance(that, C, NAME, '_i');
+ that._t = NAME; // collection type
+ that._i = _objectCreate(null); // index
+ that._f = undefined; // first entry
+ that._l = undefined; // last entry
+ that[SIZE] = 0; // size
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
+ });
+ _redefineAll(C.prototype, {
+ // 23.1.3.1 Map.prototype.clear()
+ // 23.2.3.2 Set.prototype.clear()
+ clear: function clear() {
+ for (var that = _validateCollection(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+ entry.r = true;
+ if (entry.p) entry.p = entry.p.n = undefined;
+ delete data[entry.i];
+ }
+ that._f = that._l = undefined;
+ that[SIZE] = 0;
+ },
+ // 23.1.3.3 Map.prototype.delete(key)
+ // 23.2.3.4 Set.prototype.delete(value)
+ 'delete': function (key) {
+ var that = _validateCollection(this, NAME);
+ var entry = getEntry(that, key);
+ if (entry) {
+ var next = entry.n;
+ var prev = entry.p;
+ delete that._i[entry.i];
+ entry.r = true;
+ if (prev) prev.n = next;
+ if (next) next.p = prev;
+ if (that._f == entry) that._f = next;
+ if (that._l == entry) that._l = prev;
+ that[SIZE]--;
+ } return !!entry;
+ },
+ // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
+ // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
+ forEach: function forEach(callbackfn /* , that = undefined */) {
+ _validateCollection(this, NAME);
+ var f = _ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+ var entry;
+ while (entry = entry ? entry.n : this._f) {
+ f(entry.v, entry.k, this);
+ // revert to the last existing entry
+ while (entry && entry.r) entry = entry.p;
+ }
+ },
+ // 23.1.3.7 Map.prototype.has(key)
+ // 23.2.3.7 Set.prototype.has(value)
+ has: function has(key) {
+ return !!getEntry(_validateCollection(this, NAME), key);
+ }
+ });
+ if (_descriptors) dP$3(C.prototype, 'size', {
+ get: function () {
+ return _validateCollection(this, NAME)[SIZE];
+ }
+ });
+ return C;
+ },
+ def: function (that, key, value) {
+ var entry = getEntry(that, key);
+ var prev, index;
+ // change existing entry
+ if (entry) {
+ entry.v = value;
+ // create new entry
+ } else {
+ that._l = entry = {
+ i: index = fastKey(key, true), // <- index
+ k: key, // <- key
+ v: value, // <- value
+ p: prev = that._l, // <- previous entry
+ n: undefined, // <- next entry
+ r: false // <- removed
+ };
+ if (!that._f) that._f = entry;
+ if (prev) prev.n = entry;
+ that[SIZE]++;
+ // add to index
+ if (index !== 'F') that._i[index] = entry;
+ } return that;
+ },
+ getEntry: getEntry,
+ setStrong: function (C, NAME, IS_MAP) {
+ // add .keys, .values, .entries, [@@iterator]
+ // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
+ _iterDefine(C, NAME, function (iterated, kind) {
+ this._t = _validateCollection(iterated, NAME); // target
+ this._k = kind; // kind
+ this._l = undefined; // previous
+ }, function () {
+ var that = this;
+ var kind = that._k;
+ var entry = that._l;
+ // revert to the last existing entry
+ while (entry && entry.r) entry = entry.p;
+ // get next entry
+ if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
+ // or finish the iteration
+ that._t = undefined;
+ return _iterStep(1);
+ }
+ // return step by kind
+ if (kind == 'keys') return _iterStep(0, entry.k);
+ if (kind == 'values') return _iterStep(0, entry.v);
+ return _iterStep(0, [entry.k, entry.v]);
+ }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
+
+ // add [@@species], 23.1.2.2, 23.2.2.2
+ _setSpecies(NAME);
+ }
+};
+_collectionStrong.getConstructor;
+_collectionStrong.def;
+_collectionStrong.getEntry;
+_collectionStrong.setStrong;
+
+var ITERATOR$1 = _wks('iterator');
+var SAFE_CLOSING = false;
+
+try {
+ var riter = [7][ITERATOR$1]();
+ riter['return'] = function () { SAFE_CLOSING = true; };
+ // eslint-disable-next-line no-throw-literal
+ Array.from(riter, function () { throw 2; });
+} catch (e) { /* empty */ }
+
+var _iterDetect = function (exec, skipClosing) {
+ if (!skipClosing && !SAFE_CLOSING) return false;
+ var safe = false;
+ try {
+ var arr = [7];
+ var iter = arr[ITERATOR$1]();
+ iter.next = function () { return { done: safe = true }; };
+ arr[ITERATOR$1] = function () { return iter; };
+ exec(arr);
+ } catch (e) { /* empty */ }
+ return safe;
+};
+
+var f$5 = {}.propertyIsEnumerable;
+
+var _objectPie = {
+ f: f$5
+};
+
+var gOPD$1 = Object.getOwnPropertyDescriptor;
+
+var f$4 = _descriptors ? gOPD$1 : function getOwnPropertyDescriptor(O, P) {
+ O = _toIobject(O);
+ P = _toPrimitive(P, true);
+ if (_ie8DomDefine) try {
+ return gOPD$1(O, P);
+ } catch (e) { /* empty */ }
+ if (_has(O, P)) return _propertyDesc(!_objectPie.f.call(O, P), O[P]);
+};
+
+var _objectGopd = {
+ f: f$4
+};
+
+// Works with __proto__ only. Old v8 can't work with null proto objects.
+/* eslint-disable no-proto */
+
+
+var check = function (O, proto) {
+ _anObject(O);
+ if (!_isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
+};
+var _setProto = {
+ set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
+ function (test, buggy, set) {
+ try {
+ set = _ctx(Function.call, _objectGopd.f(Object.prototype, '__proto__').set, 2);
+ set(test, []);
+ buggy = !(test instanceof Array);
+ } catch (e) { buggy = true; }
+ return function setPrototypeOf(O, proto) {
+ check(O, proto);
+ if (buggy) O.__proto__ = proto;
+ else set(O, proto);
+ return O;
+ };
+ }({}, false) : undefined),
+ check: check
+};
+
+var setPrototypeOf = _setProto.set;
+var _inheritIfRequired = function (that, target, C) {
+ var S = target.constructor;
+ var P;
+ if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && _isObject(P) && setPrototypeOf) {
+ setPrototypeOf(that, P);
+ } return that;
+};
+
+var _collection = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+ var Base = _global[NAME];
+ var C = Base;
+ var ADDER = IS_MAP ? 'set' : 'add';
+ var proto = C && C.prototype;
+ var O = {};
+ var fixMethod = function (KEY) {
+ var fn = proto[KEY];
+ _redefine(proto, KEY,
+ KEY == 'delete' ? function (a) {
+ return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'has' ? function has(a) {
+ return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'get' ? function get(a) {
+ return IS_WEAK && !_isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
+ : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
+ );
+ };
+ if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !_fails(function () {
+ new C().entries().next();
+ }))) {
+ // create collection constructor
+ C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+ _redefineAll(C.prototype, methods);
+ _meta.NEED = true;
+ } else {
+ var instance = new C();
+ // early implementations not supports chaining
+ var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
+ // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
+ var THROWS_ON_PRIMITIVES = _fails(function () { instance.has(1); });
+ // most early implementations doesn't supports iterables, most modern - not close it correctly
+ var ACCEPT_ITERABLES = _iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
+ // for early implementations -0 and +0 not the same
+ var BUGGY_ZERO = !IS_WEAK && _fails(function () {
+ // V8 ~ Chromium 42- fails only with 5+ elements
+ var $instance = new C();
+ var index = 5;
+ while (index--) $instance[ADDER](index, index);
+ return !$instance.has(-0);
+ });
+ if (!ACCEPT_ITERABLES) {
+ C = wrapper(function (target, iterable) {
+ _anInstance(target, C, NAME);
+ var that = _inheritIfRequired(new Base(), target, C);
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
+ return that;
+ });
+ C.prototype = proto;
+ proto.constructor = C;
+ }
+ if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
+ fixMethod('delete');
+ fixMethod('has');
+ IS_MAP && fixMethod('get');
+ }
+ if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
+ // weak collections should not contains .clear method
+ if (IS_WEAK && proto.clear) delete proto.clear;
+ }
+
+ _setToStringTag(C, NAME);
+
+ O[NAME] = C;
+ _export(_export.G + _export.W + _export.F * (C != Base), O);
+
+ if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+ return C;
+};
+
+var SET = 'Set';
+
+// 23.2 Set Objects
+_collection(SET, function (get) {
+ return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
+}, {
+ // 23.2.3.1 Set.prototype.add(value)
+ add: function add(value) {
+ return _collectionStrong.def(_validateCollection(this, SET), value = value === 0 ? 0 : value, value);
+ }
+}, _collectionStrong);
+
+// true -> String#at
+// false -> String#codePointAt
+var _stringAt = function (TO_STRING) {
+ return function (that, pos) {
+ var s = String(_defined(that));
+ var i = _toInteger(pos);
+ var l = s.length;
+ var a, b;
+ if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
+ a = s.charCodeAt(i);
+ return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
+ ? TO_STRING ? s.charAt(i) : a
+ : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
+ };
+};
+
+var $at = _stringAt(true);
+
+// 21.1.3.27 String.prototype[@@iterator]()
+_iterDefine(String, 'String', function (iterated) {
+ this._t = String(iterated); // target
+ this._i = 0; // next index
+// 21.1.5.2.1 %StringIteratorPrototype%.next()
+}, function () {
+ var O = this._t;
+ var index = this._i;
+ var point;
+ if (index >= O.length) return { value: undefined, done: true };
+ point = $at(O, index);
+ this._i += point.length;
+ return { value: point, done: false };
+});
+
+// 19.1.3.6 Object.prototype.toString()
+
+var test = {};
+test[_wks('toStringTag')] = 'z';
+if (test + '' != '[object z]') {
+ _redefine(Object.prototype, 'toString', function toString() {
+ return '[object ' + _classof(this) + ']';
+ }, true);
+}
+
+// 22.1.3.31 Array.prototype[@@unscopables]
+var UNSCOPABLES = _wks('unscopables');
+var ArrayProto = Array.prototype;
+if (ArrayProto[UNSCOPABLES] == undefined) _hide(ArrayProto, UNSCOPABLES, {});
+var _addToUnscopables = function (key) {
+ ArrayProto[UNSCOPABLES][key] = true;
+};
+
+// 22.1.3.4 Array.prototype.entries()
+// 22.1.3.13 Array.prototype.keys()
+// 22.1.3.29 Array.prototype.values()
+// 22.1.3.30 Array.prototype[@@iterator]()
+var es6_array_iterator = _iterDefine(Array, 'Array', function (iterated, kind) {
+ this._t = _toIobject(iterated); // target
+ this._i = 0; // next index
+ this._k = kind; // kind
+// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
+}, function () {
+ var O = this._t;
+ var kind = this._k;
+ var index = this._i++;
+ if (!O || index >= O.length) {
+ this._t = undefined;
+ return _iterStep(1);
+ }
+ if (kind == 'keys') return _iterStep(0, index);
+ if (kind == 'values') return _iterStep(0, O[index]);
+ return _iterStep(0, [index, O[index]]);
+}, 'values');
+
+// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
+_iterators.Arguments = _iterators.Array;
+
+_addToUnscopables('keys');
+_addToUnscopables('values');
+_addToUnscopables('entries');
+
+var ITERATOR = _wks('iterator');
+var TO_STRING_TAG = _wks('toStringTag');
+var ArrayValues = _iterators.Array;
+
+var DOMIterables = {
+ CSSRuleList: true, // TODO: Not spec compliant, should be false.
+ CSSStyleDeclaration: false,
+ CSSValueList: false,
+ ClientRectList: false,
+ DOMRectList: false,
+ DOMStringList: false,
+ DOMTokenList: true,
+ DataTransferItemList: false,
+ FileList: false,
+ HTMLAllCollection: false,
+ HTMLCollection: false,
+ HTMLFormElement: false,
+ HTMLSelectElement: false,
+ MediaList: true, // TODO: Not spec compliant, should be false.
+ MimeTypeArray: false,
+ NamedNodeMap: false,
+ NodeList: true,
+ PaintRequestList: false,
+ Plugin: false,
+ PluginArray: false,
+ SVGLengthList: false,
+ SVGNumberList: false,
+ SVGPathSegList: false,
+ SVGPointList: false,
+ SVGStringList: false,
+ SVGTransformList: false,
+ SourceBufferList: false,
+ StyleSheetList: true, // TODO: Not spec compliant, should be false.
+ TextTrackCueList: false,
+ TextTrackList: false,
+ TouchList: false
+};
+
+for (var collections = _objectKeys(DOMIterables), i$1 = 0; i$1 < collections.length; i$1++) {
+ var NAME$1 = collections[i$1];
+ var explicit = DOMIterables[NAME$1];
+ var Collection = _global[NAME$1];
+ var proto$1 = Collection && Collection.prototype;
+ var key;
+ if (proto$1) {
+ if (!proto$1[ITERATOR]) _hide(proto$1, ITERATOR, ArrayValues);
+ if (!proto$1[TO_STRING_TAG]) _hide(proto$1, TO_STRING_TAG, NAME$1);
+ _iterators[NAME$1] = ArrayValues;
+ if (explicit) for (key in es6_array_iterator) if (!proto$1[key]) _redefine(proto$1, key, es6_array_iterator[key], true);
+ }
+}
+
+/**
+ * 消息管理器
+ */
+var Dep = /*#__PURE__*/function () {
+ function Dep() {
+ _classCallCheck(this, Dep);
+
+ this.deps = new Set();
+ } // 添加订阅者
+
+
+ _createClass(Dep, [{
+ key: "addSub",
+ value: function addSub(watcher) {
+ this.deps.add(watcher);
+ } // 操作watcher addDep 方法
+
+ }, {
+ key: "depend",
+ value: function depend() {
+ if (Dep.target) {
+ Dep.target.addDep(this);
+ }
+ } // 通知更新
+
+ }, {
+ key: "notify",
+ value: function notify() {
+ this.deps.forEach(function (watcher) {
+ return watcher.update();
+ });
+ }
+ }]);
+
+ return Dep;
+}();
+
+// 7.2.8 IsRegExp(argument)
+
+
+var MATCH = _wks('match');
+var _isRegexp = function (it) {
+ var isRegExp;
+ return _isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : _cof(it) == 'RegExp');
+};
+
+// 7.3.20 SpeciesConstructor(O, defaultConstructor)
+
+
+var SPECIES$1 = _wks('species');
+var _speciesConstructor = function (O, D) {
+ var C = _anObject(O).constructor;
+ var S;
+ return C === undefined || (S = _anObject(C)[SPECIES$1]) == undefined ? D : _aFunction(S);
+};
+
+var at = _stringAt(true);
+
+ // `AdvanceStringIndex` abstract operation
+// https://tc39.github.io/ecma262/#sec-advancestringindex
+var _advanceStringIndex = function (S, index, unicode) {
+ return index + (unicode ? at(S, index).length : 1);
+};
+
+var builtinExec = RegExp.prototype.exec;
+
+ // `RegExpExec` abstract operation
+// https://tc39.github.io/ecma262/#sec-regexpexec
+var _regexpExecAbstract = function (R, S) {
+ var exec = R.exec;
+ if (typeof exec === 'function') {
+ var result = exec.call(R, S);
+ if (typeof result !== 'object') {
+ throw new TypeError('RegExp exec method returned something other than an Object or null');
+ }
+ return result;
+ }
+ if (_classof(R) !== 'RegExp') {
+ throw new TypeError('RegExp#exec called on incompatible receiver');
+ }
+ return builtinExec.call(R, S);
+};
+
+// 21.2.5.3 get RegExp.prototype.flags
+
+var _flags = function () {
+ var that = _anObject(this);
+ var result = '';
+ if (that.global) result += 'g';
+ if (that.ignoreCase) result += 'i';
+ if (that.multiline) result += 'm';
+ if (that.unicode) result += 'u';
+ if (that.sticky) result += 'y';
+ return result;
+};
+
+var nativeExec = RegExp.prototype.exec;
+// This always refers to the native implementation, because the
+// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
+// which loads this file before patching the method.
+var nativeReplace = String.prototype.replace;
+
+var patchedExec = nativeExec;
+
+var LAST_INDEX$1 = 'lastIndex';
+
+var UPDATES_LAST_INDEX_WRONG = (function () {
+ var re1 = /a/,
+ re2 = /b*/g;
+ nativeExec.call(re1, 'a');
+ nativeExec.call(re2, 'a');
+ return re1[LAST_INDEX$1] !== 0 || re2[LAST_INDEX$1] !== 0;
+})();
+
+// nonparticipating capturing group, copied from es5-shim's String#split patch.
+var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
+
+var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
+
+if (PATCH) {
+ patchedExec = function exec(str) {
+ var re = this;
+ var lastIndex, reCopy, match, i;
+
+ if (NPCG_INCLUDED) {
+ reCopy = new RegExp('^' + re.source + '$(?!\\s)', _flags.call(re));
+ }
+ if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX$1];
+
+ match = nativeExec.call(re, str);
+
+ if (UPDATES_LAST_INDEX_WRONG && match) {
+ re[LAST_INDEX$1] = re.global ? match.index + match[0].length : lastIndex;
+ }
+ if (NPCG_INCLUDED && match && match.length > 1) {
+ // Fix browsers whose `exec` methods don't consistently return `undefined`
+ // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
+ // eslint-disable-next-line no-loop-func
+ nativeReplace.call(match[0], reCopy, function () {
+ for (i = 1; i < arguments.length - 2; i++) {
+ if (arguments[i] === undefined) match[i] = undefined;
+ }
+ });
+ }
+
+ return match;
+ };
+}
+
+var _regexpExec = patchedExec;
+
+_export({
+ target: 'RegExp',
+ proto: true,
+ forced: _regexpExec !== /./.exec
+}, {
+ exec: _regexpExec
+});
+
+var SPECIES = _wks('species');
+
+var REPLACE_SUPPORTS_NAMED_GROUPS = !_fails(function () {
+ // #replace needs built-in support for named groups.
+ // #match works fine because it just return the exec results, even if it has
+ // a "grops" property.
+ var re = /./;
+ re.exec = function () {
+ var result = [];
+ result.groups = { a: '7' };
+ return result;
+ };
+ return ''.replace(re, '$') !== '7';
+});
+
+var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
+ // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
+ var re = /(?:)/;
+ var originalExec = re.exec;
+ re.exec = function () { return originalExec.apply(this, arguments); };
+ var result = 'ab'.split(re);
+ return result.length === 2 && result[0] === 'a' && result[1] === 'b';
+})();
+
+var _fixReWks = function (KEY, length, exec) {
+ var SYMBOL = _wks(KEY);
+
+ var DELEGATES_TO_SYMBOL = !_fails(function () {
+ // String methods call symbol-named RegEp methods
+ var O = {};
+ O[SYMBOL] = function () { return 7; };
+ return ''[KEY](O) != 7;
+ });
+
+ var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !_fails(function () {
+ // Symbol-named RegExp methods call .exec
+ var execCalled = false;
+ var re = /a/;
+ re.exec = function () { execCalled = true; return null; };
+ if (KEY === 'split') {
+ // RegExp[@@split] doesn't call the regex's exec method, but first creates
+ // a new one. We need to return the patched regex when creating the new one.
+ re.constructor = {};
+ re.constructor[SPECIES] = function () { return re; };
+ }
+ re[SYMBOL]('');
+ return !execCalled;
+ }) : undefined;
+
+ if (
+ !DELEGATES_TO_SYMBOL ||
+ !DELEGATES_TO_EXEC ||
+ (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
+ (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
+ ) {
+ var nativeRegExpMethod = /./[SYMBOL];
+ var fns = exec(
+ _defined,
+ SYMBOL,
+ ''[KEY],
+ function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
+ if (regexp.exec === _regexpExec) {
+ if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
+ // The native String method already delegates to @@method (this
+ // polyfilled function), leasing to infinite recursion.
+ // We avoid it by directly calling the native @@method method.
+ return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
+ }
+ return { done: true, value: nativeMethod.call(str, regexp, arg2) };
+ }
+ return { done: false };
+ }
+ );
+ var strfn = fns[0];
+ var rxfn = fns[1];
+
+ _redefine(String.prototype, KEY, strfn);
+ _hide(RegExp.prototype, SYMBOL, length == 2
+ // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
+ // 21.2.5.11 RegExp.prototype[@@split](string, limit)
+ ? function (string, arg) { return rxfn.call(string, this, arg); }
+ // 21.2.5.6 RegExp.prototype[@@match](string)
+ // 21.2.5.9 RegExp.prototype[@@search](string)
+ : function (string) { return rxfn.call(string, this); }
+ );
+ }
+};
+
+var $min = Math.min;
+var $push = [].push;
+var $SPLIT = 'split';
+var LENGTH = 'length';
+var LAST_INDEX = 'lastIndex';
+var MAX_UINT32 = 0xffffffff;
+
+// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
+var SUPPORTS_Y = !_fails(function () { RegExp(MAX_UINT32, 'y'); });
+
+// @@split logic
+_fixReWks('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
+ var internalSplit;
+ if (
+ 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
+ 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
+ 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
+ '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
+ '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
+ ''[$SPLIT](/.?/)[LENGTH]
+ ) {
+ // based on es5-shim implementation, need to rework it
+ internalSplit = function (separator, limit) {
+ var string = String(this);
+ if (separator === undefined && limit === 0) return [];
+ // If `separator` is not a regex, use native split
+ if (!_isRegexp(separator)) return $split.call(string, separator, limit);
+ var output = [];
+ var flags = (separator.ignoreCase ? 'i' : '') +
+ (separator.multiline ? 'm' : '') +
+ (separator.unicode ? 'u' : '') +
+ (separator.sticky ? 'y' : '');
+ var lastLastIndex = 0;
+ var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
+ // Make `global` and avoid `lastIndex` issues by working with a copy
+ var separatorCopy = new RegExp(separator.source, flags + 'g');
+ var match, lastIndex, lastLength;
+ while (match = _regexpExec.call(separatorCopy, string)) {
+ lastIndex = separatorCopy[LAST_INDEX];
+ if (lastIndex > lastLastIndex) {
+ output.push(string.slice(lastLastIndex, match.index));
+ if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
+ lastLength = match[0][LENGTH];
+ lastLastIndex = lastIndex;
+ if (output[LENGTH] >= splitLimit) break;
+ }
+ if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
+ }
+ if (lastLastIndex === string[LENGTH]) {
+ if (lastLength || !separatorCopy.test('')) output.push('');
+ } else output.push(string.slice(lastLastIndex));
+ return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
+ };
+ // Chakra, V8
+ } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
+ internalSplit = function (separator, limit) {
+ return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
+ };
+ } else {
+ internalSplit = $split;
+ }
+
+ return [
+ // `String.prototype.split` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.split
+ function split(separator, limit) {
+ var O = defined(this);
+ var splitter = separator == undefined ? undefined : separator[SPLIT];
+ return splitter !== undefined
+ ? splitter.call(separator, O, limit)
+ : internalSplit.call(String(O), separator, limit);
+ },
+ // `RegExp.prototype[@@split]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
+ //
+ // NOTE: This cannot be properly polyfilled in engines that don't support
+ // the 'y' flag.
+ function (regexp, limit) {
+ var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
+ if (res.done) return res.value;
+
+ var rx = _anObject(regexp);
+ var S = String(this);
+ var C = _speciesConstructor(rx, RegExp);
+
+ var unicodeMatching = rx.unicode;
+ var flags = (rx.ignoreCase ? 'i' : '') +
+ (rx.multiline ? 'm' : '') +
+ (rx.unicode ? 'u' : '') +
+ (SUPPORTS_Y ? 'y' : 'g');
+
+ // ^(? + rx + ) is needed, in combination with some S slicing, to
+ // simulate the 'y' flag.
+ var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
+ var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
+ if (lim === 0) return [];
+ if (S.length === 0) return _regexpExecAbstract(splitter, S) === null ? [S] : [];
+ var p = 0;
+ var q = 0;
+ var A = [];
+ while (q < S.length) {
+ splitter.lastIndex = SUPPORTS_Y ? q : 0;
+ var z = _regexpExecAbstract(splitter, SUPPORTS_Y ? S : S.slice(q));
+ var e;
+ if (
+ z === null ||
+ (e = $min(_toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
+ ) {
+ q = _advanceStringIndex(S, q, unicodeMatching);
+ } else {
+ A.push(S.slice(p, q));
+ if (A.length === lim) return A;
+ for (var i = 1; i <= z.length - 1; i++) {
+ A.push(z[i]);
+ if (A.length === lim) return A;
+ }
+ q = p = e;
+ }
+ }
+ A.push(S.slice(p));
+ return A;
+ }
+ ];
+});
+
+var max = Math.max;
+var min = Math.min;
+var floor = Math.floor;
+var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
+var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;
+
+var maybeToString = function (it) {
+ return it === undefined ? it : String(it);
+};
+
+// @@replace logic
+_fixReWks('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
+ return [
+ // `String.prototype.replace` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.replace
+ function replace(searchValue, replaceValue) {
+ var O = defined(this);
+ var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
+ return fn !== undefined
+ ? fn.call(searchValue, O, replaceValue)
+ : $replace.call(String(O), searchValue, replaceValue);
+ },
+ // `RegExp.prototype[@@replace]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
+ function (regexp, replaceValue) {
+ var res = maybeCallNative($replace, regexp, this, replaceValue);
+ if (res.done) return res.value;
+
+ var rx = _anObject(regexp);
+ var S = String(this);
+ var functionalReplace = typeof replaceValue === 'function';
+ if (!functionalReplace) replaceValue = String(replaceValue);
+ var global = rx.global;
+ if (global) {
+ var fullUnicode = rx.unicode;
+ rx.lastIndex = 0;
+ }
+ var results = [];
+ while (true) {
+ var result = _regexpExecAbstract(rx, S);
+ if (result === null) break;
+ results.push(result);
+ if (!global) break;
+ var matchStr = String(result[0]);
+ if (matchStr === '') rx.lastIndex = _advanceStringIndex(S, _toLength(rx.lastIndex), fullUnicode);
+ }
+ var accumulatedResult = '';
+ var nextSourcePosition = 0;
+ for (var i = 0; i < results.length; i++) {
+ result = results[i];
+ var matched = String(result[0]);
+ var position = max(min(_toInteger(result.index), S.length), 0);
+ var captures = [];
+ // NOTE: This is equivalent to
+ // captures = result.slice(1).map(maybeToString)
+ // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
+ // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
+ // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
+ for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
+ var namedCaptures = result.groups;
+ if (functionalReplace) {
+ var replacerArgs = [matched].concat(captures, position, S);
+ if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
+ var replacement = String(replaceValue.apply(undefined, replacerArgs));
+ } else {
+ replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
+ }
+ if (position >= nextSourcePosition) {
+ accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
+ nextSourcePosition = position + matched.length;
+ }
+ }
+ return accumulatedResult + S.slice(nextSourcePosition);
+ }
+ ];
+
+ // https://tc39.github.io/ecma262/#sec-getsubstitution
+ function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
+ var tailPos = position + matched.length;
+ var m = captures.length;
+ var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
+ if (namedCaptures !== undefined) {
+ namedCaptures = _toObject(namedCaptures);
+ symbols = SUBSTITUTION_SYMBOLS;
+ }
+ return $replace.call(replacement, symbols, function (match, ch) {
+ var capture;
+ switch (ch.charAt(0)) {
+ case '$': return '$';
+ case '&': return matched;
+ case '`': return str.slice(0, position);
+ case "'": return str.slice(tailPos);
+ case '<':
+ capture = namedCaptures[ch.slice(1, -1)];
+ break;
+ default: // \d\d?
+ var n = +ch;
+ if (n === 0) return match;
+ if (n > m) {
+ var f = floor(n / 10);
+ if (f === 0) return match;
+ if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
+ return match;
+ }
+ capture = captures[n - 1];
+ }
+ return capture === undefined ? '' : capture;
+ });
+ }
+});
+
+function def(obj, key, val, enumerable) {
+ Object.defineProperty(obj, key, {
+ value: val,
+ enumerable: !!enumerable,
+ writable: true,
+ configurable: true
+ });
+} // 数组响应式处理
+
+function dependArray(value) {
+ for (var e, i = 0, l = value.length; i < l; i++) {
+ e = value[i];
+ e && e.__ob__ && e.__ob__.dep.depend();
+
+ if (Array.isArray(e)) {
+ dependArray(e);
+ }
+ }
+} // 检测一个对象的属性是否存在
+
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+function hasOwn(obj, key) {
+ return hasOwnProperty.call(obj, key);
+}
+
+var arrayProto = Array.prototype;
+var arrayMethods = Object.create(arrayProto);
+var methodsToPatch = ["push", "pop", "shift", "unshift", "splice", "sort", "reverse"];
+methodsToPatch.forEach(function (method) {
+ // 保存原始方法
+ var original = arrayProto[method]; // 覆盖之
+
+ def(arrayMethods, method, function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ // 1.执行默认方法
+ var result = original.apply(this, args); // 2.变更通知
+
+ var ob = this.__ob__; // 可能会有新元素加入
+
+ var inserted;
+
+ switch (method) {
+ case 'push':
+ case 'unshift':
+ inserted = args;
+ break;
+
+ case 'splice':
+ inserted = args.slice(2);
+ break;
+ } // 对新加入的元素做响应式
+
+
+ if (inserted) ob.observeArray(inserted); // notify change
+ // ob内部有一个dep,让它去通知更新
+
+ ob.dep.notify();
+ return result;
+ });
+});
+
+var Observer = /*#__PURE__*/function () {
+ function Observer(value) {
+ _classCallCheck(this, Observer);
+
+ this.value = value;
+ this.dep = new Dep();
+ def(value, '__ob__', this);
+
+ if (Array.isArray(value)) {
+ if ('__proto__' in {}) {
+ value.__proto__ = arrayMethods;
+ }
+
+ this.observeArray(value);
+ } else {
+ this.walk(value);
+ }
+ } // 数组响应式处理
+
+
+ _createClass(Observer, [{
+ key: "observeArray",
+ value: function observeArray(arr) {
+ for (var i = 0, l = arr.length; i < l; i++) {
+ observe(arr[i]);
+ }
+ } // 对象响应式处理
+
+ }, {
+ key: "walk",
+ value: function walk(obj) {
+ Object.keys(obj).forEach(function (key) {
+ defineReactive(obj, key, obj[key]);
+ });
+ }
+ }]);
+
+ return Observer;
+}(); // 数据劫持
+
+function defineReactive(obj, key, val) {
+ var childOb = observe(val); // 每一可以对应一个 dep;
+
+ var dep = new Dep();
+ Object.defineProperty(obj, key, {
+ get: function get() {
+ // 依赖收集
+ dep.depend();
+
+ if (childOb) {
+ // 子ob也要做依赖收集
+ childOb.dep.depend();
+
+ if (Array.isArray(val)) {
+ dependArray(val);
+ }
+ }
+
+ return val;
+ },
+ set: function set(newVal) {
+ if (val !== newVal) {
+ observe(newVal);
+ val = newVal; // 通知更新
+
+ dep.notify();
+ }
+ }
+ });
+} // observe
+
+function observe(obj) {
+ if (_typeof(obj) !== 'object' || obj === null) {
+ return;
+ }
+
+ var ob;
+
+ if (hasOwn(obj, '__ob__') && obj.__ob__ instanceof Observer) {
+ ob = obj.__ob__;
+ } else {
+ ob = new Observer(obj);
+ }
+
+ return ob;
+} // porxy
+
+function proxy$1(vm) {
+ Object.keys(vm.$data).forEach(function (key) {
+ Object.defineProperty(vm, key, {
+ get: function get() {
+ return vm.$data[key];
+ },
+ set: function set(newVal) {
+ vm.$data[key] = newVal;
+ }
+ });
+ });
+}
+
+var f$3 = _wks;
+
+var _wksExt = {
+ f: f$3
+};
+
+var defineProperty = _objectDp.f;
+var _wksDefine = function (name) {
+ var $Symbol = _core.Symbol || (_core.Symbol = _global.Symbol || {});
+ if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: _wksExt.f(name) });
+};
+
+var f$2 = Object.getOwnPropertySymbols;
+
+var _objectGops = {
+ f: f$2
+};
+
+// all enumerable object keys, includes symbols
+
+
+
+var _enumKeys = function (it) {
+ var result = _objectKeys(it);
+ var getSymbols = _objectGops.f;
+ if (getSymbols) {
+ var symbols = getSymbols(it);
+ var isEnum = _objectPie.f;
+ var i = 0;
+ var key;
+ while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
+ } return result;
+};
+
+// 7.2.2 IsArray(argument)
+
+var _isArray = Array.isArray || function isArray(arg) {
+ return _cof(arg) == 'Array';
+};
+
+// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
+
+var hiddenKeys = _enumBugKeys.concat('length', 'prototype');
+
+var f$1 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
+ return _objectKeysInternal(O, hiddenKeys);
+};
+
+var _objectGopn = {
+ f: f$1
+};
+
+// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
+
+var gOPN$2 = _objectGopn.f;
+var toString = {}.toString;
+
+var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
+ ? Object.getOwnPropertyNames(window) : [];
+
+var getWindowNames = function (it) {
+ try {
+ return gOPN$2(it);
+ } catch (e) {
+ return windowNames.slice();
+ }
+};
+
+var f = function getOwnPropertyNames(it) {
+ return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN$2(_toIobject(it));
+};
+
+var _objectGopnExt = {
+ f: f
+};
+
+// ECMAScript 6 symbols shim
+
+
+
+
+
+var META = _meta.KEY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var gOPD = _objectGopd.f;
+var dP$2 = _objectDp.f;
+var gOPN$1 = _objectGopnExt.f;
+var $Symbol = _global.Symbol;
+var $JSON = _global.JSON;
+var _stringify = $JSON && $JSON.stringify;
+var PROTOTYPE = 'prototype';
+var HIDDEN = _wks('_hidden');
+var TO_PRIMITIVE = _wks('toPrimitive');
+var isEnum = {}.propertyIsEnumerable;
+var SymbolRegistry = _shared('symbol-registry');
+var AllSymbols = _shared('symbols');
+var OPSymbols = _shared('op-symbols');
+var ObjectProto = Object[PROTOTYPE];
+var USE_NATIVE = typeof $Symbol == 'function' && !!_objectGops.f;
+var QObject = _global.QObject;
+// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
+
+// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
+var setSymbolDesc = _descriptors && _fails(function () {
+ return _objectCreate(dP$2({}, 'a', {
+ get: function () { return dP$2(this, 'a', { value: 7 }).a; }
+ })).a != 7;
+}) ? function (it, key, D) {
+ var protoDesc = gOPD(ObjectProto, key);
+ if (protoDesc) delete ObjectProto[key];
+ dP$2(it, key, D);
+ if (protoDesc && it !== ObjectProto) dP$2(ObjectProto, key, protoDesc);
+} : dP$2;
+
+var wrap = function (tag) {
+ var sym = AllSymbols[tag] = _objectCreate($Symbol[PROTOTYPE]);
+ sym._k = tag;
+ return sym;
+};
+
+var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
+ return typeof it == 'symbol';
+} : function (it) {
+ return it instanceof $Symbol;
+};
+
+var $defineProperty = function defineProperty(it, key, D) {
+ if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
+ _anObject(it);
+ key = _toPrimitive(key, true);
+ _anObject(D);
+ if (_has(AllSymbols, key)) {
+ if (!D.enumerable) {
+ if (!_has(it, HIDDEN)) dP$2(it, HIDDEN, _propertyDesc(1, {}));
+ it[HIDDEN][key] = true;
+ } else {
+ if (_has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
+ D = _objectCreate(D, { enumerable: _propertyDesc(0, false) });
+ } return setSymbolDesc(it, key, D);
+ } return dP$2(it, key, D);
+};
+var $defineProperties = function defineProperties(it, P) {
+ _anObject(it);
+ var keys = _enumKeys(P = _toIobject(P));
+ var i = 0;
+ var l = keys.length;
+ var key;
+ while (l > i) $defineProperty(it, key = keys[i++], P[key]);
+ return it;
+};
+var $create = function create(it, P) {
+ return P === undefined ? _objectCreate(it) : $defineProperties(_objectCreate(it), P);
+};
+var $propertyIsEnumerable = function propertyIsEnumerable(key) {
+ var E = isEnum.call(this, key = _toPrimitive(key, true));
+ if (this === ObjectProto && _has(AllSymbols, key) && !_has(OPSymbols, key)) return false;
+ return E || !_has(this, key) || !_has(AllSymbols, key) || _has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
+};
+var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
+ it = _toIobject(it);
+ key = _toPrimitive(key, true);
+ if (it === ObjectProto && _has(AllSymbols, key) && !_has(OPSymbols, key)) return;
+ var D = gOPD(it, key);
+ if (D && _has(AllSymbols, key) && !(_has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
+ return D;
+};
+var $getOwnPropertyNames = function getOwnPropertyNames(it) {
+ var names = gOPN$1(_toIobject(it));
+ var result = [];
+ var i = 0;
+ var key;
+ while (names.length > i) {
+ if (!_has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
+ } return result;
+};
+var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
+ var IS_OP = it === ObjectProto;
+ var names = gOPN$1(IS_OP ? OPSymbols : _toIobject(it));
+ var result = [];
+ var i = 0;
+ var key;
+ while (names.length > i) {
+ if (_has(AllSymbols, key = names[i++]) && (IS_OP ? _has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
+ } return result;
+};
+
+// 19.4.1.1 Symbol([description])
+if (!USE_NATIVE) {
+ $Symbol = function Symbol() {
+ if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
+ var tag = _uid(arguments.length > 0 ? arguments[0] : undefined);
+ var $set = function (value) {
+ if (this === ObjectProto) $set.call(OPSymbols, value);
+ if (_has(this, HIDDEN) && _has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
+ setSymbolDesc(this, tag, _propertyDesc(1, value));
+ };
+ if (_descriptors && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
+ return wrap(tag);
+ };
+ _redefine($Symbol[PROTOTYPE], 'toString', function toString() {
+ return this._k;
+ });
+
+ _objectGopd.f = $getOwnPropertyDescriptor;
+ _objectDp.f = $defineProperty;
+ _objectGopn.f = _objectGopnExt.f = $getOwnPropertyNames;
+ _objectPie.f = $propertyIsEnumerable;
+ _objectGops.f = $getOwnPropertySymbols;
+
+ if (_descriptors && !_library) {
+ _redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
+ }
+
+ _wksExt.f = function (name) {
+ return wrap(_wks(name));
+ };
+}
+
+_export(_export.G + _export.W + _export.F * !USE_NATIVE, { Symbol: $Symbol });
+
+for (var es6Symbols = (
+ // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
+).split(','), j = 0; es6Symbols.length > j;)_wks(es6Symbols[j++]);
+
+for (var wellKnownSymbols = _objectKeys(_wks.store), k = 0; wellKnownSymbols.length > k;) _wksDefine(wellKnownSymbols[k++]);
+
+_export(_export.S + _export.F * !USE_NATIVE, 'Symbol', {
+ // 19.4.2.1 Symbol.for(key)
+ 'for': function (key) {
+ return _has(SymbolRegistry, key += '')
+ ? SymbolRegistry[key]
+ : SymbolRegistry[key] = $Symbol(key);
+ },
+ // 19.4.2.5 Symbol.keyFor(sym)
+ keyFor: function keyFor(sym) {
+ if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
+ for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
+ },
+ useSetter: function () { setter = true; },
+ useSimple: function () { setter = false; }
+});
+
+_export(_export.S + _export.F * !USE_NATIVE, 'Object', {
+ // 19.1.2.2 Object.create(O [, Properties])
+ create: $create,
+ // 19.1.2.4 Object.defineProperty(O, P, Attributes)
+ defineProperty: $defineProperty,
+ // 19.1.2.3 Object.defineProperties(O, Properties)
+ defineProperties: $defineProperties,
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ getOwnPropertyNames: $getOwnPropertyNames,
+ // 19.1.2.8 Object.getOwnPropertySymbols(O)
+ getOwnPropertySymbols: $getOwnPropertySymbols
+});
+
+// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
+// https://bugs.chromium.org/p/v8/issues/detail?id=3443
+var FAILS_ON_PRIMITIVES = _fails(function () { _objectGops.f(1); });
+
+_export(_export.S + _export.F * FAILS_ON_PRIMITIVES, 'Object', {
+ getOwnPropertySymbols: function getOwnPropertySymbols(it) {
+ return _objectGops.f(_toObject(it));
+ }
+});
+
+// 24.3.2 JSON.stringify(value [, replacer [, space]])
+$JSON && _export(_export.S + _export.F * (!USE_NATIVE || _fails(function () {
+ var S = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ // WebKit converts symbol values to JSON as null
+ // V8 throws on boxed symbols
+ return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
+})), 'JSON', {
+ stringify: function stringify(it) {
+ var args = [it];
+ var i = 1;
+ var replacer, $replacer;
+ while (arguments.length > i) args.push(arguments[i++]);
+ $replacer = replacer = args[1];
+ if (!_isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
+ if (!_isArray(replacer)) replacer = function (key, value) {
+ if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
+ if (!isSymbol(value)) return value;
+ };
+ args[1] = replacer;
+ return _stringify.apply($JSON, args);
+ }
+});
+
+// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
+$Symbol[PROTOTYPE][TO_PRIMITIVE] || _hide($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
+// 19.4.3.5 Symbol.prototype[@@toStringTag]
+_setToStringTag($Symbol, 'Symbol');
+// 20.2.1.9 Math[@@toStringTag]
+_setToStringTag(Math, 'Math', true);
+// 24.3.3 JSON[@@toStringTag]
+_setToStringTag(_global.JSON, 'JSON', true);
+
+var _createProperty = function (object, index, value) {
+ if (index in object) _objectDp.f(object, index, _propertyDesc(0, value));
+ else object[index] = value;
+};
+
+_export(_export.S + _export.F * !_iterDetect(function (iter) { Array.from(iter); }), 'Array', {
+ // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
+ from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
+ var O = _toObject(arrayLike);
+ var C = typeof this == 'function' ? this : Array;
+ var aLen = arguments.length;
+ var mapfn = aLen > 1 ? arguments[1] : undefined;
+ var mapping = mapfn !== undefined;
+ var index = 0;
+ var iterFn = core_getIteratorMethod(O);
+ var length, result, step, iterator;
+ if (mapping) mapfn = _ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
+ // if object isn't iterable or it's array with default iterator - use simple case
+ if (iterFn != undefined && !(C == Array && _isArrayIter(iterFn))) {
+ for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
+ _createProperty(result, index, mapping ? _iterCall(iterator, mapfn, [step.value, index], true) : step.value);
+ }
+ } else {
+ length = _toLength(O.length);
+ for (result = new C(length); length > index; index++) {
+ _createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
+ }
+ }
+ result.length = index;
+ return result;
+ }
+});
+
+var dP$1 = _objectDp.f;
+var FProto = Function.prototype;
+var nameRE = /^\s*function ([^ (]*)/;
+var NAME = 'name';
+
+// 19.2.4.2 name
+NAME in FProto || _descriptors && dP$1(FProto, NAME, {
+ configurable: true,
+ get: function () {
+ try {
+ return ('' + this).match(nameRE)[1];
+ } catch (e) {
+ return '';
+ }
+ }
+});
+
+var dP = _objectDp.f;
+var gOPN = _objectGopn.f;
+
+
+var $RegExp = _global.RegExp;
+var Base = $RegExp;
+var proto = $RegExp.prototype;
+var re1 = /a/g;
+var re2 = /a/g;
+// "new" creates a new object, old webkit buggy here
+var CORRECT_NEW = new $RegExp(re1) !== re1;
+
+if (_descriptors && (!CORRECT_NEW || _fails(function () {
+ re2[_wks('match')] = false;
+ // RegExp constructor can alter flags and IsRegExp works correct with @@match
+ return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
+}))) {
+ $RegExp = function RegExp(p, f) {
+ var tiRE = this instanceof $RegExp;
+ var piRE = _isRegexp(p);
+ var fiU = f === undefined;
+ return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
+ : _inheritIfRequired(CORRECT_NEW
+ ? new Base(piRE && !fiU ? p.source : p, f)
+ : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? _flags.call(p) : f)
+ , tiRE ? this : proto, $RegExp);
+ };
+ var proxy = function (key) {
+ key in $RegExp || dP($RegExp, key, {
+ configurable: true,
+ get: function () { return Base[key]; },
+ set: function (it) { Base[key] = it; }
+ });
+ };
+ for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);
+ proto.constructor = $RegExp;
+ $RegExp.prototype = proto;
+ _redefine(_global, 'RegExp', $RegExp);
+}
+
+_setSpecies('RegExp');
+
+var Watcher = /*#__PURE__*/function () {
+ function Watcher(vm, updaterFn) {
+ _classCallCheck(this, Watcher);
+
+ this.vm = vm;
+ this.getter = updaterFn; // 依赖收集
+
+ this.get();
+ }
+
+ _createClass(Watcher, [{
+ key: "get",
+ value: function get() {
+ Dep.target = this;
+ this.getter.call(this.vm);
+ Dep.target = null;
+ } // 相互添加引用
+
+ }, {
+ key: "addDep",
+ value: function addDep(dep) {
+ dep.addSub(this);
+ }
+ }, {
+ key: "update",
+ value: function update() {
+ this.get(); // this.updaterFn.call(this.vm, getDataVal.call(this.vm, this.key))
+ }
+ }]);
+
+ return Watcher;
+}();
+
+var Vue = /*#__PURE__*/function () {
+ function Vue(options) {
+ _classCallCheck(this, Vue);
+
+ this.$options = options;
+ this.$data = options.data;
+ observe(this.$data); // 代理data
+
+ proxy$1(this); // 代理methods
+
+ for (var key in options.methods) {
+ this[key] = typeof options.methods[key] === 'function' ? options.methods[key].bind(this) : noop;
+ } // 模板编译
+ // new Compile(options.el, this)
+
+
+ if (options.el) {
+ this.$mount(options.el);
+ }
+ } // 挂载
+
+
+ _createClass(Vue, [{
+ key: "$mount",
+ value: function $mount(el) {
+ var _this = this;
+
+ // 获取宿主原始
+ this.$el = document.querySelector(el); // 组件更新函数
+
+ var updateComponent = function updateComponent() {
+ var render = _this.$options.render;
+ var vnode = render.call(_this, _this.$createElement);
+
+ _this._update(vnode);
+ }; // 创建wather
+
+
+ new Watcher(this, updateComponent);
+ } // 获取vnode
+
+ }, {
+ key: "$createElement",
+ value: function $createElement(tag, props, children) {
+ return {
+ tag: tag,
+ props: props,
+ children: children
+ };
+ } // 更新
+
+ }, {
+ key: "_update",
+ value: function _update(vnode) {
+ var preVnode = this._vnode;
+
+ if (preVnode) {
+ // 更新
+ this.__patch__(preVnode, vnode);
+ } else {
+ // 初始化
+ this.__patch__(this.$el, vnode);
+ }
+ } // patch方法
+
+ }, {
+ key: "__patch__",
+ value: function __patch__(oldVode, vnode) {
+ var _this2 = this;
+
+ // 判断old是否为dom
+ if (oldVode.nodeType) {
+ // 初始化
+ var parent = oldVode.parentElement;
+ var refElm = oldVode.nextSibling; // 递归vnode创建dom树
+
+ var el = this.createElm(vnode);
+ parent.insertBefore(el, refElm);
+ parent.removeChild(oldVode);
+ } else {
+ // 更新
+ var _el = vnode.el = oldVode.el; // 判断是否是相同节点samenode
+
+
+ if (oldVode.tag === vnode.tag) {
+ // diff
+ // props
+ // children
+ var oldCh = oldVode.children;
+ var newCh = vnode.children;
+
+ if (typeof newCh === 'string') {
+ if (typeof oldCh === 'string') {
+ if (newCh !== oldCh) {
+ _el.textContent = newCh;
+ }
+ } else {
+ // 清空并替换为文本
+ _el.textContent = newCh;
+ }
+ } else {
+ // 数组
+ if (typeof oldCh === 'string') {
+ _el.innerHTML = '';
+ newCh.forEach(function (child) {
+ _el.appendChild(_this2.createElm(child));
+ });
+ } else {
+ // 双方都有孩子 diff
+ this.updateChildren(_el, oldCh, newCh);
+ }
+ }
+ }
+ } // 保存vnode
+
+
+ this._vnode = vnode;
+ } // 创建真实节点
+
+ }, {
+ key: "createElm",
+ value: function createElm(vnode) {
+ var _this3 = this;
+
+ var el = document.createElement(vnode.tag); // props
+
+ for (var key in vnode.props) {
+ el.setAttribute(key, vnode.props[key]);
+ } // 处理子节点
+
+
+ if (vnode.children) {
+ if (_typeof(vnode.children) !== 'object') {
+ el.textContent = vnode.children;
+ } else {
+ // 数组类子元素
+ vnode.children.forEach(function (vnode) {
+ el.appendChild(_this3.createElm(vnode));
+ });
+ }
+ }
+
+ vnode.el = el;
+ return el;
+ } // 更新子元素
+
+ }, {
+ key: "updateChildren",
+ value: function updateChildren(parentElm, oldCh, newCh) {
+ var _this4 = this;
+
+ var len = Math.min(oldCh.length, newCh.length); // 强制更新,不管节点是否相同
+
+ for (var i = 0; i < len; i++) {
+ this.__patch__(oldCh[i], newCh[i]);
+ }
+
+ if (oldCh.length > newCh.length) {
+ // 删除
+ oldCh.slice(len).forEach(function (child) {
+ parentElm.removeChild(child.el);
+ });
+ } else {
+ // 追加
+ newCh.slice(len).forEach(function (child) {
+ var el = _this4.createElm(child);
+
+ parentElm.appendChild(el);
+ });
+ }
+ }
+ }]);
+
+ return Vue;
+}(); // 空函数
+
+function noop() {}
+
+module.exports = Vue;
diff --git a/dist/vue.esm.js b/dist/vue.esm.js
new file mode 100644
index 0000000..7f4e0d7
--- /dev/null
+++ b/dist/vue.esm.js
@@ -0,0 +1,2464 @@
+function _typeof(obj) {
+ "@babel/helpers - typeof";
+
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+ _typeof = function (obj) {
+ return typeof obj;
+ };
+ } else {
+ _typeof = function (obj) {
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+ }
+
+ return _typeof(obj);
+}
+
+function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+}
+
+function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+}
+
+function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+}
+
+function createCommonjsModule(fn, module) {
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
+}
+
+var _global = createCommonjsModule(function (module) {
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+var global = module.exports = typeof window != 'undefined' && window.Math == Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self
+ // eslint-disable-next-line no-new-func
+ : Function('return this')();
+if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
+});
+
+var _core = createCommonjsModule(function (module) {
+var core = module.exports = { version: '2.6.12' };
+if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
+});
+_core.version;
+
+var _isObject = function (it) {
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
+};
+
+var _anObject = function (it) {
+ if (!_isObject(it)) throw TypeError(it + ' is not an object!');
+ return it;
+};
+
+var _fails = function (exec) {
+ try {
+ return !!exec();
+ } catch (e) {
+ return true;
+ }
+};
+
+// Thank's IE8 for his funny defineProperty
+var _descriptors = !_fails(function () {
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
+});
+
+var document$2 = _global.document;
+// typeof document.createElement is 'object' in old IE
+var is = _isObject(document$2) && _isObject(document$2.createElement);
+var _domCreate = function (it) {
+ return is ? document$2.createElement(it) : {};
+};
+
+var _ie8DomDefine = !_descriptors && !_fails(function () {
+ return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;
+});
+
+// 7.1.1 ToPrimitive(input [, PreferredType])
+
+// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+// and the second argument - flag - preferred type is a string
+var _toPrimitive = function (it, S) {
+ if (!_isObject(it)) return it;
+ var fn, val;
+ if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
+ if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) return val;
+ if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
+ throw TypeError("Can't convert object to primitive value");
+};
+
+var dP$4 = Object.defineProperty;
+
+var f$6 = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
+ _anObject(O);
+ P = _toPrimitive(P, true);
+ _anObject(Attributes);
+ if (_ie8DomDefine) try {
+ return dP$4(O, P, Attributes);
+ } catch (e) { /* empty */ }
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
+ if ('value' in Attributes) O[P] = Attributes.value;
+ return O;
+};
+
+var _objectDp = {
+ f: f$6
+};
+
+var _propertyDesc = function (bitmap, value) {
+ return {
+ enumerable: !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable: !(bitmap & 4),
+ value: value
+ };
+};
+
+var _hide = _descriptors ? function (object, key, value) {
+ return _objectDp.f(object, key, _propertyDesc(1, value));
+} : function (object, key, value) {
+ object[key] = value;
+ return object;
+};
+
+var hasOwnProperty$1 = {}.hasOwnProperty;
+var _has = function (it, key) {
+ return hasOwnProperty$1.call(it, key);
+};
+
+var id = 0;
+var px = Math.random();
+var _uid = function (key) {
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
+};
+
+var _library = false;
+
+var _shared = createCommonjsModule(function (module) {
+var SHARED = '__core-js_shared__';
+var store = _global[SHARED] || (_global[SHARED] = {});
+
+(module.exports = function (key, value) {
+ return store[key] || (store[key] = value !== undefined ? value : {});
+})('versions', []).push({
+ version: _core.version,
+ mode: 'global',
+ copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
+});
+});
+
+var _functionToString = _shared('native-function-to-string', Function.toString);
+
+var _redefine = createCommonjsModule(function (module) {
+var SRC = _uid('src');
+
+var TO_STRING = 'toString';
+var TPL = ('' + _functionToString).split(TO_STRING);
+
+_core.inspectSource = function (it) {
+ return _functionToString.call(it);
+};
+
+(module.exports = function (O, key, val, safe) {
+ var isFunction = typeof val == 'function';
+ if (isFunction) _has(val, 'name') || _hide(val, 'name', key);
+ if (O[key] === val) return;
+ if (isFunction) _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
+ if (O === _global) {
+ O[key] = val;
+ } else if (!safe) {
+ delete O[key];
+ _hide(O, key, val);
+ } else if (O[key]) {
+ O[key] = val;
+ } else {
+ _hide(O, key, val);
+ }
+// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
+})(Function.prototype, TO_STRING, function toString() {
+ return typeof this == 'function' && this[SRC] || _functionToString.call(this);
+});
+});
+
+var _aFunction = function (it) {
+ if (typeof it != 'function') throw TypeError(it + ' is not a function!');
+ return it;
+};
+
+// optional / simple context binding
+
+var _ctx = function (fn, that, length) {
+ _aFunction(fn);
+ if (that === undefined) return fn;
+ switch (length) {
+ case 1: return function (a) {
+ return fn.call(that, a);
+ };
+ case 2: return function (a, b) {
+ return fn.call(that, a, b);
+ };
+ case 3: return function (a, b, c) {
+ return fn.call(that, a, b, c);
+ };
+ }
+ return function (/* ...args */) {
+ return fn.apply(that, arguments);
+ };
+};
+
+var PROTOTYPE$2 = 'prototype';
+
+var $export = function (type, name, source) {
+ var IS_FORCED = type & $export.F;
+ var IS_GLOBAL = type & $export.G;
+ var IS_STATIC = type & $export.S;
+ var IS_PROTO = type & $export.P;
+ var IS_BIND = type & $export.B;
+ var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE$2];
+ var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});
+ var expProto = exports[PROTOTYPE$2] || (exports[PROTOTYPE$2] = {});
+ var key, own, out, exp;
+ if (IS_GLOBAL) source = name;
+ for (key in source) {
+ // contains in native
+ own = !IS_FORCED && target && target[key] !== undefined;
+ // export native or passed
+ out = (own ? target : source)[key];
+ // bind timers to global for call from export context
+ exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;
+ // extend global
+ if (target) _redefine(target, key, out, type & $export.U);
+ // export
+ if (exports[key] != out) _hide(exports, key, exp);
+ if (IS_PROTO && expProto[key] != out) expProto[key] = out;
+ }
+};
+_global.core = _core;
+// type bitmap
+$export.F = 1; // forced
+$export.G = 2; // global
+$export.S = 4; // static
+$export.P = 8; // proto
+$export.B = 16; // bind
+$export.W = 32; // wrap
+$export.U = 64; // safe
+$export.R = 128; // real proto method for `library`
+var _export = $export;
+
+var document$1 = _global.document;
+var _html = document$1 && document$1.documentElement;
+
+var toString$1 = {}.toString;
+
+var _cof = function (it) {
+ return toString$1.call(it).slice(8, -1);
+};
+
+// 7.1.4 ToInteger
+var ceil = Math.ceil;
+var floor$1 = Math.floor;
+var _toInteger = function (it) {
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor$1 : ceil)(it);
+};
+
+var max$1 = Math.max;
+var min$2 = Math.min;
+var _toAbsoluteIndex = function (index, length) {
+ index = _toInteger(index);
+ return index < 0 ? max$1(index + length, 0) : min$2(index, length);
+};
+
+// 7.1.15 ToLength
+
+var min$1 = Math.min;
+var _toLength = function (it) {
+ return it > 0 ? min$1(_toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
+};
+
+var arraySlice = [].slice;
+
+// fallback for not array-like ES3 strings and DOM objects
+_export(_export.P + _export.F * _fails(function () {
+ if (_html) arraySlice.call(_html);
+}), 'Array', {
+ slice: function slice(begin, end) {
+ var len = _toLength(this.length);
+ var klass = _cof(this);
+ end = end === undefined ? len : end;
+ if (klass == 'Array') return arraySlice.call(this, begin, end);
+ var start = _toAbsoluteIndex(begin, len);
+ var upTo = _toAbsoluteIndex(end, len);
+ var size = _toLength(upTo - start);
+ var cloned = new Array(size);
+ var i = 0;
+ for (; i < size; i++) cloned[i] = klass == 'String'
+ ? this.charAt(start + i)
+ : this[start + i];
+ return cloned;
+ }
+});
+
+// 7.2.1 RequireObjectCoercible(argument)
+var _defined = function (it) {
+ if (it == undefined) throw TypeError("Can't call method on " + it);
+ return it;
+};
+
+// 7.1.13 ToObject(argument)
+
+var _toObject = function (it) {
+ return Object(_defined(it));
+};
+
+// fallback for non-array-like ES3 and non-enumerable old V8 strings
+
+// eslint-disable-next-line no-prototype-builtins
+var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
+ return _cof(it) == 'String' ? it.split('') : Object(it);
+};
+
+// to indexed object, toObject with fallback for non-array-like ES3 strings
+
+
+var _toIobject = function (it) {
+ return _iobject(_defined(it));
+};
+
+// false -> Array#indexOf
+// true -> Array#includes
+
+
+
+var _arrayIncludes = function (IS_INCLUDES) {
+ return function ($this, el, fromIndex) {
+ var O = _toIobject($this);
+ var length = _toLength(O.length);
+ var index = _toAbsoluteIndex(fromIndex, length);
+ var value;
+ // Array#includes uses SameValueZero equality algorithm
+ // eslint-disable-next-line no-self-compare
+ if (IS_INCLUDES && el != el) while (length > index) {
+ value = O[index++];
+ // eslint-disable-next-line no-self-compare
+ if (value != value) return true;
+ // Array#indexOf ignores holes, Array#includes - not
+ } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
+ if (O[index] === el) return IS_INCLUDES || index || 0;
+ } return !IS_INCLUDES && -1;
+ };
+};
+
+var shared = _shared('keys');
+
+var _sharedKey = function (key) {
+ return shared[key] || (shared[key] = _uid(key));
+};
+
+var arrayIndexOf = _arrayIncludes(false);
+var IE_PROTO$2 = _sharedKey('IE_PROTO');
+
+var _objectKeysInternal = function (object, names) {
+ var O = _toIobject(object);
+ var i = 0;
+ var result = [];
+ var key;
+ for (key in O) if (key != IE_PROTO$2) _has(O, key) && result.push(key);
+ // Don't enum bug & hidden keys
+ while (names.length > i) if (_has(O, key = names[i++])) {
+ ~arrayIndexOf(result, key) || result.push(key);
+ }
+ return result;
+};
+
+// IE 8- don't enum bug keys
+var _enumBugKeys = (
+ 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
+).split(',');
+
+// 19.1.2.14 / 15.2.3.14 Object.keys(O)
+
+
+
+var _objectKeys = Object.keys || function keys(O) {
+ return _objectKeysInternal(O, _enumBugKeys);
+};
+
+// most Object methods by ES6 should accept primitives
+
+
+
+var _objectSap = function (KEY, exec) {
+ var fn = (_core.Object || {})[KEY] || Object[KEY];
+ var exp = {};
+ exp[KEY] = exec(fn);
+ _export(_export.S + _export.F * _fails(function () { fn(1); }), 'Object', exp);
+};
+
+// 19.1.2.14 Object.keys(O)
+
+
+
+_objectSap('keys', function () {
+ return function keys(it) {
+ return _objectKeys(_toObject(it));
+ };
+});
+
+var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
+ _anObject(O);
+ var keys = _objectKeys(Properties);
+ var length = keys.length;
+ var i = 0;
+ var P;
+ while (length > i) _objectDp.f(O, P = keys[i++], Properties[P]);
+ return O;
+};
+
+// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+
+
+
+var IE_PROTO$1 = _sharedKey('IE_PROTO');
+var Empty = function () { /* empty */ };
+var PROTOTYPE$1 = 'prototype';
+
+// Create object with fake `null` prototype: use iframe Object with cleared prototype
+var createDict = function () {
+ // Thrash, waste and sodomy: IE GC bug
+ var iframe = _domCreate('iframe');
+ var i = _enumBugKeys.length;
+ var lt = '<';
+ var gt = '>';
+ var iframeDocument;
+ iframe.style.display = 'none';
+ _html.appendChild(iframe);
+ iframe.src = 'javascript:'; // eslint-disable-line no-script-url
+ // createDict = iframe.contentWindow.Object;
+ // html.removeChild(iframe);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
+ iframeDocument.close();
+ createDict = iframeDocument.F;
+ while (i--) delete createDict[PROTOTYPE$1][_enumBugKeys[i]];
+ return createDict();
+};
+
+var _objectCreate = Object.create || function create(O, Properties) {
+ var result;
+ if (O !== null) {
+ Empty[PROTOTYPE$1] = _anObject(O);
+ result = new Empty();
+ Empty[PROTOTYPE$1] = null;
+ // add "__proto__" for Object.getPrototypeOf polyfill
+ result[IE_PROTO$1] = O;
+ } else result = createDict();
+ return Properties === undefined ? result : _objectDps(result, Properties);
+};
+
+var _redefineAll = function (target, src, safe) {
+ for (var key in src) _redefine(target, key, src[key], safe);
+ return target;
+};
+
+var _anInstance = function (it, Constructor, name, forbiddenField) {
+ if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
+ throw TypeError(name + ': incorrect invocation!');
+ } return it;
+};
+
+// call something on iterator step with safe closing on error
+
+var _iterCall = function (iterator, fn, value, entries) {
+ try {
+ return entries ? fn(_anObject(value)[0], value[1]) : fn(value);
+ // 7.4.6 IteratorClose(iterator, completion)
+ } catch (e) {
+ var ret = iterator['return'];
+ if (ret !== undefined) _anObject(ret.call(iterator));
+ throw e;
+ }
+};
+
+var _iterators = {};
+
+var _wks = createCommonjsModule(function (module) {
+var store = _shared('wks');
+
+var Symbol = _global.Symbol;
+var USE_SYMBOL = typeof Symbol == 'function';
+
+var $exports = module.exports = function (name) {
+ return store[name] || (store[name] =
+ USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : _uid)('Symbol.' + name));
+};
+
+$exports.store = store;
+});
+
+// check on default Array iterator
+
+var ITERATOR$4 = _wks('iterator');
+var ArrayProto$1 = Array.prototype;
+
+var _isArrayIter = function (it) {
+ return it !== undefined && (_iterators.Array === it || ArrayProto$1[ITERATOR$4] === it);
+};
+
+// getting tag from 19.1.3.6 Object.prototype.toString()
+
+var TAG$1 = _wks('toStringTag');
+// ES3 wrong here
+var ARG = _cof(function () { return arguments; }()) == 'Arguments';
+
+// fallback for IE11 Script Access Denied error
+var tryGet = function (it, key) {
+ try {
+ return it[key];
+ } catch (e) { /* empty */ }
+};
+
+var _classof = function (it) {
+ var O, T, B;
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
+ // @@toStringTag case
+ : typeof (T = tryGet(O = Object(it), TAG$1)) == 'string' ? T
+ // builtinTag case
+ : ARG ? _cof(O)
+ // ES3 arguments fallback
+ : (B = _cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
+};
+
+var ITERATOR$3 = _wks('iterator');
+
+var core_getIteratorMethod = _core.getIteratorMethod = function (it) {
+ if (it != undefined) return it[ITERATOR$3]
+ || it['@@iterator']
+ || _iterators[_classof(it)];
+};
+
+var _forOf = createCommonjsModule(function (module) {
+var BREAK = {};
+var RETURN = {};
+var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
+ var iterFn = ITERATOR ? function () { return iterable; } : core_getIteratorMethod(iterable);
+ var f = _ctx(fn, that, entries ? 2 : 1);
+ var index = 0;
+ var length, step, iterator, result;
+ if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
+ // fast case for arrays with default iterator
+ if (_isArrayIter(iterFn)) for (length = _toLength(iterable.length); length > index; index++) {
+ result = entries ? f(_anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ if (result === BREAK || result === RETURN) return result;
+ } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
+ result = _iterCall(iterator, f, step.value, entries);
+ if (result === BREAK || result === RETURN) return result;
+ }
+};
+exports.BREAK = BREAK;
+exports.RETURN = RETURN;
+});
+
+var def$1 = _objectDp.f;
+
+var TAG = _wks('toStringTag');
+
+var _setToStringTag = function (it, tag, stat) {
+ if (it && !_has(it = stat ? it : it.prototype, TAG)) def$1(it, TAG, { configurable: true, value: tag });
+};
+
+var IteratorPrototype = {};
+
+// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
+_hide(IteratorPrototype, _wks('iterator'), function () { return this; });
+
+var _iterCreate = function (Constructor, NAME, next) {
+ Constructor.prototype = _objectCreate(IteratorPrototype, { next: _propertyDesc(1, next) });
+ _setToStringTag(Constructor, NAME + ' Iterator');
+};
+
+// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
+
+
+var IE_PROTO = _sharedKey('IE_PROTO');
+var ObjectProto$1 = Object.prototype;
+
+var _objectGpo = Object.getPrototypeOf || function (O) {
+ O = _toObject(O);
+ if (_has(O, IE_PROTO)) return O[IE_PROTO];
+ if (typeof O.constructor == 'function' && O instanceof O.constructor) {
+ return O.constructor.prototype;
+ } return O instanceof Object ? ObjectProto$1 : null;
+};
+
+var ITERATOR$2 = _wks('iterator');
+var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
+var FF_ITERATOR = '@@iterator';
+var KEYS = 'keys';
+var VALUES = 'values';
+
+var returnThis = function () { return this; };
+
+var _iterDefine = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
+ _iterCreate(Constructor, NAME, next);
+ var getMethod = function (kind) {
+ if (!BUGGY && kind in proto) return proto[kind];
+ switch (kind) {
+ case KEYS: return function keys() { return new Constructor(this, kind); };
+ case VALUES: return function values() { return new Constructor(this, kind); };
+ } return function entries() { return new Constructor(this, kind); };
+ };
+ var TAG = NAME + ' Iterator';
+ var DEF_VALUES = DEFAULT == VALUES;
+ var VALUES_BUG = false;
+ var proto = Base.prototype;
+ var $native = proto[ITERATOR$2] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
+ var $default = $native || getMethod(DEFAULT);
+ var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
+ var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
+ var methods, key, IteratorPrototype;
+ // Fix native
+ if ($anyNative) {
+ IteratorPrototype = _objectGpo($anyNative.call(new Base()));
+ if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
+ // Set @@toStringTag to native iterators
+ _setToStringTag(IteratorPrototype, TAG, true);
+ // fix for some old engines
+ if (typeof IteratorPrototype[ITERATOR$2] != 'function') _hide(IteratorPrototype, ITERATOR$2, returnThis);
+ }
+ }
+ // fix Array#{values, @@iterator}.name in V8 / FF
+ if (DEF_VALUES && $native && $native.name !== VALUES) {
+ VALUES_BUG = true;
+ $default = function values() { return $native.call(this); };
+ }
+ // Define iterator
+ if ((BUGGY || VALUES_BUG || !proto[ITERATOR$2])) {
+ _hide(proto, ITERATOR$2, $default);
+ }
+ // Plug for library
+ _iterators[NAME] = $default;
+ _iterators[TAG] = returnThis;
+ if (DEFAULT) {
+ methods = {
+ values: DEF_VALUES ? $default : getMethod(VALUES),
+ keys: IS_SET ? $default : getMethod(KEYS),
+ entries: $entries
+ };
+ if (FORCED) for (key in methods) {
+ if (!(key in proto)) _redefine(proto, key, methods[key]);
+ } else _export(_export.P + _export.F * (BUGGY || VALUES_BUG), NAME, methods);
+ }
+ return methods;
+};
+
+var _iterStep = function (done, value) {
+ return { value: value, done: !!done };
+};
+
+var SPECIES$2 = _wks('species');
+
+var _setSpecies = function (KEY) {
+ var C = _global[KEY];
+ if (_descriptors && C && !C[SPECIES$2]) _objectDp.f(C, SPECIES$2, {
+ configurable: true,
+ get: function () { return this; }
+ });
+};
+
+var _meta = createCommonjsModule(function (module) {
+var META = _uid('meta');
+
+
+var setDesc = _objectDp.f;
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+ return true;
+};
+var FREEZE = !_fails(function () {
+ return isExtensible(Object.preventExtensions({}));
+});
+var setMeta = function (it) {
+ setDesc(it, META, { value: {
+ i: 'O' + ++id, // object ID
+ w: {} // weak collections IDs
+ } });
+};
+var fastKey = function (it, create) {
+ // return primitive with prefix
+ if (!_isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+ if (!_has(it, META)) {
+ // can't set metadata to uncaught frozen object
+ if (!isExtensible(it)) return 'F';
+ // not necessary to add metadata
+ if (!create) return 'E';
+ // add missing metadata
+ setMeta(it);
+ // return object ID
+ } return it[META].i;
+};
+var getWeak = function (it, create) {
+ if (!_has(it, META)) {
+ // can't set metadata to uncaught frozen object
+ if (!isExtensible(it)) return true;
+ // not necessary to add metadata
+ if (!create) return false;
+ // add missing metadata
+ setMeta(it);
+ // return hash weak collections IDs
+ } return it[META].w;
+};
+// add metadata on freeze-family methods calling
+var onFreeze = function (it) {
+ if (FREEZE && meta.NEED && isExtensible(it) && !_has(it, META)) setMeta(it);
+ return it;
+};
+var meta = module.exports = {
+ KEY: META,
+ NEED: false,
+ fastKey: fastKey,
+ getWeak: getWeak,
+ onFreeze: onFreeze
+};
+});
+_meta.KEY;
+_meta.NEED;
+_meta.fastKey;
+_meta.getWeak;
+_meta.onFreeze;
+
+var _validateCollection = function (it, TYPE) {
+ if (!_isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+ return it;
+};
+
+var dP$3 = _objectDp.f;
+
+
+
+
+
+
+
+
+
+var fastKey = _meta.fastKey;
+
+var SIZE = _descriptors ? '_s' : 'size';
+
+var getEntry = function (that, key) {
+ // fast case
+ var index = fastKey(key);
+ var entry;
+ if (index !== 'F') return that._i[index];
+ // frozen object case
+ for (entry = that._f; entry; entry = entry.n) {
+ if (entry.k == key) return entry;
+ }
+};
+
+var _collectionStrong = {
+ getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+ var C = wrapper(function (that, iterable) {
+ _anInstance(that, C, NAME, '_i');
+ that._t = NAME; // collection type
+ that._i = _objectCreate(null); // index
+ that._f = undefined; // first entry
+ that._l = undefined; // last entry
+ that[SIZE] = 0; // size
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
+ });
+ _redefineAll(C.prototype, {
+ // 23.1.3.1 Map.prototype.clear()
+ // 23.2.3.2 Set.prototype.clear()
+ clear: function clear() {
+ for (var that = _validateCollection(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+ entry.r = true;
+ if (entry.p) entry.p = entry.p.n = undefined;
+ delete data[entry.i];
+ }
+ that._f = that._l = undefined;
+ that[SIZE] = 0;
+ },
+ // 23.1.3.3 Map.prototype.delete(key)
+ // 23.2.3.4 Set.prototype.delete(value)
+ 'delete': function (key) {
+ var that = _validateCollection(this, NAME);
+ var entry = getEntry(that, key);
+ if (entry) {
+ var next = entry.n;
+ var prev = entry.p;
+ delete that._i[entry.i];
+ entry.r = true;
+ if (prev) prev.n = next;
+ if (next) next.p = prev;
+ if (that._f == entry) that._f = next;
+ if (that._l == entry) that._l = prev;
+ that[SIZE]--;
+ } return !!entry;
+ },
+ // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
+ // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
+ forEach: function forEach(callbackfn /* , that = undefined */) {
+ _validateCollection(this, NAME);
+ var f = _ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+ var entry;
+ while (entry = entry ? entry.n : this._f) {
+ f(entry.v, entry.k, this);
+ // revert to the last existing entry
+ while (entry && entry.r) entry = entry.p;
+ }
+ },
+ // 23.1.3.7 Map.prototype.has(key)
+ // 23.2.3.7 Set.prototype.has(value)
+ has: function has(key) {
+ return !!getEntry(_validateCollection(this, NAME), key);
+ }
+ });
+ if (_descriptors) dP$3(C.prototype, 'size', {
+ get: function () {
+ return _validateCollection(this, NAME)[SIZE];
+ }
+ });
+ return C;
+ },
+ def: function (that, key, value) {
+ var entry = getEntry(that, key);
+ var prev, index;
+ // change existing entry
+ if (entry) {
+ entry.v = value;
+ // create new entry
+ } else {
+ that._l = entry = {
+ i: index = fastKey(key, true), // <- index
+ k: key, // <- key
+ v: value, // <- value
+ p: prev = that._l, // <- previous entry
+ n: undefined, // <- next entry
+ r: false // <- removed
+ };
+ if (!that._f) that._f = entry;
+ if (prev) prev.n = entry;
+ that[SIZE]++;
+ // add to index
+ if (index !== 'F') that._i[index] = entry;
+ } return that;
+ },
+ getEntry: getEntry,
+ setStrong: function (C, NAME, IS_MAP) {
+ // add .keys, .values, .entries, [@@iterator]
+ // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
+ _iterDefine(C, NAME, function (iterated, kind) {
+ this._t = _validateCollection(iterated, NAME); // target
+ this._k = kind; // kind
+ this._l = undefined; // previous
+ }, function () {
+ var that = this;
+ var kind = that._k;
+ var entry = that._l;
+ // revert to the last existing entry
+ while (entry && entry.r) entry = entry.p;
+ // get next entry
+ if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
+ // or finish the iteration
+ that._t = undefined;
+ return _iterStep(1);
+ }
+ // return step by kind
+ if (kind == 'keys') return _iterStep(0, entry.k);
+ if (kind == 'values') return _iterStep(0, entry.v);
+ return _iterStep(0, [entry.k, entry.v]);
+ }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
+
+ // add [@@species], 23.1.2.2, 23.2.2.2
+ _setSpecies(NAME);
+ }
+};
+_collectionStrong.getConstructor;
+_collectionStrong.def;
+_collectionStrong.getEntry;
+_collectionStrong.setStrong;
+
+var ITERATOR$1 = _wks('iterator');
+var SAFE_CLOSING = false;
+
+try {
+ var riter = [7][ITERATOR$1]();
+ riter['return'] = function () { SAFE_CLOSING = true; };
+ // eslint-disable-next-line no-throw-literal
+ Array.from(riter, function () { throw 2; });
+} catch (e) { /* empty */ }
+
+var _iterDetect = function (exec, skipClosing) {
+ if (!skipClosing && !SAFE_CLOSING) return false;
+ var safe = false;
+ try {
+ var arr = [7];
+ var iter = arr[ITERATOR$1]();
+ iter.next = function () { return { done: safe = true }; };
+ arr[ITERATOR$1] = function () { return iter; };
+ exec(arr);
+ } catch (e) { /* empty */ }
+ return safe;
+};
+
+var f$5 = {}.propertyIsEnumerable;
+
+var _objectPie = {
+ f: f$5
+};
+
+var gOPD$1 = Object.getOwnPropertyDescriptor;
+
+var f$4 = _descriptors ? gOPD$1 : function getOwnPropertyDescriptor(O, P) {
+ O = _toIobject(O);
+ P = _toPrimitive(P, true);
+ if (_ie8DomDefine) try {
+ return gOPD$1(O, P);
+ } catch (e) { /* empty */ }
+ if (_has(O, P)) return _propertyDesc(!_objectPie.f.call(O, P), O[P]);
+};
+
+var _objectGopd = {
+ f: f$4
+};
+
+// Works with __proto__ only. Old v8 can't work with null proto objects.
+/* eslint-disable no-proto */
+
+
+var check = function (O, proto) {
+ _anObject(O);
+ if (!_isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
+};
+var _setProto = {
+ set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
+ function (test, buggy, set) {
+ try {
+ set = _ctx(Function.call, _objectGopd.f(Object.prototype, '__proto__').set, 2);
+ set(test, []);
+ buggy = !(test instanceof Array);
+ } catch (e) { buggy = true; }
+ return function setPrototypeOf(O, proto) {
+ check(O, proto);
+ if (buggy) O.__proto__ = proto;
+ else set(O, proto);
+ return O;
+ };
+ }({}, false) : undefined),
+ check: check
+};
+
+var setPrototypeOf = _setProto.set;
+var _inheritIfRequired = function (that, target, C) {
+ var S = target.constructor;
+ var P;
+ if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && _isObject(P) && setPrototypeOf) {
+ setPrototypeOf(that, P);
+ } return that;
+};
+
+var _collection = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+ var Base = _global[NAME];
+ var C = Base;
+ var ADDER = IS_MAP ? 'set' : 'add';
+ var proto = C && C.prototype;
+ var O = {};
+ var fixMethod = function (KEY) {
+ var fn = proto[KEY];
+ _redefine(proto, KEY,
+ KEY == 'delete' ? function (a) {
+ return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'has' ? function has(a) {
+ return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'get' ? function get(a) {
+ return IS_WEAK && !_isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
+ : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
+ );
+ };
+ if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !_fails(function () {
+ new C().entries().next();
+ }))) {
+ // create collection constructor
+ C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+ _redefineAll(C.prototype, methods);
+ _meta.NEED = true;
+ } else {
+ var instance = new C();
+ // early implementations not supports chaining
+ var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
+ // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
+ var THROWS_ON_PRIMITIVES = _fails(function () { instance.has(1); });
+ // most early implementations doesn't supports iterables, most modern - not close it correctly
+ var ACCEPT_ITERABLES = _iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
+ // for early implementations -0 and +0 not the same
+ var BUGGY_ZERO = !IS_WEAK && _fails(function () {
+ // V8 ~ Chromium 42- fails only with 5+ elements
+ var $instance = new C();
+ var index = 5;
+ while (index--) $instance[ADDER](index, index);
+ return !$instance.has(-0);
+ });
+ if (!ACCEPT_ITERABLES) {
+ C = wrapper(function (target, iterable) {
+ _anInstance(target, C, NAME);
+ var that = _inheritIfRequired(new Base(), target, C);
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
+ return that;
+ });
+ C.prototype = proto;
+ proto.constructor = C;
+ }
+ if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
+ fixMethod('delete');
+ fixMethod('has');
+ IS_MAP && fixMethod('get');
+ }
+ if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
+ // weak collections should not contains .clear method
+ if (IS_WEAK && proto.clear) delete proto.clear;
+ }
+
+ _setToStringTag(C, NAME);
+
+ O[NAME] = C;
+ _export(_export.G + _export.W + _export.F * (C != Base), O);
+
+ if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+ return C;
+};
+
+var SET = 'Set';
+
+// 23.2 Set Objects
+_collection(SET, function (get) {
+ return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
+}, {
+ // 23.2.3.1 Set.prototype.add(value)
+ add: function add(value) {
+ return _collectionStrong.def(_validateCollection(this, SET), value = value === 0 ? 0 : value, value);
+ }
+}, _collectionStrong);
+
+// true -> String#at
+// false -> String#codePointAt
+var _stringAt = function (TO_STRING) {
+ return function (that, pos) {
+ var s = String(_defined(that));
+ var i = _toInteger(pos);
+ var l = s.length;
+ var a, b;
+ if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
+ a = s.charCodeAt(i);
+ return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
+ ? TO_STRING ? s.charAt(i) : a
+ : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
+ };
+};
+
+var $at = _stringAt(true);
+
+// 21.1.3.27 String.prototype[@@iterator]()
+_iterDefine(String, 'String', function (iterated) {
+ this._t = String(iterated); // target
+ this._i = 0; // next index
+// 21.1.5.2.1 %StringIteratorPrototype%.next()
+}, function () {
+ var O = this._t;
+ var index = this._i;
+ var point;
+ if (index >= O.length) return { value: undefined, done: true };
+ point = $at(O, index);
+ this._i += point.length;
+ return { value: point, done: false };
+});
+
+// 19.1.3.6 Object.prototype.toString()
+
+var test = {};
+test[_wks('toStringTag')] = 'z';
+if (test + '' != '[object z]') {
+ _redefine(Object.prototype, 'toString', function toString() {
+ return '[object ' + _classof(this) + ']';
+ }, true);
+}
+
+// 22.1.3.31 Array.prototype[@@unscopables]
+var UNSCOPABLES = _wks('unscopables');
+var ArrayProto = Array.prototype;
+if (ArrayProto[UNSCOPABLES] == undefined) _hide(ArrayProto, UNSCOPABLES, {});
+var _addToUnscopables = function (key) {
+ ArrayProto[UNSCOPABLES][key] = true;
+};
+
+// 22.1.3.4 Array.prototype.entries()
+// 22.1.3.13 Array.prototype.keys()
+// 22.1.3.29 Array.prototype.values()
+// 22.1.3.30 Array.prototype[@@iterator]()
+var es6_array_iterator = _iterDefine(Array, 'Array', function (iterated, kind) {
+ this._t = _toIobject(iterated); // target
+ this._i = 0; // next index
+ this._k = kind; // kind
+// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
+}, function () {
+ var O = this._t;
+ var kind = this._k;
+ var index = this._i++;
+ if (!O || index >= O.length) {
+ this._t = undefined;
+ return _iterStep(1);
+ }
+ if (kind == 'keys') return _iterStep(0, index);
+ if (kind == 'values') return _iterStep(0, O[index]);
+ return _iterStep(0, [index, O[index]]);
+}, 'values');
+
+// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
+_iterators.Arguments = _iterators.Array;
+
+_addToUnscopables('keys');
+_addToUnscopables('values');
+_addToUnscopables('entries');
+
+var ITERATOR = _wks('iterator');
+var TO_STRING_TAG = _wks('toStringTag');
+var ArrayValues = _iterators.Array;
+
+var DOMIterables = {
+ CSSRuleList: true, // TODO: Not spec compliant, should be false.
+ CSSStyleDeclaration: false,
+ CSSValueList: false,
+ ClientRectList: false,
+ DOMRectList: false,
+ DOMStringList: false,
+ DOMTokenList: true,
+ DataTransferItemList: false,
+ FileList: false,
+ HTMLAllCollection: false,
+ HTMLCollection: false,
+ HTMLFormElement: false,
+ HTMLSelectElement: false,
+ MediaList: true, // TODO: Not spec compliant, should be false.
+ MimeTypeArray: false,
+ NamedNodeMap: false,
+ NodeList: true,
+ PaintRequestList: false,
+ Plugin: false,
+ PluginArray: false,
+ SVGLengthList: false,
+ SVGNumberList: false,
+ SVGPathSegList: false,
+ SVGPointList: false,
+ SVGStringList: false,
+ SVGTransformList: false,
+ SourceBufferList: false,
+ StyleSheetList: true, // TODO: Not spec compliant, should be false.
+ TextTrackCueList: false,
+ TextTrackList: false,
+ TouchList: false
+};
+
+for (var collections = _objectKeys(DOMIterables), i$1 = 0; i$1 < collections.length; i$1++) {
+ var NAME$1 = collections[i$1];
+ var explicit = DOMIterables[NAME$1];
+ var Collection = _global[NAME$1];
+ var proto$1 = Collection && Collection.prototype;
+ var key;
+ if (proto$1) {
+ if (!proto$1[ITERATOR]) _hide(proto$1, ITERATOR, ArrayValues);
+ if (!proto$1[TO_STRING_TAG]) _hide(proto$1, TO_STRING_TAG, NAME$1);
+ _iterators[NAME$1] = ArrayValues;
+ if (explicit) for (key in es6_array_iterator) if (!proto$1[key]) _redefine(proto$1, key, es6_array_iterator[key], true);
+ }
+}
+
+/**
+ * 消息管理器
+ */
+var Dep = /*#__PURE__*/function () {
+ function Dep() {
+ _classCallCheck(this, Dep);
+
+ this.deps = new Set();
+ } // 添加订阅者
+
+
+ _createClass(Dep, [{
+ key: "addSub",
+ value: function addSub(watcher) {
+ this.deps.add(watcher);
+ } // 操作watcher addDep 方法
+
+ }, {
+ key: "depend",
+ value: function depend() {
+ if (Dep.target) {
+ Dep.target.addDep(this);
+ }
+ } // 通知更新
+
+ }, {
+ key: "notify",
+ value: function notify() {
+ this.deps.forEach(function (watcher) {
+ return watcher.update();
+ });
+ }
+ }]);
+
+ return Dep;
+}();
+
+// 7.2.8 IsRegExp(argument)
+
+
+var MATCH = _wks('match');
+var _isRegexp = function (it) {
+ var isRegExp;
+ return _isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : _cof(it) == 'RegExp');
+};
+
+// 7.3.20 SpeciesConstructor(O, defaultConstructor)
+
+
+var SPECIES$1 = _wks('species');
+var _speciesConstructor = function (O, D) {
+ var C = _anObject(O).constructor;
+ var S;
+ return C === undefined || (S = _anObject(C)[SPECIES$1]) == undefined ? D : _aFunction(S);
+};
+
+var at = _stringAt(true);
+
+ // `AdvanceStringIndex` abstract operation
+// https://tc39.github.io/ecma262/#sec-advancestringindex
+var _advanceStringIndex = function (S, index, unicode) {
+ return index + (unicode ? at(S, index).length : 1);
+};
+
+var builtinExec = RegExp.prototype.exec;
+
+ // `RegExpExec` abstract operation
+// https://tc39.github.io/ecma262/#sec-regexpexec
+var _regexpExecAbstract = function (R, S) {
+ var exec = R.exec;
+ if (typeof exec === 'function') {
+ var result = exec.call(R, S);
+ if (typeof result !== 'object') {
+ throw new TypeError('RegExp exec method returned something other than an Object or null');
+ }
+ return result;
+ }
+ if (_classof(R) !== 'RegExp') {
+ throw new TypeError('RegExp#exec called on incompatible receiver');
+ }
+ return builtinExec.call(R, S);
+};
+
+// 21.2.5.3 get RegExp.prototype.flags
+
+var _flags = function () {
+ var that = _anObject(this);
+ var result = '';
+ if (that.global) result += 'g';
+ if (that.ignoreCase) result += 'i';
+ if (that.multiline) result += 'm';
+ if (that.unicode) result += 'u';
+ if (that.sticky) result += 'y';
+ return result;
+};
+
+var nativeExec = RegExp.prototype.exec;
+// This always refers to the native implementation, because the
+// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
+// which loads this file before patching the method.
+var nativeReplace = String.prototype.replace;
+
+var patchedExec = nativeExec;
+
+var LAST_INDEX$1 = 'lastIndex';
+
+var UPDATES_LAST_INDEX_WRONG = (function () {
+ var re1 = /a/,
+ re2 = /b*/g;
+ nativeExec.call(re1, 'a');
+ nativeExec.call(re2, 'a');
+ return re1[LAST_INDEX$1] !== 0 || re2[LAST_INDEX$1] !== 0;
+})();
+
+// nonparticipating capturing group, copied from es5-shim's String#split patch.
+var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
+
+var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
+
+if (PATCH) {
+ patchedExec = function exec(str) {
+ var re = this;
+ var lastIndex, reCopy, match, i;
+
+ if (NPCG_INCLUDED) {
+ reCopy = new RegExp('^' + re.source + '$(?!\\s)', _flags.call(re));
+ }
+ if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX$1];
+
+ match = nativeExec.call(re, str);
+
+ if (UPDATES_LAST_INDEX_WRONG && match) {
+ re[LAST_INDEX$1] = re.global ? match.index + match[0].length : lastIndex;
+ }
+ if (NPCG_INCLUDED && match && match.length > 1) {
+ // Fix browsers whose `exec` methods don't consistently return `undefined`
+ // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
+ // eslint-disable-next-line no-loop-func
+ nativeReplace.call(match[0], reCopy, function () {
+ for (i = 1; i < arguments.length - 2; i++) {
+ if (arguments[i] === undefined) match[i] = undefined;
+ }
+ });
+ }
+
+ return match;
+ };
+}
+
+var _regexpExec = patchedExec;
+
+_export({
+ target: 'RegExp',
+ proto: true,
+ forced: _regexpExec !== /./.exec
+}, {
+ exec: _regexpExec
+});
+
+var SPECIES = _wks('species');
+
+var REPLACE_SUPPORTS_NAMED_GROUPS = !_fails(function () {
+ // #replace needs built-in support for named groups.
+ // #match works fine because it just return the exec results, even if it has
+ // a "grops" property.
+ var re = /./;
+ re.exec = function () {
+ var result = [];
+ result.groups = { a: '7' };
+ return result;
+ };
+ return ''.replace(re, '$') !== '7';
+});
+
+var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
+ // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
+ var re = /(?:)/;
+ var originalExec = re.exec;
+ re.exec = function () { return originalExec.apply(this, arguments); };
+ var result = 'ab'.split(re);
+ return result.length === 2 && result[0] === 'a' && result[1] === 'b';
+})();
+
+var _fixReWks = function (KEY, length, exec) {
+ var SYMBOL = _wks(KEY);
+
+ var DELEGATES_TO_SYMBOL = !_fails(function () {
+ // String methods call symbol-named RegEp methods
+ var O = {};
+ O[SYMBOL] = function () { return 7; };
+ return ''[KEY](O) != 7;
+ });
+
+ var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !_fails(function () {
+ // Symbol-named RegExp methods call .exec
+ var execCalled = false;
+ var re = /a/;
+ re.exec = function () { execCalled = true; return null; };
+ if (KEY === 'split') {
+ // RegExp[@@split] doesn't call the regex's exec method, but first creates
+ // a new one. We need to return the patched regex when creating the new one.
+ re.constructor = {};
+ re.constructor[SPECIES] = function () { return re; };
+ }
+ re[SYMBOL]('');
+ return !execCalled;
+ }) : undefined;
+
+ if (
+ !DELEGATES_TO_SYMBOL ||
+ !DELEGATES_TO_EXEC ||
+ (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
+ (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
+ ) {
+ var nativeRegExpMethod = /./[SYMBOL];
+ var fns = exec(
+ _defined,
+ SYMBOL,
+ ''[KEY],
+ function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
+ if (regexp.exec === _regexpExec) {
+ if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
+ // The native String method already delegates to @@method (this
+ // polyfilled function), leasing to infinite recursion.
+ // We avoid it by directly calling the native @@method method.
+ return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
+ }
+ return { done: true, value: nativeMethod.call(str, regexp, arg2) };
+ }
+ return { done: false };
+ }
+ );
+ var strfn = fns[0];
+ var rxfn = fns[1];
+
+ _redefine(String.prototype, KEY, strfn);
+ _hide(RegExp.prototype, SYMBOL, length == 2
+ // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
+ // 21.2.5.11 RegExp.prototype[@@split](string, limit)
+ ? function (string, arg) { return rxfn.call(string, this, arg); }
+ // 21.2.5.6 RegExp.prototype[@@match](string)
+ // 21.2.5.9 RegExp.prototype[@@search](string)
+ : function (string) { return rxfn.call(string, this); }
+ );
+ }
+};
+
+var $min = Math.min;
+var $push = [].push;
+var $SPLIT = 'split';
+var LENGTH = 'length';
+var LAST_INDEX = 'lastIndex';
+var MAX_UINT32 = 0xffffffff;
+
+// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
+var SUPPORTS_Y = !_fails(function () { RegExp(MAX_UINT32, 'y'); });
+
+// @@split logic
+_fixReWks('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
+ var internalSplit;
+ if (
+ 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
+ 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
+ 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
+ '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
+ '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
+ ''[$SPLIT](/.?/)[LENGTH]
+ ) {
+ // based on es5-shim implementation, need to rework it
+ internalSplit = function (separator, limit) {
+ var string = String(this);
+ if (separator === undefined && limit === 0) return [];
+ // If `separator` is not a regex, use native split
+ if (!_isRegexp(separator)) return $split.call(string, separator, limit);
+ var output = [];
+ var flags = (separator.ignoreCase ? 'i' : '') +
+ (separator.multiline ? 'm' : '') +
+ (separator.unicode ? 'u' : '') +
+ (separator.sticky ? 'y' : '');
+ var lastLastIndex = 0;
+ var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
+ // Make `global` and avoid `lastIndex` issues by working with a copy
+ var separatorCopy = new RegExp(separator.source, flags + 'g');
+ var match, lastIndex, lastLength;
+ while (match = _regexpExec.call(separatorCopy, string)) {
+ lastIndex = separatorCopy[LAST_INDEX];
+ if (lastIndex > lastLastIndex) {
+ output.push(string.slice(lastLastIndex, match.index));
+ if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
+ lastLength = match[0][LENGTH];
+ lastLastIndex = lastIndex;
+ if (output[LENGTH] >= splitLimit) break;
+ }
+ if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
+ }
+ if (lastLastIndex === string[LENGTH]) {
+ if (lastLength || !separatorCopy.test('')) output.push('');
+ } else output.push(string.slice(lastLastIndex));
+ return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
+ };
+ // Chakra, V8
+ } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
+ internalSplit = function (separator, limit) {
+ return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
+ };
+ } else {
+ internalSplit = $split;
+ }
+
+ return [
+ // `String.prototype.split` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.split
+ function split(separator, limit) {
+ var O = defined(this);
+ var splitter = separator == undefined ? undefined : separator[SPLIT];
+ return splitter !== undefined
+ ? splitter.call(separator, O, limit)
+ : internalSplit.call(String(O), separator, limit);
+ },
+ // `RegExp.prototype[@@split]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
+ //
+ // NOTE: This cannot be properly polyfilled in engines that don't support
+ // the 'y' flag.
+ function (regexp, limit) {
+ var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
+ if (res.done) return res.value;
+
+ var rx = _anObject(regexp);
+ var S = String(this);
+ var C = _speciesConstructor(rx, RegExp);
+
+ var unicodeMatching = rx.unicode;
+ var flags = (rx.ignoreCase ? 'i' : '') +
+ (rx.multiline ? 'm' : '') +
+ (rx.unicode ? 'u' : '') +
+ (SUPPORTS_Y ? 'y' : 'g');
+
+ // ^(? + rx + ) is needed, in combination with some S slicing, to
+ // simulate the 'y' flag.
+ var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
+ var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
+ if (lim === 0) return [];
+ if (S.length === 0) return _regexpExecAbstract(splitter, S) === null ? [S] : [];
+ var p = 0;
+ var q = 0;
+ var A = [];
+ while (q < S.length) {
+ splitter.lastIndex = SUPPORTS_Y ? q : 0;
+ var z = _regexpExecAbstract(splitter, SUPPORTS_Y ? S : S.slice(q));
+ var e;
+ if (
+ z === null ||
+ (e = $min(_toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
+ ) {
+ q = _advanceStringIndex(S, q, unicodeMatching);
+ } else {
+ A.push(S.slice(p, q));
+ if (A.length === lim) return A;
+ for (var i = 1; i <= z.length - 1; i++) {
+ A.push(z[i]);
+ if (A.length === lim) return A;
+ }
+ q = p = e;
+ }
+ }
+ A.push(S.slice(p));
+ return A;
+ }
+ ];
+});
+
+var max = Math.max;
+var min = Math.min;
+var floor = Math.floor;
+var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
+var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;
+
+var maybeToString = function (it) {
+ return it === undefined ? it : String(it);
+};
+
+// @@replace logic
+_fixReWks('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
+ return [
+ // `String.prototype.replace` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.replace
+ function replace(searchValue, replaceValue) {
+ var O = defined(this);
+ var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
+ return fn !== undefined
+ ? fn.call(searchValue, O, replaceValue)
+ : $replace.call(String(O), searchValue, replaceValue);
+ },
+ // `RegExp.prototype[@@replace]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
+ function (regexp, replaceValue) {
+ var res = maybeCallNative($replace, regexp, this, replaceValue);
+ if (res.done) return res.value;
+
+ var rx = _anObject(regexp);
+ var S = String(this);
+ var functionalReplace = typeof replaceValue === 'function';
+ if (!functionalReplace) replaceValue = String(replaceValue);
+ var global = rx.global;
+ if (global) {
+ var fullUnicode = rx.unicode;
+ rx.lastIndex = 0;
+ }
+ var results = [];
+ while (true) {
+ var result = _regexpExecAbstract(rx, S);
+ if (result === null) break;
+ results.push(result);
+ if (!global) break;
+ var matchStr = String(result[0]);
+ if (matchStr === '') rx.lastIndex = _advanceStringIndex(S, _toLength(rx.lastIndex), fullUnicode);
+ }
+ var accumulatedResult = '';
+ var nextSourcePosition = 0;
+ for (var i = 0; i < results.length; i++) {
+ result = results[i];
+ var matched = String(result[0]);
+ var position = max(min(_toInteger(result.index), S.length), 0);
+ var captures = [];
+ // NOTE: This is equivalent to
+ // captures = result.slice(1).map(maybeToString)
+ // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
+ // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
+ // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
+ for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
+ var namedCaptures = result.groups;
+ if (functionalReplace) {
+ var replacerArgs = [matched].concat(captures, position, S);
+ if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
+ var replacement = String(replaceValue.apply(undefined, replacerArgs));
+ } else {
+ replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
+ }
+ if (position >= nextSourcePosition) {
+ accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
+ nextSourcePosition = position + matched.length;
+ }
+ }
+ return accumulatedResult + S.slice(nextSourcePosition);
+ }
+ ];
+
+ // https://tc39.github.io/ecma262/#sec-getsubstitution
+ function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
+ var tailPos = position + matched.length;
+ var m = captures.length;
+ var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
+ if (namedCaptures !== undefined) {
+ namedCaptures = _toObject(namedCaptures);
+ symbols = SUBSTITUTION_SYMBOLS;
+ }
+ return $replace.call(replacement, symbols, function (match, ch) {
+ var capture;
+ switch (ch.charAt(0)) {
+ case '$': return '$';
+ case '&': return matched;
+ case '`': return str.slice(0, position);
+ case "'": return str.slice(tailPos);
+ case '<':
+ capture = namedCaptures[ch.slice(1, -1)];
+ break;
+ default: // \d\d?
+ var n = +ch;
+ if (n === 0) return match;
+ if (n > m) {
+ var f = floor(n / 10);
+ if (f === 0) return match;
+ if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
+ return match;
+ }
+ capture = captures[n - 1];
+ }
+ return capture === undefined ? '' : capture;
+ });
+ }
+});
+
+function def(obj, key, val, enumerable) {
+ Object.defineProperty(obj, key, {
+ value: val,
+ enumerable: !!enumerable,
+ writable: true,
+ configurable: true
+ });
+} // 数组响应式处理
+
+function dependArray(value) {
+ for (var e, i = 0, l = value.length; i < l; i++) {
+ e = value[i];
+ e && e.__ob__ && e.__ob__.dep.depend();
+
+ if (Array.isArray(e)) {
+ dependArray(e);
+ }
+ }
+} // 检测一个对象的属性是否存在
+
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+function hasOwn(obj, key) {
+ return hasOwnProperty.call(obj, key);
+}
+
+var arrayProto = Array.prototype;
+var arrayMethods = Object.create(arrayProto);
+var methodsToPatch = ["push", "pop", "shift", "unshift", "splice", "sort", "reverse"];
+methodsToPatch.forEach(function (method) {
+ // 保存原始方法
+ var original = arrayProto[method]; // 覆盖之
+
+ def(arrayMethods, method, function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ // 1.执行默认方法
+ var result = original.apply(this, args); // 2.变更通知
+
+ var ob = this.__ob__; // 可能会有新元素加入
+
+ var inserted;
+
+ switch (method) {
+ case 'push':
+ case 'unshift':
+ inserted = args;
+ break;
+
+ case 'splice':
+ inserted = args.slice(2);
+ break;
+ } // 对新加入的元素做响应式
+
+
+ if (inserted) ob.observeArray(inserted); // notify change
+ // ob内部有一个dep,让它去通知更新
+
+ ob.dep.notify();
+ return result;
+ });
+});
+
+var Observer = /*#__PURE__*/function () {
+ function Observer(value) {
+ _classCallCheck(this, Observer);
+
+ this.value = value;
+ this.dep = new Dep();
+ def(value, '__ob__', this);
+
+ if (Array.isArray(value)) {
+ if ('__proto__' in {}) {
+ value.__proto__ = arrayMethods;
+ }
+
+ this.observeArray(value);
+ } else {
+ this.walk(value);
+ }
+ } // 数组响应式处理
+
+
+ _createClass(Observer, [{
+ key: "observeArray",
+ value: function observeArray(arr) {
+ for (var i = 0, l = arr.length; i < l; i++) {
+ observe(arr[i]);
+ }
+ } // 对象响应式处理
+
+ }, {
+ key: "walk",
+ value: function walk(obj) {
+ Object.keys(obj).forEach(function (key) {
+ defineReactive(obj, key, obj[key]);
+ });
+ }
+ }]);
+
+ return Observer;
+}(); // 数据劫持
+
+function defineReactive(obj, key, val) {
+ var childOb = observe(val); // 每一可以对应一个 dep;
+
+ var dep = new Dep();
+ Object.defineProperty(obj, key, {
+ get: function get() {
+ // 依赖收集
+ dep.depend();
+
+ if (childOb) {
+ // 子ob也要做依赖收集
+ childOb.dep.depend();
+
+ if (Array.isArray(val)) {
+ dependArray(val);
+ }
+ }
+
+ return val;
+ },
+ set: function set(newVal) {
+ if (val !== newVal) {
+ observe(newVal);
+ val = newVal; // 通知更新
+
+ dep.notify();
+ }
+ }
+ });
+} // observe
+
+function observe(obj) {
+ if (_typeof(obj) !== 'object' || obj === null) {
+ return;
+ }
+
+ var ob;
+
+ if (hasOwn(obj, '__ob__') && obj.__ob__ instanceof Observer) {
+ ob = obj.__ob__;
+ } else {
+ ob = new Observer(obj);
+ }
+
+ return ob;
+} // porxy
+
+function proxy$1(vm) {
+ Object.keys(vm.$data).forEach(function (key) {
+ Object.defineProperty(vm, key, {
+ get: function get() {
+ return vm.$data[key];
+ },
+ set: function set(newVal) {
+ vm.$data[key] = newVal;
+ }
+ });
+ });
+}
+
+var f$3 = _wks;
+
+var _wksExt = {
+ f: f$3
+};
+
+var defineProperty = _objectDp.f;
+var _wksDefine = function (name) {
+ var $Symbol = _core.Symbol || (_core.Symbol = _global.Symbol || {});
+ if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: _wksExt.f(name) });
+};
+
+var f$2 = Object.getOwnPropertySymbols;
+
+var _objectGops = {
+ f: f$2
+};
+
+// all enumerable object keys, includes symbols
+
+
+
+var _enumKeys = function (it) {
+ var result = _objectKeys(it);
+ var getSymbols = _objectGops.f;
+ if (getSymbols) {
+ var symbols = getSymbols(it);
+ var isEnum = _objectPie.f;
+ var i = 0;
+ var key;
+ while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
+ } return result;
+};
+
+// 7.2.2 IsArray(argument)
+
+var _isArray = Array.isArray || function isArray(arg) {
+ return _cof(arg) == 'Array';
+};
+
+// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
+
+var hiddenKeys = _enumBugKeys.concat('length', 'prototype');
+
+var f$1 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
+ return _objectKeysInternal(O, hiddenKeys);
+};
+
+var _objectGopn = {
+ f: f$1
+};
+
+// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
+
+var gOPN$2 = _objectGopn.f;
+var toString = {}.toString;
+
+var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
+ ? Object.getOwnPropertyNames(window) : [];
+
+var getWindowNames = function (it) {
+ try {
+ return gOPN$2(it);
+ } catch (e) {
+ return windowNames.slice();
+ }
+};
+
+var f = function getOwnPropertyNames(it) {
+ return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN$2(_toIobject(it));
+};
+
+var _objectGopnExt = {
+ f: f
+};
+
+// ECMAScript 6 symbols shim
+
+
+
+
+
+var META = _meta.KEY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var gOPD = _objectGopd.f;
+var dP$2 = _objectDp.f;
+var gOPN$1 = _objectGopnExt.f;
+var $Symbol = _global.Symbol;
+var $JSON = _global.JSON;
+var _stringify = $JSON && $JSON.stringify;
+var PROTOTYPE = 'prototype';
+var HIDDEN = _wks('_hidden');
+var TO_PRIMITIVE = _wks('toPrimitive');
+var isEnum = {}.propertyIsEnumerable;
+var SymbolRegistry = _shared('symbol-registry');
+var AllSymbols = _shared('symbols');
+var OPSymbols = _shared('op-symbols');
+var ObjectProto = Object[PROTOTYPE];
+var USE_NATIVE = typeof $Symbol == 'function' && !!_objectGops.f;
+var QObject = _global.QObject;
+// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
+
+// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
+var setSymbolDesc = _descriptors && _fails(function () {
+ return _objectCreate(dP$2({}, 'a', {
+ get: function () { return dP$2(this, 'a', { value: 7 }).a; }
+ })).a != 7;
+}) ? function (it, key, D) {
+ var protoDesc = gOPD(ObjectProto, key);
+ if (protoDesc) delete ObjectProto[key];
+ dP$2(it, key, D);
+ if (protoDesc && it !== ObjectProto) dP$2(ObjectProto, key, protoDesc);
+} : dP$2;
+
+var wrap = function (tag) {
+ var sym = AllSymbols[tag] = _objectCreate($Symbol[PROTOTYPE]);
+ sym._k = tag;
+ return sym;
+};
+
+var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
+ return typeof it == 'symbol';
+} : function (it) {
+ return it instanceof $Symbol;
+};
+
+var $defineProperty = function defineProperty(it, key, D) {
+ if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
+ _anObject(it);
+ key = _toPrimitive(key, true);
+ _anObject(D);
+ if (_has(AllSymbols, key)) {
+ if (!D.enumerable) {
+ if (!_has(it, HIDDEN)) dP$2(it, HIDDEN, _propertyDesc(1, {}));
+ it[HIDDEN][key] = true;
+ } else {
+ if (_has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
+ D = _objectCreate(D, { enumerable: _propertyDesc(0, false) });
+ } return setSymbolDesc(it, key, D);
+ } return dP$2(it, key, D);
+};
+var $defineProperties = function defineProperties(it, P) {
+ _anObject(it);
+ var keys = _enumKeys(P = _toIobject(P));
+ var i = 0;
+ var l = keys.length;
+ var key;
+ while (l > i) $defineProperty(it, key = keys[i++], P[key]);
+ return it;
+};
+var $create = function create(it, P) {
+ return P === undefined ? _objectCreate(it) : $defineProperties(_objectCreate(it), P);
+};
+var $propertyIsEnumerable = function propertyIsEnumerable(key) {
+ var E = isEnum.call(this, key = _toPrimitive(key, true));
+ if (this === ObjectProto && _has(AllSymbols, key) && !_has(OPSymbols, key)) return false;
+ return E || !_has(this, key) || !_has(AllSymbols, key) || _has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
+};
+var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
+ it = _toIobject(it);
+ key = _toPrimitive(key, true);
+ if (it === ObjectProto && _has(AllSymbols, key) && !_has(OPSymbols, key)) return;
+ var D = gOPD(it, key);
+ if (D && _has(AllSymbols, key) && !(_has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
+ return D;
+};
+var $getOwnPropertyNames = function getOwnPropertyNames(it) {
+ var names = gOPN$1(_toIobject(it));
+ var result = [];
+ var i = 0;
+ var key;
+ while (names.length > i) {
+ if (!_has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
+ } return result;
+};
+var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
+ var IS_OP = it === ObjectProto;
+ var names = gOPN$1(IS_OP ? OPSymbols : _toIobject(it));
+ var result = [];
+ var i = 0;
+ var key;
+ while (names.length > i) {
+ if (_has(AllSymbols, key = names[i++]) && (IS_OP ? _has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
+ } return result;
+};
+
+// 19.4.1.1 Symbol([description])
+if (!USE_NATIVE) {
+ $Symbol = function Symbol() {
+ if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
+ var tag = _uid(arguments.length > 0 ? arguments[0] : undefined);
+ var $set = function (value) {
+ if (this === ObjectProto) $set.call(OPSymbols, value);
+ if (_has(this, HIDDEN) && _has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
+ setSymbolDesc(this, tag, _propertyDesc(1, value));
+ };
+ if (_descriptors && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
+ return wrap(tag);
+ };
+ _redefine($Symbol[PROTOTYPE], 'toString', function toString() {
+ return this._k;
+ });
+
+ _objectGopd.f = $getOwnPropertyDescriptor;
+ _objectDp.f = $defineProperty;
+ _objectGopn.f = _objectGopnExt.f = $getOwnPropertyNames;
+ _objectPie.f = $propertyIsEnumerable;
+ _objectGops.f = $getOwnPropertySymbols;
+
+ if (_descriptors && !_library) {
+ _redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
+ }
+
+ _wksExt.f = function (name) {
+ return wrap(_wks(name));
+ };
+}
+
+_export(_export.G + _export.W + _export.F * !USE_NATIVE, { Symbol: $Symbol });
+
+for (var es6Symbols = (
+ // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
+).split(','), j = 0; es6Symbols.length > j;)_wks(es6Symbols[j++]);
+
+for (var wellKnownSymbols = _objectKeys(_wks.store), k = 0; wellKnownSymbols.length > k;) _wksDefine(wellKnownSymbols[k++]);
+
+_export(_export.S + _export.F * !USE_NATIVE, 'Symbol', {
+ // 19.4.2.1 Symbol.for(key)
+ 'for': function (key) {
+ return _has(SymbolRegistry, key += '')
+ ? SymbolRegistry[key]
+ : SymbolRegistry[key] = $Symbol(key);
+ },
+ // 19.4.2.5 Symbol.keyFor(sym)
+ keyFor: function keyFor(sym) {
+ if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
+ for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
+ },
+ useSetter: function () { setter = true; },
+ useSimple: function () { setter = false; }
+});
+
+_export(_export.S + _export.F * !USE_NATIVE, 'Object', {
+ // 19.1.2.2 Object.create(O [, Properties])
+ create: $create,
+ // 19.1.2.4 Object.defineProperty(O, P, Attributes)
+ defineProperty: $defineProperty,
+ // 19.1.2.3 Object.defineProperties(O, Properties)
+ defineProperties: $defineProperties,
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ getOwnPropertyNames: $getOwnPropertyNames,
+ // 19.1.2.8 Object.getOwnPropertySymbols(O)
+ getOwnPropertySymbols: $getOwnPropertySymbols
+});
+
+// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
+// https://bugs.chromium.org/p/v8/issues/detail?id=3443
+var FAILS_ON_PRIMITIVES = _fails(function () { _objectGops.f(1); });
+
+_export(_export.S + _export.F * FAILS_ON_PRIMITIVES, 'Object', {
+ getOwnPropertySymbols: function getOwnPropertySymbols(it) {
+ return _objectGops.f(_toObject(it));
+ }
+});
+
+// 24.3.2 JSON.stringify(value [, replacer [, space]])
+$JSON && _export(_export.S + _export.F * (!USE_NATIVE || _fails(function () {
+ var S = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ // WebKit converts symbol values to JSON as null
+ // V8 throws on boxed symbols
+ return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
+})), 'JSON', {
+ stringify: function stringify(it) {
+ var args = [it];
+ var i = 1;
+ var replacer, $replacer;
+ while (arguments.length > i) args.push(arguments[i++]);
+ $replacer = replacer = args[1];
+ if (!_isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
+ if (!_isArray(replacer)) replacer = function (key, value) {
+ if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
+ if (!isSymbol(value)) return value;
+ };
+ args[1] = replacer;
+ return _stringify.apply($JSON, args);
+ }
+});
+
+// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
+$Symbol[PROTOTYPE][TO_PRIMITIVE] || _hide($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
+// 19.4.3.5 Symbol.prototype[@@toStringTag]
+_setToStringTag($Symbol, 'Symbol');
+// 20.2.1.9 Math[@@toStringTag]
+_setToStringTag(Math, 'Math', true);
+// 24.3.3 JSON[@@toStringTag]
+_setToStringTag(_global.JSON, 'JSON', true);
+
+var _createProperty = function (object, index, value) {
+ if (index in object) _objectDp.f(object, index, _propertyDesc(0, value));
+ else object[index] = value;
+};
+
+_export(_export.S + _export.F * !_iterDetect(function (iter) { Array.from(iter); }), 'Array', {
+ // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
+ from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
+ var O = _toObject(arrayLike);
+ var C = typeof this == 'function' ? this : Array;
+ var aLen = arguments.length;
+ var mapfn = aLen > 1 ? arguments[1] : undefined;
+ var mapping = mapfn !== undefined;
+ var index = 0;
+ var iterFn = core_getIteratorMethod(O);
+ var length, result, step, iterator;
+ if (mapping) mapfn = _ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
+ // if object isn't iterable or it's array with default iterator - use simple case
+ if (iterFn != undefined && !(C == Array && _isArrayIter(iterFn))) {
+ for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
+ _createProperty(result, index, mapping ? _iterCall(iterator, mapfn, [step.value, index], true) : step.value);
+ }
+ } else {
+ length = _toLength(O.length);
+ for (result = new C(length); length > index; index++) {
+ _createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
+ }
+ }
+ result.length = index;
+ return result;
+ }
+});
+
+var dP$1 = _objectDp.f;
+var FProto = Function.prototype;
+var nameRE = /^\s*function ([^ (]*)/;
+var NAME = 'name';
+
+// 19.2.4.2 name
+NAME in FProto || _descriptors && dP$1(FProto, NAME, {
+ configurable: true,
+ get: function () {
+ try {
+ return ('' + this).match(nameRE)[1];
+ } catch (e) {
+ return '';
+ }
+ }
+});
+
+var dP = _objectDp.f;
+var gOPN = _objectGopn.f;
+
+
+var $RegExp = _global.RegExp;
+var Base = $RegExp;
+var proto = $RegExp.prototype;
+var re1 = /a/g;
+var re2 = /a/g;
+// "new" creates a new object, old webkit buggy here
+var CORRECT_NEW = new $RegExp(re1) !== re1;
+
+if (_descriptors && (!CORRECT_NEW || _fails(function () {
+ re2[_wks('match')] = false;
+ // RegExp constructor can alter flags and IsRegExp works correct with @@match
+ return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
+}))) {
+ $RegExp = function RegExp(p, f) {
+ var tiRE = this instanceof $RegExp;
+ var piRE = _isRegexp(p);
+ var fiU = f === undefined;
+ return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
+ : _inheritIfRequired(CORRECT_NEW
+ ? new Base(piRE && !fiU ? p.source : p, f)
+ : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? _flags.call(p) : f)
+ , tiRE ? this : proto, $RegExp);
+ };
+ var proxy = function (key) {
+ key in $RegExp || dP($RegExp, key, {
+ configurable: true,
+ get: function () { return Base[key]; },
+ set: function (it) { Base[key] = it; }
+ });
+ };
+ for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);
+ proto.constructor = $RegExp;
+ $RegExp.prototype = proto;
+ _redefine(_global, 'RegExp', $RegExp);
+}
+
+_setSpecies('RegExp');
+
+var Watcher = /*#__PURE__*/function () {
+ function Watcher(vm, updaterFn) {
+ _classCallCheck(this, Watcher);
+
+ this.vm = vm;
+ this.getter = updaterFn; // 依赖收集
+
+ this.get();
+ }
+
+ _createClass(Watcher, [{
+ key: "get",
+ value: function get() {
+ Dep.target = this;
+ this.getter.call(this.vm);
+ Dep.target = null;
+ } // 相互添加引用
+
+ }, {
+ key: "addDep",
+ value: function addDep(dep) {
+ dep.addSub(this);
+ }
+ }, {
+ key: "update",
+ value: function update() {
+ this.get(); // this.updaterFn.call(this.vm, getDataVal.call(this.vm, this.key))
+ }
+ }]);
+
+ return Watcher;
+}();
+
+var Vue = /*#__PURE__*/function () {
+ function Vue(options) {
+ _classCallCheck(this, Vue);
+
+ this.$options = options;
+ this.$data = options.data;
+ observe(this.$data); // 代理data
+
+ proxy$1(this); // 代理methods
+
+ for (var key in options.methods) {
+ this[key] = typeof options.methods[key] === 'function' ? options.methods[key].bind(this) : noop;
+ } // 模板编译
+ // new Compile(options.el, this)
+
+
+ if (options.el) {
+ this.$mount(options.el);
+ }
+ } // 挂载
+
+
+ _createClass(Vue, [{
+ key: "$mount",
+ value: function $mount(el) {
+ var _this = this;
+
+ // 获取宿主原始
+ this.$el = document.querySelector(el); // 组件更新函数
+
+ var updateComponent = function updateComponent() {
+ var render = _this.$options.render;
+ var vnode = render.call(_this, _this.$createElement);
+
+ _this._update(vnode);
+ }; // 创建wather
+
+
+ new Watcher(this, updateComponent);
+ } // 获取vnode
+
+ }, {
+ key: "$createElement",
+ value: function $createElement(tag, props, children) {
+ return {
+ tag: tag,
+ props: props,
+ children: children
+ };
+ } // 更新
+
+ }, {
+ key: "_update",
+ value: function _update(vnode) {
+ var preVnode = this._vnode;
+
+ if (preVnode) {
+ // 更新
+ this.__patch__(preVnode, vnode);
+ } else {
+ // 初始化
+ this.__patch__(this.$el, vnode);
+ }
+ } // patch方法
+
+ }, {
+ key: "__patch__",
+ value: function __patch__(oldVode, vnode) {
+ var _this2 = this;
+
+ // 判断old是否为dom
+ if (oldVode.nodeType) {
+ // 初始化
+ var parent = oldVode.parentElement;
+ var refElm = oldVode.nextSibling; // 递归vnode创建dom树
+
+ var el = this.createElm(vnode);
+ parent.insertBefore(el, refElm);
+ parent.removeChild(oldVode);
+ } else {
+ // 更新
+ var _el = vnode.el = oldVode.el; // 判断是否是相同节点samenode
+
+
+ if (oldVode.tag === vnode.tag) {
+ // diff
+ // props
+ // children
+ var oldCh = oldVode.children;
+ var newCh = vnode.children;
+
+ if (typeof newCh === 'string') {
+ if (typeof oldCh === 'string') {
+ if (newCh !== oldCh) {
+ _el.textContent = newCh;
+ }
+ } else {
+ // 清空并替换为文本
+ _el.textContent = newCh;
+ }
+ } else {
+ // 数组
+ if (typeof oldCh === 'string') {
+ _el.innerHTML = '';
+ newCh.forEach(function (child) {
+ _el.appendChild(_this2.createElm(child));
+ });
+ } else {
+ // 双方都有孩子 diff
+ this.updateChildren(_el, oldCh, newCh);
+ }
+ }
+ }
+ } // 保存vnode
+
+
+ this._vnode = vnode;
+ } // 创建真实节点
+
+ }, {
+ key: "createElm",
+ value: function createElm(vnode) {
+ var _this3 = this;
+
+ var el = document.createElement(vnode.tag); // props
+
+ for (var key in vnode.props) {
+ el.setAttribute(key, vnode.props[key]);
+ } // 处理子节点
+
+
+ if (vnode.children) {
+ if (_typeof(vnode.children) !== 'object') {
+ el.textContent = vnode.children;
+ } else {
+ // 数组类子元素
+ vnode.children.forEach(function (vnode) {
+ el.appendChild(_this3.createElm(vnode));
+ });
+ }
+ }
+
+ vnode.el = el;
+ return el;
+ } // 更新子元素
+
+ }, {
+ key: "updateChildren",
+ value: function updateChildren(parentElm, oldCh, newCh) {
+ var _this4 = this;
+
+ var len = Math.min(oldCh.length, newCh.length); // 强制更新,不管节点是否相同
+
+ for (var i = 0; i < len; i++) {
+ this.__patch__(oldCh[i], newCh[i]);
+ }
+
+ if (oldCh.length > newCh.length) {
+ // 删除
+ oldCh.slice(len).forEach(function (child) {
+ parentElm.removeChild(child.el);
+ });
+ } else {
+ // 追加
+ newCh.slice(len).forEach(function (child) {
+ var el = _this4.createElm(child);
+
+ parentElm.appendChild(el);
+ });
+ }
+ }
+ }]);
+
+ return Vue;
+}(); // 空函数
+
+function noop() {}
+
+export { Vue as default };
diff --git a/dist/vue.js b/dist/vue.js
index d3acac5..9f35ff0 100644
--- a/dist/vue.js
+++ b/dist/vue.js
@@ -1,372 +1,2470 @@
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.Pvue = factory());
-}(this, (function () { 'use strict';
-
-/**
- * 消息管理器
- */
-
-class Dep {
- constructor() {
- this.deps = new Set();
+var Vue = (function () {
+ 'use strict';
+
+ function _typeof(obj) {
+ "@babel/helpers - typeof";
+
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+ _typeof = function (obj) {
+ return typeof obj;
+ };
+ } else {
+ _typeof = function (obj) {
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+ }
+
+ return _typeof(obj);
}
- // 添加订阅者
- addSub(watcher) {
- this.deps.add(watcher);
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
}
- // 操作watcher addDep 方法
- depend() {
- if (Dep.target) {
- Dep.target.addDep(this);
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
}
}
- // 通知更新
- notify() {
- this.deps.forEach(watcher => watcher.update());
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function createCommonjsModule(fn, module) {
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
}
-}
+ var _global = createCommonjsModule(function (module) {
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+ var global = module.exports = typeof window != 'undefined' && window.Math == Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self
+ // eslint-disable-next-line no-new-func
+ : Function('return this')();
+ if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
+ });
+
+ var _core = createCommonjsModule(function (module) {
+ var core = module.exports = { version: '2.6.12' };
+ if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
+ });
+ _core.version;
+
+ var _isObject = function (it) {
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
+ };
+
+ var _anObject = function (it) {
+ if (!_isObject(it)) throw TypeError(it + ' is not an object!');
+ return it;
+ };
+
+ var _fails = function (exec) {
+ try {
+ return !!exec();
+ } catch (e) {
+ return true;
+ }
+ };
+
+ // Thank's IE8 for his funny defineProperty
+ var _descriptors = !_fails(function () {
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
+ });
+
+ var document$2 = _global.document;
+ // typeof document.createElement is 'object' in old IE
+ var is = _isObject(document$2) && _isObject(document$2.createElement);
+ var _domCreate = function (it) {
+ return is ? document$2.createElement(it) : {};
+ };
+
+ var _ie8DomDefine = !_descriptors && !_fails(function () {
+ return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;
+ });
+
+ // 7.1.1 ToPrimitive(input [, PreferredType])
+
+ // instead of the ES6 spec version, we didn't implement @@toPrimitive case
+ // and the second argument - flag - preferred type is a string
+ var _toPrimitive = function (it, S) {
+ if (!_isObject(it)) return it;
+ var fn, val;
+ if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
+ if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) return val;
+ if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
+ throw TypeError("Can't convert object to primitive value");
+ };
+
+ var dP$4 = Object.defineProperty;
+
+ var f$6 = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
+ _anObject(O);
+ P = _toPrimitive(P, true);
+ _anObject(Attributes);
+ if (_ie8DomDefine) try {
+ return dP$4(O, P, Attributes);
+ } catch (e) { /* empty */ }
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
+ if ('value' in Attributes) O[P] = Attributes.value;
+ return O;
+ };
+
+ var _objectDp = {
+ f: f$6
+ };
+
+ var _propertyDesc = function (bitmap, value) {
+ return {
+ enumerable: !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable: !(bitmap & 4),
+ value: value
+ };
+ };
+
+ var _hide = _descriptors ? function (object, key, value) {
+ return _objectDp.f(object, key, _propertyDesc(1, value));
+ } : function (object, key, value) {
+ object[key] = value;
+ return object;
+ };
+
+ var hasOwnProperty$1 = {}.hasOwnProperty;
+ var _has = function (it, key) {
+ return hasOwnProperty$1.call(it, key);
+ };
+
+ var id = 0;
+ var px = Math.random();
+ var _uid = function (key) {
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
+ };
+
+ var _library = false;
+
+ var _shared = createCommonjsModule(function (module) {
+ var SHARED = '__core-js_shared__';
+ var store = _global[SHARED] || (_global[SHARED] = {});
-// 返回指定 key 对应的 data值
+ (module.exports = function (key, value) {
+ return store[key] || (store[key] = value !== undefined ? value : {});
+ })('versions', []).push({
+ version: _core.version,
+ mode: 'global',
+ copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
+ });
+ });
+ var _functionToString = _shared('native-function-to-string', Function.toString);
-// 设置指定 key 对应的 data值
+ var _redefine = createCommonjsModule(function (module) {
+ var SRC = _uid('src');
+ var TO_STRING = 'toString';
+ var TPL = ('' + _functionToString).split(TO_STRING);
-// 定义一个Property
-function def(obj, key, val, enumerable) {
- Object.defineProperty(obj, key, {
- value: val,
- enumerable: !!enumerable,
- writable: true,
- configurable: true
+ _core.inspectSource = function (it) {
+ return _functionToString.call(it);
+ };
+
+ (module.exports = function (O, key, val, safe) {
+ var isFunction = typeof val == 'function';
+ if (isFunction) _has(val, 'name') || _hide(val, 'name', key);
+ if (O[key] === val) return;
+ if (isFunction) _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
+ if (O === _global) {
+ O[key] = val;
+ } else if (!safe) {
+ delete O[key];
+ _hide(O, key, val);
+ } else if (O[key]) {
+ O[key] = val;
+ } else {
+ _hide(O, key, val);
+ }
+ // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
+ })(Function.prototype, TO_STRING, function toString() {
+ return typeof this == 'function' && this[SRC] || _functionToString.call(this);
+ });
});
-}
-// 数组响应式处理
-function dependArray(value) {
- for (let e, i = 0, l = value.length; i < l; i++) {
- e = value[i];
- e && e.__ob__ && e.__ob__.dep.depend();
- if (Array.isArray(e)) {
- dependArray(e);
+ var _aFunction = function (it) {
+ if (typeof it != 'function') throw TypeError(it + ' is not a function!');
+ return it;
+ };
+
+ // optional / simple context binding
+
+ var _ctx = function (fn, that, length) {
+ _aFunction(fn);
+ if (that === undefined) return fn;
+ switch (length) {
+ case 1: return function (a) {
+ return fn.call(that, a);
+ };
+ case 2: return function (a, b) {
+ return fn.call(that, a, b);
+ };
+ case 3: return function (a, b, c) {
+ return fn.call(that, a, b, c);
+ };
+ }
+ return function (/* ...args */) {
+ return fn.apply(that, arguments);
+ };
+ };
+
+ var PROTOTYPE$2 = 'prototype';
+
+ var $export = function (type, name, source) {
+ var IS_FORCED = type & $export.F;
+ var IS_GLOBAL = type & $export.G;
+ var IS_STATIC = type & $export.S;
+ var IS_PROTO = type & $export.P;
+ var IS_BIND = type & $export.B;
+ var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE$2];
+ var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});
+ var expProto = exports[PROTOTYPE$2] || (exports[PROTOTYPE$2] = {});
+ var key, own, out, exp;
+ if (IS_GLOBAL) source = name;
+ for (key in source) {
+ // contains in native
+ own = !IS_FORCED && target && target[key] !== undefined;
+ // export native or passed
+ out = (own ? target : source)[key];
+ // bind timers to global for call from export context
+ exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;
+ // extend global
+ if (target) _redefine(target, key, out, type & $export.U);
+ // export
+ if (exports[key] != out) _hide(exports, key, exp);
+ if (IS_PROTO && expProto[key] != out) expProto[key] = out;
+ }
+ };
+ _global.core = _core;
+ // type bitmap
+ $export.F = 1; // forced
+ $export.G = 2; // global
+ $export.S = 4; // static
+ $export.P = 8; // proto
+ $export.B = 16; // bind
+ $export.W = 32; // wrap
+ $export.U = 64; // safe
+ $export.R = 128; // real proto method for `library`
+ var _export = $export;
+
+ var document$1 = _global.document;
+ var _html = document$1 && document$1.documentElement;
+
+ var toString$1 = {}.toString;
+
+ var _cof = function (it) {
+ return toString$1.call(it).slice(8, -1);
+ };
+
+ // 7.1.4 ToInteger
+ var ceil = Math.ceil;
+ var floor$1 = Math.floor;
+ var _toInteger = function (it) {
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor$1 : ceil)(it);
+ };
+
+ var max$1 = Math.max;
+ var min$2 = Math.min;
+ var _toAbsoluteIndex = function (index, length) {
+ index = _toInteger(index);
+ return index < 0 ? max$1(index + length, 0) : min$2(index, length);
+ };
+
+ // 7.1.15 ToLength
+
+ var min$1 = Math.min;
+ var _toLength = function (it) {
+ return it > 0 ? min$1(_toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
+ };
+
+ var arraySlice = [].slice;
+
+ // fallback for not array-like ES3 strings and DOM objects
+ _export(_export.P + _export.F * _fails(function () {
+ if (_html) arraySlice.call(_html);
+ }), 'Array', {
+ slice: function slice(begin, end) {
+ var len = _toLength(this.length);
+ var klass = _cof(this);
+ end = end === undefined ? len : end;
+ if (klass == 'Array') return arraySlice.call(this, begin, end);
+ var start = _toAbsoluteIndex(begin, len);
+ var upTo = _toAbsoluteIndex(end, len);
+ var size = _toLength(upTo - start);
+ var cloned = new Array(size);
+ var i = 0;
+ for (; i < size; i++) cloned[i] = klass == 'String'
+ ? this.charAt(start + i)
+ : this[start + i];
+ return cloned;
+ }
+ });
+
+ // 7.2.1 RequireObjectCoercible(argument)
+ var _defined = function (it) {
+ if (it == undefined) throw TypeError("Can't call method on " + it);
+ return it;
+ };
+
+ // 7.1.13 ToObject(argument)
+
+ var _toObject = function (it) {
+ return Object(_defined(it));
+ };
+
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
+
+ // eslint-disable-next-line no-prototype-builtins
+ var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
+ return _cof(it) == 'String' ? it.split('') : Object(it);
+ };
+
+ // to indexed object, toObject with fallback for non-array-like ES3 strings
+
+
+ var _toIobject = function (it) {
+ return _iobject(_defined(it));
+ };
+
+ // false -> Array#indexOf
+ // true -> Array#includes
+
+
+
+ var _arrayIncludes = function (IS_INCLUDES) {
+ return function ($this, el, fromIndex) {
+ var O = _toIobject($this);
+ var length = _toLength(O.length);
+ var index = _toAbsoluteIndex(fromIndex, length);
+ var value;
+ // Array#includes uses SameValueZero equality algorithm
+ // eslint-disable-next-line no-self-compare
+ if (IS_INCLUDES && el != el) while (length > index) {
+ value = O[index++];
+ // eslint-disable-next-line no-self-compare
+ if (value != value) return true;
+ // Array#indexOf ignores holes, Array#includes - not
+ } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
+ if (O[index] === el) return IS_INCLUDES || index || 0;
+ } return !IS_INCLUDES && -1;
+ };
+ };
+
+ var shared = _shared('keys');
+
+ var _sharedKey = function (key) {
+ return shared[key] || (shared[key] = _uid(key));
+ };
+
+ var arrayIndexOf = _arrayIncludes(false);
+ var IE_PROTO$2 = _sharedKey('IE_PROTO');
+
+ var _objectKeysInternal = function (object, names) {
+ var O = _toIobject(object);
+ var i = 0;
+ var result = [];
+ var key;
+ for (key in O) if (key != IE_PROTO$2) _has(O, key) && result.push(key);
+ // Don't enum bug & hidden keys
+ while (names.length > i) if (_has(O, key = names[i++])) {
+ ~arrayIndexOf(result, key) || result.push(key);
}
- }
-}
-
-// 检测一个对象的属性是否存在
-const hasOwnProperty = Object.prototype.hasOwnProperty;
-function hasOwn(obj, key) {
- return hasOwnProperty.call(obj, key);
-}
-
-/**
- * 数组函数劫持
- */
-
-const arrayProto = Array.prototype;
-
-const arrayMethods = Object.create(arrayProto);
-
-const methodsToPatch = ["push", "pop", "shift", "unshift", "splice", "sort", "reverse"];
-
-methodsToPatch.forEach(function (method) {
- // 保存原始方法
- const original = arrayProto[method];
- // 覆盖之
- def(arrayMethods, method, function (...args) {
- // 1.执行默认方法
- const result = original.apply(this, args);
- // 2.变更通知
- const ob = this.__ob__;
- // 可能会有新元素加入
- let inserted;
- switch (method) {
- case 'push':
- case 'unshift':
- inserted = args;
- break;
- case 'splice':
- inserted = args.slice(2);
- break;
- }
- // 对新加入的元素做响应式
- if (inserted) ob.observeArray(inserted);
- // notify change
- // ob内部有一个dep,让它去通知更新
- ob.dep.notify();
return result;
+ };
+
+ // IE 8- don't enum bug keys
+ var _enumBugKeys = (
+ 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
+ ).split(',');
+
+ // 19.1.2.14 / 15.2.3.14 Object.keys(O)
+
+
+
+ var _objectKeys = Object.keys || function keys(O) {
+ return _objectKeysInternal(O, _enumBugKeys);
+ };
+
+ // most Object methods by ES6 should accept primitives
+
+
+
+ var _objectSap = function (KEY, exec) {
+ var fn = (_core.Object || {})[KEY] || Object[KEY];
+ var exp = {};
+ exp[KEY] = exec(fn);
+ _export(_export.S + _export.F * _fails(function () { fn(1); }), 'Object', exp);
+ };
+
+ // 19.1.2.14 Object.keys(O)
+
+
+
+ _objectSap('keys', function () {
+ return function keys(it) {
+ return _objectKeys(_toObject(it));
+ };
});
-});
-
-/**
- * 响应式数据
- */
-
-class Observer {
- constructor(value) {
- this.value = value;
- this.dep = new Dep();
- def(value, '__ob__', this);
- if (Array.isArray(value)) {
- if ('__proto__' in {}) {
- value.__proto__ = arrayMethods;
+
+ var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
+ _anObject(O);
+ var keys = _objectKeys(Properties);
+ var length = keys.length;
+ var i = 0;
+ var P;
+ while (length > i) _objectDp.f(O, P = keys[i++], Properties[P]);
+ return O;
+ };
+
+ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+
+
+
+ var IE_PROTO$1 = _sharedKey('IE_PROTO');
+ var Empty = function () { /* empty */ };
+ var PROTOTYPE$1 = 'prototype';
+
+ // Create object with fake `null` prototype: use iframe Object with cleared prototype
+ var createDict = function () {
+ // Thrash, waste and sodomy: IE GC bug
+ var iframe = _domCreate('iframe');
+ var i = _enumBugKeys.length;
+ var lt = '<';
+ var gt = '>';
+ var iframeDocument;
+ iframe.style.display = 'none';
+ _html.appendChild(iframe);
+ iframe.src = 'javascript:'; // eslint-disable-line no-script-url
+ // createDict = iframe.contentWindow.Object;
+ // html.removeChild(iframe);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
+ iframeDocument.close();
+ createDict = iframeDocument.F;
+ while (i--) delete createDict[PROTOTYPE$1][_enumBugKeys[i]];
+ return createDict();
+ };
+
+ var _objectCreate = Object.create || function create(O, Properties) {
+ var result;
+ if (O !== null) {
+ Empty[PROTOTYPE$1] = _anObject(O);
+ result = new Empty();
+ Empty[PROTOTYPE$1] = null;
+ // add "__proto__" for Object.getPrototypeOf polyfill
+ result[IE_PROTO$1] = O;
+ } else result = createDict();
+ return Properties === undefined ? result : _objectDps(result, Properties);
+ };
+
+ var _redefineAll = function (target, src, safe) {
+ for (var key in src) _redefine(target, key, src[key], safe);
+ return target;
+ };
+
+ var _anInstance = function (it, Constructor, name, forbiddenField) {
+ if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
+ throw TypeError(name + ': incorrect invocation!');
+ } return it;
+ };
+
+ // call something on iterator step with safe closing on error
+
+ var _iterCall = function (iterator, fn, value, entries) {
+ try {
+ return entries ? fn(_anObject(value)[0], value[1]) : fn(value);
+ // 7.4.6 IteratorClose(iterator, completion)
+ } catch (e) {
+ var ret = iterator['return'];
+ if (ret !== undefined) _anObject(ret.call(iterator));
+ throw e;
+ }
+ };
+
+ var _iterators = {};
+
+ var _wks = createCommonjsModule(function (module) {
+ var store = _shared('wks');
+
+ var Symbol = _global.Symbol;
+ var USE_SYMBOL = typeof Symbol == 'function';
+
+ var $exports = module.exports = function (name) {
+ return store[name] || (store[name] =
+ USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : _uid)('Symbol.' + name));
+ };
+
+ $exports.store = store;
+ });
+
+ // check on default Array iterator
+
+ var ITERATOR$4 = _wks('iterator');
+ var ArrayProto$1 = Array.prototype;
+
+ var _isArrayIter = function (it) {
+ return it !== undefined && (_iterators.Array === it || ArrayProto$1[ITERATOR$4] === it);
+ };
+
+ // getting tag from 19.1.3.6 Object.prototype.toString()
+
+ var TAG$1 = _wks('toStringTag');
+ // ES3 wrong here
+ var ARG = _cof(function () { return arguments; }()) == 'Arguments';
+
+ // fallback for IE11 Script Access Denied error
+ var tryGet = function (it, key) {
+ try {
+ return it[key];
+ } catch (e) { /* empty */ }
+ };
+
+ var _classof = function (it) {
+ var O, T, B;
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
+ // @@toStringTag case
+ : typeof (T = tryGet(O = Object(it), TAG$1)) == 'string' ? T
+ // builtinTag case
+ : ARG ? _cof(O)
+ // ES3 arguments fallback
+ : (B = _cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
+ };
+
+ var ITERATOR$3 = _wks('iterator');
+
+ var core_getIteratorMethod = _core.getIteratorMethod = function (it) {
+ if (it != undefined) return it[ITERATOR$3]
+ || it['@@iterator']
+ || _iterators[_classof(it)];
+ };
+
+ var _forOf = createCommonjsModule(function (module) {
+ var BREAK = {};
+ var RETURN = {};
+ var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
+ var iterFn = ITERATOR ? function () { return iterable; } : core_getIteratorMethod(iterable);
+ var f = _ctx(fn, that, entries ? 2 : 1);
+ var index = 0;
+ var length, step, iterator, result;
+ if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
+ // fast case for arrays with default iterator
+ if (_isArrayIter(iterFn)) for (length = _toLength(iterable.length); length > index; index++) {
+ result = entries ? f(_anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ if (result === BREAK || result === RETURN) return result;
+ } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
+ result = _iterCall(iterator, f, step.value, entries);
+ if (result === BREAK || result === RETURN) return result;
+ }
+ };
+ exports.BREAK = BREAK;
+ exports.RETURN = RETURN;
+ });
+
+ var def$1 = _objectDp.f;
+
+ var TAG = _wks('toStringTag');
+
+ var _setToStringTag = function (it, tag, stat) {
+ if (it && !_has(it = stat ? it : it.prototype, TAG)) def$1(it, TAG, { configurable: true, value: tag });
+ };
+
+ var IteratorPrototype = {};
+
+ // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
+ _hide(IteratorPrototype, _wks('iterator'), function () { return this; });
+
+ var _iterCreate = function (Constructor, NAME, next) {
+ Constructor.prototype = _objectCreate(IteratorPrototype, { next: _propertyDesc(1, next) });
+ _setToStringTag(Constructor, NAME + ' Iterator');
+ };
+
+ // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
+
+
+ var IE_PROTO = _sharedKey('IE_PROTO');
+ var ObjectProto$1 = Object.prototype;
+
+ var _objectGpo = Object.getPrototypeOf || function (O) {
+ O = _toObject(O);
+ if (_has(O, IE_PROTO)) return O[IE_PROTO];
+ if (typeof O.constructor == 'function' && O instanceof O.constructor) {
+ return O.constructor.prototype;
+ } return O instanceof Object ? ObjectProto$1 : null;
+ };
+
+ var ITERATOR$2 = _wks('iterator');
+ var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
+ var FF_ITERATOR = '@@iterator';
+ var KEYS = 'keys';
+ var VALUES = 'values';
+
+ var returnThis = function () { return this; };
+
+ var _iterDefine = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
+ _iterCreate(Constructor, NAME, next);
+ var getMethod = function (kind) {
+ if (!BUGGY && kind in proto) return proto[kind];
+ switch (kind) {
+ case KEYS: return function keys() { return new Constructor(this, kind); };
+ case VALUES: return function values() { return new Constructor(this, kind); };
+ } return function entries() { return new Constructor(this, kind); };
+ };
+ var TAG = NAME + ' Iterator';
+ var DEF_VALUES = DEFAULT == VALUES;
+ var VALUES_BUG = false;
+ var proto = Base.prototype;
+ var $native = proto[ITERATOR$2] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
+ var $default = $native || getMethod(DEFAULT);
+ var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
+ var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
+ var methods, key, IteratorPrototype;
+ // Fix native
+ if ($anyNative) {
+ IteratorPrototype = _objectGpo($anyNative.call(new Base()));
+ if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
+ // Set @@toStringTag to native iterators
+ _setToStringTag(IteratorPrototype, TAG, true);
+ // fix for some old engines
+ if (typeof IteratorPrototype[ITERATOR$2] != 'function') _hide(IteratorPrototype, ITERATOR$2, returnThis);
}
- this.observeArray(value);
+ }
+ // fix Array#{values, @@iterator}.name in V8 / FF
+ if (DEF_VALUES && $native && $native.name !== VALUES) {
+ VALUES_BUG = true;
+ $default = function values() { return $native.call(this); };
+ }
+ // Define iterator
+ if ((BUGGY || VALUES_BUG || !proto[ITERATOR$2])) {
+ _hide(proto, ITERATOR$2, $default);
+ }
+ // Plug for library
+ _iterators[NAME] = $default;
+ _iterators[TAG] = returnThis;
+ if (DEFAULT) {
+ methods = {
+ values: DEF_VALUES ? $default : getMethod(VALUES),
+ keys: IS_SET ? $default : getMethod(KEYS),
+ entries: $entries
+ };
+ if (FORCED) for (key in methods) {
+ if (!(key in proto)) _redefine(proto, key, methods[key]);
+ } else _export(_export.P + _export.F * (BUGGY || VALUES_BUG), NAME, methods);
+ }
+ return methods;
+ };
+
+ var _iterStep = function (done, value) {
+ return { value: value, done: !!done };
+ };
+
+ var SPECIES$2 = _wks('species');
+
+ var _setSpecies = function (KEY) {
+ var C = _global[KEY];
+ if (_descriptors && C && !C[SPECIES$2]) _objectDp.f(C, SPECIES$2, {
+ configurable: true,
+ get: function () { return this; }
+ });
+ };
+
+ var _meta = createCommonjsModule(function (module) {
+ var META = _uid('meta');
+
+
+ var setDesc = _objectDp.f;
+ var id = 0;
+ var isExtensible = Object.isExtensible || function () {
+ return true;
+ };
+ var FREEZE = !_fails(function () {
+ return isExtensible(Object.preventExtensions({}));
+ });
+ var setMeta = function (it) {
+ setDesc(it, META, { value: {
+ i: 'O' + ++id, // object ID
+ w: {} // weak collections IDs
+ } });
+ };
+ var fastKey = function (it, create) {
+ // return primitive with prefix
+ if (!_isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+ if (!_has(it, META)) {
+ // can't set metadata to uncaught frozen object
+ if (!isExtensible(it)) return 'F';
+ // not necessary to add metadata
+ if (!create) return 'E';
+ // add missing metadata
+ setMeta(it);
+ // return object ID
+ } return it[META].i;
+ };
+ var getWeak = function (it, create) {
+ if (!_has(it, META)) {
+ // can't set metadata to uncaught frozen object
+ if (!isExtensible(it)) return true;
+ // not necessary to add metadata
+ if (!create) return false;
+ // add missing metadata
+ setMeta(it);
+ // return hash weak collections IDs
+ } return it[META].w;
+ };
+ // add metadata on freeze-family methods calling
+ var onFreeze = function (it) {
+ if (FREEZE && meta.NEED && isExtensible(it) && !_has(it, META)) setMeta(it);
+ return it;
+ };
+ var meta = module.exports = {
+ KEY: META,
+ NEED: false,
+ fastKey: fastKey,
+ getWeak: getWeak,
+ onFreeze: onFreeze
+ };
+ });
+ _meta.KEY;
+ _meta.NEED;
+ _meta.fastKey;
+ _meta.getWeak;
+ _meta.onFreeze;
+
+ var _validateCollection = function (it, TYPE) {
+ if (!_isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+ return it;
+ };
+
+ var dP$3 = _objectDp.f;
+
+
+
+
+
+
+
+
+
+ var fastKey = _meta.fastKey;
+
+ var SIZE = _descriptors ? '_s' : 'size';
+
+ var getEntry = function (that, key) {
+ // fast case
+ var index = fastKey(key);
+ var entry;
+ if (index !== 'F') return that._i[index];
+ // frozen object case
+ for (entry = that._f; entry; entry = entry.n) {
+ if (entry.k == key) return entry;
+ }
+ };
+
+ var _collectionStrong = {
+ getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+ var C = wrapper(function (that, iterable) {
+ _anInstance(that, C, NAME, '_i');
+ that._t = NAME; // collection type
+ that._i = _objectCreate(null); // index
+ that._f = undefined; // first entry
+ that._l = undefined; // last entry
+ that[SIZE] = 0; // size
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
+ });
+ _redefineAll(C.prototype, {
+ // 23.1.3.1 Map.prototype.clear()
+ // 23.2.3.2 Set.prototype.clear()
+ clear: function clear() {
+ for (var that = _validateCollection(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+ entry.r = true;
+ if (entry.p) entry.p = entry.p.n = undefined;
+ delete data[entry.i];
+ }
+ that._f = that._l = undefined;
+ that[SIZE] = 0;
+ },
+ // 23.1.3.3 Map.prototype.delete(key)
+ // 23.2.3.4 Set.prototype.delete(value)
+ 'delete': function (key) {
+ var that = _validateCollection(this, NAME);
+ var entry = getEntry(that, key);
+ if (entry) {
+ var next = entry.n;
+ var prev = entry.p;
+ delete that._i[entry.i];
+ entry.r = true;
+ if (prev) prev.n = next;
+ if (next) next.p = prev;
+ if (that._f == entry) that._f = next;
+ if (that._l == entry) that._l = prev;
+ that[SIZE]--;
+ } return !!entry;
+ },
+ // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
+ // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
+ forEach: function forEach(callbackfn /* , that = undefined */) {
+ _validateCollection(this, NAME);
+ var f = _ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+ var entry;
+ while (entry = entry ? entry.n : this._f) {
+ f(entry.v, entry.k, this);
+ // revert to the last existing entry
+ while (entry && entry.r) entry = entry.p;
+ }
+ },
+ // 23.1.3.7 Map.prototype.has(key)
+ // 23.2.3.7 Set.prototype.has(value)
+ has: function has(key) {
+ return !!getEntry(_validateCollection(this, NAME), key);
+ }
+ });
+ if (_descriptors) dP$3(C.prototype, 'size', {
+ get: function () {
+ return _validateCollection(this, NAME)[SIZE];
+ }
+ });
+ return C;
+ },
+ def: function (that, key, value) {
+ var entry = getEntry(that, key);
+ var prev, index;
+ // change existing entry
+ if (entry) {
+ entry.v = value;
+ // create new entry
+ } else {
+ that._l = entry = {
+ i: index = fastKey(key, true), // <- index
+ k: key, // <- key
+ v: value, // <- value
+ p: prev = that._l, // <- previous entry
+ n: undefined, // <- next entry
+ r: false // <- removed
+ };
+ if (!that._f) that._f = entry;
+ if (prev) prev.n = entry;
+ that[SIZE]++;
+ // add to index
+ if (index !== 'F') that._i[index] = entry;
+ } return that;
+ },
+ getEntry: getEntry,
+ setStrong: function (C, NAME, IS_MAP) {
+ // add .keys, .values, .entries, [@@iterator]
+ // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
+ _iterDefine(C, NAME, function (iterated, kind) {
+ this._t = _validateCollection(iterated, NAME); // target
+ this._k = kind; // kind
+ this._l = undefined; // previous
+ }, function () {
+ var that = this;
+ var kind = that._k;
+ var entry = that._l;
+ // revert to the last existing entry
+ while (entry && entry.r) entry = entry.p;
+ // get next entry
+ if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
+ // or finish the iteration
+ that._t = undefined;
+ return _iterStep(1);
+ }
+ // return step by kind
+ if (kind == 'keys') return _iterStep(0, entry.k);
+ if (kind == 'values') return _iterStep(0, entry.v);
+ return _iterStep(0, [entry.k, entry.v]);
+ }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
+
+ // add [@@species], 23.1.2.2, 23.2.2.2
+ _setSpecies(NAME);
+ }
+ };
+ _collectionStrong.getConstructor;
+ _collectionStrong.def;
+ _collectionStrong.getEntry;
+ _collectionStrong.setStrong;
+
+ var ITERATOR$1 = _wks('iterator');
+ var SAFE_CLOSING = false;
+
+ try {
+ var riter = [7][ITERATOR$1]();
+ riter['return'] = function () { SAFE_CLOSING = true; };
+ // eslint-disable-next-line no-throw-literal
+ Array.from(riter, function () { throw 2; });
+ } catch (e) { /* empty */ }
+
+ var _iterDetect = function (exec, skipClosing) {
+ if (!skipClosing && !SAFE_CLOSING) return false;
+ var safe = false;
+ try {
+ var arr = [7];
+ var iter = arr[ITERATOR$1]();
+ iter.next = function () { return { done: safe = true }; };
+ arr[ITERATOR$1] = function () { return iter; };
+ exec(arr);
+ } catch (e) { /* empty */ }
+ return safe;
+ };
+
+ var f$5 = {}.propertyIsEnumerable;
+
+ var _objectPie = {
+ f: f$5
+ };
+
+ var gOPD$1 = Object.getOwnPropertyDescriptor;
+
+ var f$4 = _descriptors ? gOPD$1 : function getOwnPropertyDescriptor(O, P) {
+ O = _toIobject(O);
+ P = _toPrimitive(P, true);
+ if (_ie8DomDefine) try {
+ return gOPD$1(O, P);
+ } catch (e) { /* empty */ }
+ if (_has(O, P)) return _propertyDesc(!_objectPie.f.call(O, P), O[P]);
+ };
+
+ var _objectGopd = {
+ f: f$4
+ };
+
+ // Works with __proto__ only. Old v8 can't work with null proto objects.
+ /* eslint-disable no-proto */
+
+
+ var check = function (O, proto) {
+ _anObject(O);
+ if (!_isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
+ };
+ var _setProto = {
+ set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
+ function (test, buggy, set) {
+ try {
+ set = _ctx(Function.call, _objectGopd.f(Object.prototype, '__proto__').set, 2);
+ set(test, []);
+ buggy = !(test instanceof Array);
+ } catch (e) { buggy = true; }
+ return function setPrototypeOf(O, proto) {
+ check(O, proto);
+ if (buggy) O.__proto__ = proto;
+ else set(O, proto);
+ return O;
+ };
+ }({}, false) : undefined),
+ check: check
+ };
+
+ var setPrototypeOf = _setProto.set;
+ var _inheritIfRequired = function (that, target, C) {
+ var S = target.constructor;
+ var P;
+ if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && _isObject(P) && setPrototypeOf) {
+ setPrototypeOf(that, P);
+ } return that;
+ };
+
+ var _collection = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
+ var Base = _global[NAME];
+ var C = Base;
+ var ADDER = IS_MAP ? 'set' : 'add';
+ var proto = C && C.prototype;
+ var O = {};
+ var fixMethod = function (KEY) {
+ var fn = proto[KEY];
+ _redefine(proto, KEY,
+ KEY == 'delete' ? function (a) {
+ return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'has' ? function has(a) {
+ return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'get' ? function get(a) {
+ return IS_WEAK && !_isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
+ } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
+ : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
+ );
+ };
+ if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !_fails(function () {
+ new C().entries().next();
+ }))) {
+ // create collection constructor
+ C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
+ _redefineAll(C.prototype, methods);
+ _meta.NEED = true;
} else {
- this.walk(value);
+ var instance = new C();
+ // early implementations not supports chaining
+ var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
+ // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
+ var THROWS_ON_PRIMITIVES = _fails(function () { instance.has(1); });
+ // most early implementations doesn't supports iterables, most modern - not close it correctly
+ var ACCEPT_ITERABLES = _iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
+ // for early implementations -0 and +0 not the same
+ var BUGGY_ZERO = !IS_WEAK && _fails(function () {
+ // V8 ~ Chromium 42- fails only with 5+ elements
+ var $instance = new C();
+ var index = 5;
+ while (index--) $instance[ADDER](index, index);
+ return !$instance.has(-0);
+ });
+ if (!ACCEPT_ITERABLES) {
+ C = wrapper(function (target, iterable) {
+ _anInstance(target, C, NAME);
+ var that = _inheritIfRequired(new Base(), target, C);
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
+ return that;
+ });
+ C.prototype = proto;
+ proto.constructor = C;
+ }
+ if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
+ fixMethod('delete');
+ fixMethod('has');
+ IS_MAP && fixMethod('get');
+ }
+ if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
+ // weak collections should not contains .clear method
+ if (IS_WEAK && proto.clear) delete proto.clear;
+ }
+
+ _setToStringTag(C, NAME);
+
+ O[NAME] = C;
+ _export(_export.G + _export.W + _export.F * (C != Base), O);
+
+ if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
+
+ return C;
+ };
+
+ var SET = 'Set';
+
+ // 23.2 Set Objects
+ _collection(SET, function (get) {
+ return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
+ }, {
+ // 23.2.3.1 Set.prototype.add(value)
+ add: function add(value) {
+ return _collectionStrong.def(_validateCollection(this, SET), value = value === 0 ? 0 : value, value);
}
+ }, _collectionStrong);
+
+ // true -> String#at
+ // false -> String#codePointAt
+ var _stringAt = function (TO_STRING) {
+ return function (that, pos) {
+ var s = String(_defined(that));
+ var i = _toInteger(pos);
+ var l = s.length;
+ var a, b;
+ if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
+ a = s.charCodeAt(i);
+ return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
+ ? TO_STRING ? s.charAt(i) : a
+ : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
+ };
+ };
+
+ var $at = _stringAt(true);
+
+ // 21.1.3.27 String.prototype[@@iterator]()
+ _iterDefine(String, 'String', function (iterated) {
+ this._t = String(iterated); // target
+ this._i = 0; // next index
+ // 21.1.5.2.1 %StringIteratorPrototype%.next()
+ }, function () {
+ var O = this._t;
+ var index = this._i;
+ var point;
+ if (index >= O.length) return { value: undefined, done: true };
+ point = $at(O, index);
+ this._i += point.length;
+ return { value: point, done: false };
+ });
+
+ // 19.1.3.6 Object.prototype.toString()
+
+ var test = {};
+ test[_wks('toStringTag')] = 'z';
+ if (test + '' != '[object z]') {
+ _redefine(Object.prototype, 'toString', function toString() {
+ return '[object ' + _classof(this) + ']';
+ }, true);
}
- // 数组响应式处理
- observeArray(arr) {
- for (let i = 0, l = arr.length; i < l; i++) {
- observe(arr[i]);
+ // 22.1.3.31 Array.prototype[@@unscopables]
+ var UNSCOPABLES = _wks('unscopables');
+ var ArrayProto = Array.prototype;
+ if (ArrayProto[UNSCOPABLES] == undefined) _hide(ArrayProto, UNSCOPABLES, {});
+ var _addToUnscopables = function (key) {
+ ArrayProto[UNSCOPABLES][key] = true;
+ };
+
+ // 22.1.3.4 Array.prototype.entries()
+ // 22.1.3.13 Array.prototype.keys()
+ // 22.1.3.29 Array.prototype.values()
+ // 22.1.3.30 Array.prototype[@@iterator]()
+ var es6_array_iterator = _iterDefine(Array, 'Array', function (iterated, kind) {
+ this._t = _toIobject(iterated); // target
+ this._i = 0; // next index
+ this._k = kind; // kind
+ // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
+ }, function () {
+ var O = this._t;
+ var kind = this._k;
+ var index = this._i++;
+ if (!O || index >= O.length) {
+ this._t = undefined;
+ return _iterStep(1);
+ }
+ if (kind == 'keys') return _iterStep(0, index);
+ if (kind == 'values') return _iterStep(0, O[index]);
+ return _iterStep(0, [index, O[index]]);
+ }, 'values');
+
+ // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
+ _iterators.Arguments = _iterators.Array;
+
+ _addToUnscopables('keys');
+ _addToUnscopables('values');
+ _addToUnscopables('entries');
+
+ var ITERATOR = _wks('iterator');
+ var TO_STRING_TAG = _wks('toStringTag');
+ var ArrayValues = _iterators.Array;
+
+ var DOMIterables = {
+ CSSRuleList: true, // TODO: Not spec compliant, should be false.
+ CSSStyleDeclaration: false,
+ CSSValueList: false,
+ ClientRectList: false,
+ DOMRectList: false,
+ DOMStringList: false,
+ DOMTokenList: true,
+ DataTransferItemList: false,
+ FileList: false,
+ HTMLAllCollection: false,
+ HTMLCollection: false,
+ HTMLFormElement: false,
+ HTMLSelectElement: false,
+ MediaList: true, // TODO: Not spec compliant, should be false.
+ MimeTypeArray: false,
+ NamedNodeMap: false,
+ NodeList: true,
+ PaintRequestList: false,
+ Plugin: false,
+ PluginArray: false,
+ SVGLengthList: false,
+ SVGNumberList: false,
+ SVGPathSegList: false,
+ SVGPointList: false,
+ SVGStringList: false,
+ SVGTransformList: false,
+ SourceBufferList: false,
+ StyleSheetList: true, // TODO: Not spec compliant, should be false.
+ TextTrackCueList: false,
+ TextTrackList: false,
+ TouchList: false
+ };
+
+ for (var collections = _objectKeys(DOMIterables), i$1 = 0; i$1 < collections.length; i$1++) {
+ var NAME$1 = collections[i$1];
+ var explicit = DOMIterables[NAME$1];
+ var Collection = _global[NAME$1];
+ var proto$1 = Collection && Collection.prototype;
+ var key;
+ if (proto$1) {
+ if (!proto$1[ITERATOR]) _hide(proto$1, ITERATOR, ArrayValues);
+ if (!proto$1[TO_STRING_TAG]) _hide(proto$1, TO_STRING_TAG, NAME$1);
+ _iterators[NAME$1] = ArrayValues;
+ if (explicit) for (key in es6_array_iterator) if (!proto$1[key]) _redefine(proto$1, key, es6_array_iterator[key], true);
}
}
- // 对象响应式处理
- walk(obj) {
- Object.keys(obj).forEach(key => {
- defineReactive(obj, key, obj[key]);
- });
+ /**
+ * 消息管理器
+ */
+ var Dep = /*#__PURE__*/function () {
+ function Dep() {
+ _classCallCheck(this, Dep);
+
+ this.deps = new Set();
+ } // 添加订阅者
+
+
+ _createClass(Dep, [{
+ key: "addSub",
+ value: function addSub(watcher) {
+ this.deps.add(watcher);
+ } // 操作watcher addDep 方法
+
+ }, {
+ key: "depend",
+ value: function depend() {
+ if (Dep.target) {
+ Dep.target.addDep(this);
+ }
+ } // 通知更新
+
+ }, {
+ key: "notify",
+ value: function notify() {
+ this.deps.forEach(function (watcher) {
+ return watcher.update();
+ });
+ }
+ }]);
+
+ return Dep;
+ }();
+
+ // 7.2.8 IsRegExp(argument)
+
+
+ var MATCH = _wks('match');
+ var _isRegexp = function (it) {
+ var isRegExp;
+ return _isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : _cof(it) == 'RegExp');
+ };
+
+ // 7.3.20 SpeciesConstructor(O, defaultConstructor)
+
+
+ var SPECIES$1 = _wks('species');
+ var _speciesConstructor = function (O, D) {
+ var C = _anObject(O).constructor;
+ var S;
+ return C === undefined || (S = _anObject(C)[SPECIES$1]) == undefined ? D : _aFunction(S);
+ };
+
+ var at = _stringAt(true);
+
+ // `AdvanceStringIndex` abstract operation
+ // https://tc39.github.io/ecma262/#sec-advancestringindex
+ var _advanceStringIndex = function (S, index, unicode) {
+ return index + (unicode ? at(S, index).length : 1);
+ };
+
+ var builtinExec = RegExp.prototype.exec;
+
+ // `RegExpExec` abstract operation
+ // https://tc39.github.io/ecma262/#sec-regexpexec
+ var _regexpExecAbstract = function (R, S) {
+ var exec = R.exec;
+ if (typeof exec === 'function') {
+ var result = exec.call(R, S);
+ if (typeof result !== 'object') {
+ throw new TypeError('RegExp exec method returned something other than an Object or null');
+ }
+ return result;
+ }
+ if (_classof(R) !== 'RegExp') {
+ throw new TypeError('RegExp#exec called on incompatible receiver');
+ }
+ return builtinExec.call(R, S);
+ };
+
+ // 21.2.5.3 get RegExp.prototype.flags
+
+ var _flags = function () {
+ var that = _anObject(this);
+ var result = '';
+ if (that.global) result += 'g';
+ if (that.ignoreCase) result += 'i';
+ if (that.multiline) result += 'm';
+ if (that.unicode) result += 'u';
+ if (that.sticky) result += 'y';
+ return result;
+ };
+
+ var nativeExec = RegExp.prototype.exec;
+ // This always refers to the native implementation, because the
+ // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
+ // which loads this file before patching the method.
+ var nativeReplace = String.prototype.replace;
+
+ var patchedExec = nativeExec;
+
+ var LAST_INDEX$1 = 'lastIndex';
+
+ var UPDATES_LAST_INDEX_WRONG = (function () {
+ var re1 = /a/,
+ re2 = /b*/g;
+ nativeExec.call(re1, 'a');
+ nativeExec.call(re2, 'a');
+ return re1[LAST_INDEX$1] !== 0 || re2[LAST_INDEX$1] !== 0;
+ })();
+
+ // nonparticipating capturing group, copied from es5-shim's String#split patch.
+ var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
+
+ var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
+
+ if (PATCH) {
+ patchedExec = function exec(str) {
+ var re = this;
+ var lastIndex, reCopy, match, i;
+
+ if (NPCG_INCLUDED) {
+ reCopy = new RegExp('^' + re.source + '$(?!\\s)', _flags.call(re));
+ }
+ if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX$1];
+
+ match = nativeExec.call(re, str);
+
+ if (UPDATES_LAST_INDEX_WRONG && match) {
+ re[LAST_INDEX$1] = re.global ? match.index + match[0].length : lastIndex;
+ }
+ if (NPCG_INCLUDED && match && match.length > 1) {
+ // Fix browsers whose `exec` methods don't consistently return `undefined`
+ // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
+ // eslint-disable-next-line no-loop-func
+ nativeReplace.call(match[0], reCopy, function () {
+ for (i = 1; i < arguments.length - 2; i++) {
+ if (arguments[i] === undefined) match[i] = undefined;
+ }
+ });
+ }
+
+ return match;
+ };
}
-}
-
-// 数据劫持
-function defineReactive(obj, key, val) {
- let childOb = observe(val);
- // 每一可以对应一个 dep;
- const dep = new Dep();
- Object.defineProperty(obj, key, {
- get() {
- // 依赖收集
- dep.depend();
- if (childOb) {
- // 子ob也要做依赖收集
- childOb.dep.depend();
- if (Array.isArray(val)) {
- dependArray(val);
+
+ var _regexpExec = patchedExec;
+
+ _export({
+ target: 'RegExp',
+ proto: true,
+ forced: _regexpExec !== /./.exec
+ }, {
+ exec: _regexpExec
+ });
+
+ var SPECIES = _wks('species');
+
+ var REPLACE_SUPPORTS_NAMED_GROUPS = !_fails(function () {
+ // #replace needs built-in support for named groups.
+ // #match works fine because it just return the exec results, even if it has
+ // a "grops" property.
+ var re = /./;
+ re.exec = function () {
+ var result = [];
+ result.groups = { a: '7' };
+ return result;
+ };
+ return ''.replace(re, '$') !== '7';
+ });
+
+ var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
+ // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
+ var re = /(?:)/;
+ var originalExec = re.exec;
+ re.exec = function () { return originalExec.apply(this, arguments); };
+ var result = 'ab'.split(re);
+ return result.length === 2 && result[0] === 'a' && result[1] === 'b';
+ })();
+
+ var _fixReWks = function (KEY, length, exec) {
+ var SYMBOL = _wks(KEY);
+
+ var DELEGATES_TO_SYMBOL = !_fails(function () {
+ // String methods call symbol-named RegEp methods
+ var O = {};
+ O[SYMBOL] = function () { return 7; };
+ return ''[KEY](O) != 7;
+ });
+
+ var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !_fails(function () {
+ // Symbol-named RegExp methods call .exec
+ var execCalled = false;
+ var re = /a/;
+ re.exec = function () { execCalled = true; return null; };
+ if (KEY === 'split') {
+ // RegExp[@@split] doesn't call the regex's exec method, but first creates
+ // a new one. We need to return the patched regex when creating the new one.
+ re.constructor = {};
+ re.constructor[SPECIES] = function () { return re; };
+ }
+ re[SYMBOL]('');
+ return !execCalled;
+ }) : undefined;
+
+ if (
+ !DELEGATES_TO_SYMBOL ||
+ !DELEGATES_TO_EXEC ||
+ (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
+ (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
+ ) {
+ var nativeRegExpMethod = /./[SYMBOL];
+ var fns = exec(
+ _defined,
+ SYMBOL,
+ ''[KEY],
+ function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
+ if (regexp.exec === _regexpExec) {
+ if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
+ // The native String method already delegates to @@method (this
+ // polyfilled function), leasing to infinite recursion.
+ // We avoid it by directly calling the native @@method method.
+ return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
+ }
+ return { done: true, value: nativeMethod.call(str, regexp, arg2) };
+ }
+ return { done: false };
+ }
+ );
+ var strfn = fns[0];
+ var rxfn = fns[1];
+
+ _redefine(String.prototype, KEY, strfn);
+ _hide(RegExp.prototype, SYMBOL, length == 2
+ // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
+ // 21.2.5.11 RegExp.prototype[@@split](string, limit)
+ ? function (string, arg) { return rxfn.call(string, this, arg); }
+ // 21.2.5.6 RegExp.prototype[@@match](string)
+ // 21.2.5.9 RegExp.prototype[@@search](string)
+ : function (string) { return rxfn.call(string, this); }
+ );
+ }
+ };
+
+ var $min = Math.min;
+ var $push = [].push;
+ var $SPLIT = 'split';
+ var LENGTH = 'length';
+ var LAST_INDEX = 'lastIndex';
+ var MAX_UINT32 = 0xffffffff;
+
+ // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
+ var SUPPORTS_Y = !_fails(function () { RegExp(MAX_UINT32, 'y'); });
+
+ // @@split logic
+ _fixReWks('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
+ var internalSplit;
+ if (
+ 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
+ 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
+ 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
+ '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
+ '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
+ ''[$SPLIT](/.?/)[LENGTH]
+ ) {
+ // based on es5-shim implementation, need to rework it
+ internalSplit = function (separator, limit) {
+ var string = String(this);
+ if (separator === undefined && limit === 0) return [];
+ // If `separator` is not a regex, use native split
+ if (!_isRegexp(separator)) return $split.call(string, separator, limit);
+ var output = [];
+ var flags = (separator.ignoreCase ? 'i' : '') +
+ (separator.multiline ? 'm' : '') +
+ (separator.unicode ? 'u' : '') +
+ (separator.sticky ? 'y' : '');
+ var lastLastIndex = 0;
+ var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
+ // Make `global` and avoid `lastIndex` issues by working with a copy
+ var separatorCopy = new RegExp(separator.source, flags + 'g');
+ var match, lastIndex, lastLength;
+ while (match = _regexpExec.call(separatorCopy, string)) {
+ lastIndex = separatorCopy[LAST_INDEX];
+ if (lastIndex > lastLastIndex) {
+ output.push(string.slice(lastLastIndex, match.index));
+ if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
+ lastLength = match[0][LENGTH];
+ lastLastIndex = lastIndex;
+ if (output[LENGTH] >= splitLimit) break;
+ }
+ if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
+ }
+ if (lastLastIndex === string[LENGTH]) {
+ if (lastLength || !separatorCopy.test('')) output.push('');
+ } else output.push(string.slice(lastLastIndex));
+ return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
+ };
+ // Chakra, V8
+ } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
+ internalSplit = function (separator, limit) {
+ return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
+ };
+ } else {
+ internalSplit = $split;
+ }
+
+ return [
+ // `String.prototype.split` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.split
+ function split(separator, limit) {
+ var O = defined(this);
+ var splitter = separator == undefined ? undefined : separator[SPLIT];
+ return splitter !== undefined
+ ? splitter.call(separator, O, limit)
+ : internalSplit.call(String(O), separator, limit);
+ },
+ // `RegExp.prototype[@@split]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
+ //
+ // NOTE: This cannot be properly polyfilled in engines that don't support
+ // the 'y' flag.
+ function (regexp, limit) {
+ var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
+ if (res.done) return res.value;
+
+ var rx = _anObject(regexp);
+ var S = String(this);
+ var C = _speciesConstructor(rx, RegExp);
+
+ var unicodeMatching = rx.unicode;
+ var flags = (rx.ignoreCase ? 'i' : '') +
+ (rx.multiline ? 'm' : '') +
+ (rx.unicode ? 'u' : '') +
+ (SUPPORTS_Y ? 'y' : 'g');
+
+ // ^(? + rx + ) is needed, in combination with some S slicing, to
+ // simulate the 'y' flag.
+ var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
+ var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
+ if (lim === 0) return [];
+ if (S.length === 0) return _regexpExecAbstract(splitter, S) === null ? [S] : [];
+ var p = 0;
+ var q = 0;
+ var A = [];
+ while (q < S.length) {
+ splitter.lastIndex = SUPPORTS_Y ? q : 0;
+ var z = _regexpExecAbstract(splitter, SUPPORTS_Y ? S : S.slice(q));
+ var e;
+ if (
+ z === null ||
+ (e = $min(_toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
+ ) {
+ q = _advanceStringIndex(S, q, unicodeMatching);
+ } else {
+ A.push(S.slice(p, q));
+ if (A.length === lim) return A;
+ for (var i = 1; i <= z.length - 1; i++) {
+ A.push(z[i]);
+ if (A.length === lim) return A;
+ }
+ q = p = e;
+ }
}
+ A.push(S.slice(p));
+ return A;
}
- return val;
- },
- set(newVal) {
- if (val !== newVal) {
- observe(newVal);
- val = newVal;
- // 通知更新
- dep.notify();
+ ];
+ });
+
+ var max = Math.max;
+ var min = Math.min;
+ var floor = Math.floor;
+ var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
+ var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;
+
+ var maybeToString = function (it) {
+ return it === undefined ? it : String(it);
+ };
+
+ // @@replace logic
+ _fixReWks('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
+ return [
+ // `String.prototype.replace` method
+ // https://tc39.github.io/ecma262/#sec-string.prototype.replace
+ function replace(searchValue, replaceValue) {
+ var O = defined(this);
+ var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
+ return fn !== undefined
+ ? fn.call(searchValue, O, replaceValue)
+ : $replace.call(String(O), searchValue, replaceValue);
+ },
+ // `RegExp.prototype[@@replace]` method
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
+ function (regexp, replaceValue) {
+ var res = maybeCallNative($replace, regexp, this, replaceValue);
+ if (res.done) return res.value;
+
+ var rx = _anObject(regexp);
+ var S = String(this);
+ var functionalReplace = typeof replaceValue === 'function';
+ if (!functionalReplace) replaceValue = String(replaceValue);
+ var global = rx.global;
+ if (global) {
+ var fullUnicode = rx.unicode;
+ rx.lastIndex = 0;
+ }
+ var results = [];
+ while (true) {
+ var result = _regexpExecAbstract(rx, S);
+ if (result === null) break;
+ results.push(result);
+ if (!global) break;
+ var matchStr = String(result[0]);
+ if (matchStr === '') rx.lastIndex = _advanceStringIndex(S, _toLength(rx.lastIndex), fullUnicode);
+ }
+ var accumulatedResult = '';
+ var nextSourcePosition = 0;
+ for (var i = 0; i < results.length; i++) {
+ result = results[i];
+ var matched = String(result[0]);
+ var position = max(min(_toInteger(result.index), S.length), 0);
+ var captures = [];
+ // NOTE: This is equivalent to
+ // captures = result.slice(1).map(maybeToString)
+ // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
+ // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
+ // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
+ for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
+ var namedCaptures = result.groups;
+ if (functionalReplace) {
+ var replacerArgs = [matched].concat(captures, position, S);
+ if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
+ var replacement = String(replaceValue.apply(undefined, replacerArgs));
+ } else {
+ replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
+ }
+ if (position >= nextSourcePosition) {
+ accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
+ nextSourcePosition = position + matched.length;
+ }
+ }
+ return accumulatedResult + S.slice(nextSourcePosition);
+ }
+ ];
+
+ // https://tc39.github.io/ecma262/#sec-getsubstitution
+ function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
+ var tailPos = position + matched.length;
+ var m = captures.length;
+ var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
+ if (namedCaptures !== undefined) {
+ namedCaptures = _toObject(namedCaptures);
+ symbols = SUBSTITUTION_SYMBOLS;
}
+ return $replace.call(replacement, symbols, function (match, ch) {
+ var capture;
+ switch (ch.charAt(0)) {
+ case '$': return '$';
+ case '&': return matched;
+ case '`': return str.slice(0, position);
+ case "'": return str.slice(tailPos);
+ case '<':
+ capture = namedCaptures[ch.slice(1, -1)];
+ break;
+ default: // \d\d?
+ var n = +ch;
+ if (n === 0) return match;
+ if (n > m) {
+ var f = floor(n / 10);
+ if (f === 0) return match;
+ if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
+ return match;
+ }
+ capture = captures[n - 1];
+ }
+ return capture === undefined ? '' : capture;
+ });
}
});
-}
-// observe
-function observe(obj) {
- if (typeof obj !== 'object' || obj === null) {
- return;
- }
- let ob;
- if (hasOwn(obj, '__ob__') && obj.__ob__ instanceof Observer) {
- ob = obj.__ob__;
- } else {
- ob = new Observer(obj);
+ function def(obj, key, val, enumerable) {
+ Object.defineProperty(obj, key, {
+ value: val,
+ enumerable: !!enumerable,
+ writable: true,
+ configurable: true
+ });
+ } // 数组响应式处理
+
+ function dependArray(value) {
+ for (var e, i = 0, l = value.length; i < l; i++) {
+ e = value[i];
+ e && e.__ob__ && e.__ob__.dep.depend();
+
+ if (Array.isArray(e)) {
+ dependArray(e);
+ }
+ }
+ } // 检测一个对象的属性是否存在
+
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ function hasOwn(obj, key) {
+ return hasOwnProperty.call(obj, key);
}
- return ob;
-}
-
-// porxy
-function proxy(vm) {
- Object.keys(vm.$data).forEach(key => {
- Object.defineProperty(vm, key, {
- get() {
- return vm.$data[key];
- },
- set(newVal) {
- vm.$data[key] = newVal;
+
+ var arrayProto = Array.prototype;
+ var arrayMethods = Object.create(arrayProto);
+ var methodsToPatch = ["push", "pop", "shift", "unshift", "splice", "sort", "reverse"];
+ methodsToPatch.forEach(function (method) {
+ // 保存原始方法
+ var original = arrayProto[method]; // 覆盖之
+
+ def(arrayMethods, method, function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
}
+
+ // 1.执行默认方法
+ var result = original.apply(this, args); // 2.变更通知
+
+ var ob = this.__ob__; // 可能会有新元素加入
+
+ var inserted;
+
+ switch (method) {
+ case 'push':
+ case 'unshift':
+ inserted = args;
+ break;
+
+ case 'splice':
+ inserted = args.slice(2);
+ break;
+ } // 对新加入的元素做响应式
+
+
+ if (inserted) ob.observeArray(inserted); // notify change
+ // ob内部有一个dep,让它去通知更新
+
+ ob.dep.notify();
+ return result;
});
});
-}
-/**
- * 依赖收集
- */
+ var Observer = /*#__PURE__*/function () {
+ function Observer(value) {
+ _classCallCheck(this, Observer);
-class Watcher {
- constructor(vm, updaterFn) {
- this.vm = vm;
- this.getter = updaterFn;
+ this.value = value;
+ this.dep = new Dep();
+ def(value, '__ob__', this);
- // 依赖收集
- this.get();
- }
+ if (Array.isArray(value)) {
+ if ('__proto__' in {}) {
+ value.__proto__ = arrayMethods;
+ }
- get() {
- Dep.target = this;
- this.getter.call(this.vm);
- Dep.target = null;
- }
+ this.observeArray(value);
+ } else {
+ this.walk(value);
+ }
+ } // 数组响应式处理
- // 相互添加引用
- addDep(dep) {
- dep.addSub(this);
- }
- update() {
- this.get();
- // this.updaterFn.call(this.vm, getDataVal.call(this.vm, this.key))
- }
+ _createClass(Observer, [{
+ key: "observeArray",
+ value: function observeArray(arr) {
+ for (var i = 0, l = arr.length; i < l; i++) {
+ observe(arr[i]);
+ }
+ } // 对象响应式处理
+
+ }, {
+ key: "walk",
+ value: function walk(obj) {
+ Object.keys(obj).forEach(function (key) {
+ defineReactive(obj, key, obj[key]);
+ });
+ }
+ }]);
+
+ return Observer;
+ }(); // 数据劫持
+
+ function defineReactive(obj, key, val) {
+ var childOb = observe(val); // 每一可以对应一个 dep;
-}
+ var dep = new Dep();
+ Object.defineProperty(obj, key, {
+ get: function get() {
+ // 依赖收集
+ dep.depend();
-/**
- * 编译器
- */
+ if (childOb) {
+ // 子ob也要做依赖收集
+ childOb.dep.depend();
-/**
- * 入口文件
-*/
+ if (Array.isArray(val)) {
+ dependArray(val);
+ }
+ }
-class Pvue {
- constructor(options) {
- this.$options = options;
- this.$data = options.data;
- observe(this.$data);
+ return val;
+ },
+ set: function set(newVal) {
+ if (val !== newVal) {
+ observe(newVal);
+ val = newVal; // 通知更新
- // 代理data
- proxy(this);
+ dep.notify();
+ }
+ }
+ });
+ } // observe
- // 代理methods
- for (const key in options.methods) {
- this[key] = typeof options.methods[key] === 'function' ? options.methods[key].bind(this) : noop;
+ function observe(obj) {
+ if (_typeof(obj) !== 'object' || obj === null) {
+ return;
}
- // 模板编译
- // new Compile(options.el, this)
- if (options.el) {
- this.$mount(options.el);
+ var ob;
+
+ if (hasOwn(obj, '__ob__') && obj.__ob__ instanceof Observer) {
+ ob = obj.__ob__;
+ } else {
+ ob = new Observer(obj);
}
+
+ return ob;
+ } // porxy
+
+ function proxy$1(vm) {
+ Object.keys(vm.$data).forEach(function (key) {
+ Object.defineProperty(vm, key, {
+ get: function get() {
+ return vm.$data[key];
+ },
+ set: function set(newVal) {
+ vm.$data[key] = newVal;
+ }
+ });
+ });
}
- // 挂载
- $mount(el) {
- // 获取宿主原始
- this.$el = document.querySelector(el);
- // 组件更新函数
- const updateComponent = () => {
- // const { render } = this.$options;
- // const el = render.call(this);
- // const parent = this.$el.parentElement;
- // parent.insertBefore(el, this.$el.nextSibling);
- // parent.removeChild(this.$el);
- // this.$el = el;
- const { render } = this.$options;
- const vnode = render.call(this, this.$createElement);
- this._update(vnode);
+ var f$3 = _wks;
+
+ var _wksExt = {
+ f: f$3
+ };
+
+ var defineProperty = _objectDp.f;
+ var _wksDefine = function (name) {
+ var $Symbol = _core.Symbol || (_core.Symbol = _global.Symbol || {});
+ if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: _wksExt.f(name) });
+ };
+
+ var f$2 = Object.getOwnPropertySymbols;
+
+ var _objectGops = {
+ f: f$2
+ };
+
+ // all enumerable object keys, includes symbols
+
+
+
+ var _enumKeys = function (it) {
+ var result = _objectKeys(it);
+ var getSymbols = _objectGops.f;
+ if (getSymbols) {
+ var symbols = getSymbols(it);
+ var isEnum = _objectPie.f;
+ var i = 0;
+ var key;
+ while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
+ } return result;
+ };
+
+ // 7.2.2 IsArray(argument)
+
+ var _isArray = Array.isArray || function isArray(arg) {
+ return _cof(arg) == 'Array';
+ };
+
+ // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
+
+ var hiddenKeys = _enumBugKeys.concat('length', 'prototype');
+
+ var f$1 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
+ return _objectKeysInternal(O, hiddenKeys);
+ };
+
+ var _objectGopn = {
+ f: f$1
+ };
+
+ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
+
+ var gOPN$2 = _objectGopn.f;
+ var toString = {}.toString;
+
+ var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
+ ? Object.getOwnPropertyNames(window) : [];
+
+ var getWindowNames = function (it) {
+ try {
+ return gOPN$2(it);
+ } catch (e) {
+ return windowNames.slice();
+ }
+ };
+
+ var f = function getOwnPropertyNames(it) {
+ return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN$2(_toIobject(it));
+ };
+
+ var _objectGopnExt = {
+ f: f
+ };
+
+ // ECMAScript 6 symbols shim
+
+
+
+
+
+ var META = _meta.KEY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ var gOPD = _objectGopd.f;
+ var dP$2 = _objectDp.f;
+ var gOPN$1 = _objectGopnExt.f;
+ var $Symbol = _global.Symbol;
+ var $JSON = _global.JSON;
+ var _stringify = $JSON && $JSON.stringify;
+ var PROTOTYPE = 'prototype';
+ var HIDDEN = _wks('_hidden');
+ var TO_PRIMITIVE = _wks('toPrimitive');
+ var isEnum = {}.propertyIsEnumerable;
+ var SymbolRegistry = _shared('symbol-registry');
+ var AllSymbols = _shared('symbols');
+ var OPSymbols = _shared('op-symbols');
+ var ObjectProto = Object[PROTOTYPE];
+ var USE_NATIVE = typeof $Symbol == 'function' && !!_objectGops.f;
+ var QObject = _global.QObject;
+ // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+ var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
+
+ // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
+ var setSymbolDesc = _descriptors && _fails(function () {
+ return _objectCreate(dP$2({}, 'a', {
+ get: function () { return dP$2(this, 'a', { value: 7 }).a; }
+ })).a != 7;
+ }) ? function (it, key, D) {
+ var protoDesc = gOPD(ObjectProto, key);
+ if (protoDesc) delete ObjectProto[key];
+ dP$2(it, key, D);
+ if (protoDesc && it !== ObjectProto) dP$2(ObjectProto, key, protoDesc);
+ } : dP$2;
+
+ var wrap = function (tag) {
+ var sym = AllSymbols[tag] = _objectCreate($Symbol[PROTOTYPE]);
+ sym._k = tag;
+ return sym;
+ };
+
+ var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
+ return typeof it == 'symbol';
+ } : function (it) {
+ return it instanceof $Symbol;
+ };
+
+ var $defineProperty = function defineProperty(it, key, D) {
+ if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
+ _anObject(it);
+ key = _toPrimitive(key, true);
+ _anObject(D);
+ if (_has(AllSymbols, key)) {
+ if (!D.enumerable) {
+ if (!_has(it, HIDDEN)) dP$2(it, HIDDEN, _propertyDesc(1, {}));
+ it[HIDDEN][key] = true;
+ } else {
+ if (_has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
+ D = _objectCreate(D, { enumerable: _propertyDesc(0, false) });
+ } return setSymbolDesc(it, key, D);
+ } return dP$2(it, key, D);
+ };
+ var $defineProperties = function defineProperties(it, P) {
+ _anObject(it);
+ var keys = _enumKeys(P = _toIobject(P));
+ var i = 0;
+ var l = keys.length;
+ var key;
+ while (l > i) $defineProperty(it, key = keys[i++], P[key]);
+ return it;
+ };
+ var $create = function create(it, P) {
+ return P === undefined ? _objectCreate(it) : $defineProperties(_objectCreate(it), P);
+ };
+ var $propertyIsEnumerable = function propertyIsEnumerable(key) {
+ var E = isEnum.call(this, key = _toPrimitive(key, true));
+ if (this === ObjectProto && _has(AllSymbols, key) && !_has(OPSymbols, key)) return false;
+ return E || !_has(this, key) || !_has(AllSymbols, key) || _has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
+ };
+ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
+ it = _toIobject(it);
+ key = _toPrimitive(key, true);
+ if (it === ObjectProto && _has(AllSymbols, key) && !_has(OPSymbols, key)) return;
+ var D = gOPD(it, key);
+ if (D && _has(AllSymbols, key) && !(_has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
+ return D;
+ };
+ var $getOwnPropertyNames = function getOwnPropertyNames(it) {
+ var names = gOPN$1(_toIobject(it));
+ var result = [];
+ var i = 0;
+ var key;
+ while (names.length > i) {
+ if (!_has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
+ } return result;
+ };
+ var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
+ var IS_OP = it === ObjectProto;
+ var names = gOPN$1(IS_OP ? OPSymbols : _toIobject(it));
+ var result = [];
+ var i = 0;
+ var key;
+ while (names.length > i) {
+ if (_has(AllSymbols, key = names[i++]) && (IS_OP ? _has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
+ } return result;
+ };
+
+ // 19.4.1.1 Symbol([description])
+ if (!USE_NATIVE) {
+ $Symbol = function Symbol() {
+ if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
+ var tag = _uid(arguments.length > 0 ? arguments[0] : undefined);
+ var $set = function (value) {
+ if (this === ObjectProto) $set.call(OPSymbols, value);
+ if (_has(this, HIDDEN) && _has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
+ setSymbolDesc(this, tag, _propertyDesc(1, value));
+ };
+ if (_descriptors && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
+ return wrap(tag);
};
- // 创建wather
- new Watcher(this, updateComponent);
- }
+ _redefine($Symbol[PROTOTYPE], 'toString', function toString() {
+ return this._k;
+ });
+
+ _objectGopd.f = $getOwnPropertyDescriptor;
+ _objectDp.f = $defineProperty;
+ _objectGopn.f = _objectGopnExt.f = $getOwnPropertyNames;
+ _objectPie.f = $propertyIsEnumerable;
+ _objectGops.f = $getOwnPropertySymbols;
+
+ if (_descriptors && !_library) {
+ _redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
+ }
- // 获取vnode
- $createElement(tag, props, children) {
- return { tag, props, children };
+ _wksExt.f = function (name) {
+ return wrap(_wks(name));
+ };
}
- // 更新
- _update(vnode) {
- const preVnode = this._vnode;
- if (preVnode) {
- // 更新
- this.__patch__(preVnode, vnode);
- } else {
- // 初始化
- this.__patch__(this.$el, vnode);
+
+ _export(_export.G + _export.W + _export.F * !USE_NATIVE, { Symbol: $Symbol });
+
+ for (var es6Symbols = (
+ // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
+ ).split(','), j = 0; es6Symbols.length > j;)_wks(es6Symbols[j++]);
+
+ for (var wellKnownSymbols = _objectKeys(_wks.store), k = 0; wellKnownSymbols.length > k;) _wksDefine(wellKnownSymbols[k++]);
+
+ _export(_export.S + _export.F * !USE_NATIVE, 'Symbol', {
+ // 19.4.2.1 Symbol.for(key)
+ 'for': function (key) {
+ return _has(SymbolRegistry, key += '')
+ ? SymbolRegistry[key]
+ : SymbolRegistry[key] = $Symbol(key);
+ },
+ // 19.4.2.5 Symbol.keyFor(sym)
+ keyFor: function keyFor(sym) {
+ if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
+ for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
+ },
+ useSetter: function () { setter = true; },
+ useSimple: function () { setter = false; }
+ });
+
+ _export(_export.S + _export.F * !USE_NATIVE, 'Object', {
+ // 19.1.2.2 Object.create(O [, Properties])
+ create: $create,
+ // 19.1.2.4 Object.defineProperty(O, P, Attributes)
+ defineProperty: $defineProperty,
+ // 19.1.2.3 Object.defineProperties(O, Properties)
+ defineProperties: $defineProperties,
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ getOwnPropertyNames: $getOwnPropertyNames,
+ // 19.1.2.8 Object.getOwnPropertySymbols(O)
+ getOwnPropertySymbols: $getOwnPropertySymbols
+ });
+
+ // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3443
+ var FAILS_ON_PRIMITIVES = _fails(function () { _objectGops.f(1); });
+
+ _export(_export.S + _export.F * FAILS_ON_PRIMITIVES, 'Object', {
+ getOwnPropertySymbols: function getOwnPropertySymbols(it) {
+ return _objectGops.f(_toObject(it));
+ }
+ });
+
+ // 24.3.2 JSON.stringify(value [, replacer [, space]])
+ $JSON && _export(_export.S + _export.F * (!USE_NATIVE || _fails(function () {
+ var S = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ // WebKit converts symbol values to JSON as null
+ // V8 throws on boxed symbols
+ return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
+ })), 'JSON', {
+ stringify: function stringify(it) {
+ var args = [it];
+ var i = 1;
+ var replacer, $replacer;
+ while (arguments.length > i) args.push(arguments[i++]);
+ $replacer = replacer = args[1];
+ if (!_isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
+ if (!_isArray(replacer)) replacer = function (key, value) {
+ if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
+ if (!isSymbol(value)) return value;
+ };
+ args[1] = replacer;
+ return _stringify.apply($JSON, args);
}
+ });
+
+ // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
+ $Symbol[PROTOTYPE][TO_PRIMITIVE] || _hide($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
+ // 19.4.3.5 Symbol.prototype[@@toStringTag]
+ _setToStringTag($Symbol, 'Symbol');
+ // 20.2.1.9 Math[@@toStringTag]
+ _setToStringTag(Math, 'Math', true);
+ // 24.3.3 JSON[@@toStringTag]
+ _setToStringTag(_global.JSON, 'JSON', true);
+
+ var _createProperty = function (object, index, value) {
+ if (index in object) _objectDp.f(object, index, _propertyDesc(0, value));
+ else object[index] = value;
+ };
+
+ _export(_export.S + _export.F * !_iterDetect(function (iter) { Array.from(iter); }), 'Array', {
+ // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
+ from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
+ var O = _toObject(arrayLike);
+ var C = typeof this == 'function' ? this : Array;
+ var aLen = arguments.length;
+ var mapfn = aLen > 1 ? arguments[1] : undefined;
+ var mapping = mapfn !== undefined;
+ var index = 0;
+ var iterFn = core_getIteratorMethod(O);
+ var length, result, step, iterator;
+ if (mapping) mapfn = _ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
+ // if object isn't iterable or it's array with default iterator - use simple case
+ if (iterFn != undefined && !(C == Array && _isArrayIter(iterFn))) {
+ for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
+ _createProperty(result, index, mapping ? _iterCall(iterator, mapfn, [step.value, index], true) : step.value);
+ }
+ } else {
+ length = _toLength(O.length);
+ for (result = new C(length); length > index; index++) {
+ _createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
+ }
+ }
+ result.length = index;
+ return result;
+ }
+ });
+
+ var dP$1 = _objectDp.f;
+ var FProto = Function.prototype;
+ var nameRE = /^\s*function ([^ (]*)/;
+ var NAME = 'name';
+
+ // 19.2.4.2 name
+ NAME in FProto || _descriptors && dP$1(FProto, NAME, {
+ configurable: true,
+ get: function () {
+ try {
+ return ('' + this).match(nameRE)[1];
+ } catch (e) {
+ return '';
+ }
+ }
+ });
+
+ var dP = _objectDp.f;
+ var gOPN = _objectGopn.f;
+
+
+ var $RegExp = _global.RegExp;
+ var Base = $RegExp;
+ var proto = $RegExp.prototype;
+ var re1 = /a/g;
+ var re2 = /a/g;
+ // "new" creates a new object, old webkit buggy here
+ var CORRECT_NEW = new $RegExp(re1) !== re1;
+
+ if (_descriptors && (!CORRECT_NEW || _fails(function () {
+ re2[_wks('match')] = false;
+ // RegExp constructor can alter flags and IsRegExp works correct with @@match
+ return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
+ }))) {
+ $RegExp = function RegExp(p, f) {
+ var tiRE = this instanceof $RegExp;
+ var piRE = _isRegexp(p);
+ var fiU = f === undefined;
+ return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
+ : _inheritIfRequired(CORRECT_NEW
+ ? new Base(piRE && !fiU ? p.source : p, f)
+ : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? _flags.call(p) : f)
+ , tiRE ? this : proto, $RegExp);
+ };
+ var proxy = function (key) {
+ key in $RegExp || dP($RegExp, key, {
+ configurable: true,
+ get: function () { return Base[key]; },
+ set: function (it) { Base[key] = it; }
+ });
+ };
+ for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);
+ proto.constructor = $RegExp;
+ $RegExp.prototype = proto;
+ _redefine(_global, 'RegExp', $RegExp);
}
- // patch方法
- __patch__(oldVode, vnode) {
- // 判断old是否为dom
- if (oldVode.nodeType) {
- // 初始化
- const parent = oldVode.parentElement;
- const refElm = oldVode.nextSibling;
- // 递归vnode创建dom树
- const el = this.createElm(vnode);
- parent.insertBefore(el, refElm);
- parent.removeChild(oldVode);
- } else {
- // 更新
- const el = vnode.el = oldVode.el;
- // 判断是否是相同节点samenode
- if (oldVode.tag === vnode.tag) {
- // diff
- // props
- // children
- const oldCh = oldVode.children;
- const newCh = vnode.children;
- if (typeof newCh === 'string') {
- if (typeof oldCh === 'string') {
- if (newCh !== oldCh) {
- el.textContent = newCh;
+
+ _setSpecies('RegExp');
+
+ var Watcher = /*#__PURE__*/function () {
+ function Watcher(vm, updaterFn) {
+ _classCallCheck(this, Watcher);
+
+ this.vm = vm;
+ this.getter = updaterFn; // 依赖收集
+
+ this.get();
+ }
+
+ _createClass(Watcher, [{
+ key: "get",
+ value: function get() {
+ Dep.target = this;
+ this.getter.call(this.vm);
+ Dep.target = null;
+ } // 相互添加引用
+
+ }, {
+ key: "addDep",
+ value: function addDep(dep) {
+ dep.addSub(this);
+ }
+ }, {
+ key: "update",
+ value: function update() {
+ this.get(); // this.updaterFn.call(this.vm, getDataVal.call(this.vm, this.key))
+ }
+ }]);
+
+ return Watcher;
+ }();
+
+ var Vue = /*#__PURE__*/function () {
+ function Vue(options) {
+ _classCallCheck(this, Vue);
+
+ this.$options = options;
+ this.$data = options.data;
+ observe(this.$data); // 代理data
+
+ proxy$1(this); // 代理methods
+
+ for (var key in options.methods) {
+ this[key] = typeof options.methods[key] === 'function' ? options.methods[key].bind(this) : noop;
+ } // 模板编译
+ // new Compile(options.el, this)
+
+
+ if (options.el) {
+ this.$mount(options.el);
+ }
+ } // 挂载
+
+
+ _createClass(Vue, [{
+ key: "$mount",
+ value: function $mount(el) {
+ var _this = this;
+
+ // 获取宿主原始
+ this.$el = document.querySelector(el); // 组件更新函数
+
+ var updateComponent = function updateComponent() {
+ var render = _this.$options.render;
+ var vnode = render.call(_this, _this.$createElement);
+
+ _this._update(vnode);
+ }; // 创建wather
+
+
+ new Watcher(this, updateComponent);
+ } // 获取vnode
+
+ }, {
+ key: "$createElement",
+ value: function $createElement(tag, props, children) {
+ return {
+ tag: tag,
+ props: props,
+ children: children
+ };
+ } // 更新
+
+ }, {
+ key: "_update",
+ value: function _update(vnode) {
+ var preVnode = this._vnode;
+
+ if (preVnode) {
+ // 更新
+ this.__patch__(preVnode, vnode);
+ } else {
+ // 初始化
+ this.__patch__(this.$el, vnode);
+ }
+ } // patch方法
+
+ }, {
+ key: "__patch__",
+ value: function __patch__(oldVode, vnode) {
+ var _this2 = this;
+
+ // 判断old是否为dom
+ if (oldVode.nodeType) {
+ // 初始化
+ var parent = oldVode.parentElement;
+ var refElm = oldVode.nextSibling; // 递归vnode创建dom树
+
+ var el = this.createElm(vnode);
+ parent.insertBefore(el, refElm);
+ parent.removeChild(oldVode);
+ } else {
+ // 更新
+ var _el = vnode.el = oldVode.el; // 判断是否是相同节点samenode
+
+
+ if (oldVode.tag === vnode.tag) {
+ // diff
+ // props
+ // children
+ var oldCh = oldVode.children;
+ var newCh = vnode.children;
+
+ if (typeof newCh === 'string') {
+ if (typeof oldCh === 'string') {
+ if (newCh !== oldCh) {
+ _el.textContent = newCh;
+ }
+ } else {
+ // 清空并替换为文本
+ _el.textContent = newCh;
+ }
+ } else {
+ // 数组
+ if (typeof oldCh === 'string') {
+ _el.innerHTML = '';
+ newCh.forEach(function (child) {
+ _el.appendChild(_this2.createElm(child));
+ });
+ } else {
+ // 双方都有孩子 diff
+ this.updateChildren(_el, oldCh, newCh);
+ }
}
- } else {
- // 清空并替换为文本
- el.textContent = newCh;
}
- } else {
- // 数组
- if (typeof oldCh === 'string') {
- el.innerHTML = '';
- newCh.forEach(child => {
- el.appendChild(this.createElm(child));
- });
+ } // 保存vnode
+
+
+ this._vnode = vnode;
+ } // 创建真实节点
+
+ }, {
+ key: "createElm",
+ value: function createElm(vnode) {
+ var _this3 = this;
+
+ var el = document.createElement(vnode.tag); // props
+
+ for (var key in vnode.props) {
+ el.setAttribute(key, vnode.props[key]);
+ } // 处理子节点
+
+
+ if (vnode.children) {
+ if (_typeof(vnode.children) !== 'object') {
+ el.textContent = vnode.children;
} else {
- // 双方都有孩子 diff
- this.updateChildren(el, oldCh, newCh);
+ // 数组类子元素
+ vnode.children.forEach(function (vnode) {
+ el.appendChild(_this3.createElm(vnode));
+ });
}
}
+
+ vnode.el = el;
+ return el;
+ } // 更新子元素
+
+ }, {
+ key: "updateChildren",
+ value: function updateChildren(parentElm, oldCh, newCh) {
+ var _this4 = this;
+
+ var len = Math.min(oldCh.length, newCh.length); // 强制更新,不管节点是否相同
+
+ for (var i = 0; i < len; i++) {
+ this.__patch__(oldCh[i], newCh[i]);
+ }
+
+ if (oldCh.length > newCh.length) {
+ // 删除
+ oldCh.slice(len).forEach(function (child) {
+ parentElm.removeChild(child.el);
+ });
+ } else {
+ // 追加
+ newCh.slice(len).forEach(function (child) {
+ var el = _this4.createElm(child);
+
+ parentElm.appendChild(el);
+ });
+ }
}
- }
- // 保存vnode
- this._vnode = vnode;
- }
- // 创建真实节点
- createElm(vnode) {
- const el = document.createElement(vnode.tag);
- // props
- for (const key in vnode.props) {
- el.setAttribute(key, vnode.props[key]);
- }
-
- // 处理子节点
- if (vnode.children) {
- if (typeof vnode.children !== 'object') {
- el.textContent = vnode.children;
- } else {
- // 数组类子元素
- vnode.children.forEach(vnode => {
- el.appendChild(this.createElm(vnode));
- });
- }
- }
- vnode.el = el;
- return el;
- }
- // 更新子元素
- updateChildren(el, oldCh, newCh) {}
-}
+ }]);
+
+ return Vue;
+ }(); // 空函数
-// 空函数
-function noop() {}
+ function noop() {}
-return Pvue;
+ return Vue;
-})));
+})();
//# sourceMappingURL=vue.js.map
diff --git a/dist/vue.js.map b/dist/vue.js.map
index 7d6fd2a..0b581d5 100644
--- a/dist/vue.js.map
+++ b/dist/vue.js.map
@@ -1 +1 @@
-{"version":3,"file":"vue.js","sources":["../src/dep.js","../src/util.js","../src/array.js","../src/observer.js","../src/watcher.js","../src/compile.js","../src/entry-dev.js"],"sourcesContent":["/**\r\n * 消息管理器\r\n */\r\n\r\nexport class Dep {\r\n constructor() {\r\n this.deps = new Set();\r\n }\r\n\r\n // 添加订阅者\r\n addSub(watcher) {\r\n this.deps.add(watcher);\r\n }\r\n\r\n // 操作watcher addDep 方法\r\n depend () {\r\n if (Dep.target) {\r\n Dep.target.addDep(this)\r\n }\r\n }\r\n\r\n // 通知更新\r\n notify() {\r\n this.deps.forEach(watcher => watcher.update());\r\n }\r\n \r\n}","// 返回指定 key 对应的 data值\r\nexport function getDataVal(exp) {\r\n let value\r\n if(/\\[|\\|]|\\./.test(exp)) {\r\n let keyArr = exp.replace(/\\]/g, '').split(/\\[|\\./g);\r\n keyArr.forEach((key, index) => {\r\n value = index === 0? this[key]: value[key];\r\n })\r\n } else {\r\n value = this[exp]\r\n }\r\n return value;\r\n}\r\n\r\n// 设置指定 key 对应的 data值\r\nexport function setDataVal(exp, value) {\r\n let val\r\n if(/\\[|\\|]|\\./.test(exp)) {\r\n let keyArr = exp.replace(/\\]/g, '').split(/\\[|\\./g);\r\n let l = keyArr.length -1 ;\r\n keyArr.forEach((key, index) => {\r\n if(index === 0) {\r\n val = this[key]\r\n } else if (index === l){\r\n val[key] = value\r\n } else {\r\n val = val[key]\r\n }\r\n })\r\n } else {\r\n this[exp] = value\r\n }\r\n}\r\n\r\n\r\n// 定义一个Property\r\nexport function def(obj, key, val, enumerable) {\r\n Object.defineProperty(obj, key, {\r\n value: val,\r\n enumerable: !!enumerable,\r\n writable: true,\r\n configurable: true\r\n })\r\n}\r\n\r\n// 数组响应式处理\r\nexport function dependArray (value) {\r\n for (let e, i = 0, l = value.length; i < l; i++) {\r\n e = value[i]\r\n e && e.__ob__ && e.__ob__.dep.depend()\r\n if (Array.isArray(e)) {\r\n dependArray(e)\r\n }\r\n }\r\n}\r\n\r\n// 检测一个对象的属性是否存在\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nexport function hasOwn(obj, key){\r\n return hasOwnProperty.call(obj, key)\r\n}\r\n","/**\r\n * 数组函数劫持\r\n */\r\n\r\nimport {def} from \"./util\"\r\n\r\nconst arrayProto = Array.prototype\r\n\r\nexport const arrayMethods = Object.create(arrayProto)\r\n\r\nconst methodsToPatch = [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\", \"sort\", \"reverse\"]\r\n\r\nmethodsToPatch.forEach(function (method) {\r\n // 保存原始方法\r\n const original = arrayProto[method]\r\n // 覆盖之\r\n def(arrayMethods, method, function (...args) {\r\n // 1.执行默认方法\r\n const result = original.apply(this, args)\r\n // 2.变更通知\r\n const ob = this.__ob__\r\n // 可能会有新元素加入\r\n let inserted\r\n switch (method) {\r\n case 'push':\r\n case 'unshift':\r\n inserted = args\r\n break\r\n case 'splice':\r\n inserted = args.slice(2)\r\n break\r\n }\r\n // 对新加入的元素做响应式\r\n if (inserted) ob.observeArray(inserted)\r\n // notify change\r\n // ob内部有一个dep,让它去通知更新\r\n ob.dep.notify()\r\n return result\r\n })\r\n})\r\n","/**\r\n * 响应式数据\r\n */\r\n\r\nimport { Dep } from './dep'\r\nimport { arrayMethods } from './array'\r\nimport { def, hasOwn, dependArray } from './util'\r\n\r\nexport class Observer {\r\n constructor(value) {\r\n this.value = value;\r\n this.dep = new Dep()\r\n def(value, '__ob__', this)\r\n if(Array.isArray(value)) {\r\n if('__proto__' in {}) {\r\n value.__proto__ = arrayMethods;\r\n }\r\n this.observeArray(value)\r\n } else {\r\n this.walk(value)\r\n }\r\n }\r\n\r\n // 数组响应式处理\r\n observeArray(arr) {\r\n for(let i=0, l = arr.length; i {\r\n defineReactive(obj, key, obj[key]);\r\n })\r\n }\r\n}\r\n\r\n// 数据劫持\r\nexport function defineReactive(obj, key, val){\r\n let childOb = observe(val);\r\n // 每一可以对应一个 dep;\r\n const dep = new Dep();\r\n Object.defineProperty(obj, key, {\r\n get() {\r\n // 依赖收集\r\n dep.depend();\r\n if (childOb) {\r\n // 子ob也要做依赖收集\r\n childOb.dep.depend()\r\n if (Array.isArray(val)) {\r\n dependArray(val)\r\n }\r\n }\r\n return val;\r\n },\r\n set(newVal) {\r\n if(val !== newVal) {\r\n observe(newVal);\r\n val = newVal;\r\n // 通知更新\r\n dep.notify();\r\n }\r\n }\r\n })\r\n}\r\n\r\n// observe\r\nexport function observe(obj) {\r\n if(typeof obj !== 'object' || obj === null) {\r\n return;\r\n }\r\n let ob;\r\n if(hasOwn(obj, '__ob__') && obj.__ob__ instanceof Observer) {\r\n ob = obj.__ob__\r\n } else {\r\n ob = new Observer(obj);\r\n }\r\n return ob;\r\n}\r\n\r\n// porxy\r\nexport function proxy(vm) {\r\n Object.keys(vm.$data).forEach(key => {\r\n Object.defineProperty(vm, key, {\r\n get() {\r\n return vm.$data[key]\r\n },\r\n set(newVal) {\r\n vm.$data[key] = newVal;\r\n }\r\n })\r\n })\r\n}\r\n\r\n","/**\r\n * 依赖收集\r\n */\r\n\r\nimport { Dep } from \"./dep\";\r\nimport { getDataVal } from \"./util\"\r\n\r\nexport class Watcher {\r\n constructor(vm, updaterFn) {\r\n this.vm = vm;\r\n this.getter = updaterFn;\r\n\r\n // 依赖收集\r\n this.get();\r\n }\r\n\r\n get() {\r\n Dep.target = this;\r\n this.getter.call(this.vm);\r\n Dep.target = null;\r\n }\r\n \r\n // 相互添加引用\r\n addDep (dep) {\r\n dep.addSub(this)\r\n }\r\n\r\n update() {\r\n this.get();\r\n // this.updaterFn.call(this.vm, getDataVal.call(this.vm, this.key))\r\n }\r\n \r\n}","/**\r\n * 编译器\r\n */\r\n\r\nimport { Watcher } from './watcher'\r\nimport { getDataVal, setDataVal } from './util'\r\n\r\nexport class Compile {\r\n constructor(el, vm) {\r\n this.$vm = vm;\r\n this.$el = document.querySelector(el);\r\n if(this.$el) {\r\n this.compile(this.$el);\r\n }\r\n }\r\n\r\n // 递归子节点\r\n compile(el) {\r\n const childNodes = el.childNodes;\r\n childNodes.forEach(node => {\r\n if(node.nodeType === 1) { // 元素节点\r\n this.compileElement(node);\r\n // 递归\r\n if(node.hasChildNodes) {\r\n this.compile(node);\r\n }\r\n } else if (this.isInter(node)) { // {{}}\r\n this.compileText(node);\r\n }\r\n })\r\n }\r\n\r\n // 正则 {{counter}}\r\n isInter(node) {\r\n return node.nodeType === 3 && /\\{\\{(.*)\\}\\}/.test(node.textContent);\r\n }\r\n\r\n // 编译属性\r\n compileElement(node) {\r\n let nodeAttrs = node.attributes;\r\n Array.from(nodeAttrs).forEach(attr => {\r\n // v-text=\"xxx\"\r\n const attrname = attr.name; // v-text\r\n const exp = attr.value; // xxx\r\n // 指令解析\r\n if(attrname.indexOf(\"v-\") === 0) {\r\n const dir = attrname.substring(2);\r\n const dirArr = dir.split(':')\r\n if(dirArr.length === 2 && dirArr[0] === 'on') { // 判断 v-on:click =\"onclick\"\r\n this.eventHandler(node, exp, dirArr[1])\r\n } else {\r\n this[dir] && this[dir](node, exp)\r\n }\r\n } else if (attrname.indexOf(\"@\") === 0) { // 判断 @click =\"onclick\"\r\n const dir = attrname.substring(1);\r\n this.eventHandler(node, exp, dir)\r\n }\r\n })\r\n }\r\n\r\n // 事件处理\r\n eventHandler(node, exp, event) {\r\n const fn = this.$vm[exp]\r\n if(event && fn) {\r\n node.addEventListener(event, fn.bind(this.$vm), false);\r\n }\r\n }\r\n\r\n // 处理文本节点\r\n compileText(node) {\r\n this.update(node, RegExp.$1, 'text');\r\n }\r\n\r\n\r\n // 更新中转函数\r\n update(node, exp, dir) {\r\n const fn = this[`${dir}Updater`];\r\n fn && fn(node, getDataVal.call(this.$vm, exp));\r\n // 依赖wather初始化\r\n new Watcher(this.$vm, exp, val => {\r\n fn && fn(node, val)\r\n })\r\n }\r\n\r\n // v-model\r\n modelUpdater(node, value) {\r\n node.value = value\r\n }\r\n\r\n // 文本节点\r\n textUpdater(node, value) {\r\n node.textContent = value;\r\n }\r\n\r\n // html标签解析节点\r\n htmlUpdater(node, value) {\r\n node.innerHTML = value;\r\n }\r\n\r\n // v-model\r\n model(node, exp) {\r\n this.update(node, exp, 'model');\r\n node.addEventListener('input', e => {\r\n setDataVal.call(this.$vm, exp, e.target.value)\r\n })\r\n }\r\n\r\n // v-text\r\n text(node, exp) {\r\n this.update(node, exp, 'text')\r\n }\r\n \r\n // v-html\r\n html(node, exp) {\r\n this.update(node, exp, 'html')\r\n }\r\n\r\n}\r\n","/** \r\n * 入口文件\r\n*/\r\n\r\nimport { observe, proxy } from './observer.js'\r\nimport { Compile } from './compile'\r\nimport { Watcher } from './watcher'\r\n\r\nexport default class Pvue {\r\n constructor(options) {\r\n this.$options = options;\r\n this.$data = options.data;\r\n observe(this.$data)\r\n\r\n // 代理data\r\n proxy(this)\r\n\r\n // 代理methods\r\n for(const key in options.methods) {\r\n this[key] = typeof options.methods[key] === 'function'? options.methods[key].bind(this): noop;\r\n }\r\n\r\n // 模板编译\r\n // new Compile(options.el, this)\r\n if(options.el) {\r\n this.$mount(options.el);\r\n }\r\n }\r\n\r\n // 挂载\r\n $mount(el){\r\n // 获取宿主原始\r\n this.$el = document.querySelector(el);\r\n // 组件更新函数\r\n const updateComponent = () => {\r\n // const { render } = this.$options;\r\n // const el = render.call(this);\r\n // const parent = this.$el.parentElement;\r\n // parent.insertBefore(el, this.$el.nextSibling);\r\n // parent.removeChild(this.$el);\r\n // this.$el = el;\r\n const { render } = this.$options;\r\n const vnode = render.call(this, this.$createElement);\r\n this._update(vnode);\r\n\r\n }\r\n // 创建wather\r\n new Watcher(this, updateComponent);\r\n }\r\n\r\n // 获取vnode\r\n $createElement(tag, props, children) {\r\n return { tag, props, children };\r\n }\r\n // 更新\r\n _update(vnode) {\r\n const preVnode = this._vnode;\r\n if(preVnode) { // 更新\r\n this.__patch__(preVnode, vnode)\r\n } else { // 初始化\r\n this.__patch__(this.$el, vnode)\r\n }\r\n }\r\n // patch方法\r\n __patch__(oldVode, vnode){\r\n // 判断old是否为dom\r\n if(oldVode.nodeType) { // 初始化\r\n const parent = oldVode.parentElement;\r\n const refElm = oldVode.nextSibling;\r\n // 递归vnode创建dom树\r\n const el = this.createElm(vnode);\r\n parent.insertBefore(el, refElm);\r\n parent.removeChild(oldVode);\r\n } else { // 更新\r\n const el = vnode.el = oldVode.el;\r\n // 判断是否是相同节点samenode\r\n if(oldVode.tag === vnode.tag) {\r\n // diff\r\n // props\r\n // children\r\n const oldCh = oldVode.children;\r\n const newCh = vnode.children;\r\n if(typeof newCh === 'string') {\r\n if(typeof oldCh === 'string') {\r\n if(newCh !== oldCh) {\r\n el.textContent = newCh;\r\n }\r\n } else {\r\n // 清空并替换为文本\r\n el.textContent = newCh;\r\n }\r\n } else {\r\n // 数组\r\n if(typeof oldCh === 'string') {\r\n el.innerHTML = '';\r\n newCh.forEach(child => {\r\n el.appendChild(this.createElm(child));\r\n })\r\n } else { // 双方都有孩子 diff \r\n this.updateChildren(el, oldCh, newCh);\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n // 保存vnode\r\n this._vnode = vnode;\r\n \r\n }\r\n // 创建真实节点\r\n createElm(vnode) {\r\n const el = document.createElement(vnode.tag);\r\n // props\r\n for (const key in vnode.props) {\r\n el.setAttribute(key, vnode.props[key]);\r\n }\r\n\r\n // 处理子节点\r\n if(vnode.children) {\r\n if(typeof vnode.children !== 'object') {\r\n el.textContent = vnode.children;\r\n } else {\r\n // 数组类子元素\r\n vnode.children.forEach(vnode => {\r\n el.appendChild(this.createElm(vnode));\r\n })\r\n }\r\n }\r\n vnode.el = el;\r\n return el;\r\n }\r\n // 更新子元素\r\n updateChildren(el, oldCh, newCh){}\r\n}\r\n\r\n// 空函数\r\nfunction noop(){}"],"names":["Dep","deps","Set","watcher","add","target","addDep","forEach","update","def","obj","key","val","enumerable","defineProperty","dependArray","value","e","i","l","length","__ob__","dep","depend","Array","isArray","hasOwnProperty","Object","prototype","hasOwn","call","arrayProto","arrayMethods","create","methodsToPatch","method","original","args","result","apply","ob","inserted","slice","observeArray","notify","Observer","__proto__","walk","arr","keys","defineReactive","childOb","observe","newVal","proxy","vm","$data","Watcher","updaterFn","getter","get","addSub","Pvue","options","$options","data","methods","bind","noop","el","$mount","$el","document","querySelector","updateComponent","render","vnode","$createElement","_update","tag","props","children","preVnode","_vnode","__patch__","oldVode","nodeType","parent","parentElement","refElm","nextSibling","createElm","insertBefore","removeChild","oldCh","newCh","textContent","innerHTML","child","appendChild","updateChildren","createElement","setAttribute"],"mappings":";;;;;;AAAA;;;;AAIA,AAAO,MAAMA,GAAN,CAAU;gBACD;SACPC,IAAL,GAAY,IAAIC,GAAJ,EAAZ;;;;SAIKC,OAAP,EAAgB;SACTF,IAAL,CAAUG,GAAV,CAAcD,OAAd;;;;WAIQ;QACJH,IAAIK,MAAR,EAAgB;UACVA,MAAJ,CAAWC,MAAX,CAAkB,IAAlB;;;;;WAKK;SACFL,IAAL,CAAUM,OAAV,CAAkBJ,WAAWA,QAAQK,MAAR,EAA7B;;;;;ACvBJ;AACA,AAAO;;;AAcP,AAAO;;;AAqBP,AAAO,SAASC,GAAT,CAAaC,GAAb,EAAkBC,GAAlB,EAAuBC,GAAvB,EAA4BC,UAA5B,EAAwC;SACtCC,cAAP,CAAsBJ,GAAtB,EAA2BC,GAA3B,EAAgC;WACvBC,GADuB;gBAElB,CAAC,CAACC,UAFgB;cAGpB,IAHoB;kBAIhB;GAJhB;;;;AASF,AAAO,SAASE,WAAT,CAAsBC,KAAtB,EAA6B;OAC7B,IAAIC,CAAJ,EAAOC,IAAI,CAAX,EAAcC,IAAIH,MAAMI,MAA7B,EAAqCF,IAAIC,CAAzC,EAA4CD,GAA5C,EAAiD;QAC3CF,MAAME,CAAN,CAAJ;SACKD,EAAEI,MAAP,IAAiBJ,EAAEI,MAAF,CAASC,GAAT,CAAaC,MAAb,EAAjB;QACIC,MAAMC,OAAN,CAAcR,CAAd,CAAJ,EAAsB;kBACRA,CAAZ;;;;;;AAMN,MAAMS,iBAAiBC,OAAOC,SAAP,CAAiBF,cAAxC;AACA,AAAO,SAASG,MAAT,CAAgBnB,GAAhB,EAAqBC,GAArB,EAAyB;SACvBe,eAAeI,IAAf,CAAoBpB,GAApB,EAAyBC,GAAzB,CAAP;;;AC3DF;;;;AAIA,AAEA,MAAMoB,aAAaP,MAAMI,SAAzB;;AAEA,AAAO,MAAMI,eAAeL,OAAOM,MAAP,CAAcF,UAAd,CAArB;;AAEP,MAAMG,iBAAkB,CAAC,MAAD,EAAS,KAAT,EAAgB,OAAhB,EAAyB,SAAzB,EAAoC,QAApC,EAA8C,MAA9C,EAAsD,SAAtD,CAAxB;;AAEAA,eAAe3B,OAAf,CAAuB,UAAU4B,MAAV,EAAkB;;QAEjCC,WAAWL,WAAWI,MAAX,CAAjB;;MAEIH,YAAJ,EAAkBG,MAAlB,EAA0B,UAAU,GAAGE,IAAb,EAAmB;;UAErCC,SAASF,SAASG,KAAT,CAAe,IAAf,EAAqBF,IAArB,CAAf;;UAEMG,KAAK,KAAKnB,MAAhB;;QAEIoB,QAAJ;YACQN,MAAR;WACO,MAAL;WACK,SAAL;mBACaE,IAAX;;WAEG,QAAL;mBACaA,KAAKK,KAAL,CAAW,CAAX,CAAX;;;;QAIAD,QAAJ,EAAcD,GAAGG,YAAH,CAAgBF,QAAhB;;;OAGXnB,GAAH,CAAOsB,MAAP;WACON,MAAP;GArBF;CAJF;;ACZA;;;;AAIA,AACA,AACA,AAEA,AAAO,MAAMO,QAAN,CAAe;cACR7B,KAAZ,EAAmB;SACZA,KAAL,GAAaA,KAAb;SACKM,GAAL,GAAW,IAAItB,GAAJ,EAAX;QACIgB,KAAJ,EAAW,QAAX,EAAqB,IAArB;QACGQ,MAAMC,OAAN,CAAcT,KAAd,CAAH,EAAyB;UACpB,eAAe,EAAlB,EAAsB;cACd8B,SAAN,GAAkBd,YAAlB;;WAEGW,YAAL,CAAkB3B,KAAlB;KAJF,MAKO;WACA+B,IAAL,CAAU/B,KAAV;;;;;eAKSgC,GAAb,EAAkB;SACZ,IAAI9B,IAAE,CAAN,EAASC,IAAI6B,IAAI5B,MAArB,EAA6BF,IAAEC,CAA/B,EAAkCD,GAAlC,EAAuC;cAC7B8B,IAAI9B,CAAJ,CAAR;;;;;OAKCR,GAAL,EAAU;WACDuC,IAAP,CAAYvC,GAAZ,EAAiBH,OAAjB,CAAyBI,OAAO;qBACfD,GAAf,EAAoBC,GAApB,EAAyBD,IAAIC,GAAJ,CAAzB;KADF;;;;;AAOJ,AAAO,SAASuC,cAAT,CAAwBxC,GAAxB,EAA6BC,GAA7B,EAAkCC,GAAlC,EAAsC;MACvCuC,UAAUC,QAAQxC,GAAR,CAAd;;QAEMU,MAAM,IAAItB,GAAJ,EAAZ;SACOc,cAAP,CAAsBJ,GAAtB,EAA2BC,GAA3B,EAAgC;UACxB;;UAEAY,MAAJ;UACI4B,OAAJ,EAAa;;gBAEH7B,GAAR,CAAYC,MAAZ;YACIC,MAAMC,OAAN,CAAcb,GAAd,CAAJ,EAAwB;sBACVA,GAAZ;;;aAGGA,GAAP;KAX4B;QAa1ByC,MAAJ,EAAY;UACPzC,QAAQyC,MAAX,EAAmB;gBACTA,MAAR;cACMA,MAAN;;YAEIT,MAAJ;;;GAlBN;;;;AAyBF,AAAO,SAASQ,OAAT,CAAiB1C,GAAjB,EAAsB;MACxB,OAAOA,GAAP,KAAe,QAAf,IAA2BA,QAAQ,IAAtC,EAA4C;;;MAGxC8B,EAAJ;MACGX,OAAOnB,GAAP,EAAY,QAAZ,KAAyBA,IAAIW,MAAJ,YAAsBwB,QAAlD,EAA4D;SACrDnC,IAAIW,MAAT;GADF,MAEO;SACA,IAAIwB,QAAJ,CAAanC,GAAb,CAAL;;SAEK8B,EAAP;;;;AAIF,AAAO,SAASc,KAAT,CAAeC,EAAf,EAAmB;SACjBN,IAAP,CAAYM,GAAGC,KAAf,EAAsBjD,OAAtB,CAA8BI,OAAO;WAC5BG,cAAP,CAAsByC,EAAtB,EAA0B5C,GAA1B,EAA+B;YACvB;eACG4C,GAAGC,KAAH,CAAS7C,GAAT,CAAP;OAF2B;UAIzB0C,MAAJ,EAAY;WACPG,KAAH,CAAS7C,GAAT,IAAgB0C,MAAhB;;KALJ;GADF;;;ACnFF;;;;AAIA,AACA,AAEA,AAAO,MAAMI,OAAN,CAAc;cACPF,EAAZ,EAAgBG,SAAhB,EAA2B;SACpBH,EAAL,GAAUA,EAAV;SACKI,MAAL,GAAcD,SAAd;;;SAGKE,GAAL;;;QAGI;QACAvD,MAAJ,GAAa,IAAb;SACKsD,MAAL,CAAY7B,IAAZ,CAAiB,KAAKyB,EAAtB;QACIlD,MAAJ,GAAa,IAAb;;;;SAIMiB,GAAR,EAAa;QACPuC,MAAJ,CAAW,IAAX;;;WAGO;SACFD,GAAL;;;;;;AC5BJ;;GAIA,AACA,AAEA,AAAO;;ACPP;;;;AAIA,AACA,AACA,AAEA,AAAe,MAAME,IAAN,CAAW;cACZC,OAAZ,EAAqB;SACdC,QAAL,GAAgBD,OAAhB;SACKP,KAAL,GAAaO,QAAQE,IAArB;YACQ,KAAKT,KAAb;;;UAGM,IAAN;;;SAGI,MAAM7C,GAAV,IAAiBoD,QAAQG,OAAzB,EAAkC;WAC3BvD,GAAL,IAAY,OAAOoD,QAAQG,OAAR,CAAgBvD,GAAhB,CAAP,KAAgC,UAAhC,GAA4CoD,QAAQG,OAAR,CAAgBvD,GAAhB,EAAqBwD,IAArB,CAA0B,IAA1B,CAA5C,GAA6EC,IAAzF;;;;;QAKCL,QAAQM,EAAX,EAAe;WACRC,MAAL,CAAYP,QAAQM,EAApB;;;;;SAKGA,EAAP,EAAU;;SAEHE,GAAL,GAAWC,SAASC,aAAT,CAAuBJ,EAAvB,CAAX;;UAEMK,kBAAkB,MAAM;;;;;;;YAOtB,EAAEC,MAAF,KAAa,KAAKX,QAAxB;YACMY,QAAQD,OAAO7C,IAAP,CAAY,IAAZ,EAAkB,KAAK+C,cAAvB,CAAd;WACKC,OAAL,CAAaF,KAAb;KATF;;QAaInB,OAAJ,CAAY,IAAZ,EAAkBiB,eAAlB;;;;iBAIaK,GAAf,EAAoBC,KAApB,EAA2BC,QAA3B,EAAqC;WAC5B,EAAEF,GAAF,EAAOC,KAAP,EAAcC,QAAd,EAAP;;;UAGML,KAAR,EAAe;UACNM,WAAW,KAAKC,MAAtB;QACGD,QAAH,EAAa;;WACPE,SAAL,CAAeF,QAAf,EAAyBN,KAAzB;KADD,MAEO;;WACDQ,SAAL,CAAe,KAAKb,GAApB,EAAyBK,KAAzB;;;;YAIMS,OAAV,EAAmBT,KAAnB,EAAyB;;QAEpBS,QAAQC,QAAX,EAAqB;;YACbC,SAASF,QAAQG,aAAvB;YACMC,SAASJ,QAAQK,WAAvB;;YAEMrB,KAAK,KAAKsB,SAAL,CAAef,KAAf,CAAX;aACOgB,YAAP,CAAoBvB,EAApB,EAAwBoB,MAAxB;aACOI,WAAP,CAAmBR,OAAnB;KANF,MAOO;;YACChB,KAAKO,MAAMP,EAAN,GAAWgB,QAAQhB,EAA9B;;UAEGgB,QAAQN,GAAR,KAAgBH,MAAMG,GAAzB,EAA8B;;;;cAItBe,QAAQT,QAAQJ,QAAtB;cACMc,QAAQnB,MAAMK,QAApB;YACG,OAAOc,KAAP,KAAiB,QAApB,EAA8B;cACzB,OAAOD,KAAP,KAAiB,QAApB,EAA8B;gBACzBC,UAAUD,KAAb,EAAoB;iBACfE,WAAH,GAAiBD,KAAjB;;WAFJ,MAIO;;eAEFC,WAAH,GAAiBD,KAAjB;;SAPJ,MASO;;cAEF,OAAOD,KAAP,KAAiB,QAApB,EAA8B;eACzBG,SAAH,GAAe,EAAf;kBACM1F,OAAN,CAAc2F,SAAS;iBAClBC,WAAH,CAAe,KAAKR,SAAL,CAAeO,KAAf,CAAf;aADF;WAFF,MAKO;;iBACAE,cAAL,CAAoB/B,EAApB,EAAwByB,KAAxB,EAA+BC,KAA/B;;;;;;SAQHZ,MAAL,GAAcP,KAAd;;;YAIQA,KAAV,EAAiB;UACTP,KAAKG,SAAS6B,aAAT,CAAuBzB,MAAMG,GAA7B,CAAX;;SAEK,MAAMpE,GAAX,IAAkBiE,MAAMI,KAAxB,EAA+B;SAC1BsB,YAAH,CAAgB3F,GAAhB,EAAqBiE,MAAMI,KAAN,CAAYrE,GAAZ,CAArB;;;;QAICiE,MAAMK,QAAT,EAAmB;UACd,OAAOL,MAAMK,QAAb,KAA0B,QAA7B,EAAuC;WAClCe,WAAH,GAAiBpB,MAAMK,QAAvB;OADF,MAEO;;cAECA,QAAN,CAAe1E,OAAf,CAAuBqE,SAAS;aAC3BuB,WAAH,CAAe,KAAKR,SAAL,CAAef,KAAf,CAAf;SADF;;;UAKEP,EAAN,GAAWA,EAAX;WACOA,EAAP;;;iBAGaA,EAAf,EAAmByB,KAAnB,EAA0BC,KAA1B,EAAgC;;;;AAIlC,SAAS3B,IAAT,GAAe;;;;"}
\ No newline at end of file
+{"version":3,"file":"vue.js","sources":["../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_core.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_library.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_function-to-string.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_export.js","../node_modules/core-js/modules/_html.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_to-absolute-index.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/es6.array.slice.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_to-object.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_object-sap.js","../node_modules/core-js/modules/es6.object.keys.js","../node_modules/core-js/modules/_object-dps.js","../node_modules/core-js/modules/_object-create.js","../node_modules/core-js/modules/_redefine-all.js","../node_modules/core-js/modules/_an-instance.js","../node_modules/core-js/modules/_iter-call.js","../node_modules/core-js/modules/_iterators.js","../node_modules/core-js/modules/_wks.js","../node_modules/core-js/modules/_is-array-iter.js","../node_modules/core-js/modules/_classof.js","../node_modules/core-js/modules/core.get-iterator-method.js","../node_modules/core-js/modules/_for-of.js","../node_modules/core-js/modules/_set-to-string-tag.js","../node_modules/core-js/modules/_iter-create.js","../node_modules/core-js/modules/_object-gpo.js","../node_modules/core-js/modules/_iter-define.js","../node_modules/core-js/modules/_iter-step.js","../node_modules/core-js/modules/_set-species.js","../node_modules/core-js/modules/_meta.js","../node_modules/core-js/modules/_validate-collection.js","../node_modules/core-js/modules/_collection-strong.js","../node_modules/core-js/modules/_iter-detect.js","../node_modules/core-js/modules/_object-pie.js","../node_modules/core-js/modules/_object-gopd.js","../node_modules/core-js/modules/_set-proto.js","../node_modules/core-js/modules/_inherit-if-required.js","../node_modules/core-js/modules/_collection.js","../node_modules/core-js/modules/es6.set.js","../node_modules/core-js/modules/_string-at.js","../node_modules/core-js/modules/es6.string.iterator.js","../node_modules/core-js/modules/es6.object.to-string.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/core-js/modules/es6.array.iterator.js","../node_modules/core-js/modules/web.dom.iterable.js","../src/dep.js","../node_modules/core-js/modules/_is-regexp.js","../node_modules/core-js/modules/_species-constructor.js","../node_modules/core-js/modules/_advance-string-index.js","../node_modules/core-js/modules/_regexp-exec-abstract.js","../node_modules/core-js/modules/_flags.js","../node_modules/core-js/modules/_regexp-exec.js","../node_modules/core-js/modules/es6.regexp.exec.js","../node_modules/core-js/modules/_fix-re-wks.js","../node_modules/core-js/modules/es6.regexp.split.js","../node_modules/core-js/modules/es6.regexp.replace.js","../src/util.js","../src/array.js","../src/observer.js","../node_modules/core-js/modules/_wks-ext.js","../node_modules/core-js/modules/_wks-define.js","../node_modules/core-js/modules/_object-gops.js","../node_modules/core-js/modules/_enum-keys.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_object-gopn.js","../node_modules/core-js/modules/_object-gopn-ext.js","../node_modules/core-js/modules/es6.symbol.js","../node_modules/core-js/modules/_create-property.js","../node_modules/core-js/modules/es6.array.from.js","../node_modules/core-js/modules/es6.function.name.js","../node_modules/core-js/modules/es6.regexp.constructor.js","../src/watcher.js","../src/entry-dev.js"],"sourcesContent":["// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","module.exports = false;\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","module.exports = {};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","exports.f = {}.propertyIsEnumerable;\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","/**\r\n * 消息管理器\r\n */\r\n\r\nexport class Dep {\r\n constructor() {\r\n this.deps = new Set();\r\n }\r\n\r\n // 添加订阅者\r\n addSub(watcher) {\r\n this.deps.add(watcher);\r\n }\r\n\r\n // 操作watcher addDep 方法\r\n depend () {\r\n if (Dep.target) {\r\n Dep.target.addDep(this)\r\n }\r\n }\r\n\r\n // 通知更新\r\n notify() {\r\n this.deps.forEach(watcher => watcher.update());\r\n }\r\n \r\n}","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","// 返回指定 key 对应的 data值\r\nexport function getDataVal(exp) {\r\n let value\r\n if(/\\[|\\|]|\\./.test(exp)) {\r\n let keyArr = exp.replace(/\\]/g, '').split(/\\[|\\./g);\r\n keyArr.forEach((key, index) => {\r\n value = index === 0? this[key]: value[key];\r\n })\r\n } else {\r\n value = this[exp]\r\n }\r\n return value;\r\n}\r\n\r\n// 设置指定 key 对应的 data值\r\nexport function setDataVal(exp, value) {\r\n let val\r\n if(/\\[|\\|]|\\./.test(exp)) {\r\n let keyArr = exp.replace(/\\]/g, '').split(/\\[|\\./g);\r\n let l = keyArr.length -1 ;\r\n keyArr.forEach((key, index) => {\r\n if(index === 0) {\r\n val = this[key]\r\n } else if (index === l){\r\n val[key] = value\r\n } else {\r\n val = val[key]\r\n }\r\n })\r\n } else {\r\n this[exp] = value\r\n }\r\n}\r\n\r\n\r\n// 定义一个Property\r\nexport function def(obj, key, val, enumerable) {\r\n Object.defineProperty(obj, key, {\r\n value: val,\r\n enumerable: !!enumerable,\r\n writable: true,\r\n configurable: true\r\n })\r\n}\r\n\r\n// 数组响应式处理\r\nexport function dependArray (value) {\r\n for (let e, i = 0, l = value.length; i < l; i++) {\r\n e = value[i]\r\n e && e.__ob__ && e.__ob__.dep.depend()\r\n if (Array.isArray(e)) {\r\n dependArray(e)\r\n }\r\n }\r\n}\r\n\r\n// 检测一个对象的属性是否存在\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nexport function hasOwn(obj, key){\r\n return hasOwnProperty.call(obj, key)\r\n}\r\n","/**\r\n * 数组函数劫持\r\n */\r\n\r\nimport {def} from \"./util\"\r\n\r\nconst arrayProto = Array.prototype\r\n\r\nexport const arrayMethods = Object.create(arrayProto)\r\n\r\nconst methodsToPatch = [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\", \"sort\", \"reverse\"]\r\n\r\nmethodsToPatch.forEach(function (method) {\r\n // 保存原始方法\r\n const original = arrayProto[method]\r\n // 覆盖之\r\n def(arrayMethods, method, function (...args) {\r\n // 1.执行默认方法\r\n const result = original.apply(this, args)\r\n // 2.变更通知\r\n const ob = this.__ob__\r\n // 可能会有新元素加入\r\n let inserted\r\n switch (method) {\r\n case 'push':\r\n case 'unshift':\r\n inserted = args\r\n break\r\n case 'splice':\r\n inserted = args.slice(2)\r\n break\r\n }\r\n // 对新加入的元素做响应式\r\n if (inserted) ob.observeArray(inserted)\r\n // notify change\r\n // ob内部有一个dep,让它去通知更新\r\n ob.dep.notify()\r\n return result\r\n })\r\n})\r\n","/**\r\n * 响应式数据\r\n */\r\n\r\nimport { Dep } from './dep'\r\nimport { arrayMethods } from './array'\r\nimport { def, hasOwn, dependArray } from './util'\r\n\r\nexport class Observer {\r\n constructor(value) {\r\n this.value = value;\r\n this.dep = new Dep()\r\n def(value, '__ob__', this)\r\n if(Array.isArray(value)) {\r\n if('__proto__' in {}) {\r\n value.__proto__ = arrayMethods;\r\n }\r\n this.observeArray(value)\r\n } else {\r\n this.walk(value)\r\n }\r\n }\r\n\r\n // 数组响应式处理\r\n observeArray(arr) {\r\n for(let i=0, l = arr.length; i {\r\n defineReactive(obj, key, obj[key]);\r\n })\r\n }\r\n}\r\n\r\n// 数据劫持\r\nexport function defineReactive(obj, key, val){\r\n let childOb = observe(val);\r\n // 每一可以对应一个 dep;\r\n const dep = new Dep();\r\n Object.defineProperty(obj, key, {\r\n get() {\r\n // 依赖收集\r\n dep.depend();\r\n if (childOb) {\r\n // 子ob也要做依赖收集\r\n childOb.dep.depend()\r\n if (Array.isArray(val)) {\r\n dependArray(val)\r\n }\r\n }\r\n return val;\r\n },\r\n set(newVal) {\r\n if(val !== newVal) {\r\n observe(newVal);\r\n val = newVal;\r\n // 通知更新\r\n dep.notify();\r\n }\r\n }\r\n })\r\n}\r\n\r\n// observe\r\nexport function observe(obj) {\r\n if(typeof obj !== 'object' || obj === null) {\r\n return;\r\n }\r\n let ob;\r\n if(hasOwn(obj, '__ob__') && obj.__ob__ instanceof Observer) {\r\n ob = obj.__ob__\r\n } else {\r\n ob = new Observer(obj);\r\n }\r\n return ob;\r\n}\r\n\r\n// porxy\r\nexport function proxy(vm) {\r\n Object.keys(vm.$data).forEach(key => {\r\n Object.defineProperty(vm, key, {\r\n get() {\r\n return vm.$data[key]\r\n },\r\n set(newVal) {\r\n vm.$data[key] = newVal;\r\n }\r\n })\r\n })\r\n}\r\n\r\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","/**\r\n * 依赖收集\r\n */\r\n\r\nimport { Dep } from \"./dep\";\r\nimport { getDataVal } from \"./util\"\r\n\r\nexport class Watcher {\r\n constructor(vm, updaterFn) {\r\n this.vm = vm;\r\n this.getter = updaterFn;\r\n\r\n // 依赖收集\r\n this.get();\r\n }\r\n\r\n get() {\r\n Dep.target = this;\r\n this.getter.call(this.vm);\r\n Dep.target = null;\r\n }\r\n \r\n // 相互添加引用\r\n addDep (dep) {\r\n dep.addSub(this)\r\n }\r\n\r\n update() {\r\n this.get();\r\n // this.updaterFn.call(this.vm, getDataVal.call(this.vm, this.key))\r\n }\r\n \r\n}","/** \r\n * 入口文件\r\n*/\r\n\r\nimport { observe, proxy } from './observer.js'\r\nimport { Compile } from './compile'\r\nimport { Watcher } from './watcher'\r\n\r\nexport default class Vue {\r\n constructor(options) {\r\n this.$options = options;\r\n this.$data = options.data;\r\n observe(this.$data)\r\n\r\n // 代理data\r\n proxy(this)\r\n\r\n // 代理methods\r\n for(const key in options.methods) {\r\n this[key] = typeof options.methods[key] === 'function'? options.methods[key].bind(this): noop;\r\n }\r\n\r\n // 模板编译\r\n // new Compile(options.el, this)\r\n if(options.el) {\r\n this.$mount(options.el);\r\n }\r\n }\r\n\r\n // 挂载\r\n $mount(el){\r\n // 获取宿主原始\r\n this.$el = document.querySelector(el);\r\n // 组件更新函数\r\n const updateComponent = () => {\r\n const { render } = this.$options;\r\n const vnode = render.call(this, this.$createElement);\r\n this._update(vnode);\r\n\r\n }\r\n // 创建wather\r\n new Watcher(this, updateComponent);\r\n }\r\n\r\n // 获取vnode\r\n $createElement(tag, props, children) {\r\n return { tag, props, children };\r\n }\r\n // 更新\r\n _update(vnode) {\r\n const preVnode = this._vnode;\r\n if(preVnode) { // 更新\r\n this.__patch__(preVnode, vnode)\r\n } else { // 初始化\r\n this.__patch__(this.$el, vnode)\r\n }\r\n }\r\n // patch方法\r\n __patch__(oldVode, vnode){\r\n // 判断old是否为dom\r\n if(oldVode.nodeType) { // 初始化\r\n const parent = oldVode.parentElement;\r\n const refElm = oldVode.nextSibling;\r\n // 递归vnode创建dom树\r\n const el = this.createElm(vnode);\r\n parent.insertBefore(el, refElm);\r\n parent.removeChild(oldVode);\r\n } else { // 更新\r\n const el = vnode.el = oldVode.el;\r\n // 判断是否是相同节点samenode\r\n if(oldVode.tag === vnode.tag) {\r\n // diff\r\n // props\r\n // children\r\n const oldCh = oldVode.children;\r\n const newCh = vnode.children;\r\n if(typeof newCh === 'string') {\r\n if(typeof oldCh === 'string') {\r\n if(newCh !== oldCh) {\r\n el.textContent = newCh;\r\n }\r\n } else {\r\n // 清空并替换为文本\r\n el.textContent = newCh;\r\n }\r\n } else {\r\n // 数组\r\n if(typeof oldCh === 'string') {\r\n el.innerHTML = '';\r\n newCh.forEach(child => {\r\n el.appendChild(this.createElm(child));\r\n })\r\n } else { // 双方都有孩子 diff \r\n this.updateChildren(el, oldCh, newCh);\r\n }\r\n }\r\n }\r\n }\r\n // 保存vnode\r\n this._vnode = vnode;\r\n \r\n }\r\n // 创建真实节点\r\n createElm(vnode) {\r\n const el = document.createElement(vnode.tag);\r\n // props\r\n for (const key in vnode.props) {\r\n el.setAttribute(key, vnode.props[key]);\r\n }\r\n\r\n // 处理子节点\r\n if(vnode.children) {\r\n if(typeof vnode.children !== 'object') {\r\n el.textContent = vnode.children;\r\n } else {\r\n // 数组类子元素\r\n vnode.children.forEach(vnode => {\r\n el.appendChild(this.createElm(vnode));\r\n })\r\n }\r\n }\r\n vnode.el = el;\r\n return el;\r\n }\r\n // 更新子元素\r\n updateChildren(parentElm, oldCh, newCh){\r\n const len = Math.min(oldCh.length, newCh.length);\r\n // 强制更新,不管节点是否相同\r\n for(let i=0; i newCh.length) { // 删除\r\n oldCh.slice(len).forEach(child => {\r\n parentElm.removeChild(child.el);\r\n })\r\n } else { // 追加\r\n newCh.slice(len).forEach(child => {\r\n const el = this.createElm(child);\r\n parentElm.appendChild(el);\r\n })\r\n }\r\n }\r\n}\r\n\r\n// 空函数\r\nfunction noop(){}"],"names":["isObject","require$$0","document","require$$1","require$$2","dP","anObject","toPrimitive","IE8_DOM_DEFINE","createDesc","hasOwnProperty","global","core","$toString","has","hide","aFunction","PROTOTYPE","ctx","redefine","toString","floor","max","min","toInteger","$export","html","toLength","cof","toAbsoluteIndex","defined","IObject","toIObject","uid","IE_PROTO","$keys","enumBugKeys","fails","toObject","getKeys","dPs","ITERATOR","ArrayProto","Iterators","TAG","classof","getIterFn","isArrayIter","call","def","create","descriptor","setToStringTag","ObjectProto","$iterCreate","getPrototypeOf","SPECIES","DESCRIPTORS","anInstance","forOf","redefineAll","validate","$iterDefine","step","setSpecies","gOPD","pIE","meta","$iterDetect","inheritIfRequired","strong","addToUnscopables","wks","i","NAME","proto","$iterators","Dep","deps","Set","watcher","add","target","addDep","forEach","update","LAST_INDEX","regexpFlags","regexpExec","isRegExp","speciesConstructor","callRegExpExec","advanceStringIndex","regExpExec","obj","key","val","enumerable","Object","defineProperty","value","writable","configurable","dependArray","e","l","length","__ob__","dep","depend","Array","isArray","prototype","hasOwn","arrayProto","arrayMethods","methodsToPatch","method","original","args","result","apply","ob","inserted","slice","observeArray","notify","Observer","__proto__","walk","arr","observe","keys","defineReactive","childOb","get","set","newVal","proxy","vm","$data","wksExt","gOPS","gOPN","$GOPD","$DP","gOPNExt","shared","$GOPS","$fails","_create","enumKeys","require$$3","wksDefine","require$$4","$defineProperty","createProperty","$flags","require$$5","require$$6","Watcher","updaterFn","getter","addSub","Vue","options","$options","data","methods","bind","noop","el","$mount","$el","querySelector","updateComponent","render","vnode","$createElement","_update","tag","props","children","preVnode","_vnode","__patch__","oldVode","nodeType","parent","parentElement","refElm","nextSibling","createElm","insertBefore","removeChild","oldCh","newCh","textContent","innerHTML","child","appendChild","updateChildren","createElement","setAttribute","parentElm","len","Math"],"mappings":"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"}
\ No newline at end of file
diff --git a/examples/index.html b/examples/index.html
index f4116d9..fdc1068 100644
--- a/examples/index.html
+++ b/examples/index.html
@@ -10,9 +10,9 @@