123456789101112131415161718192021222324252627282930313233343536373839 |
- "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;
- };
|