exports.testParamedSetTimeout = function(assert, end) { let params = [1, 'foo', { bar: 'test' }, null, undefined]; timer.setTimeout.apply(null, [function() { assert.equal(arguments.length, params.length); for (let i = 0, ii = params.length; i < ii; i++) assert.equal(params[i], arguments[i]); end(); }, 1].concat(params)); };
exports.testParamedClearTimeout = function(assert, end) { let params = [1, 'foo', { bar: 'test' }, null, undefined]; var myFunc = function myFunc() { assert.fail("myFunc() should not be called in testClearTimeout"); }; var id = timer.setTimeout(myFunc, 1); timer.setTimeout.apply(null, [function() { assert.equal(arguments.length, params.length); for (let i = 0, ii = params.length; i < ii; i++) assert.equal(params[i], arguments[i]); end(); }, 1].concat(params)); timer.clearTimeout(id); };
* like setImmidiate or setInterval, * which are used in3rd party libs. * This loader solves this issues. * Is used to laod unserscore and shim/vow.js libs */ var Env = require('env/env.js'); if (Env.background && Env.firefox) { var toolkitLoader = require('toolkit/loader'), Require = toolkitLoader.Require, Loader = toolkitLoader.Loader, timer = require('sdk/timers'), loader = Loader(toolkitLoader.override(require('@loader/options'), { globals: toolkitLoader.override(require('sdk/system/globals'), { setImmediate: timer.setImmediate.bind(timer), clearImmediate: timer.clearImmediate.bind(timer), setTimeout: timer.setTimeout.bind(timer), setInterval: timer.setInterval.bind(timer), clearTimeout: timer.clearTimeout.bind(timer), clearInterval: timer.clearInterval.bind(timer), }) })); (function () { var require = Require(loader, module); exports.vow = require('vow'); exports.underscore = require('underscore'); })(); } else { exports.vow = require('vow'); exports.underscore = require('underscore');