vue 2.6.4 → 2.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -3
- package/dist/vue.common.dev.js +161 -69
- package/dist/vue.common.prod.js +2 -2
- package/dist/vue.esm.browser.js +159 -65
- package/dist/vue.esm.browser.min.js +2 -2
- package/dist/vue.esm.js +161 -69
- package/dist/vue.js +161 -69
- package/dist/vue.min.js +2 -2
- package/dist/vue.runtime.common.dev.js +92 -51
- package/dist/vue.runtime.common.prod.js +2 -2
- package/dist/vue.runtime.esm.js +92 -51
- package/dist/vue.runtime.js +92 -51
- package/dist/vue.runtime.min.js +2 -2
- package/package.json +2 -2
- package/src/compiler/codeframe.js +7 -5
- package/src/compiler/codegen/events.js +7 -1
- package/src/compiler/codegen/index.js +54 -10
- package/src/compiler/parser/html-parser.js +3 -3
- package/src/compiler/parser/index.js +3 -2
- package/src/core/instance/lifecycle.js +5 -2
- package/src/core/instance/render-helpers/resolve-scoped-slots.js +7 -2
- package/src/core/util/error.js +23 -13
- package/src/core/util/lang.js +2 -2
- package/src/core/util/options.js +2 -2
- package/src/core/vdom/helpers/normalize-scoped-slots.js +15 -5
- package/src/core/vdom/helpers/resolve-async-component.js +11 -6
- package/src/platforms/web/runtime/modules/dom-props.js +13 -11
- package/src/platforms/web/runtime/modules/events.js +9 -1
- package/src/server/write.js +1 -1
- package/types/vnode.d.ts +5 -1
- package/types/vue.d.ts +3 -3
package/dist/vue.runtime.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vue.js v2.6.
|
|
2
|
+
* Vue.js v2.6.8
|
|
3
3
|
* (c) 2014-2019 Evan You
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -466,7 +466,7 @@ var config = ({
|
|
|
466
466
|
* using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
|
|
467
467
|
* skipping \u10000-\uEFFFF due to it freezing up PhantomJS
|
|
468
468
|
*/
|
|
469
|
-
var
|
|
469
|
+
var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
|
|
470
470
|
|
|
471
471
|
/**
|
|
472
472
|
* Check if a string starts with $ or _
|
|
@@ -491,7 +491,7 @@ function def (obj, key, val, enumerable) {
|
|
|
491
491
|
/**
|
|
492
492
|
* Parse simple path.
|
|
493
493
|
*/
|
|
494
|
-
var bailRE = new RegExp(("[^" +
|
|
494
|
+
var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]"));
|
|
495
495
|
function parsePath (path) {
|
|
496
496
|
if (bailRE.test(path)) {
|
|
497
497
|
return
|
|
@@ -1397,7 +1397,7 @@ function checkComponents (options) {
|
|
|
1397
1397
|
}
|
|
1398
1398
|
|
|
1399
1399
|
function validateComponentName (name) {
|
|
1400
|
-
if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" +
|
|
1400
|
+
if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) {
|
|
1401
1401
|
warn(
|
|
1402
1402
|
'Invalid component name: "' + name + '". Component names ' +
|
|
1403
1403
|
'should conform to valid custom element name in html5 specification.'
|
|
@@ -1816,23 +1816,30 @@ function isBoolean () {
|
|
|
1816
1816
|
/* */
|
|
1817
1817
|
|
|
1818
1818
|
function handleError (err, vm, info) {
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1819
|
+
// Deactivate deps tracking while processing error handler to avoid possible infinite rendering.
|
|
1820
|
+
// See: https://github.com/vuejs/vuex/issues/1505
|
|
1821
|
+
pushTarget();
|
|
1822
|
+
try {
|
|
1823
|
+
if (vm) {
|
|
1824
|
+
var cur = vm;
|
|
1825
|
+
while ((cur = cur.$parent)) {
|
|
1826
|
+
var hooks = cur.$options.errorCaptured;
|
|
1827
|
+
if (hooks) {
|
|
1828
|
+
for (var i = 0; i < hooks.length; i++) {
|
|
1829
|
+
try {
|
|
1830
|
+
var capture = hooks[i].call(cur, err, vm, info) === false;
|
|
1831
|
+
if (capture) { return }
|
|
1832
|
+
} catch (e) {
|
|
1833
|
+
globalHandleError(e, cur, 'errorCaptured hook');
|
|
1834
|
+
}
|
|
1830
1835
|
}
|
|
1831
1836
|
}
|
|
1832
1837
|
}
|
|
1833
1838
|
}
|
|
1839
|
+
globalHandleError(err, vm, info);
|
|
1840
|
+
} finally {
|
|
1841
|
+
popTarget();
|
|
1834
1842
|
}
|
|
1835
|
-
globalHandleError(err, vm, info);
|
|
1836
1843
|
}
|
|
1837
1844
|
|
|
1838
1845
|
function invokeWithErrorHandling (
|
|
@@ -1846,7 +1853,9 @@ function invokeWithErrorHandling (
|
|
|
1846
1853
|
try {
|
|
1847
1854
|
res = args ? handler.apply(context, args) : handler.call(context);
|
|
1848
1855
|
if (res && !res._isVue && isPromise(res)) {
|
|
1849
|
-
|
|
1856
|
+
// issue #9511
|
|
1857
|
+
// reassign to res to avoid catch triggering multiple times when nested calls
|
|
1858
|
+
res = res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); });
|
|
1850
1859
|
}
|
|
1851
1860
|
} catch (e) {
|
|
1852
1861
|
handleError(e, vm, info);
|
|
@@ -2531,26 +2540,35 @@ function normalizeScopedSlots (
|
|
|
2531
2540
|
prevSlots
|
|
2532
2541
|
) {
|
|
2533
2542
|
var res;
|
|
2543
|
+
var isStable = slots ? !!slots.$stable : true;
|
|
2544
|
+
var key = slots && slots.$key;
|
|
2534
2545
|
if (!slots) {
|
|
2535
2546
|
res = {};
|
|
2536
2547
|
} else if (slots._normalized) {
|
|
2537
2548
|
// fast path 1: child component re-render only, parent did not change
|
|
2538
2549
|
return slots._normalized
|
|
2539
|
-
} else if (
|
|
2540
|
-
|
|
2550
|
+
} else if (
|
|
2551
|
+
isStable &&
|
|
2552
|
+
prevSlots &&
|
|
2553
|
+
prevSlots !== emptyObject &&
|
|
2554
|
+
key === prevSlots.$key &&
|
|
2555
|
+
Object.keys(normalSlots).length === 0
|
|
2556
|
+
) {
|
|
2557
|
+
// fast path 2: stable scoped slots w/ no normal slots to proxy,
|
|
2558
|
+
// only need to normalize once
|
|
2541
2559
|
return prevSlots
|
|
2542
2560
|
} else {
|
|
2543
2561
|
res = {};
|
|
2544
|
-
for (var key in slots) {
|
|
2545
|
-
if (slots[key] && key[0] !== '$') {
|
|
2546
|
-
res[key] = normalizeScopedSlot(normalSlots, key, slots[key]);
|
|
2562
|
+
for (var key$1 in slots) {
|
|
2563
|
+
if (slots[key$1] && key$1[0] !== '$') {
|
|
2564
|
+
res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);
|
|
2547
2565
|
}
|
|
2548
2566
|
}
|
|
2549
2567
|
}
|
|
2550
2568
|
// expose normal slots on scopedSlots
|
|
2551
|
-
for (var key$
|
|
2552
|
-
if (!(key$
|
|
2553
|
-
res[key$
|
|
2569
|
+
for (var key$2 in normalSlots) {
|
|
2570
|
+
if (!(key$2 in res)) {
|
|
2571
|
+
res[key$2] = proxyNormalSlot(normalSlots, key$2);
|
|
2554
2572
|
}
|
|
2555
2573
|
}
|
|
2556
2574
|
// avoriaz seems to mock a non-extensible $scopedSlots object
|
|
@@ -2558,13 +2576,14 @@ function normalizeScopedSlots (
|
|
|
2558
2576
|
if (slots && Object.isExtensible(slots)) {
|
|
2559
2577
|
(slots)._normalized = res;
|
|
2560
2578
|
}
|
|
2561
|
-
def(res, '$stable',
|
|
2579
|
+
def(res, '$stable', isStable);
|
|
2580
|
+
def(res, '$key', key);
|
|
2562
2581
|
return res
|
|
2563
2582
|
}
|
|
2564
2583
|
|
|
2565
2584
|
function normalizeScopedSlot(normalSlots, key, fn) {
|
|
2566
|
-
var normalized = function (
|
|
2567
|
-
var res = fn(
|
|
2585
|
+
var normalized = function () {
|
|
2586
|
+
var res = arguments.length ? fn.apply(null, arguments) : fn({});
|
|
2568
2587
|
res = res && typeof res === 'object' && !Array.isArray(res)
|
|
2569
2588
|
? [res] // single vnode
|
|
2570
2589
|
: normalizeChildren(res);
|
|
@@ -2853,14 +2872,16 @@ function bindObjectListeners (data, value) {
|
|
|
2853
2872
|
|
|
2854
2873
|
function resolveScopedSlots (
|
|
2855
2874
|
fns, // see flow/vnode
|
|
2875
|
+
res,
|
|
2876
|
+
// the following are added in 2.6
|
|
2856
2877
|
hasDynamicKeys,
|
|
2857
|
-
|
|
2878
|
+
contentHashKey
|
|
2858
2879
|
) {
|
|
2859
2880
|
res = res || { $stable: !hasDynamicKeys };
|
|
2860
2881
|
for (var i = 0; i < fns.length; i++) {
|
|
2861
2882
|
var slot = fns[i];
|
|
2862
2883
|
if (Array.isArray(slot)) {
|
|
2863
|
-
resolveScopedSlots(slot,
|
|
2884
|
+
resolveScopedSlots(slot, res, hasDynamicKeys);
|
|
2864
2885
|
} else if (slot) {
|
|
2865
2886
|
// marker for reverse proxying v-slot without scope on this.$slots
|
|
2866
2887
|
if (slot.proxy) {
|
|
@@ -2869,6 +2890,9 @@ function resolveScopedSlots (
|
|
|
2869
2890
|
res[slot.key] = slot.fn;
|
|
2870
2891
|
}
|
|
2871
2892
|
}
|
|
2893
|
+
if (contentHashKey) {
|
|
2894
|
+
(res).$key = contentHashKey;
|
|
2895
|
+
}
|
|
2872
2896
|
return res
|
|
2873
2897
|
}
|
|
2874
2898
|
|
|
@@ -3587,17 +3611,21 @@ function resolveAsyncComponent (
|
|
|
3587
3611
|
return factory.resolved
|
|
3588
3612
|
}
|
|
3589
3613
|
|
|
3614
|
+
var owner = currentRenderingInstance;
|
|
3615
|
+
if (isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
|
|
3616
|
+
// already pending
|
|
3617
|
+
factory.owners.push(owner);
|
|
3618
|
+
}
|
|
3619
|
+
|
|
3590
3620
|
if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
|
|
3591
3621
|
return factory.loadingComp
|
|
3592
3622
|
}
|
|
3593
3623
|
|
|
3594
|
-
|
|
3595
|
-
if (isDef(factory.owners)) {
|
|
3596
|
-
// already pending
|
|
3597
|
-
factory.owners.push(owner);
|
|
3598
|
-
} else {
|
|
3624
|
+
if (!isDef(factory.owners)) {
|
|
3599
3625
|
var owners = factory.owners = [owner];
|
|
3600
|
-
var sync = true
|
|
3626
|
+
var sync = true
|
|
3627
|
+
|
|
3628
|
+
;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });
|
|
3601
3629
|
|
|
3602
3630
|
var forceRender = function (renderCompleted) {
|
|
3603
3631
|
for (var i = 0, l = owners.length; i < l; i++) {
|
|
@@ -4052,9 +4080,12 @@ function updateChildComponent (
|
|
|
4052
4080
|
// check if there are dynamic scopedSlots (hand-written or compiled but with
|
|
4053
4081
|
// dynamic slot names). Static scoped slots compiled from template has the
|
|
4054
4082
|
// "$stable" marker.
|
|
4083
|
+
var newScopedSlots = parentVnode.data.scopedSlots;
|
|
4084
|
+
var oldScopedSlots = vm.$scopedSlots;
|
|
4055
4085
|
var hasDynamicScopedSlot = !!(
|
|
4056
|
-
(
|
|
4057
|
-
(
|
|
4086
|
+
(newScopedSlots && !newScopedSlots.$stable) ||
|
|
4087
|
+
(oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||
|
|
4088
|
+
(newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)
|
|
4058
4089
|
);
|
|
4059
4090
|
|
|
4060
4091
|
// Any static slot children from the parent may have changed during parent's
|
|
@@ -5384,7 +5415,7 @@ Object.defineProperty(Vue, 'FunctionalRenderContext', {
|
|
|
5384
5415
|
value: FunctionalRenderContext
|
|
5385
5416
|
});
|
|
5386
5417
|
|
|
5387
|
-
Vue.version = '2.6.
|
|
5418
|
+
Vue.version = '2.6.8';
|
|
5388
5419
|
|
|
5389
5420
|
/* */
|
|
5390
5421
|
|
|
@@ -6833,9 +6864,17 @@ function add$1 (
|
|
|
6833
6864
|
var original = handler;
|
|
6834
6865
|
handler = original._wrapper = function (e) {
|
|
6835
6866
|
if (
|
|
6867
|
+
// no bubbling, should always fire.
|
|
6868
|
+
// this is just a safety net in case event.timeStamp is unreliable in
|
|
6869
|
+
// certain weird environments...
|
|
6870
|
+
e.target === e.currentTarget ||
|
|
6871
|
+
// event is fired after handler attachment
|
|
6836
6872
|
e.timeStamp >= attachedTimestamp ||
|
|
6873
|
+
// #9462 bail for iOS 9 bug: event.timeStamp is 0 after history.pushState
|
|
6874
|
+
e.timeStamp === 0 ||
|
|
6837
6875
|
// #9448 bail if event is fired in another document in a multi-page
|
|
6838
|
-
// electron/nw.js app
|
|
6876
|
+
// electron/nw.js app, since event.timeStamp will be using a different
|
|
6877
|
+
// starting reference
|
|
6839
6878
|
e.target.ownerDocument !== document
|
|
6840
6879
|
) {
|
|
6841
6880
|
return original.apply(this, arguments)
|
|
@@ -6918,15 +6957,7 @@ function updateDOMProps (oldVnode, vnode) {
|
|
|
6918
6957
|
}
|
|
6919
6958
|
}
|
|
6920
6959
|
|
|
6921
|
-
|
|
6922
|
-
// the only exception is `value` where the DOM value may be temporarily
|
|
6923
|
-
// out of sync with VDOM state due to focus, composition and modifiers.
|
|
6924
|
-
// This also covers #4521 by skipping the unnecesarry `checked` update.
|
|
6925
|
-
if (key !== 'value' && cur === oldProps[key]) {
|
|
6926
|
-
continue
|
|
6927
|
-
}
|
|
6928
|
-
|
|
6929
|
-
if (key === 'value') {
|
|
6960
|
+
if (key === 'value' && elm.tagName !== 'PROGRESS') {
|
|
6930
6961
|
// store value as _value as well since
|
|
6931
6962
|
// non-string values will be stringified
|
|
6932
6963
|
elm._value = cur;
|
|
@@ -6946,8 +6977,18 @@ function updateDOMProps (oldVnode, vnode) {
|
|
|
6946
6977
|
while (svg.firstChild) {
|
|
6947
6978
|
elm.appendChild(svg.firstChild);
|
|
6948
6979
|
}
|
|
6949
|
-
} else
|
|
6950
|
-
|
|
6980
|
+
} else if (
|
|
6981
|
+
// skip the update if old and new VDOM state is the same.
|
|
6982
|
+
// `value` is handled separately because the DOM value may be temporarily
|
|
6983
|
+
// out of sync with VDOM state due to focus, composition and modifiers.
|
|
6984
|
+
// This #4521 by skipping the unnecesarry `checked` update.
|
|
6985
|
+
cur !== oldProps[key]
|
|
6986
|
+
) {
|
|
6987
|
+
// some property updates can throw
|
|
6988
|
+
// e.g. `value` on <progress> w/ non-finite value
|
|
6989
|
+
try {
|
|
6990
|
+
elm[key] = cur;
|
|
6991
|
+
} catch (e) {}
|
|
6951
6992
|
}
|
|
6952
6993
|
}
|
|
6953
6994
|
}
|
package/dist/vue.runtime.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vue.js v2.6.
|
|
2
|
+
* Vue.js v2.6.8
|
|
3
3
|
* (c) 2014-2019 Evan You
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -472,7 +472,7 @@
|
|
|
472
472
|
* using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
|
|
473
473
|
* skipping \u10000-\uEFFFF due to it freezing up PhantomJS
|
|
474
474
|
*/
|
|
475
|
-
var
|
|
475
|
+
var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
|
|
476
476
|
|
|
477
477
|
/**
|
|
478
478
|
* Check if a string starts with $ or _
|
|
@@ -497,7 +497,7 @@
|
|
|
497
497
|
/**
|
|
498
498
|
* Parse simple path.
|
|
499
499
|
*/
|
|
500
|
-
var bailRE = new RegExp(("[^" +
|
|
500
|
+
var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]"));
|
|
501
501
|
function parsePath (path) {
|
|
502
502
|
if (bailRE.test(path)) {
|
|
503
503
|
return
|
|
@@ -1401,7 +1401,7 @@
|
|
|
1401
1401
|
}
|
|
1402
1402
|
|
|
1403
1403
|
function validateComponentName (name) {
|
|
1404
|
-
if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" +
|
|
1404
|
+
if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) {
|
|
1405
1405
|
warn(
|
|
1406
1406
|
'Invalid component name: "' + name + '". Component names ' +
|
|
1407
1407
|
'should conform to valid custom element name in html5 specification.'
|
|
@@ -1816,23 +1816,30 @@
|
|
|
1816
1816
|
/* */
|
|
1817
1817
|
|
|
1818
1818
|
function handleError (err, vm, info) {
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1819
|
+
// Deactivate deps tracking while processing error handler to avoid possible infinite rendering.
|
|
1820
|
+
// See: https://github.com/vuejs/vuex/issues/1505
|
|
1821
|
+
pushTarget();
|
|
1822
|
+
try {
|
|
1823
|
+
if (vm) {
|
|
1824
|
+
var cur = vm;
|
|
1825
|
+
while ((cur = cur.$parent)) {
|
|
1826
|
+
var hooks = cur.$options.errorCaptured;
|
|
1827
|
+
if (hooks) {
|
|
1828
|
+
for (var i = 0; i < hooks.length; i++) {
|
|
1829
|
+
try {
|
|
1830
|
+
var capture = hooks[i].call(cur, err, vm, info) === false;
|
|
1831
|
+
if (capture) { return }
|
|
1832
|
+
} catch (e) {
|
|
1833
|
+
globalHandleError(e, cur, 'errorCaptured hook');
|
|
1834
|
+
}
|
|
1830
1835
|
}
|
|
1831
1836
|
}
|
|
1832
1837
|
}
|
|
1833
1838
|
}
|
|
1839
|
+
globalHandleError(err, vm, info);
|
|
1840
|
+
} finally {
|
|
1841
|
+
popTarget();
|
|
1834
1842
|
}
|
|
1835
|
-
globalHandleError(err, vm, info);
|
|
1836
1843
|
}
|
|
1837
1844
|
|
|
1838
1845
|
function invokeWithErrorHandling (
|
|
@@ -1846,7 +1853,9 @@
|
|
|
1846
1853
|
try {
|
|
1847
1854
|
res = args ? handler.apply(context, args) : handler.call(context);
|
|
1848
1855
|
if (res && !res._isVue && isPromise(res)) {
|
|
1849
|
-
|
|
1856
|
+
// issue #9511
|
|
1857
|
+
// reassign to res to avoid catch triggering multiple times when nested calls
|
|
1858
|
+
res = res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); });
|
|
1850
1859
|
}
|
|
1851
1860
|
} catch (e) {
|
|
1852
1861
|
handleError(e, vm, info);
|
|
@@ -2529,26 +2538,35 @@
|
|
|
2529
2538
|
prevSlots
|
|
2530
2539
|
) {
|
|
2531
2540
|
var res;
|
|
2541
|
+
var isStable = slots ? !!slots.$stable : true;
|
|
2542
|
+
var key = slots && slots.$key;
|
|
2532
2543
|
if (!slots) {
|
|
2533
2544
|
res = {};
|
|
2534
2545
|
} else if (slots._normalized) {
|
|
2535
2546
|
// fast path 1: child component re-render only, parent did not change
|
|
2536
2547
|
return slots._normalized
|
|
2537
|
-
} else if (
|
|
2538
|
-
|
|
2548
|
+
} else if (
|
|
2549
|
+
isStable &&
|
|
2550
|
+
prevSlots &&
|
|
2551
|
+
prevSlots !== emptyObject &&
|
|
2552
|
+
key === prevSlots.$key &&
|
|
2553
|
+
Object.keys(normalSlots).length === 0
|
|
2554
|
+
) {
|
|
2555
|
+
// fast path 2: stable scoped slots w/ no normal slots to proxy,
|
|
2556
|
+
// only need to normalize once
|
|
2539
2557
|
return prevSlots
|
|
2540
2558
|
} else {
|
|
2541
2559
|
res = {};
|
|
2542
|
-
for (var key in slots) {
|
|
2543
|
-
if (slots[key] && key[0] !== '$') {
|
|
2544
|
-
res[key] = normalizeScopedSlot(normalSlots, key, slots[key]);
|
|
2560
|
+
for (var key$1 in slots) {
|
|
2561
|
+
if (slots[key$1] && key$1[0] !== '$') {
|
|
2562
|
+
res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);
|
|
2545
2563
|
}
|
|
2546
2564
|
}
|
|
2547
2565
|
}
|
|
2548
2566
|
// expose normal slots on scopedSlots
|
|
2549
|
-
for (var key$
|
|
2550
|
-
if (!(key$
|
|
2551
|
-
res[key$
|
|
2567
|
+
for (var key$2 in normalSlots) {
|
|
2568
|
+
if (!(key$2 in res)) {
|
|
2569
|
+
res[key$2] = proxyNormalSlot(normalSlots, key$2);
|
|
2552
2570
|
}
|
|
2553
2571
|
}
|
|
2554
2572
|
// avoriaz seems to mock a non-extensible $scopedSlots object
|
|
@@ -2556,13 +2574,14 @@
|
|
|
2556
2574
|
if (slots && Object.isExtensible(slots)) {
|
|
2557
2575
|
(slots)._normalized = res;
|
|
2558
2576
|
}
|
|
2559
|
-
def(res, '$stable',
|
|
2577
|
+
def(res, '$stable', isStable);
|
|
2578
|
+
def(res, '$key', key);
|
|
2560
2579
|
return res
|
|
2561
2580
|
}
|
|
2562
2581
|
|
|
2563
2582
|
function normalizeScopedSlot(normalSlots, key, fn) {
|
|
2564
|
-
var normalized = function (
|
|
2565
|
-
var res = fn(
|
|
2583
|
+
var normalized = function () {
|
|
2584
|
+
var res = arguments.length ? fn.apply(null, arguments) : fn({});
|
|
2566
2585
|
res = res && typeof res === 'object' && !Array.isArray(res)
|
|
2567
2586
|
? [res] // single vnode
|
|
2568
2587
|
: normalizeChildren(res);
|
|
@@ -2851,14 +2870,16 @@
|
|
|
2851
2870
|
|
|
2852
2871
|
function resolveScopedSlots (
|
|
2853
2872
|
fns, // see flow/vnode
|
|
2873
|
+
res,
|
|
2874
|
+
// the following are added in 2.6
|
|
2854
2875
|
hasDynamicKeys,
|
|
2855
|
-
|
|
2876
|
+
contentHashKey
|
|
2856
2877
|
) {
|
|
2857
2878
|
res = res || { $stable: !hasDynamicKeys };
|
|
2858
2879
|
for (var i = 0; i < fns.length; i++) {
|
|
2859
2880
|
var slot = fns[i];
|
|
2860
2881
|
if (Array.isArray(slot)) {
|
|
2861
|
-
resolveScopedSlots(slot,
|
|
2882
|
+
resolveScopedSlots(slot, res, hasDynamicKeys);
|
|
2862
2883
|
} else if (slot) {
|
|
2863
2884
|
// marker for reverse proxying v-slot without scope on this.$slots
|
|
2864
2885
|
if (slot.proxy) {
|
|
@@ -2867,6 +2888,9 @@
|
|
|
2867
2888
|
res[slot.key] = slot.fn;
|
|
2868
2889
|
}
|
|
2869
2890
|
}
|
|
2891
|
+
if (contentHashKey) {
|
|
2892
|
+
(res).$key = contentHashKey;
|
|
2893
|
+
}
|
|
2870
2894
|
return res
|
|
2871
2895
|
}
|
|
2872
2896
|
|
|
@@ -3581,17 +3605,21 @@
|
|
|
3581
3605
|
return factory.resolved
|
|
3582
3606
|
}
|
|
3583
3607
|
|
|
3608
|
+
var owner = currentRenderingInstance;
|
|
3609
|
+
if (isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
|
|
3610
|
+
// already pending
|
|
3611
|
+
factory.owners.push(owner);
|
|
3612
|
+
}
|
|
3613
|
+
|
|
3584
3614
|
if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
|
|
3585
3615
|
return factory.loadingComp
|
|
3586
3616
|
}
|
|
3587
3617
|
|
|
3588
|
-
|
|
3589
|
-
if (isDef(factory.owners)) {
|
|
3590
|
-
// already pending
|
|
3591
|
-
factory.owners.push(owner);
|
|
3592
|
-
} else {
|
|
3618
|
+
if (!isDef(factory.owners)) {
|
|
3593
3619
|
var owners = factory.owners = [owner];
|
|
3594
|
-
var sync = true
|
|
3620
|
+
var sync = true
|
|
3621
|
+
|
|
3622
|
+
;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });
|
|
3595
3623
|
|
|
3596
3624
|
var forceRender = function (renderCompleted) {
|
|
3597
3625
|
for (var i = 0, l = owners.length; i < l; i++) {
|
|
@@ -4044,9 +4072,12 @@
|
|
|
4044
4072
|
// check if there are dynamic scopedSlots (hand-written or compiled but with
|
|
4045
4073
|
// dynamic slot names). Static scoped slots compiled from template has the
|
|
4046
4074
|
// "$stable" marker.
|
|
4075
|
+
var newScopedSlots = parentVnode.data.scopedSlots;
|
|
4076
|
+
var oldScopedSlots = vm.$scopedSlots;
|
|
4047
4077
|
var hasDynamicScopedSlot = !!(
|
|
4048
|
-
(
|
|
4049
|
-
(
|
|
4078
|
+
(newScopedSlots && !newScopedSlots.$stable) ||
|
|
4079
|
+
(oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||
|
|
4080
|
+
(newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)
|
|
4050
4081
|
);
|
|
4051
4082
|
|
|
4052
4083
|
// Any static slot children from the parent may have changed during parent's
|
|
@@ -5368,7 +5399,7 @@
|
|
|
5368
5399
|
value: FunctionalRenderContext
|
|
5369
5400
|
});
|
|
5370
5401
|
|
|
5371
|
-
Vue.version = '2.6.
|
|
5402
|
+
Vue.version = '2.6.8';
|
|
5372
5403
|
|
|
5373
5404
|
/* */
|
|
5374
5405
|
|
|
@@ -6815,9 +6846,17 @@
|
|
|
6815
6846
|
var original = handler;
|
|
6816
6847
|
handler = original._wrapper = function (e) {
|
|
6817
6848
|
if (
|
|
6849
|
+
// no bubbling, should always fire.
|
|
6850
|
+
// this is just a safety net in case event.timeStamp is unreliable in
|
|
6851
|
+
// certain weird environments...
|
|
6852
|
+
e.target === e.currentTarget ||
|
|
6853
|
+
// event is fired after handler attachment
|
|
6818
6854
|
e.timeStamp >= attachedTimestamp ||
|
|
6855
|
+
// #9462 bail for iOS 9 bug: event.timeStamp is 0 after history.pushState
|
|
6856
|
+
e.timeStamp === 0 ||
|
|
6819
6857
|
// #9448 bail if event is fired in another document in a multi-page
|
|
6820
|
-
// electron/nw.js app
|
|
6858
|
+
// electron/nw.js app, since event.timeStamp will be using a different
|
|
6859
|
+
// starting reference
|
|
6821
6860
|
e.target.ownerDocument !== document
|
|
6822
6861
|
) {
|
|
6823
6862
|
return original.apply(this, arguments)
|
|
@@ -6900,15 +6939,7 @@
|
|
|
6900
6939
|
}
|
|
6901
6940
|
}
|
|
6902
6941
|
|
|
6903
|
-
|
|
6904
|
-
// the only exception is `value` where the DOM value may be temporarily
|
|
6905
|
-
// out of sync with VDOM state due to focus, composition and modifiers.
|
|
6906
|
-
// This also covers #4521 by skipping the unnecesarry `checked` update.
|
|
6907
|
-
if (key !== 'value' && cur === oldProps[key]) {
|
|
6908
|
-
continue
|
|
6909
|
-
}
|
|
6910
|
-
|
|
6911
|
-
if (key === 'value') {
|
|
6942
|
+
if (key === 'value' && elm.tagName !== 'PROGRESS') {
|
|
6912
6943
|
// store value as _value as well since
|
|
6913
6944
|
// non-string values will be stringified
|
|
6914
6945
|
elm._value = cur;
|
|
@@ -6928,8 +6959,18 @@
|
|
|
6928
6959
|
while (svg.firstChild) {
|
|
6929
6960
|
elm.appendChild(svg.firstChild);
|
|
6930
6961
|
}
|
|
6931
|
-
} else
|
|
6932
|
-
|
|
6962
|
+
} else if (
|
|
6963
|
+
// skip the update if old and new VDOM state is the same.
|
|
6964
|
+
// `value` is handled separately because the DOM value may be temporarily
|
|
6965
|
+
// out of sync with VDOM state due to focus, composition and modifiers.
|
|
6966
|
+
// This #4521 by skipping the unnecesarry `checked` update.
|
|
6967
|
+
cur !== oldProps[key]
|
|
6968
|
+
) {
|
|
6969
|
+
// some property updates can throw
|
|
6970
|
+
// e.g. `value` on <progress> w/ non-finite value
|
|
6971
|
+
try {
|
|
6972
|
+
elm[key] = cur;
|
|
6973
|
+
} catch (e) {}
|
|
6933
6974
|
}
|
|
6934
6975
|
}
|
|
6935
6976
|
}
|