diff --git a/src/core.js b/src/core.js index 4949d6bf..4091111a 100644 --- a/src/core.js +++ b/src/core.js @@ -273,9 +273,9 @@ jQuery.extend = jQuery.fn.extend = function() { } // Recurse if we're merging object literal values - if ( deep && copy && jQuery.isObjectLiteral(copy) ) { + if ( deep && copy && jQuery.isPlainObject(copy) ) { // Don't extend not object literals - var clone = src && jQuery.isObjectLiteral(src) ? src : {}; + var clone = src && jQuery.isPlainObject(src) ? src : {}; // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); @@ -314,7 +314,7 @@ jQuery.extend({ return toString.call(obj) === "[object Array]"; }, - isObjectLiteral: function( obj ) { + isPlainObject: function( obj ) { if ( toString.call(obj) !== "[object Object]" || typeof obj.nodeType === "number" ) { return false; } diff --git a/test/unit/core.js b/test/unit/core.js index f5f38532..df610eb2 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -200,41 +200,41 @@ test("trim", function() { equals( jQuery.trim(" " + nbsp + "hello " + nbsp + " "), "hello", " " ); }); -test("isObjectLiteral", function() { +test("isPlainObject", function() { expect(7); stop(); // The use case that we want to match - ok(jQuery.isObjectLiteral({}), "{}"); + ok(jQuery.isPlainObject({}), "{}"); // Instantiated objects shouldn't be matched - ok(!jQuery.isObjectLiteral(new Date), "new Date"); + ok(!jQuery.isPlainObject(new Date), "new Date"); var fn = function(){}; // Functions shouldn't be matched - ok(!jQuery.isObjectLiteral(fn), "fn"); + ok(!jQuery.isPlainObject(fn), "fn"); // Again, instantiated objects shouldn't be matched - ok(!jQuery.isObjectLiteral(new fn), "new fn (no methods)"); + ok(!jQuery.isPlainObject(new fn), "new fn (no methods)"); // Makes the function a little more realistic // (and harder to detect, incidentally) fn.prototype = {someMethod: function(){}}; // Again, instantiated objects shouldn't be matched - ok(!jQuery.isObjectLiteral(new fn), "new fn"); + ok(!jQuery.isPlainObject(new fn), "new fn"); // DOM Element - ok(!jQuery.isObjectLiteral(document.createElement("div")), "DOM Element"); + ok(!jQuery.isPlainObject(document.createElement("div")), "DOM Element"); var iframe = document.createElement("iframe"); document.body.appendChild(iframe); window.iframeDone = function(otherObject){ // Objects from other windows should be matched - ok(jQuery.isObjectLiteral(new otherObject), "new otherObject"); + ok(jQuery.isPlainObject(new otherObject), "new otherObject"); document.body.removeChild( iframe ); start(); };