| {{## def.assignDefault: | 
|   {{? it.compositeRule }} | 
|     {{ | 
|       if (it.opts.strictDefaults) { | 
|         var $defaultMsg = 'default is ignored for: ' + $passData; | 
|         if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg); | 
|         else throw new Error($defaultMsg); | 
|       } | 
|     }} | 
|   {{??}} | 
|     if ({{=$passData}} === undefined | 
|       {{? it.opts.useDefaults == 'empty' }} | 
|         || {{=$passData}} === null | 
|         || {{=$passData}} === '' | 
|       {{?}} | 
|     ) | 
|       {{=$passData}} = {{? it.opts.useDefaults == 'shared' }} | 
|                          {{= it.useDefault($sch.default) }} | 
|                        {{??}} | 
|                          {{= JSON.stringify($sch.default) }} | 
|                        {{?}}; | 
|   {{?}} | 
| #}} | 
|   | 
|   | 
| {{## def.defaultProperties: | 
|   {{ | 
|     var $schema = it.schema.properties | 
|       , $schemaKeys = Object.keys($schema); }} | 
|   {{~ $schemaKeys:$propertyKey }} | 
|     {{ var $sch = $schema[$propertyKey]; }} | 
|     {{? $sch.default !== undefined }} | 
|       {{ var $passData = $data + it.util.getProperty($propertyKey); }} | 
|       {{# def.assignDefault }} | 
|     {{?}} | 
|   {{~}} | 
| #}} | 
|   | 
|   | 
| {{## def.defaultItems: | 
|   {{~ it.schema.items:$sch:$i }} | 
|     {{? $sch.default !== undefined }} | 
|       {{ var $passData = $data + '[' + $i + ']'; }} | 
|       {{# def.assignDefault }} | 
|     {{?}} | 
|   {{~}} | 
| #}} |