| 133 | var isDone = false |
| 134 | // public API, may only be called once from use code (or after returned Promise resolution) |
| 135 | function done(err) { |
| 136 | if (!isDone) isDone = true |
| 137 | else throw new Error("`" + arg + "()` should only be called once") |
| 138 | if (timeout === undefined) console.warn("# elapsed: " + Math.round(new Date - s) + "ms, expected under " + delay + "ms\n" + o.cleanStackTrace(task.err)) |
| 139 | finalizeAsync(err) |
| 140 | } |
| 141 | // for internal use only |
| 142 | function finalizeAsync(err) { |
| 143 | if (err == null) { |