optimized generated code for oneOf keyword

master
Evgeny Poberezkin 2015-06-12 01:43:31 +01:00
parent 0dfa95c011
commit 804627efe4
1 changed files with 10 additions and 9 deletions

View File

@ -4,13 +4,10 @@
var {{=$errs}} = validate.errors.length;
var validCount{{=$lvl}} = 0;
var prevValid{{=$lvl}} = false;
var {{=$valid}} = false;
{{~ $schema:$sch:$i }}
{{? $i }}
{{ $closingBraces += '}'; }}
if (validCount{{=$lvl}} < 2) {
{{?}}
{{
$it.schema = $sch;
@ -19,13 +16,17 @@ var validCount{{=$lvl}} = 0;
{{= it.validate($it) }}
var {{=$valid}} = valid{{=$it.level}};
if ({{=$valid}}) validCount{{=$lvl}}++;
{{? $i }}
if (valid{{=$it.level}} && prevValid{{=$lvl}})
{{=$valid}} = false;
else {
{{ $closingBraces += '}'; }}
{{?}}
if (valid{{=$it.level}}) {{=$valid}} = prevValid{{=$lvl}} = true;
{{~}}
{{= $closingBraces }}
var {{=$valid}} = validCount{{=$lvl}} == 1;
if ({{=$valid}}) validate.errors.length = {{=$errs}};
else {{# def.error:'oneOf' }}