@@ -7833,27 +7833,25 @@ function createBundleRunner (entry, files, basedir, runInNewContext) {
78337833 }
78347834 }
78357835 userContext . _registeredComponents = new Set ( ) ;
7836+
78367837 // vue-style-loader styles imported outside of component lifecycle hooks
78377838 if ( initialContext . _styles ) {
78387839 userContext . _styles = deepClone ( initialContext . _styles ) ;
7839- }
7840- // #6353 after the app is resolved, if the userContext doesn't have a
7841- // styles property, it means the app doesn't have any lifecycle-injected
7842- // styles, so vue-style-loader never defined the styles getter.
7843- // just expose the same styles from the initialContext.
7844- var exposeStylesAndResolve = function ( app ) {
7845- if ( ! userContext . hasOwnProperty ( 'styles' ) ) {
7846- userContext . styles = initialContext . styles ;
7840+ // #6353 ensure "styles" is exposed even if no styles are injected
7841+ // in component lifecycles.
7842+ // the renderStyles fn is exposed by vue-style-loader >= 3.0.3
7843+ var renderStyles = initialContext . _renderStyles ;
7844+ if ( renderStyles ) {
7845+ Object . defineProperty ( userContext , 'styles' , {
7846+ enumerable : true ,
7847+ get : function get ( ) {
7848+ return renderStyles ( userContext . _styles )
7849+ }
7850+ } ) ;
78477851 }
7848- resolve ( app ) ;
7849- } ;
7850-
7851- var res = runner ( userContext ) ;
7852- if ( typeof res . then === 'function' ) {
7853- res . then ( exposeStylesAndResolve ) ;
7854- } else {
7855- exposeStylesAndResolve ( res ) ;
78567852 }
7853+
7854+ resolve ( runner ( userContext ) ) ;
78577855 } ) ;
78587856 }
78597857 }
0 commit comments