kriskowal/q — pull request #311 by domenic (2013-06-04 06:23:04+00:00)
Title: The revenge of long stack traces

This makes long stack traces infinite, and changes their API from `longStackJumpLimit = 0 | 1` (default `1`) to `longStackSupport = true | false` (default `false`). Notably, infinite long stack traces come with no real performance or memory penalty over our existing one-level "long" stack traces.

See #264 for some more discussion. In particular, should we switch on the presence of the Web Inspector console and/or `(process.env.NODE_ENV || "development") !== "development"` in order to turn them on by default?

This also adds a undocumented-for-now API `promise.source` to every promise that originates inside `defer()`, i.e. every promise except immediately-fulfilled and immediately-rejected ones. This could be fun for constructing promise graph visualizations, as I was discussing with @brendankenny at JSConf.