Skip to content
Permalink
Browse files

Renamed isObjectLiteral to isPlainObject (makes more sense, per the s…

…uggestion of Michael Geary).
  • Loading branch information
jeresig committed Dec 6, 2009
1 parent 3c89e38 commit 87ba780c69ac1af04afc40f2da39282d917f9108
Showing with 11 additions and 11 deletions.
  1. +3 −3 src/core.js
  2. +8 −8 test/unit/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;
}
@@ -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();
};

0 comments on commit 87ba780

Please sign in to comment.
You can’t perform that action at this time.