From 04115422b53e30caf76a923234d69c0122b0dcb6 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Thu, 25 Mar 2010 16:17:52 -0400 Subject: [PATCH] Updating to latest QUnit --- external/qunit.js | 46 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/external/qunit.js b/external/qunit.js index f2704148e..41e6c82f5 100644 --- a/external/qunit.js +++ b/external/qunit.js @@ -18,6 +18,7 @@ var QUnit = { stats: { all: 0, bad: 0 }, moduleStats: { all: 0, bad: 0 }, started: +new Date, + updateRate: 1000, blocking: false, autorun: false, assertions: [], @@ -590,8 +591,16 @@ function synchronize( callback ) { } function process() { + var start = (new Date()).getTime(); + while ( config.queue.length && !config.blocking ) { - config.queue.shift()(); + if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) { + config.queue.shift()(); + + } else { + setTimeout( process, 13 ); + break; + } } } @@ -679,6 +688,7 @@ QUnit.equiv = function () { var innerEquiv; // the real equiv function var callers = []; // stack to decide between skip/abort functions + var parents = []; // stack to avoiding loops from circular referencing // Determine what is o. @@ -788,28 +798,39 @@ QUnit.equiv = function () { }, "array": function (b, a) { - var i; + var i, j, loop; var len; // b could be an object literal here if ( ! (hoozit(b) === "array")) { return false; - } - + } + len = a.length; if (len !== b.length) { // safe and faster return false; } + + //track reference to avoid circular references + parents.push(a); for (i = 0; i < len; i++) { - if ( ! innerEquiv(a[i], b[i])) { + loop = false; + for(j=0;j