Spaces:
Runtime error
Runtime error
| ; | |
| var callable = require("es5-ext/object/valid-callable") | |
| , validTimeout = require("./valid-timeout") | |
| , apply = Function.prototype.apply; | |
| module.exports = function (fn, timeout) { | |
| var isScheduled = false, context, args, run; | |
| callable(fn); | |
| timeout = validTimeout(timeout); | |
| run = function () { | |
| var currentContext = context, currentArgs = args; | |
| if (!args) { | |
| isScheduled = false; | |
| return; | |
| } | |
| context = null; | |
| args = null; | |
| setTimeout(run, timeout); | |
| apply.call(fn, currentContext, currentArgs); | |
| }; | |
| return function () { | |
| if (isScheduled) { | |
| context = this; | |
| args = arguments; | |
| return; | |
| } | |
| isScheduled = true; | |
| setTimeout(run, timeout); | |
| apply.call(fn, this, arguments); | |
| }; | |
| }; | |