{{# def.definitions }} {{# def.errors }} {{# def.setupKeyword }} {{# def.$data }} {{? ($schema || $isData) && it.opts.uniqueItems !== false }} {{? $isData }} var {{=$valid}}; if ({{=$schemaValue}} === false || {{=$schemaValue}} === undefined) {{=$valid}} = true; else if (typeof {{=$schemaValue}} != 'boolean') {{=$valid}} = false; else { {{?}} var i = {{=$data}}.length , {{=$valid}} = true , j; if (i > 1) { {{ var $itemType = it.schema.items && it.schema.items.type; }} {{? !$itemType || $itemType == 'object' || $itemType == 'array' }} outer: for (;i--;) { for (j = i; j--;) { if (equal({{=$data}}[i], {{=$data}}[j])) { {{=$valid}} = false; break outer; } } } {{??}} var itemIndices = {}, item; for (;i--;) { var item = {{=$data}}[i]; if (typeof item != '{{=$itemType}}') continue; if (itemIndices[item] !== undefined) { {{=$valid}} = false; j = itemIndices[item]; break; } itemIndices[item] = i; } {{?}} } {{? $isData }} } {{?}} if (!{{=$valid}}) { {{# def.error:'uniqueItems' }} } {{? $breakOnError }} else { {{?}} {{??}} {{? $breakOnError }} if (true) { {{?}} {{?}}