var file = process.argv[2];

global.adapter = require("./js/debug/bluebird.js");

var Mocha = require("mocha");
var mochaOpts = {
    reporter: "spec",
    timeout: 500, //200 caused non-deterministic test failures
            //when a test uses timeouts just barely under 200 ms
    slow: Infinity
};

var mocha = new Mocha(mochaOpts);
mocha.addFile(process.argv[2]);
mocha.run(function(err){

}).on( "fail", function( test, err ) {
    process.stderr.write(file + "\n" + err.stack + "\n");
    process.exit(-1);
});

@@ -22,16 +22,745 @@
 gv%5B2%5D;%0A%0A
+// Fake timers%0Avar currentTime = 0;%0Avar timers = %7B%7D;%0Avar currentId = 0;%0A%0Afunction checkTimers() %7B%0A    Object.keys(timers).forEach(function(key) %7B%0A        var timer = timers%5Bkey%5D;%0A        if (currentTime %3E timer.ends) %7B%0A            delete timers%5Bkey%5D;%0A            timer.fn.call(global);%0A        %7D%0A    %7D);%0A%7D%0A%0Afunction setTimeout(fn, time) %7B%0A    var id = currentId++;%0A    time = (+time %7C%7C 0) %7C 0;%0A    if (time %3C 0) time = 0;%0A    timers%5Bid%5D = %7B%0A        fn: fn,%0A        ends: time + currentTime%0A    %7D;%0A    return id;%0A%7D%0A%0Afunction clearTimeout(id) %7B%0A    delete timers%5Bid%5D;%0A%7D%0A%0A(function tick() %7B%0A    currentTime += 10;%0A    checkTimers();%0A    setImmediate(tick);%0A%7D)();%0A%0Aglobal.setTimeout = setTimeout;%0Aglobal.clearTimeout = clearTimeout;%0A
 global.a
@@ -890,16 +890,18 @@
 out: 500
+00
 , //200 
@@ -1118,17 +1118,37 @@
 n(err)%7B%0A
+    process.exit(0);
 %0A
-
 %7D).on( %22
@@ -1258,12 +1258,13 @@
 it(-1);%0A
-
 %7D);%0A
+%0A

Use fake timer