|
|
@@ -1,5 +1,5 @@
|
|
|
/*!
|
|
|
- * Vue.js v2.6.9
|
|
|
+ * Vue.js v2.6.10
|
|
|
* (c) 2014-2019 Evan You
|
|
|
* Released under the MIT License.
|
|
|
*/
|
|
|
@@ -2550,8 +2550,8 @@ function normalizeScopedSlots (
|
|
|
prevSlots
|
|
|
) {
|
|
|
var res;
|
|
|
- var isStable = slots ? !!slots.$stable : true;
|
|
|
var hasNormalSlots = Object.keys(normalSlots).length > 0;
|
|
|
+ var isStable = slots ? !!slots.$stable : !hasNormalSlots;
|
|
|
var key = slots && slots.$key;
|
|
|
if (!slots) {
|
|
|
res = {};
|
|
|
@@ -3639,7 +3639,9 @@ function resolveAsyncComponent (
|
|
|
|
|
|
if (owner && !isDef(factory.owners)) {
|
|
|
var owners = factory.owners = [owner];
|
|
|
- var sync = true
|
|
|
+ var sync = true;
|
|
|
+ var timerLoading = null;
|
|
|
+ var timerTimeout = null
|
|
|
|
|
|
;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });
|
|
|
|
|
|
@@ -3650,6 +3652,14 @@ function resolveAsyncComponent (
|
|
|
|
|
|
if (renderCompleted) {
|
|
|
owners.length = 0;
|
|
|
+ if (timerLoading !== null) {
|
|
|
+ clearTimeout(timerLoading);
|
|
|
+ timerLoading = null;
|
|
|
+ }
|
|
|
+ if (timerTimeout !== null) {
|
|
|
+ clearTimeout(timerTimeout);
|
|
|
+ timerTimeout = null;
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -3696,7 +3706,8 @@ function resolveAsyncComponent (
|
|
|
if (res.delay === 0) {
|
|
|
factory.loading = true;
|
|
|
} else {
|
|
|
- setTimeout(function () {
|
|
|
+ timerLoading = setTimeout(function () {
|
|
|
+ timerLoading = null;
|
|
|
if (isUndef(factory.resolved) && isUndef(factory.error)) {
|
|
|
factory.loading = true;
|
|
|
forceRender(false);
|
|
|
@@ -3706,7 +3717,8 @@ function resolveAsyncComponent (
|
|
|
}
|
|
|
|
|
|
if (isDef(res.timeout)) {
|
|
|
- setTimeout(function () {
|
|
|
+ timerTimeout = setTimeout(function () {
|
|
|
+ timerTimeout = null;
|
|
|
if (isUndef(factory.resolved)) {
|
|
|
reject(
|
|
|
process.env.NODE_ENV !== 'production'
|
|
|
@@ -4254,16 +4266,21 @@ var getNow = Date.now;
|
|
|
// timestamp can either be hi-res (relative to page load) or low-res
|
|
|
// (relative to UNIX epoch), so in order to compare time we have to use the
|
|
|
// same timestamp type when saving the flush timestamp.
|
|
|
-if (
|
|
|
- inBrowser &&
|
|
|
- window.performance &&
|
|
|
- typeof performance.now === 'function' &&
|
|
|
- document.createEvent('Event').timeStamp <= performance.now()
|
|
|
-) {
|
|
|
- // if the event timestamp is bigger than the hi-res timestamp
|
|
|
- // (which is evaluated AFTER) it means the event is using a lo-res timestamp,
|
|
|
- // and we need to use the lo-res version for event listeners as well.
|
|
|
- getNow = function () { return performance.now(); };
|
|
|
+// All IE versions use low-res event timestamps, and have problematic clock
|
|
|
+// implementations (#9632)
|
|
|
+if (inBrowser && !isIE) {
|
|
|
+ var performance = window.performance;
|
|
|
+ if (
|
|
|
+ performance &&
|
|
|
+ typeof performance.now === 'function' &&
|
|
|
+ getNow() > document.createEvent('Event').timeStamp
|
|
|
+ ) {
|
|
|
+ // if the event timestamp, although evaluated AFTER the Date.now(), is
|
|
|
+ // smaller than it, it means the event is using a hi-res timestamp,
|
|
|
+ // and we need to use the hi-res version for event listener timestamps as
|
|
|
+ // well.
|
|
|
+ getNow = function () { return performance.now(); };
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -5436,7 +5453,7 @@ Object.defineProperty(Vue, 'FunctionalRenderContext', {
|
|
|
value: FunctionalRenderContext
|
|
|
});
|
|
|
|
|
|
-Vue.version = '2.6.9';
|
|
|
+Vue.version = '2.6.10';
|
|
|
|
|
|
/* */
|
|
|
|
|
|
@@ -7600,10 +7617,11 @@ function updateDOMProps (oldVnode, vnode) {
|
|
|
}
|
|
|
|
|
|
for (key in oldProps) {
|
|
|
- if (isUndef(props[key])) {
|
|
|
+ if (!(key in props)) {
|
|
|
elm[key] = '';
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
for (key in props) {
|
|
|
cur = props[key];
|
|
|
// ignore children if the node has textContent or innerHTML,
|
|
|
@@ -10729,7 +10747,7 @@ function isDirectChildOfTemplateFor (node) {
|
|
|
|
|
|
/* */
|
|
|
|
|
|
-var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/;
|
|
|
+var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*(?:[\w$]+)?\s*\(/;
|
|
|
var fnInvokeRE = /\([^)]*?\);*$/;
|
|
|
var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;
|
|
|
|