| {{## def.checkMissingProperty:_properties: | |
|   {{~ _properties:$propertyKey:$i }} | |
|     {{?$i}} || {{?}} | |
|     {{ | |
|       var $prop = it.util.getProperty($propertyKey) | |
|         , $useData = $data + $prop; | |
|     }} | |
|     ( ({{# def.noPropertyInData }}) && (missing{{=$lvl}} = {{= it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop) }}) ) | |
|   {{~}} | |
| #}} | |
| 
 | |
| 
 | |
| {{## def.errorMissingProperty:_error: | |
|   {{ | |
|     var $propertyPath = 'missing' + $lvl | |
|       , $missingProperty = '\' + ' + $propertyPath + ' + \''; | |
|     if (it.opts._errorDataPathProperty) { | |
|       it.errorPath = it.opts.jsonPointers | |
|                       ? it.util.getPathExpr($currentErrorPath,  $propertyPath, true) | |
|                       : $currentErrorPath + ' + ' + $propertyPath; | |
|     } | |
|   }} | |
|   {{# def.error:_error }} | |
| #}} | |
| 
 | |
| 
 | |
| {{## def.allErrorsMissingProperty:_error: | |
|   {{ | |
|     var $prop = it.util.getProperty($propertyKey) | |
|       , $missingProperty = it.util.escapeQuotes($propertyKey) | |
|       , $useData = $data + $prop; | |
|     if (it.opts._errorDataPathProperty) { | |
|       it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); | |
|     } | |
|   }} | |
|   if ({{# def.noPropertyInData }}) { | |
|     {{# def.addError:_error }} | |
|   } | |
| #}}
 |