"use strict"; module.exports = function (t, a, d) { var data , count = 0 , x = function (a, b, c) { data = [this, a, b, c, ++count]; } , y = t(x, 200) , z = {}; a(data, undefined, "Setup"); y.call(z, 111, "foo", false); a(data, undefined, "Immediately"); setTimeout(function () { a(data, undefined, "100ms"); setTimeout(function () { a.deep(data, [z, 111, "foo", false, 1], "250ms"); data = null; clearTimeout(y()); setTimeout(function () { a(data, null, "Clear"); d(); }, 300); }, 150); }, 100); };