| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- "use strict";
 
- module.exports = function(Promise) {
 
- var longStackTraces = false;
 
- var contextStack = [];
 
- Promise.prototype._promiseCreated = function() {};
 
- Promise.prototype._pushContext = function() {};
 
- Promise.prototype._popContext = function() {return null;};
 
- Promise._peekContext = Promise.prototype._peekContext = function() {};
 
- function Context() {
 
-     this._trace = new Context.CapturedTrace(peekContext());
 
- }
 
- Context.prototype._pushContext = function () {
 
-     if (this._trace !== undefined) {
 
-         this._trace._promiseCreated = null;
 
-         contextStack.push(this._trace);
 
-     }
 
- };
 
- Context.prototype._popContext = function () {
 
-     if (this._trace !== undefined) {
 
-         var trace = contextStack.pop();
 
-         var ret = trace._promiseCreated;
 
-         trace._promiseCreated = null;
 
-         return ret;
 
-     }
 
-     return null;
 
- };
 
- function createContext() {
 
-     if (longStackTraces) return new Context();
 
- }
 
- function peekContext() {
 
-     var lastIndex = contextStack.length - 1;
 
-     if (lastIndex >= 0) {
 
-         return contextStack[lastIndex];
 
-     }
 
-     return undefined;
 
- }
 
- Context.CapturedTrace = null;
 
- Context.create = createContext;
 
- Context.deactivateLongStackTraces = function() {};
 
- Context.activateLongStackTraces = function() {
 
-     var Promise_pushContext = Promise.prototype._pushContext;
 
-     var Promise_popContext = Promise.prototype._popContext;
 
-     var Promise_PeekContext = Promise._peekContext;
 
-     var Promise_peekContext = Promise.prototype._peekContext;
 
-     var Promise_promiseCreated = Promise.prototype._promiseCreated;
 
-     Context.deactivateLongStackTraces = function() {
 
-         Promise.prototype._pushContext = Promise_pushContext;
 
-         Promise.prototype._popContext = Promise_popContext;
 
-         Promise._peekContext = Promise_PeekContext;
 
-         Promise.prototype._peekContext = Promise_peekContext;
 
-         Promise.prototype._promiseCreated = Promise_promiseCreated;
 
-         longStackTraces = false;
 
-     };
 
-     longStackTraces = true;
 
-     Promise.prototype._pushContext = Context.prototype._pushContext;
 
-     Promise.prototype._popContext = Context.prototype._popContext;
 
-     Promise._peekContext = Promise.prototype._peekContext = peekContext;
 
-     Promise.prototype._promiseCreated = function() {
 
-         var ctx = this._peekContext();
 
-         if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;
 
-     };
 
- };
 
- return Context;
 
- };
 
 
  |