diff --git a/common.blocks/objects/objects.spec.js b/common.blocks/objects/objects.spec.js index 86582da60..ec93ab474 100644 --- a/common.blocks/objects/objects.spec.js +++ b/common.blocks/objects/objects.spec.js @@ -30,6 +30,11 @@ describe('objects', function() { .should.be.eql({ p1 : 'v1' }); }); + it('should return new object if target is null', function() { + objects.extend(null, { p1 : 'v1' }) + .should.be.eql({ p1 : 'v1' }); + }); + it('should properly extend object with "hasOwnProperty" property', function() { objects.extend( { hasOwnProperty : '' }, diff --git a/common.blocks/objects/objects.vanilla.js b/common.blocks/objects/objects.vanilla.js index 6f10797cf..9035c8e0a 100644 --- a/common.blocks/objects/objects.vanilla.js +++ b/common.blocks/objects/objects.vanilla.js @@ -15,7 +15,7 @@ provide(/** @exports */{ * @returns {Object} */ extend : function(target, source) { - typeof target !== 'object' && (target = {}); + (typeof target !== 'object' || target === null) && (target = {}); for(var i = 1, len = arguments.length; i < len; i++) { var obj = arguments[i];