git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix #1907 where the never-ending loop prevention used a coersion comparison which...
[jquery.git]
/
src
/
core.js
diff --git
a/src/core.js
b/src/core.js
index
d12d5d3
..
b036db8
100644
(file)
--- a/
src/core.js
+++ b/
src/core.js
@@
-516,8
+516,14
@@
jQuery.extend = jQuery.fn.extend = function() {
if ( target.constructor == Boolean ) {
\r
deep = target;
\r
target = arguments[1] || {};
\r
if ( target.constructor == Boolean ) {
\r
deep = target;
\r
target = arguments[1] || {};
\r
+ // skip the boolean and the target
\r
+ i = 2;
\r
}
\r
\r
}
\r
\r
+ // Handle case when target is a string or something (possible in deep copy)
\r
+ if ( typeof target != "object" )
\r
+ target = {};
\r
+
\r
// extend jQuery itself if only one argument is passed
\r
if ( length == 1 ) {
\r
target = this;
\r
// extend jQuery itself if only one argument is passed
\r
if ( length == 1 ) {
\r
target = this;
\r
@@
-530,12
+536,12
@@
jQuery.extend = jQuery.fn.extend = function() {
// Extend the base object
\r
for ( var name in options ) {
\r
// Prevent never-ending loop
\r
// Extend the base object
\r
for ( var name in options ) {
\r
// Prevent never-ending loop
\r
- if ( target == options[ name ] )
\r
+ if ( target === options[ name ] )
\r
continue;
\r
\r
// Recurse if we're merging object values
\r
if ( deep && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType )
\r
continue;
\r
\r
// Recurse if we're merging object values
\r
if ( deep && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType )
\r
- jQuery.extend( target[ name ], options[ name ] );
\r
+ target[ name ] = jQuery.extend( target[ name ], options[ name ] );
\r
\r
// Don't bring in undefined values
\r
else if ( options[ name ] != undefined )
\r
\r
// Don't bring in undefined values
\r
else if ( options[ name ] != undefined )
\r