later.js
function long(callback) {
  var called = false

  return function cbOnceLater() {
    var args

    if (called) {
      return
    }

    called = true
    args = Array.prototype.slice.call(arguments)

    process.nextTick(function () {
      callback.apply(null, args)
    })
  }
}
function long(callback) {
  var called = false

  return function cbOnceLater() {
    var args

    if (called) {
      return
    }

    called = true
    args = Array.prototype.slice.call(arguments)

    process.nextTick(function () {
      callback.apply(null, args)
    })
  }
}
function long ( callback ) { var called = false return function cbOnceLater ( ) { var args if ( called ) { return } called = true args = Array . prototype . slice . call ( arguments ) process . nextTick ( function ( ) { callback . apply ( null , args ) } ) } }
Slower, uncommon version
Slower uncommon version