Skip to content

Commit

Permalink
Change extend to check hasOwnProperty
Browse files Browse the repository at this point in the history
Add test for extend function
  • Loading branch information
stephen committed Mar 3, 2015
1 parent 5e22bc9 commit 9554de3
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 1 deletion.
4 changes: 3 additions & 1 deletion lib/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ module.exports = {
for (var i = 1, length = arguments.length; i < length; i++) {
source = arguments[i];
for (prop in source) {
obj[prop] = source[prop];
if (source.hasOwnProperty(prop)) {
obj[prop] = source[prop];
}
}
}
return obj;
Expand Down
45 changes: 45 additions & 0 deletions test/test.utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/**
* Copyright 2014 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

'use strict';

var assert = require('assert');
var utils = require('../lib/utils.js');

describe('Utils', function() {

it('should not extend funtions on the prototype', function() {

var object = {
property: 'test'
};

/* jshint ignore:start */
Object.prototype.entries = function() {};
/* jshint ignore:end */

var newObject = utils.extend({}, object);

assert.equal('entries' in newObject, true);
assert.equal(newObject.hasOwnProperty('entries'), false);

assert.equal('property' in newObject, true);
assert.equal(newObject.hasOwnProperty('property'), true);

delete Object.prototype.entries;
});

});

0 comments on commit 9554de3

Please sign in to comment.