From 398f2dfcfcd401f637f957b37ff3b4b5cf63b9ab Mon Sep 17 00:00:00 2001 From: gsmeets Date: Mon, 10 Nov 2014 16:39:53 +0100 Subject: [PATCH] Fixed issue where validations tripped on a non-exinstant property on the map when specifically testing for errors on that property name. --- map/validations/validations.js | 4 ++-- map/validations/validations_test.js | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/map/validations/validations.js b/map/validations/validations.js index 594d84a5926..417f5c856d5 100644 --- a/map/validations/validations.js +++ b/map/validations/validations.js @@ -160,11 +160,11 @@ steal('can/util', 'can/map', function (can) { errors[attr].push(res); } }); - }, validations = this.constructor.validations, + }, validations = this.constructor.validations || {}, isTest = attrs && attrs.length === 1 && arguments.length === 2; // go through each attribute or validation and // add any errors - can.each(attrs || validations || {}, function (funcs, attr) { + can.each(attrs || validations, function (funcs, attr) { // if we are iterating through an array, use funcs // as the attr name if (typeof attr === 'number') { diff --git a/map/validations/validations_test.js b/map/validations/validations_test.js index 7de360e8016..e4b87f43918 100644 --- a/map/validations/validations_test.js +++ b/map/validations/validations_test.js @@ -343,4 +343,8 @@ steal("can/map/validations", "can/compute", "can/test", function () { task.attr('age', 'bad'); task.attr('age', 'still bad'); }); + test('Validate undefined property', function () { + new can.Map().errors( "foo" ); + ok(true, "does not throw" ); + }); });