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) +![Alt text](vue2.jpg) +[vue2组件化思维导图](https://www.processon.com/view/link/61509b680e3e74520cb8cff7) +![Alt text](vue2-component.jpg) \ 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":"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"} \ 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 @@ - +