From f9ed9028dfdcf33a3bf616229ef55dd47ad23cf2 Mon Sep 17 00:00:00 2001 From: Kris Zyp Date: Thu, 11 Nov 2010 13:37:46 -0700 Subject: [PATCH] Coerce if a coerce property is set and the instance property exists. --- lib/json-schema.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/json-schema.js b/lib/json-schema.js index edbc7ef..38575d2 100644 --- a/lib/json-schema.js +++ b/lib/json-schema.js @@ -183,7 +183,7 @@ var validate = exports._validate = function(/*Any*/instance,/*Object*/schema,/*B if(value === undefined && propDef["default"]){ value = instance[i] = propDef["default"]; } - if(exports.coerce){ + if(propDef.coerce && exports.coerce && i in instance){ value = instance[i] = exports.coerce(value, propDef); } checkProp(value,propDef,path,i); @@ -201,7 +201,7 @@ var validate = exports._validate = function(/*Any*/instance,/*Object*/schema,/*B } value = instance[i]; if(additionalProp && (!(objTypeDef && typeof objTypeDef == 'object') || !(i in objTypeDef))){ - if(exports.coerce){ + if(additionalProp.coerce && exports.coerce){ value = instance[i] = exports.coerce(value, additionalProp); } checkProp(value,additionalProp,path,i);