@@ -142,8 +142,8 @@ function teardownDirs (vm, dirs, destroying) {
142142 var propsLinkFn , parentLinkFn , replacerLinkFn
143143
144144 // 1. props
145- propsLinkFn = props && containerAttrs
146- ? compileProps ( el , containerAttrs , props )
145+ propsLinkFn = props
146+ ? compileProps ( el , containerAttrs || { } , props )
147147 : null
148148
149149 // only need to compile other attributes for
@@ -414,7 +414,7 @@ function compileProps (el, attrs, propDescriptors) {
414414 // normalize prop string/descriptor
415415 if ( typeof descriptor === 'object' ) {
416416 name = descriptor . name
417- assertions = descriptor . assertions
417+ assertions = descriptor
418418 } else {
419419 name = descriptor
420420 assertions = null
@@ -445,7 +445,7 @@ function compileProps (el, attrs, propDescriptors) {
445445 name : name ,
446446 raw : value ,
447447 path : path ,
448- assertions : descriptor ,
448+ assertions : assertions ,
449449 mode : propBindingModes . ONE_WAY
450450 }
451451 var tokens = textParser . parse ( value )
@@ -479,6 +479,10 @@ function compileProps (el, attrs, propDescriptors) {
479479 }
480480 }
481481 props . push ( prop )
482+ } else if ( assertions && assertions . required ) {
483+ _ . warn (
484+ 'Required prop missing: ' + name
485+ )
482486 }
483487 }
484488 return makePropsLinkFn ( props )
0 commit comments