UNPKG

onionskin

Version:

Multilayer Cache Manager for JavaScript

2 lines 117 kB
require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";module.exports=function(Promise){var SomePromiseArray=Promise._SomePromiseArray;function Promise$_Any(promises){var ret=new SomePromiseArray(promises);var promise=ret.promise();if(promise.isRejected()){return promise}ret.setHowMany(1);ret.setUnwrap();ret.init();return promise}Promise.any=function Promise$Any(promises){return Promise$_Any(promises)};Promise.prototype.any=function Promise$any(){return Promise$_Any(this)}}},{}],2:[function(require,module,exports){(function(process){"use strict";var schedule=require("./schedule.js");var Queue=require("./queue.js");var errorObj=require("./util.js").errorObj;var tryCatch1=require("./util.js").tryCatch1;var _process=typeof process!=="undefined"?process:void 0;function Async(){this._isTickUsed=false;this._schedule=schedule;this._length=0;this._lateBuffer=new Queue(16);this._functionBuffer=new Queue(65536);var self=this;this.consumeFunctionBuffer=function Async$consumeFunctionBuffer(){self._consumeFunctionBuffer()}}Async.prototype.haveItemsQueued=function Async$haveItemsQueued(){return this._length>0};Async.prototype.invokeLater=function Async$invokeLater(fn,receiver,arg){if(_process!==void 0&&_process.domain!=null&&!fn.domain){fn=_process.domain.bind(fn)}this._lateBuffer.push(fn,receiver,arg);this._queueTick()};Async.prototype.invoke=function Async$invoke(fn,receiver,arg){if(_process!==void 0&&_process.domain!=null&&!fn.domain){fn=_process.domain.bind(fn)}var functionBuffer=this._functionBuffer;functionBuffer.push(fn,receiver,arg);this._length=functionBuffer.length();this._queueTick()};Async.prototype._consumeFunctionBuffer=function Async$_consumeFunctionBuffer(){var functionBuffer=this._functionBuffer;while(functionBuffer.length()>0){var fn=functionBuffer.shift();var receiver=functionBuffer.shift();var arg=functionBuffer.shift();fn.call(receiver,arg)}this._reset();this._consumeLateBuffer()};Async.prototype._consumeLateBuffer=function Async$_consumeLateBuffer(){var buffer=this._lateBuffer;while(buffer.length()>0){var fn=buffer.shift();var receiver=buffer.shift();var arg=buffer.shift();var res=tryCatch1(fn,receiver,arg);if(res===errorObj){this._queueTick();if(fn.domain!=null){fn.domain.emit("error",res.e)}else{throw res.e}}}};Async.prototype._queueTick=function Async$_queue(){if(!this._isTickUsed){this._schedule(this.consumeFunctionBuffer);this._isTickUsed=true}};Async.prototype._reset=function Async$_reset(){this._isTickUsed=false;this._length=0};module.exports=new Async}).call(this,require("lppjwH"))},{"./queue.js":26,"./schedule.js":29,"./util.js":36,lppjwH:46}],"EjIH/G":[function(require,module,exports){"use strict";var Promise=require("./promise.js")();module.exports=Promise},{"./promise.js":21}],bluebird:[function(require,module,exports){module.exports=require("EjIH/G")},{}],5:[function(require,module,exports){"use strict";var cr=Object.create;var callerCache=cr&&cr(null);var getterCache=cr&&cr(null);callerCache[" size"]=getterCache[" size"]=0;module.exports=function(Promise){var util=require("./util.js");var canEvaluate=util.canEvaluate;var isIdentifier=util.isIdentifier;function makeMethodCaller(methodName){return new Function("obj"," \n 'use strict' \n var len = this.length; \n switch(len) { \n case 1: return obj.methodName(this[0]); \n case 2: return obj.methodName(this[0], this[1]); \n case 3: return obj.methodName(this[0], this[1], this[2]); \n case 0: return obj.methodName(); \n default: return obj.methodName.apply(obj, this); \n } \n ".replace(/methodName/g,methodName))}function makeGetter(propertyName){return new Function("obj"," \n 'use strict'; \n return obj.propertyName; \n ".replace("propertyName",propertyName))}function getCompiled(name,compiler,cache){var ret=cache[name];if(typeof ret!=="function"){if(!isIdentifier(name)){return null}ret=compiler(name);cache[name]=ret;cache[" size"]++;if(cache[" size"]>512){var keys=Object.keys(cache);for(var i=0;i<256;++i)delete cache[keys[i]];cache[" size"]=keys.length-256}}return ret}function getMethodCaller(name){return getCompiled(name,makeMethodCaller,callerCache)}function getGetter(name){return getCompiled(name,makeGetter,getterCache)}function caller(obj){return obj[this.pop()].apply(obj,this)}Promise.prototype.call=function Promise$call(methodName){var $_len=arguments.length;var args=new Array($_len-1);for(var $_i=1;$_i<$_len;++$_i){args[$_i-1]=arguments[$_i]}if(canEvaluate){var maybeCaller=getMethodCaller(methodName);if(maybeCaller!==null){return this._then(maybeCaller,void 0,void 0,args,void 0)}}args.push(methodName);return this._then(caller,void 0,void 0,args,void 0)};function namedGetter(obj){return obj[this]}function indexedGetter(obj){return obj[this]}Promise.prototype.get=function Promise$get(propertyName){var isIndex=typeof propertyName==="number";var getter;if(!isIndex){if(canEvaluate){var maybeGetter=getGetter(propertyName);getter=maybeGetter!==null?maybeGetter:namedGetter}else{getter=namedGetter}}else{getter=indexedGetter}return this._then(getter,void 0,void 0,propertyName,void 0)}}},{"./util.js":36}],6:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL){var errors=require("./errors.js");var canAttach=errors.canAttach;var async=require("./async.js");var CancellationError=errors.CancellationError;Promise.prototype._cancel=function Promise$_cancel(reason){if(!this.isCancellable())return this;var parent;var promiseToReject=this;while((parent=promiseToReject._cancellationParent)!==void 0&&parent.isCancellable()){promiseToReject=parent}promiseToReject._attachExtraTrace(reason);promiseToReject._rejectUnchecked(reason)};Promise.prototype.cancel=function Promise$cancel(reason){if(!this.isCancellable())return this;reason=reason!==void 0?canAttach(reason)?reason:new Error(reason+""):new CancellationError;async.invokeLater(this._cancel,this,reason);return this};Promise.prototype.cancellable=function Promise$cancellable(){if(this._cancellable())return this;this._setCancellable();this._cancellationParent=void 0;return this};Promise.prototype.uncancellable=function Promise$uncancellable(){var ret=new Promise(INTERNAL);ret._propagateFrom(this,2|4);ret._follow(this);ret._unsetCancellable();return ret};Promise.prototype.fork=function Promise$fork(didFulfill,didReject,didProgress){var ret=this._then(didFulfill,didReject,didProgress,void 0,void 0);ret._setCancellable();ret._cancellationParent=void 0;return ret}}},{"./async.js":2,"./errors.js":11}],7:[function(require,module,exports){"use strict";module.exports=function(){var inherits=require("./util.js").inherits;var defineProperty=require("./es5.js").defineProperty;var rignore=new RegExp("\\b(?:[a-zA-Z0-9.]+\\$_\\w+|"+"tryCatch(?:1|2|3|4|Apply)|new \\w*PromiseArray|"+"\\w*PromiseArray\\.\\w*PromiseArray|"+"setTimeout|CatchFilter\\$_\\w+|makeNodePromisified|processImmediate|"+"process._tickCallback|nextTick|Async\\$\\w+)\\b");var rtraceline=null;var formatStack=null;function formatNonError(obj){var str;if(typeof obj==="function"){str="[function "+(obj.name||"anonymous")+"]"}else{str=obj.toString();var ruselessToString=/\[object [a-zA-Z0-9$_]+\]/;if(ruselessToString.test(str)){try{var newStr=JSON.stringify(obj);str=newStr}catch(e){}}if(str.length===0){str="(empty array)"}}return"(<"+snip(str)+">, no stack trace)"}function snip(str){var maxChars=41;if(str.length<maxChars){return str}return str.substr(0,maxChars-3)+"..."}function CapturedTrace(ignoreUntil,isTopLevel){this.captureStackTrace(CapturedTrace,isTopLevel)}inherits(CapturedTrace,Error);CapturedTrace.prototype.captureStackTrace=function CapturedTrace$captureStackTrace(ignoreUntil,isTopLevel){captureStackTrace(this,ignoreUntil,isTopLevel)};CapturedTrace.possiblyUnhandledRejection=function CapturedTrace$PossiblyUnhandledRejection(reason){if(typeof console==="object"){var message;if(typeof reason==="object"||typeof reason==="function"){var stack=reason.stack;message="Possibly unhandled "+formatStack(stack,reason)}else{message="Possibly unhandled "+String(reason)}if(typeof console.error==="function"||typeof console.error==="object"){console.error(message)}else if(typeof console.log==="function"||typeof console.log==="object"){console.log(message)}}};CapturedTrace.combine=function CapturedTrace$Combine(current,prev){var curLast=current.length-1;for(var i=prev.length-1;i>=0;--i){var line=prev[i];if(current[curLast]===line){current.pop();curLast--}else{break}}current.push("From previous event:");var lines=current.concat(prev);var ret=[];for(var i=0,len=lines.length;i<len;++i){if(rignore.test(lines[i])||i>0&&!rtraceline.test(lines[i])&&lines[i]!=="From previous event:"){continue}ret.push(lines[i])}return ret};CapturedTrace.protectErrorMessageNewlines=function(stack){for(var i=0;i<stack.length;++i){if(rtraceline.test(stack[i])){break}}if(i<=1)return;var errorMessageLines=[];for(var j=0;j<i;++j){errorMessageLines.push(stack.shift())}stack.unshift(errorMessageLines.join("\x00"))};CapturedTrace.isSupported=function CapturedTrace$IsSupported(){return typeof captureStackTrace==="function"};var captureStackTrace=function stackDetection(){if(typeof Error.stackTraceLimit==="number"&&typeof Error.captureStackTrace==="function"){rtraceline=/^\s*at\s*/;formatStack=function(stack,error){if(typeof stack==="string")return stack;if(error.name!==void 0&&error.message!==void 0){return error.name+". "+error.message}return formatNonError(error)};var captureStackTrace=Error.captureStackTrace;return function CapturedTrace$_captureStackTrace(receiver,ignoreUntil){captureStackTrace(receiver,ignoreUntil)}}var err=new Error;if(typeof err.stack==="string"&&typeof"".startsWith==="function"&&err.stack.startsWith("stackDetection@")&&stackDetection.name==="stackDetection"){defineProperty(Error,"stackTraceLimit",{writable:true,enumerable:false,configurable:false,value:25});rtraceline=/@/;var rline=/[@\n]/;formatStack=function(stack,error){if(typeof stack==="string"){return error.name+". "+error.message+"\n"+stack}if(error.name!==void 0&&error.message!==void 0){return error.name+". "+error.message}return formatNonError(error)};return function captureStackTrace(o){var stack=(new Error).stack;var split=stack.split(rline);var len=split.length;var ret="";for(var i=0;i<len;i+=2){ret+=split[i];ret+="@";ret+=split[i+1];ret+="\n"}o.stack=ret}}else{formatStack=function(stack,error){if(typeof stack==="string")return stack;if((typeof error==="object"||typeof error==="function")&&error.name!==void 0&&error.message!==void 0){return error.name+". "+error.message}return formatNonError(error)};return null}}();return CapturedTrace}},{"./es5.js":13,"./util.js":36}],8:[function(require,module,exports){"use strict";module.exports=function(NEXT_FILTER){var util=require("./util.js");var errors=require("./errors.js");var tryCatch1=util.tryCatch1;var errorObj=util.errorObj;var keys=require("./es5.js").keys;var TypeError=errors.TypeError;function CatchFilter(instances,callback,promise){this._instances=instances;this._callback=callback;this._promise=promise}function CatchFilter$_safePredicate(predicate,e){var safeObject={};var retfilter=tryCatch1(predicate,safeObject,e);if(retfilter===errorObj)return retfilter;var safeKeys=keys(safeObject);if(safeKeys.length){errorObj.e=new TypeError("Catch filter must inherit from Error "+"or be a simple predicate function");return errorObj}return retfilter}CatchFilter.prototype.doFilter=function CatchFilter$_doFilter(e){var cb=this._callback;var promise=this._promise;var boundTo=promise._boundTo;for(var i=0,len=this._instances.length;i<len;++i){var item=this._instances[i];var itemIsErrorType=item===Error||item!=null&&item.prototype instanceof Error;if(itemIsErrorType&&e instanceof item){var ret=tryCatch1(cb,boundTo,e);if(ret===errorObj){NEXT_FILTER.e=ret.e;return NEXT_FILTER}return ret}else if(typeof item==="function"&&!itemIsErrorType){var shouldHandle=CatchFilter$_safePredicate(item,e);if(shouldHandle===errorObj){var trace=errors.canAttach(errorObj.e)?errorObj.e:new Error(errorObj.e+"");this._promise._attachExtraTrace(trace);e=errorObj.e;break}else if(shouldHandle){var ret=tryCatch1(cb,boundTo,e);if(ret===errorObj){NEXT_FILTER.e=ret.e;return NEXT_FILTER}return ret}}}NEXT_FILTER.e=e;return NEXT_FILTER};return CatchFilter}},{"./errors.js":11,"./es5.js":13,"./util.js":36}],9:[function(require,module,exports){"use strict";var util=require("./util.js");var isPrimitive=util.isPrimitive;var wrapsPrimitiveReceiver=util.wrapsPrimitiveReceiver;module.exports=function(Promise){var returner=function Promise$_returner(){return this};var thrower=function Promise$_thrower(){throw this};var wrapper=function Promise$_wrapper(value,action){if(action===1){return function Promise$_thrower(){throw value}}else if(action===2){return function Promise$_returner(){return value}}};Promise.prototype["return"]=Promise.prototype.thenReturn=function Promise$thenReturn(value){if(wrapsPrimitiveReceiver&&isPrimitive(value)){return this._then(wrapper(value,2),void 0,void 0,void 0,void 0)}return this._then(returner,void 0,void 0,value,void 0)};Promise.prototype["throw"]=Promise.prototype.thenThrow=function Promise$thenThrow(reason){if(wrapsPrimitiveReceiver&&isPrimitive(reason)){return this._then(wrapper(reason,1),void 0,void 0,void 0,void 0)}return this._then(thrower,void 0,void 0,reason,void 0)}}},{"./util.js":36}],10:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL){var PromiseReduce=Promise.reduce;Promise.prototype.each=function Promise$each(fn){return PromiseReduce(this,fn,null,INTERNAL)};Promise.each=function Promise$Each(promises,fn){return PromiseReduce(promises,fn,null,INTERNAL)}}},{}],11:[function(require,module,exports){"use strict";var Objectfreeze=require("./es5.js").freeze;var util=require("./util.js");var inherits=util.inherits;var notEnumerableProp=util.notEnumerableProp;function markAsOriginatingFromRejection(e){try{notEnumerableProp(e,"isOperational",true)}catch(ignore){}}function originatesFromRejection(e){if(e==null)return false;return e instanceof OperationalError||e["isOperational"]===true}function isError(obj){return obj instanceof Error}function canAttach(obj){return isError(obj)}function subError(nameProperty,defaultMessage){function SubError(message){if(!(this instanceof SubError))return new SubError(message);this.message=typeof message==="string"?message:defaultMessage;this.name=nameProperty;if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}inherits(SubError,Error);return SubError}var _TypeError,_RangeError;var CancellationError=subError("CancellationError","cancellation error");var TimeoutError=subError("TimeoutError","timeout error");var AggregateError=subError("AggregateError","aggregate error");try{_TypeError=TypeError;_RangeError=RangeError}catch(e){_TypeError=subError("TypeError","type error");_RangeError=subError("RangeError","range error")}var methods=("join pop push shift unshift slice filter forEach some "+"every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" ");for(var i=0;i<methods.length;++i){if(typeof Array.prototype[methods[i]]==="function"){AggregateError.prototype[methods[i]]=Array.prototype[methods[i]]}}AggregateError.prototype.length=0;AggregateError.prototype["isOperational"]=true;var level=0;AggregateError.prototype.toString=function(){var indent=Array(level*4+1).join(" ");var ret="\n"+indent+"AggregateError of:"+"\n";level++;indent=Array(level*4+1).join(" ");for(var i=0;i<this.length;++i){var str=this[i]===this?"[Circular AggregateError]":this[i]+"";var lines=str.split("\n");for(var j=0;j<lines.length;++j){lines[j]=indent+lines[j]}str=lines.join("\n");ret+=str+"\n"}level--;return ret};function OperationalError(message){this.name="OperationalError";this.message=message;this.cause=message;this["isOperational"]=true;if(message instanceof Error){this.message=message.message;this.stack=message.stack}else if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}inherits(OperationalError,Error);var key="__BluebirdErrorTypes__";var errorTypes=Error[key];if(!errorTypes){errorTypes=Objectfreeze({CancellationError:CancellationError,TimeoutError:TimeoutError,OperationalError:OperationalError,RejectionError:OperationalError,AggregateError:AggregateError});notEnumerableProp(Error,key,errorTypes)}module.exports={Error:Error,TypeError:_TypeError,RangeError:_RangeError,CancellationError:errorTypes.CancellationError,OperationalError:errorTypes.OperationalError,TimeoutError:errorTypes.TimeoutError,AggregateError:errorTypes.AggregateError,originatesFromRejection:originatesFromRejection,markAsOriginatingFromRejection:markAsOriginatingFromRejection,canAttach:canAttach}},{"./es5.js":13,"./util.js":36}],12:[function(require,module,exports){"use strict";module.exports=function(Promise){var TypeError=require("./errors.js").TypeError;function apiRejection(msg){var error=new TypeError(msg);var ret=Promise.rejected(error);var parent=ret._peekContext();if(parent!=null){parent._attachExtraTrace(error)}return ret}return apiRejection}},{"./errors.js":11}],13:[function(require,module,exports){var isES5=function(){"use strict";return this===void 0}();if(isES5){module.exports={freeze:Object.freeze,defineProperty:Object.defineProperty,keys:Object.keys,getPrototypeOf:Object.getPrototypeOf,isArray:Array.isArray,isES5:isES5}}else{var has={}.hasOwnProperty;var str={}.toString;var proto={}.constructor.prototype;var ObjectKeys=function ObjectKeys(o){var ret=[];for(var key in o){if(has.call(o,key)){ret.push(key)}}return ret};var ObjectDefineProperty=function ObjectDefineProperty(o,key,desc){o[key]=desc.value;return o};var ObjectFreeze=function ObjectFreeze(obj){return obj};var ObjectGetPrototypeOf=function ObjectGetPrototypeOf(obj){try{return Object(obj).constructor.prototype}catch(e){return proto}};var ArrayIsArray=function ArrayIsArray(obj){try{return str.call(obj)==="[object Array]"}catch(e){return false}};module.exports={isArray:ArrayIsArray,keys:ObjectKeys,defineProperty:ObjectDefineProperty,freeze:ObjectFreeze,getPrototypeOf:ObjectGetPrototypeOf,isES5:isES5}}},{}],14:[function(require,module,exports){"use strict";module.exports=function(Promise,INTERNAL){var PromiseMap=Promise.map;Promise.prototype.filter=function Promise$filter(fn,options){return PromiseMap(this,fn,options,INTERNAL)};Promise.filter=function Promise$Filter(promises,fn,options){return PromiseMap(promises,fn,options,INTERNAL)}}},{}],15:[function(require,module,exports){"use strict";module.exports=function(Promise,NEXT_FILTER,cast){var util=require("./util.js");var wrapsPrimitiveReceiver=util.wrapsPrimitiveReceiver;var isPrimitive=util.isPrimitive;var thrower=util.thrower;function returnThis(){return this}function throwThis(){throw this}function return$(r){return function Promise$_returner(){return r}}function throw$(r){return function Promise$_thrower(){throw r}}function promisedFinally(ret,reasonOrValue,isFulfilled){var then;if(wrapsPrimitiveReceiver&&isPrimitive(reasonOrValue)){then=isFulfilled?return$(reasonOrValue):throw$(reasonOrValue)}else{then=isFulfilled?returnThis:throwThis}return ret._then(then,thrower,void 0,reasonOrValue,void 0)}function finallyHandler(reasonOrValue){var promise=this.promise;var handler=this.handler;var ret=promise._isBound()?handler.call(promise._boundTo):handler();if(ret!==void 0){var maybePromise=cast(ret,void 0);if(maybePromise instanceof Promise){return promisedFinally(maybePromise,reasonOrValue,promise.isFulfilled())}}if(promise.isRejected()){NEXT_FILTER.e=reasonOrValue;return NEXT_FILTER}else{return reasonOrValue}}function tapHandler(value){var promise=this.promise;var handler=this.handler;var ret=promise._isBound()?handler.call(promise._boundTo,value):handler(value);if(ret!==void 0){var maybePromise=cast(ret,void 0);if(maybePromise instanceof Promise){return promisedFinally(maybePromise,value,true)}}return value}Promise.prototype._passThroughHandler=function Promise$_passThroughHandler(handler,isFinally){if(typeof handler!=="function")return this.then();var promiseAndHandler={promise:this,handler:handler};return this._then(isFinally?finallyHandler:tapHandler,isFinally?finallyHandler:void 0,void 0,promiseAndHandler,void 0)};Promise.prototype.lastly=Promise.prototype["finally"]=function Promise$finally(handler){return this._passThroughHandler(handler,true)};Promise.prototype.tap=function Promise$tap(handler){return this._passThroughHandler(handler,false)}}},{"./util.js":36}],16:[function(require,module,exports){"use strict";module.exports=function(Promise,apiRejection,INTERNAL,cast){var errors=require("./errors.js");var TypeError=errors.TypeError;var deprecated=require("./util.js").deprecated;var util=require("./util.js");var errorObj=util.errorObj;var tryCatch1=util.tryCatch1;var yieldHandlers=[];function promiseFromYieldHandler(value,yieldHandlers){var _errorObj=errorObj;var _Promise=Promise;var len=yieldHandlers.length;for(var i=0;i<len;++i){var result=tryCatch1(yieldHandlers[i],void 0,value);if(result===_errorObj){return _Promise.reject(_errorObj.e)}var maybePromise=cast(result,promiseFromYieldHandler);if(maybePromise instanceof _Promise)return maybePromise}return null}function PromiseSpawn(generatorFunction,receiver,yieldHandler){var promise=this._promise=new Promise(INTERNAL);promise._setTrace(void 0);this._generatorFunction=generatorFunction;this._receiver=receiver;this._generator=void 0;this._yieldHandlers=typeof yieldHandler==="function"?[yieldHandler].concat(yieldHandlers):yieldHandlers}PromiseSpawn.prototype.promise=function PromiseSpawn$promise(){return this._promise};PromiseSpawn.prototype._run=function PromiseSpawn$_run(){this._generator=this._generatorFunction.call(this._receiver);this._receiver=this._generatorFunction=void 0;this._next(void 0)};PromiseSpawn.prototype._continue=function PromiseSpawn$_continue(result){if(result===errorObj){this._generator=void 0;var trace=errors.canAttach(result.e)?result.e:new Error(result.e+"");this._promise._attachExtraTrace(trace);this._promise._reject(result.e,trace);return}var value=result.value;if(result.done===true){this._generator=void 0;if(!this._promise._tryFollow(value)){this._promise._fulfill(value)}}else{var maybePromise=cast(value,void 0);if(!(maybePromise instanceof Promise)){maybePromise=promiseFromYieldHandler(maybePromise,this._yieldHandlers);if(maybePromise===null){this._throw(new TypeError("A value was yielded that could not be treated as a promise"));return}}maybePromise._then(this._next,this._throw,void 0,this,null)}};PromiseSpawn.prototype._throw=function PromiseSpawn$_throw(reason){if(errors.canAttach(reason))this._promise._attachExtraTrace(reason);this._continue(tryCatch1(this._generator["throw"],this._generator,reason))};PromiseSpawn.prototype._next=function PromiseSpawn$_next(value){this._continue(tryCatch1(this._generator.next,this._generator,value))};Promise.coroutine=function Promise$Coroutine(generatorFunction,options){if(typeof generatorFunction!=="function"){throw new TypeError("generatorFunction must be a function")}var yieldHandler=Object(options).yieldHandler;var PromiseSpawn$=PromiseSpawn;return function(){var generator=generatorFunction.apply(this,arguments);var spawn=new PromiseSpawn$(void 0,void 0,yieldHandler);spawn._generator=generator;spawn._next(void 0);return spawn.promise()}};Promise.coroutine.addYieldHandler=function(fn){if(typeof fn!=="function")throw new TypeError("fn must be a function");yieldHandlers.push(fn)};Promise.spawn=function Promise$Spawn(generatorFunction){deprecated("Promise.spawn is deprecated. Use Promise.coroutine instead.");if(typeof generatorFunction!=="function"){return apiRejection("generatorFunction must be a function")}var spawn=new PromiseSpawn(generatorFunction,this);var ret=spawn.promise();spawn._run(Promise.spawn);return ret}}},{"./errors.js":11,"./util.js":36}],17:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray,cast,INTERNAL){var util=require("./util.js");var canEvaluate=util.canEvaluate;var tryCatch1=util.tryCatch1;var errorObj=util.errorObj;if(canEvaluate){var thenCallback=function(i){return new Function("value","holder"," \n 'use strict'; \n holder.pIndex = value; \n holder.checkFulfillment(this); \n ".replace(/Index/g,i))};var caller=function(count){var values=[];for(var i=1;i<=count;++i)values.push("holder.p"+i);return new Function("holder"," \n 'use strict'; \n var callback = holder.fn; \n return callback(values); \n ".replace(/values/g,values.join(", ")))};var thenCallbacks=[];var callers=[void 0];for(var i=1;i<=5;++i){thenCallbacks.push(thenCallback(i));callers.push(caller(i))}var Holder=function(total,fn){this.p1=this.p2=this.p3=this.p4=this.p5=null;this.fn=fn;this.total=total;this.now=0};Holder.prototype.callers=callers;Holder.prototype.checkFulfillment=function(promise){var now=this.now;now++;var total=this.total;if(now>=total){var handler=this.callers[total];var ret=tryCatch1(handler,void 0,this);if(ret===errorObj){promise._rejectUnchecked(ret.e)}else if(!promise._tryFollow(ret)){promise._fulfillUnchecked(ret)}}else{this.now=now}}}Promise.join=function Promise$Join(){var last=arguments.length-1;var fn;if(last>0&&typeof arguments[last]==="function"){fn=arguments[last];if(last<6&&canEvaluate){var ret=new Promise(INTERNAL);ret._setTrace(void 0);var holder=new Holder(last,fn);var reject=ret._reject;var callbacks=thenCallbacks;for(var i=0;i<last;++i){var maybePromise=cast(arguments[i],void 0);if(maybePromise instanceof Promise){if(maybePromise.isPending()){maybePromise._then(callbacks[i],reject,void 0,ret,holder)}else if(maybePromise.isFulfilled()){callbacks[i].call(ret,maybePromise._settledValue,holder)}else{ret._reject(maybePromise._settledValue);maybePromise._unsetRejectionIsUnhandled()}}else{callbacks[i].call(ret,maybePromise,holder)}}return ret}}var $_len=arguments.length;var args=new Array($_len);for(var $_i=0;$_i<$_len;++$_i){args[$_i]=arguments[$_i]}var ret=new PromiseArray(args).promise();return fn!==void 0?ret.spread(fn):ret}}},{"./util.js":36}],18:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray,apiRejection,cast,INTERNAL){var util=require("./util.js");var tryCatch3=util.tryCatch3;var errorObj=util.errorObj;var PENDING={};var EMPTY_ARRAY=[];function MappingPromiseArray(promises,fn,limit,_filter){this.constructor$(promises);this._callback=fn;this._preservedValues=_filter===INTERNAL?new Array(this.length()):null;this._limit=limit;this._inFlight=0;this._queue=limit>=1?[]:EMPTY_ARRAY;this._init$(void 0,-2)}util.inherits(MappingPromiseArray,PromiseArray);MappingPromiseArray.prototype._init=function MappingPromiseArray$_init(){};MappingPromiseArray.prototype._promiseFulfilled=function MappingPromiseArray$_promiseFulfilled(value,index){var values=this._values;if(values===null)return;var length=this.length();var preservedValues=this._preservedValues;var limit=this._limit;if(values[index]===PENDING){values[index]=value;if(limit>=1){this._inFlight--;this._drainQueue();if(this._isResolved())return}}else{if(limit>=1&&this._inFlight>=limit){values[index]=value;this._queue.push(index);return}if(preservedValues!==null)preservedValues[index]=value;var callback=this._callback;var receiver=this._promise._boundTo;var ret=tryCatch3(callback,receiver,value,index,length);if(ret===errorObj)return this._reject(ret.e);var maybePromise=cast(ret,void 0);if(maybePromise instanceof Promise){if(maybePromise.isPending()){if(limit>=1)this._inFlight++;values[index]=PENDING;return maybePromise._proxyPromiseArray(this,index)}else if(maybePromise.isFulfilled()){ret=maybePromise.value()}else{maybePromise._unsetRejectionIsUnhandled();return this._reject(maybePromise.reason())}}values[index]=ret}var totalResolved=++this._totalResolved;if(totalResolved>=length){if(preservedValues!==null){this._filter(values,preservedValues)}else{this._resolve(values)}}};MappingPromiseArray.prototype._drainQueue=function MappingPromiseArray$_drainQueue(){var queue=this._queue;var limit=this._limit;var values=this._values;while(queue.length>0&&this._inFlight<limit){var index=queue.pop();this._promiseFulfilled(values[index],index)}};MappingPromiseArray.prototype._filter=function MappingPromiseArray$_filter(booleans,values){var len=values.length;var ret=new Array(len);var j=0;for(var i=0;i<len;++i){if(booleans[i])ret[j++]=values[i]}ret.length=j;this._resolve(ret)};MappingPromiseArray.prototype.preservedValues=function MappingPromiseArray$preserveValues(){return this._preservedValues};function map(promises,fn,options,_filter){var limit=typeof options==="object"&&options!==null?options.concurrency:0;limit=typeof limit==="number"&&isFinite(limit)&&limit>=1?limit:0;return new MappingPromiseArray(promises,fn,limit,_filter)}Promise.prototype.map=function Promise$map(fn,options){if(typeof fn!=="function")return apiRejection("fn must be a function");return map(this,fn,options,null).promise()};Promise.map=function Promise$Map(promises,fn,options,_filter){if(typeof fn!=="function")return apiRejection("fn must be a function");return map(promises,fn,options,_filter).promise()}}},{"./util.js":36}],19:[function(require,module,exports){"use strict";module.exports=function(Promise){var util=require("./util.js");var async=require("./async.js");var tryCatch2=util.tryCatch2;var tryCatch1=util.tryCatch1;var errorObj=util.errorObj;function thrower(r){throw r}function Promise$_spreadAdapter(val,receiver){if(!util.isArray(val))return Promise$_successAdapter(val,receiver);var ret=util.tryCatchApply(this,[null].concat(val),receiver);if(ret===errorObj){async.invokeLater(thrower,void 0,ret.e)}}function Promise$_successAdapter(val,receiver){var nodeback=this;var ret=val===void 0?tryCatch1(nodeback,receiver,null):tryCatch2(nodeback,receiver,null,val);if(ret===errorObj){async.invokeLater(thrower,void 0,ret.e)}}function Promise$_errorAdapter(reason,receiver){var nodeback=this;var ret=tryCatch1(nodeback,receiver,reason);if(ret===errorObj){async.invokeLater(thrower,void 0,ret.e)}}Promise.prototype.nodeify=function Promise$nodeify(nodeback,options){if(typeof nodeback=="function"){var adapter=Promise$_successAdapter;if(options!==void 0&&Object(options).spread){adapter=Promise$_spreadAdapter}this._then(adapter,Promise$_errorAdapter,void 0,nodeback,this._boundTo)}return this}}},{"./async.js":2,"./util.js":36}],20:[function(require,module,exports){"use strict";module.exports=function(Promise,PromiseArray){var util=require("./util.js");var async=require("./async.js");var errors=require("./errors.js");var tryCatch1=util.tryCatch1;var errorObj=util.errorObj;Promise.prototype.progressed=function Promise$progressed(handler){return this._then(void 0,void 0,handler,void 0,void 0) };Promise.prototype._progress=function Promise$_progress(progressValue){if(this._isFollowingOrFulfilledOrRejected())return;this._progressUnchecked(progressValue)};Promise.prototype._progressHandlerAt=function Promise$_progressHandlerAt(index){return index===0?this._progressHandler0:this[(index<<2)+index-5+2]};Promise.prototype._doProgressWith=function Promise$_doProgressWith(progression){var progressValue=progression.value;var handler=progression.handler;var promise=progression.promise;var receiver=progression.receiver;var ret=tryCatch1(handler,receiver,progressValue);if(ret===errorObj){if(ret.e!=null&&ret.e.name!=="StopProgressPropagation"){var trace=errors.canAttach(ret.e)?ret.e:new Error(ret.e+"");promise._attachExtraTrace(trace);promise._progress(ret.e)}}else if(ret instanceof Promise){ret._then(promise._progress,null,null,promise,void 0)}else{promise._progress(ret)}};Promise.prototype._progressUnchecked=function Promise$_progressUnchecked(progressValue){if(!this.isPending())return;var len=this._length();var progress=this._progress;for(var i=0;i<len;i++){var handler=this._progressHandlerAt(i);var promise=this._promiseAt(i);if(!(promise instanceof Promise)){var receiver=this._receiverAt(i);if(typeof handler==="function"){handler.call(receiver,progressValue,promise)}else if(receiver instanceof Promise&&receiver._isProxied()){receiver._progressUnchecked(progressValue)}else if(receiver instanceof PromiseArray){receiver._promiseProgressed(progressValue,promise)}continue}if(typeof handler==="function"){async.invoke(this._doProgressWith,this,{handler:handler,promise:promise,receiver:this._receiverAt(i),value:progressValue})}else{async.invoke(progress,promise,progressValue)}}}}},{"./async.js":2,"./errors.js":11,"./util.js":36}],21:[function(require,module,exports){(function(process){"use strict";var old;if(typeof Promise!=="undefined")old=Promise;function noConflict(bluebird){try{if(Promise===bluebird)Promise=old}catch(e){}return bluebird}module.exports=function(){var util=require("./util.js");var async=require("./async.js");var errors=require("./errors.js");var INTERNAL=function(){};var APPLY={};var NEXT_FILTER={e:null};var cast=require("./thenables.js")(Promise,INTERNAL);var PromiseArray=require("./promise_array.js")(Promise,INTERNAL,cast);var CapturedTrace=require("./captured_trace.js")();var CatchFilter=require("./catch_filter.js")(NEXT_FILTER);var PromiseResolver=require("./promise_resolver.js");var isArray=util.isArray;var errorObj=util.errorObj;var tryCatch1=util.tryCatch1;var tryCatch2=util.tryCatch2;var tryCatchApply=util.tryCatchApply;var RangeError=errors.RangeError;var TypeError=errors.TypeError;var CancellationError=errors.CancellationError;var TimeoutError=errors.TimeoutError;var OperationalError=errors.OperationalError;var originatesFromRejection=errors.originatesFromRejection;var markAsOriginatingFromRejection=errors.markAsOriginatingFromRejection;var canAttach=errors.canAttach;var thrower=util.thrower;var apiRejection=require("./errors_api_rejection")(Promise);var makeSelfResolutionError=function Promise$_makeSelfResolutionError(){return new TypeError("circular promise resolution chain")};function Promise(resolver){if(typeof resolver!=="function"){throw new TypeError("the promise constructor requires a resolver function")}if(this.constructor!==Promise){throw new TypeError("the promise constructor cannot be invoked directly")}this._bitField=0;this._fulfillmentHandler0=void 0;this._rejectionHandler0=void 0;this._promise0=void 0;this._receiver0=void 0;this._settledValue=void 0;this._boundTo=void 0;if(resolver!==INTERNAL)this._resolveFromResolver(resolver)}Promise.prototype.bind=function Promise$bind(thisArg){var ret=new Promise(INTERNAL);ret._follow(this);ret._propagateFrom(this,2|1);ret._setBoundTo(thisArg);return ret};Promise.prototype.toString=function Promise$toString(){return"[object Promise]"};Promise.prototype.caught=Promise.prototype["catch"]=function Promise$catch(fn){var len=arguments.length;if(len>1){var catchInstances=new Array(len-1),j=0,i;for(i=0;i<len-1;++i){var item=arguments[i];if(typeof item==="function"){catchInstances[j++]=item}else{var catchFilterTypeError=new TypeError("A catch filter must be an error constructor "+"or a filter function");this._attachExtraTrace(catchFilterTypeError);async.invoke(this._reject,this,catchFilterTypeError);return}}catchInstances.length=j;fn=arguments[i];this._resetTrace();var catchFilter=new CatchFilter(catchInstances,fn,this);return this._then(void 0,catchFilter.doFilter,void 0,catchFilter,void 0)}return this._then(void 0,fn,void 0,void 0,void 0)};Promise.prototype.then=function Promise$then(didFulfill,didReject,didProgress){return this._then(didFulfill,didReject,didProgress,void 0,void 0)};Promise.prototype.done=function Promise$done(didFulfill,didReject,didProgress){var promise=this._then(didFulfill,didReject,didProgress,void 0,void 0);promise._setIsFinal()};Promise.prototype.spread=function Promise$spread(didFulfill,didReject){return this._then(didFulfill,didReject,void 0,APPLY,void 0)};Promise.prototype.isCancellable=function Promise$isCancellable(){return!this.isResolved()&&this._cancellable()};Promise.prototype.toJSON=function Promise$toJSON(){var ret={isFulfilled:false,isRejected:false,fulfillmentValue:void 0,rejectionReason:void 0};if(this.isFulfilled()){ret.fulfillmentValue=this._settledValue;ret.isFulfilled=true}else if(this.isRejected()){ret.rejectionReason=this._settledValue;ret.isRejected=true}return ret};Promise.prototype.all=function Promise$all(){return new PromiseArray(this).promise()};Promise.is=function Promise$Is(val){return val instanceof Promise};Promise.all=function Promise$All(promises){return new PromiseArray(promises).promise()};Promise.prototype.error=function Promise$_error(fn){return this.caught(originatesFromRejection,fn)};Promise.prototype._resolveFromSyncValue=function Promise$_resolveFromSyncValue(value){if(value===errorObj){this._cleanValues();this._setRejected();this._settledValue=value.e;this._ensurePossibleRejectionHandled()}else{var maybePromise=cast(value,void 0);if(maybePromise instanceof Promise){this._follow(maybePromise)}else{this._cleanValues();this._setFulfilled();this._settledValue=value}}};Promise.method=function Promise$_Method(fn){if(typeof fn!=="function"){throw new TypeError("fn must be a function")}return function Promise$_method(){var value;switch(arguments.length){case 0:value=tryCatch1(fn,this,void 0);break;case 1:value=tryCatch1(fn,this,arguments[0]);break;case 2:value=tryCatch2(fn,this,arguments[0],arguments[1]);break;default:var $_len=arguments.length;var args=new Array($_len);for(var $_i=0;$_i<$_len;++$_i){args[$_i]=arguments[$_i]}value=tryCatchApply(fn,args,this);break}var ret=new Promise(INTERNAL);ret._setTrace(void 0);ret._resolveFromSyncValue(value);return ret}};Promise.attempt=Promise["try"]=function Promise$_Try(fn,args,ctx){if(typeof fn!=="function"){return apiRejection("fn must be a function")}var value=isArray(args)?tryCatchApply(fn,args,ctx):tryCatch1(fn,ctx,args);var ret=new Promise(INTERNAL);ret._setTrace(void 0);ret._resolveFromSyncValue(value);return ret};Promise.defer=Promise.pending=function Promise$Defer(){var promise=new Promise(INTERNAL);promise._setTrace(void 0);return new PromiseResolver(promise)};Promise.bind=function Promise$Bind(thisArg){var ret=new Promise(INTERNAL);ret._setTrace(void 0);ret._setFulfilled();ret._setBoundTo(thisArg);return ret};Promise.cast=function Promise$_Cast(obj){var ret=cast(obj,void 0);if(!(ret instanceof Promise)){var val=ret;ret=new Promise(INTERNAL);ret._setTrace(void 0);ret._setFulfilled();ret._cleanValues();ret._settledValue=val}return ret};Promise.resolve=Promise.fulfilled=Promise.cast;Promise.reject=Promise.rejected=function Promise$Reject(reason){var ret=new Promise(INTERNAL);ret._setTrace(void 0);markAsOriginatingFromRejection(reason);ret._cleanValues();ret._setRejected();ret._settledValue=reason;if(!canAttach(reason)){var trace=new Error(reason+"");ret._setCarriedStackTrace(trace)}ret._ensurePossibleRejectionHandled();return ret};Promise.onPossiblyUnhandledRejection=function Promise$OnPossiblyUnhandledRejection(fn){CapturedTrace.possiblyUnhandledRejection=typeof fn==="function"?fn:void 0};var unhandledRejectionHandled;Promise.onUnhandledRejectionHandled=function Promise$onUnhandledRejectionHandled(fn){unhandledRejectionHandled=typeof fn==="function"?fn:void 0};var debugging=false||!!(typeof process!=="undefined"&&typeof process.execPath==="string"&&typeof process.env==="object"&&(process.env["BLUEBIRD_DEBUG"]||process.env["NODE_ENV"]==="development"));Promise.longStackTraces=function Promise$LongStackTraces(){if(async.haveItemsQueued()&&debugging===false){throw new Error("cannot enable long stack traces after promises have been created")}debugging=CapturedTrace.isSupported()};Promise.hasLongStackTraces=function Promise$HasLongStackTraces(){return debugging&&CapturedTrace.isSupported()};Promise.prototype._then=function Promise$_then(didFulfill,didReject,didProgress,receiver,internalData){var haveInternalData=internalData!==void 0;var ret=haveInternalData?internalData:new Promise(INTERNAL);if(!haveInternalData){if(debugging){var haveSameContext=this._peekContext()===this._traceParent;ret._traceParent=haveSameContext?this._traceParent:this}ret._propagateFrom(this,7)}var callbackIndex=this._addCallbacks(didFulfill,didReject,didProgress,ret,receiver);if(this.isResolved()){async.invoke(this._queueSettleAt,this,callbackIndex)}return ret};Promise.prototype._length=function Promise$_length(){return this._bitField&262143};Promise.prototype._isFollowingOrFulfilledOrRejected=function Promise$_isFollowingOrFulfilledOrRejected(){return(this._bitField&939524096)>0};Promise.prototype._isFollowing=function Promise$_isFollowing(){return(this._bitField&536870912)===536870912};Promise.prototype._setLength=function Promise$_setLength(len){this._bitField=this._bitField&-262144|len&262143};Promise.prototype._setFulfilled=function Promise$_setFulfilled(){this._bitField=this._bitField|268435456};Promise.prototype._setRejected=function Promise$_setRejected(){this._bitField=this._bitField|134217728};Promise.prototype._setFollowing=function Promise$_setFollowing(){this._bitField=this._bitField|536870912};Promise.prototype._setIsFinal=function Promise$_setIsFinal(){this._bitField=this._bitField|33554432};Promise.prototype._isFinal=function Promise$_isFinal(){return(this._bitField&33554432)>0};Promise.prototype._cancellable=function Promise$_cancellable(){return(this._bitField&67108864)>0};Promise.prototype._setCancellable=function Promise$_setCancellable(){this._bitField=this._bitField|67108864};Promise.prototype._unsetCancellable=function Promise$_unsetCancellable(){this._bitField=this._bitField&~67108864};Promise.prototype._setRejectionIsUnhandled=function Promise$_setRejectionIsUnhandled(){this._bitField=this._bitField|2097152};Promise.prototype._unsetRejectionIsUnhandled=function Promise$_unsetRejectionIsUnhandled(){this._bitField=this._bitField&~2097152;if(this._isUnhandledRejectionNotified()){this._unsetUnhandledRejectionIsNotified();this._notifyUnhandledRejectionIsHandled()}};Promise.prototype._isRejectionUnhandled=function Promise$_isRejectionUnhandled(){return(this._bitField&2097152)>0};Promise.prototype._setUnhandledRejectionIsNotified=function Promise$_setUnhandledRejectionIsNotified(){this._bitField=this._bitField|524288};Promise.prototype._unsetUnhandledRejectionIsNotified=function Promise$_unsetUnhandledRejectionIsNotified(){this._bitField=this._bitField&~524288};Promise.prototype._isUnhandledRejectionNotified=function Promise$_isUnhandledRejectionNotified(){return(this._bitField&524288)>0};Promise.prototype._setCarriedStackTrace=function Promise$_setCarriedStackTrace(capturedTrace){this._bitField=this._bitField|1048576;this._fulfillmentHandler0=capturedTrace};Promise.prototype._unsetCarriedStackTrace=function Promise$_unsetCarriedStackTrace(){this._bitField=this._bitField&~1048576;this._fulfillmentHandler0=void 0};Promise.prototype._isCarryingStackTrace=function Promise$_isCarryingStackTrace(){return(this._bitField&1048576)>0};Promise.prototype._getCarriedStackTrace=function Promise$_getCarriedStackTrace(){return this._isCarryingStackTrace()?this._fulfillmentHandler0:void 0};Promise.prototype._receiverAt=function Promise$_receiverAt(index){var ret=index===0?this._receiver0:this[(index<<2)+index-5+4];if(this._isBound()&&ret===void 0){return this._boundTo}return ret};Promise.prototype._promiseAt=function Promise$_promiseAt(index){return index===0?this._promise0:this[(index<<2)+index-5+3]};Promise.prototype._fulfillmentHandlerAt=function Promise$_fulfillmentHandlerAt(index){return index===0?this._fulfillmentHandler0:this[(index<<2)+index-5+0]};Promise.prototype._rejectionHandlerAt=function Promise$_rejectionHandlerAt(index){return index===0?this._rejectionHandler0:this[(index<<2)+index-5+1]};Promise.prototype._addCallbacks=function Promise$_addCallbacks(fulfill,reject,progress,promise,receiver){var index=this._length();if(index>=262143-5){index=0;this._setLength(0)}if(index===0){this._promise0=promise;if(receiver!==void 0)this._receiver0=receiver;if(typeof fulfill==="function"&&!this._isCarryingStackTrace())this._fulfillmentHandler0=fulfill;if(typeof reject==="function")this._rejectionHandler0=reject;if(typeof progress==="function")this._progressHandler0=progress}else{var base=(index<<2)+index-5;this[base+3]=promise;this[base+4]=receiver;this[base+0]=typeof fulfill==="function"?fulfill:void 0;this[base+1]=typeof reject==="function"?reject:void 0;this[base+2]=typeof progress==="function"?progress:void 0}this._setLength(index+1);return index};Promise.prototype._setProxyHandlers=function Promise$_setProxyHandlers(receiver,promiseSlotValue){var index=this._length();if(index>=262143-5){index=0;this._setLength(0)}if(index===0){this._promise0=promiseSlotValue;this._receiver0=receiver}else{var base=(index<<2)+index-5;this[base+3]=promiseSlotValue;this[base+4]=receiver;this[base+0]=this[base+1]=this[base+2]=void 0}this._setLength(index+1)};Promise.prototype._proxyPromiseArray=function Promise$_proxyPromiseArray(promiseArray,index){this._setProxyHandlers(promiseArray,index)};Promise.prototype._proxyPromise=function Promise$_proxyPromise(promise){promise._setProxied();this._setProxyHandlers(promise,-1)};Promise.prototype._setBoundTo=function Promise$_setBoundTo(obj){if(obj!==void 0){this._bitField=this._bitField|8388608;this._boundTo=obj}else{this._bitField=this._bitField&~8388608}};Promise.prototype._isBound=function Promise$_isBound(){return(this._bitField&8388608)===8388608};Promise.prototype._resolveFromResolver=function Promise$_resolveFromResolver(resolver){var promise=this;this._setTrace(void 0);this._pushContext();function Promise$_resolver(val){if(promise._tryFollow(val)){return}promise._fulfill(val)}function Promise$_rejecter(val){var trace=canAttach(val)?val:new Error(val+"");promise._attachExtraTrace(trace);markAsOriginatingFromRejection(val);promise._reject(val,trace===val?void 0:trace)}var r=tryCatch2(resolver,void 0,Promise$_resolver,Promise$_rejecter);this._popContext();if(r!==void 0&&r===errorObj){var e=r.e;var trace=canAttach(e)?e:new Error(e+"");promise._reject(e,trace)}};Promise.prototype._spreadSlowCase=function Promise$_spreadSlowCase(targetFn,promise,values,boundTo){var promiseForAll=new PromiseArray(values).promise();var promise2=promiseForAll._then(function(){return targetFn.apply(boundTo,arguments)},void 0,void 0,APPLY,void 0);promise._follow(promise2)};Promise.prototype._callSpread=function Promise$_callSpread(handler,promise,value){var boundTo=this._boundTo;if(isArray(value)){for(var i=0,len=value.length;i<len;++i){if(cast(value[i],void 0)instanceof Promise){this._spreadSlowCase(handler,promise,value,boundTo);return}}}promise._pushContext();return tryCatchApply(handler,value,boundTo)};Promise.prototype._callHandler=function Promise$_callHandler(handler,receiver,promise,value){var x;if(receiver===APPLY&&!this.isRejected()){x=this._callSpread(handler,promise,value)}else{promise._pushContext();x=tryCatch1(handler,receiver,value)}promise._popContext();return x};Promise.prototype._settlePromiseFromHandler=function Promise$_settlePromiseFromHandler(handler,receiver,value,promise){if(!(promise instanceof Promise)){handler.call(receiver,value,promise);return}var x=this._callHandler(handler,receiver,promise,value);if(promise._isFollowing())return;if(x===errorObj||x===promise||x===NEXT_FILTER){var err=x===promise?makeSelfResolutionError():x.e;var trace=canAttach(err)?err:new Error(err+"");if(x!==NEXT_FILTER)promise._attachExtraTrace(trace);promise._rejectUnchecked(err,trace)}else{var castValue=cast(x,promise);if(castValue instanceof Promise){if(castValue.isRejected()&&!castValue._isCarryingStackTrace()&&!canAttach(castValue._settledValue)){var trace=new Error(castValue._settledValue+"");promise._attachExtraTrace(trace);castValue._setCarriedStackTrace(trace)}promise._follow(castValue);promise._propagateFrom(castValue,1)}else{promise._fulfillUnchecked(x)}}};Promise.prototype._follow=function Promise$_follow(promise){this._setFollowing();if(promise.isPending()){this._propagateFrom(promise,1);promise._proxyPromise(this)}else if(promise.isFulfilled()){this._fulfillUnchecked(promise._settledValue)}else{this._rejectUnchecked(promise._settledValue,promise._getCarriedStackTrace())}if(promise._isRejectionUnhandled())promise._unsetRejectionIsUnhandled();if(debugging&&promise._traceParent==null){promise._traceParent=this}};Promise.prototype._tryFollow=function Promise$_tryFollow(value){if(this._isFollowingOrFulfilledOrRejected()||value===this){return false}var maybePromise=cast(value,void 0);if(!(maybePromise instanceof Promise)){return false}this._follow(maybePromise);return true};Promise.prototype._resetTrace=function Promise$_resetTrace(){if(debugging){this._trace=new CapturedTrace(this._peekContext()===void 0)}};Promise.p