“use strict”; module.exports = function(Promise, CapturedTrace, isDebugging) { var contextStack = []; function Context() {
this._trace = new CapturedTrace(peekContext());
} Context.prototype._pushContext = function () {
if (!isDebugging()) return; if (this._trace !== undefined) { contextStack.push(this._trace); }
};
Context.prototype._popContext = function () {
if (!isDebugging()) return; if (this._trace !== undefined) { contextStack.pop(); }
};
function createContext() {
if (isDebugging()) return new Context();
}
function peekContext() {
var lastIndex = contextStack.length - 1; if (lastIndex >= 0) { return contextStack[lastIndex]; } return undefined;
}
Promise.prototype._peekContext = peekContext; Promise.prototype._pushContext = Context.prototype._pushContext; Promise.prototype._popContext = Context.prototype._popContext;
return createContext; };