@@ -49,17 +49,18 @@ export function initRender (vm: Component) {
4949 // $attrs & $listeners are exposed for easier HOC creation.
5050 // they need to be reactive so that HOCs using them are always updated
5151 const parentData = parentVnode && parentVnode . data
52+
5253 /* istanbul ignore else */
5354 if ( process . env . NODE_ENV !== 'production' ) {
54- defineReactive ( vm , '$attrs' , parentData && parentData . attrs , ( ) => {
55+ defineReactive ( vm , '$attrs' , parentData && parentData . attrs || emptyObject , ( ) => {
5556 ! isUpdatingChildComponent && warn ( `$attrs is readonly.` , vm )
5657 } , true )
57- defineReactive ( vm , '$listeners' , vm . $options . _parentListeners , ( ) => {
58+ defineReactive ( vm , '$listeners' , vm . $options . _parentListeners || emptyObject , ( ) => {
5859 ! isUpdatingChildComponent && warn ( `$listeners is readonly.` , vm )
5960 } , true )
6061 } else {
61- defineReactive ( vm , '$attrs' , parentData && parentData . attrs , null , true )
62- defineReactive ( vm , '$listeners' , vm . $options . _parentListeners , null , true )
62+ defineReactive ( vm , '$attrs' , parentData && parentData . attrs || emptyObject , null , true )
63+ defineReactive ( vm , '$listeners' , vm . $options . _parentListeners || emptyObject , null , true )
6364 }
6465}
6566
0 commit comments