| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | 
							- {{# def.definitions }}
 
- {{# def.errors }}
 
- {{# def.missing }}
 
- {{# def.setupKeyword }}
 
- {{# def.$data }}
 
- {{ var $vSchema = 'schema' + $lvl; }}
 
- {{## def.setupLoop:
 
-   {{? !$isData }}
 
-     var {{=$vSchema}} = validate.schema{{=$schemaPath}};
 
-   {{?}}
 
-   {{
 
-     var $i = 'i' + $lvl
 
-       , $propertyPath = 'schema' + $lvl + '[' + $i + ']'
 
-       , $missingProperty = '\' + ' + $propertyPath + ' + \'';
 
-     if (it.opts._errorDataPathProperty) {
 
-       it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
 
-     }
 
-   }}
 
- #}}
 
- {{## def.isRequiredOwnProperty:
 
-   Object.prototype.hasOwnProperty.call({{=$data}}, {{=$vSchema}}[{{=$i}}])
 
- #}}
 
- {{? !$isData }}
 
-   {{? $schema.length < it.opts.loopRequired &&
 
-       it.schema.properties && Object.keys(it.schema.properties).length }}
 
-     {{ var $required = []; }}
 
-     {{~ $schema:$property }}
 
-       {{ var $propertySch = it.schema.properties[$property]; }}
 
-       {{? !($propertySch && {{# def.nonEmptySchema:$propertySch}}) }}
 
-         {{ $required[$required.length] = $property; }}
 
-       {{?}}
 
-     {{~}}
 
-   {{??}}
 
-     {{ var $required = $schema; }}
 
-   {{?}}
 
- {{?}}
 
- {{? $isData || $required.length }}
 
-   {{
 
-     var $currentErrorPath = it.errorPath
 
-       , $loopRequired = $isData || $required.length >= it.opts.loopRequired
 
-       , $ownProperties = it.opts.ownProperties;
 
-   }}
 
-   {{? $breakOnError }}
 
-     var missing{{=$lvl}};
 
-     {{? $loopRequired }}
 
-       {{# def.setupLoop }}
 
-       var {{=$valid}} = true;
 
-       {{?$isData}}{{# def.check$dataIsArray }}{{?}}
 
-       for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
 
-         {{=$valid}} = {{=$data}}[{{=$vSchema}}[{{=$i}}]] !== undefined
 
-                       {{? $ownProperties }}
 
-                         && {{# def.isRequiredOwnProperty }}
 
-                       {{?}};
 
-         if (!{{=$valid}}) break;
 
-       }
 
-       {{? $isData }}  }  {{?}}
 
-       {{# def.checkError:'required' }}
 
-       else {
 
-     {{??}}
 
-       if ({{# def.checkMissingProperty:$required }}) {
 
-         {{# def.errorMissingProperty:'required' }}
 
-       } else {
 
-     {{?}}
 
-   {{??}}
 
-     {{? $loopRequired }}
 
-       {{# def.setupLoop }}
 
-       {{? $isData }}
 
-         if ({{=$vSchema}} && !Array.isArray({{=$vSchema}})) {
 
-           {{# def.addError:'required' }}
 
-         } else if ({{=$vSchema}} !== undefined) {
 
-       {{?}}
 
-       for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
 
-         if ({{=$data}}[{{=$vSchema}}[{{=$i}}]] === undefined
 
-             {{? $ownProperties }}
 
-               || !{{# def.isRequiredOwnProperty }}
 
-             {{?}}) {
 
-           {{# def.addError:'required' }}
 
-         }
 
-       }
 
-       {{? $isData }}  }  {{?}}
 
-     {{??}}
 
-       {{~ $required:$propertyKey }}
 
-         {{# def.allErrorsMissingProperty:'required' }}
 
-       {{~}}
 
-     {{?}}
 
-   {{?}}
 
-   {{ it.errorPath = $currentErrorPath; }}
 
- {{?? $breakOnError }}
 
-   if (true) {
 
- {{?}}
 
 
  |