diff --git a/test/functions.js b/test/functions.js index b976977e7..61ab2ce4a 100644 --- a/test/functions.js +++ b/test/functions.js @@ -70,13 +70,13 @@ $(document).ready(function() { asyncTest("functions: throttle", 1, function() { var counter = 0; var incr = function(){ counter++; }; - var throttledIncr = _.throttle(incr, 50); + var throttledIncr = _.throttle(incr, 100); throttledIncr(); throttledIncr(); throttledIncr(); - setTimeout(throttledIncr, 60); - setTimeout(throttledIncr, 70); - setTimeout(throttledIncr, 110); setTimeout(throttledIncr, 120); - _.delay(function(){ ok(counter == 3, "incr was throttled"); start(); }, 200); + setTimeout(throttledIncr, 140); + setTimeout(throttledIncr, 220); + setTimeout(throttledIncr, 240); + _.delay(function(){ ok(counter == 3, "incr was throttled"); start(); }, 400); }); asyncTest("functions: debounce", 1, function() { diff --git a/underscore.js b/underscore.js index ca580fc2b..5a0e4468e 100644 --- a/underscore.js +++ b/underscore.js @@ -519,9 +519,6 @@ // Perform a deep comparison to check if two objects are equal. _.isEqual = function(a, b) { - // Unwrap any wrapped objects - if (a && a._chain) a = a.value(); - if (b && b._chain) b = b.value(); // Check object identity. if (a === b) return true; // Different types? @@ -531,6 +528,9 @@ if (a == b) return true; // One is falsy and the other truthy. if ((!a && b) || (a && !b)) return false; + // Unwrap any wrapped objects + if (a._chain) a = a.value(); + if (b._chain) b = b.value(); // One of them implements an isEqual()? if (a.isEqual) return a.isEqual(b); // Check dates' integer values.