11/*!
2- * Vue.js v2.6.8
2+ * Vue.js v2.6.9
33 * (c) 2014-2019 Evan You
44 * Released under the MIT License.
55 */
@@ -1857,10 +1857,11 @@ function invokeWithErrorHandling (
18571857 var res ;
18581858 try {
18591859 res = args ? handler . apply ( context , args ) : handler . call ( context ) ;
1860- if ( res && ! res . _isVue && isPromise ( res ) ) {
1860+ if ( res && ! res . _isVue && isPromise ( res ) && ! res . _handled ) {
1861+ res . catch ( function ( e ) { return handleError ( e , vm , info + " (Promise/async)" ) ; } ) ;
18611862 // issue #9511
1862- // reassign to res to avoid catch triggering multiple times when nested calls
1863- res = res . catch ( function ( e ) { return handleError ( e , vm , info + " (Promise/async)" ) ; } ) ;
1863+ // avoid catch triggering multiple times when nested calls
1864+ res . _handled = true ;
18641865 }
18651866 } catch ( e ) {
18661867 handleError ( e , vm , info ) ;
@@ -2544,6 +2545,7 @@ function normalizeScopedSlots (
25442545) {
25452546 var res ;
25462547 var isStable = slots ? ! ! slots . $stable : true ;
2548+ var hasNormalSlots = Object . keys ( normalSlots ) . length > 0 ;
25472549 var key = slots && slots . $key ;
25482550 if ( ! slots ) {
25492551 res = { } ;
@@ -2555,7 +2557,8 @@ function normalizeScopedSlots (
25552557 prevSlots &&
25562558 prevSlots !== emptyObject &&
25572559 key === prevSlots . $key &&
2558- Object . keys ( normalSlots ) . length === 0
2560+ ! hasNormalSlots &&
2561+ ! prevSlots . $hasNormal
25592562 ) {
25602563 // fast path 2: stable scoped slots w/ no normal slots to proxy,
25612564 // only need to normalize once
@@ -2581,6 +2584,7 @@ function normalizeScopedSlots (
25812584 }
25822585 def ( res , '$stable' , isStable ) ;
25832586 def ( res , '$key' , key ) ;
2587+ def ( res , '$hasNormal' , hasNormalSlots ) ;
25842588 return res
25852589}
25862590
@@ -2590,8 +2594,10 @@ function normalizeScopedSlot(normalSlots, key, fn) {
25902594 res = res && typeof res === 'object' && ! Array . isArray ( res )
25912595 ? [ res ] // single vnode
25922596 : normalizeChildren ( res ) ;
2593- return res && res . length === 0
2594- ? undefined
2597+ return res && (
2598+ res . length === 0 ||
2599+ ( res . length === 1 && res [ 0 ] . isComment ) // #9658
2600+ ) ? undefined
25952601 : res
25962602 } ;
25972603 // this is a slot using the new v-slot syntax without scope. although it is
@@ -2771,12 +2777,13 @@ function bindObjectProps (
27712777 : data . attrs || ( data . attrs = { } ) ;
27722778 }
27732779 var camelizedKey = camelize ( key ) ;
2774- if ( ! ( key in hash ) && ! ( camelizedKey in hash ) ) {
2780+ var hyphenatedKey = hyphenate ( key ) ;
2781+ if ( ! ( camelizedKey in hash ) && ! ( hyphenatedKey in hash ) ) {
27752782 hash [ key ] = value [ key ] ;
27762783
27772784 if ( isSync ) {
27782785 var on = data . on || ( data . on = { } ) ;
2779- on [ ( "update:" + camelizedKey ) ] = function ( $event ) {
2786+ on [ ( "update:" + key ) ] = function ( $event ) {
27802787 value [ key ] = $event ;
27812788 } ;
27822789 }
@@ -3611,7 +3618,7 @@ function resolveAsyncComponent (
36113618 }
36123619
36133620 var owner = currentRenderingInstance ;
3614- if ( isDef ( factory . owners ) && factory . owners . indexOf ( owner ) === - 1 ) {
3621+ if ( owner && isDef ( factory . owners ) && factory . owners . indexOf ( owner ) === - 1 ) {
36153622 // already pending
36163623 factory . owners . push ( owner ) ;
36173624 }
@@ -3620,7 +3627,7 @@ function resolveAsyncComponent (
36203627 return factory . loadingComp
36213628 }
36223629
3623- if ( ! isDef ( factory . owners ) ) {
3630+ if ( owner && ! isDef ( factory . owners ) ) {
36243631 var owners = factory . owners = [ owner ] ;
36253632 var sync = true
36263633
@@ -4235,10 +4242,15 @@ var getNow = Date.now;
42354242// timestamp can either be hi-res (relative to page load) or low-res
42364243// (relative to UNIX epoch), so in order to compare time we have to use the
42374244// same timestamp type when saving the flush timestamp.
4238- if ( inBrowser && getNow ( ) > document . createEvent ( 'Event' ) . timeStamp ) {
4239- // if the low-res timestamp which is bigger than the event timestamp
4240- // (which is evaluated AFTER) it means the event is using a hi-res timestamp,
4241- // and we need to use the hi-res version for event listeners as well.
4245+ if (
4246+ inBrowser &&
4247+ window . performance &&
4248+ typeof performance . now === 'function' &&
4249+ document . createEvent ( 'Event' ) . timeStamp <= performance . now ( )
4250+ ) {
4251+ // if the event timestamp is bigger than the hi-res timestamp
4252+ // (which is evaluated AFTER) it means the event is using a lo-res timestamp,
4253+ // and we need to use the lo-res version for event listeners as well.
42424254 getNow = function ( ) { return performance . now ( ) ; } ;
42434255}
42444256
@@ -5404,7 +5416,7 @@ Object.defineProperty(Vue, 'FunctionalRenderContext', {
54045416 value : FunctionalRenderContext
54055417} ) ;
54065418
5407- Vue . version = '2.6.8 ' ;
5419+ Vue . version = '2.6.9 ' ;
54085420
54095421/* */
54105422
@@ -7496,8 +7508,10 @@ function add$1 (
74967508 e . target === e . currentTarget ||
74977509 // event is fired after handler attachment
74987510 e . timeStamp >= attachedTimestamp ||
7499- // #9462 bail for iOS 9 bug: event.timeStamp is 0 after history.pushState
7500- e . timeStamp === 0 ||
7511+ // bail for environments that have buggy event.timeStamp implementations
7512+ // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState
7513+ // #9681 QtWebEngine event.timeStamp is negative value
7514+ e . timeStamp <= 0 ||
75017515 // #9448 bail if event is fired in another document in a multi-page
75027516 // electron/nw.js app, since event.timeStamp will be using a different
75037517 // starting reference
@@ -8115,8 +8129,8 @@ function enter (vnode, toggleDisplay) {
81158129 var context = activeInstance ;
81168130 var transitionNode = activeInstance . $vnode ;
81178131 while ( transitionNode && transitionNode . parent ) {
8118- transitionNode = transitionNode . parent ;
81198132 context = transitionNode . context ;
8133+ transitionNode = transitionNode . parent ;
81208134 }
81218135
81228136 var isAppear = ! context . _isMounted || ! vnode . isRootInsert ;
@@ -9823,7 +9837,7 @@ function parse (
98239837 text = preserveWhitespace ? ' ' : '' ;
98249838 }
98259839 if ( text ) {
9826- if ( whitespaceOption === 'condense' ) {
9840+ if ( ! inPre && whitespaceOption === 'condense' ) {
98279841 // condense consecutive whitespaces into single space
98289842 text = text . replace ( whitespaceRE$1 , ' ' ) ;
98299843 }
0 commit comments