es6-promise
Advanced tools
Comparing version 3.0.2 to 3.1.2
# Master | ||
# 3.0.2 | ||
* improve performance of Promise.all when it encounters a non-promise input object input | ||
* then/resolve tamper protection | ||
* reduce AST size of promise constructor, to facilitate more inlining | ||
* Update README.md with details about PhantomJS requirement for running tests | ||
* Mangle and compress the minified version | ||
* correctly bump both bower and package.json versions | ||
# 3.0.1 | ||
@@ -13,6 +15,6 @@ | ||
* use nextTick() instead of setImmediate() to schedule microtasks with node 0.10. Later versions of | ||
nodes are not affected as they were already using nextTick(). Note that using nextTick() might | ||
* use nextTick() instead of setImmediate() to schedule microtasks with node 0.10. Later versions of | ||
nodes are not affected as they were already using nextTick(). Note that using nextTick() might | ||
trigger a depreciation warning on 0.10 as described at https://github.com/cujojs/when/issues/410. | ||
The reason why nextTick() is preferred is that is setImmediate() would schedule a macrotask | ||
The reason why nextTick() is preferred is that is setImmediate() would schedule a macrotask | ||
instead of a microtask and might result in a different scheduling. | ||
@@ -24,2 +26,21 @@ If needed you can revert to the former behavior as follow: | ||
# 2.3.0 | ||
* #121: Ability to override the internal asap implementation | ||
* #120: Use an ascii character for an apostrophe, for source maps | ||
# 2.2.0 | ||
* #116: Expose asap() and a way to override the scheduling mechanism on Promise | ||
* Lock to v0.2.3 of ember-cli | ||
# 2.1.1 | ||
* Fix #100 via #105: tell browserify to ignore vertx require | ||
* Fix #101 via #102: "follow thenable state, not own state" | ||
# 2.1.0 | ||
* ? (see the commit log) | ||
# 2.0.0 | ||
@@ -26,0 +47,0 @@ |
@@ -6,3 +6,3 @@ /*! | ||
* See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE | ||
* @version 3.0.2 | ||
* @version 3.1.2 | ||
*/ | ||
@@ -35,3 +35,2 @@ | ||
var lib$es6$promise$asap$$len = 0; | ||
var lib$es6$promise$asap$$toString = {}.toString; | ||
var lib$es6$promise$asap$$vertxNext; | ||
@@ -155,3 +154,39 @@ var lib$es6$promise$asap$$customSchedulerFn; | ||
} | ||
function lib$es6$promise$then$$then(onFulfillment, onRejection) { | ||
var parent = this; | ||
var state = parent._state; | ||
if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) { | ||
return this; | ||
} | ||
var child = new this.constructor(lib$es6$promise$$internal$$noop); | ||
var result = parent._result; | ||
if (state) { | ||
var callback = arguments[state - 1]; | ||
lib$es6$promise$asap$$asap(function(){ | ||
lib$es6$promise$$internal$$invokeCallback(state, child, callback, result); | ||
}); | ||
} else { | ||
lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection); | ||
} | ||
return child; | ||
} | ||
var lib$es6$promise$then$$default = lib$es6$promise$then$$then; | ||
function lib$es6$promise$promise$resolve$$resolve(object) { | ||
/*jshint validthis:true */ | ||
var Constructor = this; | ||
if (object && typeof object === 'object' && object.constructor === Constructor) { | ||
return object; | ||
} | ||
var promise = new Constructor(lib$es6$promise$$internal$$noop); | ||
lib$es6$promise$$internal$$resolve(promise, object); | ||
return promise; | ||
} | ||
var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve; | ||
function lib$es6$promise$$internal$$noop() {} | ||
@@ -229,8 +264,8 @@ | ||
function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable) { | ||
if (maybeThenable.constructor === promise.constructor) { | ||
function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) { | ||
if (maybeThenable.constructor === promise.constructor && | ||
then === lib$es6$promise$then$$default && | ||
constructor.resolve === lib$es6$promise$promise$resolve$$default) { | ||
lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable); | ||
} else { | ||
var then = lib$es6$promise$$internal$$getThen(maybeThenable); | ||
if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) { | ||
@@ -252,3 +287,3 @@ lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error); | ||
} else if (lib$es6$promise$utils$$objectOrFunction(value)) { | ||
lib$es6$promise$$internal$$handleMaybeThenable(promise, value); | ||
lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value)); | ||
} else { | ||
@@ -388,100 +423,2 @@ lib$es6$promise$$internal$$fulfill(promise, value); | ||
function lib$es6$promise$enumerator$$Enumerator(Constructor, input) { | ||
var enumerator = this; | ||
enumerator._instanceConstructor = Constructor; | ||
enumerator.promise = new Constructor(lib$es6$promise$$internal$$noop); | ||
if (enumerator._validateInput(input)) { | ||
enumerator._input = input; | ||
enumerator.length = input.length; | ||
enumerator._remaining = input.length; | ||
enumerator._init(); | ||
if (enumerator.length === 0) { | ||
lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result); | ||
} else { | ||
enumerator.length = enumerator.length || 0; | ||
enumerator._enumerate(); | ||
if (enumerator._remaining === 0) { | ||
lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result); | ||
} | ||
} | ||
} else { | ||
lib$es6$promise$$internal$$reject(enumerator.promise, enumerator._validationError()); | ||
} | ||
} | ||
lib$es6$promise$enumerator$$Enumerator.prototype._validateInput = function(input) { | ||
return lib$es6$promise$utils$$isArray(input); | ||
}; | ||
lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() { | ||
return new Error('Array Methods must be provided an Array'); | ||
}; | ||
lib$es6$promise$enumerator$$Enumerator.prototype._init = function() { | ||
this._result = new Array(this.length); | ||
}; | ||
var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator; | ||
lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() { | ||
var enumerator = this; | ||
var length = enumerator.length; | ||
var promise = enumerator.promise; | ||
var input = enumerator._input; | ||
for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) { | ||
enumerator._eachEntry(input[i], i); | ||
} | ||
}; | ||
lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) { | ||
var enumerator = this; | ||
var c = enumerator._instanceConstructor; | ||
if (lib$es6$promise$utils$$isMaybeThenable(entry)) { | ||
if (entry.constructor === c && entry._state !== lib$es6$promise$$internal$$PENDING) { | ||
entry._onerror = null; | ||
enumerator._settledAt(entry._state, i, entry._result); | ||
} else { | ||
enumerator._willSettleAt(c.resolve(entry), i); | ||
} | ||
} else { | ||
enumerator._remaining--; | ||
enumerator._result[i] = entry; | ||
} | ||
}; | ||
lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) { | ||
var enumerator = this; | ||
var promise = enumerator.promise; | ||
if (promise._state === lib$es6$promise$$internal$$PENDING) { | ||
enumerator._remaining--; | ||
if (state === lib$es6$promise$$internal$$REJECTED) { | ||
lib$es6$promise$$internal$$reject(promise, value); | ||
} else { | ||
enumerator._result[i] = value; | ||
} | ||
} | ||
if (enumerator._remaining === 0) { | ||
lib$es6$promise$$internal$$fulfill(promise, enumerator._result); | ||
} | ||
}; | ||
lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) { | ||
var enumerator = this; | ||
lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) { | ||
enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value); | ||
}, function(reason) { | ||
enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason); | ||
}); | ||
}; | ||
function lib$es6$promise$promise$all$$all(entries) { | ||
@@ -519,15 +456,2 @@ return new lib$es6$promise$enumerator$$default(this, entries).promise; | ||
var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race; | ||
function lib$es6$promise$promise$resolve$$resolve(object) { | ||
/*jshint validthis:true */ | ||
var Constructor = this; | ||
if (object && typeof object === 'object' && object.constructor === Constructor) { | ||
return object; | ||
} | ||
var promise = new Constructor(lib$es6$promise$$internal$$noop); | ||
lib$es6$promise$$internal$$resolve(promise, object); | ||
return promise; | ||
} | ||
var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve; | ||
function lib$es6$promise$promise$reject$$reject(reason) { | ||
@@ -663,11 +587,4 @@ /*jshint validthis:true */ | ||
if (lib$es6$promise$$internal$$noop !== resolver) { | ||
if (!lib$es6$promise$utils$$isFunction(resolver)) { | ||
lib$es6$promise$promise$$needsResolver(); | ||
} | ||
if (!(this instanceof lib$es6$promise$promise$$Promise)) { | ||
lib$es6$promise$promise$$needsNew(); | ||
} | ||
lib$es6$promise$$internal$$initializePromise(this, resolver); | ||
typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver(); | ||
this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew(); | ||
} | ||
@@ -880,25 +797,4 @@ } | ||
*/ | ||
then: function(onFulfillment, onRejection) { | ||
var parent = this; | ||
var state = parent._state; | ||
then: lib$es6$promise$then$$default, | ||
if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) { | ||
return this; | ||
} | ||
var child = new this.constructor(lib$es6$promise$$internal$$noop); | ||
var result = parent._result; | ||
if (state) { | ||
var callback = arguments[state - 1]; | ||
lib$es6$promise$asap$$asap(function(){ | ||
lib$es6$promise$$internal$$invokeCallback(state, child, callback, result); | ||
}); | ||
} else { | ||
lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection); | ||
} | ||
return child; | ||
}, | ||
/** | ||
@@ -935,2 +831,93 @@ `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same | ||
}; | ||
var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator; | ||
function lib$es6$promise$enumerator$$Enumerator(Constructor, input) { | ||
this._instanceConstructor = Constructor; | ||
this.promise = new Constructor(lib$es6$promise$$internal$$noop); | ||
if (Array.isArray(input)) { | ||
this._input = input; | ||
this.length = input.length; | ||
this._remaining = input.length; | ||
this._result = new Array(this.length); | ||
if (this.length === 0) { | ||
lib$es6$promise$$internal$$fulfill(this.promise, this._result); | ||
} else { | ||
this.length = this.length || 0; | ||
this._enumerate(); | ||
if (this._remaining === 0) { | ||
lib$es6$promise$$internal$$fulfill(this.promise, this._result); | ||
} | ||
} | ||
} else { | ||
lib$es6$promise$$internal$$reject(this.promise, this._validationError()); | ||
} | ||
} | ||
lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() { | ||
return new Error('Array Methods must be provided an Array'); | ||
}; | ||
lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() { | ||
var length = this.length; | ||
var input = this._input; | ||
for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) { | ||
this._eachEntry(input[i], i); | ||
} | ||
}; | ||
lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) { | ||
var c = this._instanceConstructor; | ||
var resolve = c.resolve; | ||
if (resolve === lib$es6$promise$promise$resolve$$default) { | ||
var then = lib$es6$promise$$internal$$getThen(entry); | ||
if (then === lib$es6$promise$then$$default && | ||
entry._state !== lib$es6$promise$$internal$$PENDING) { | ||
this._settledAt(entry._state, i, entry._result); | ||
} else if (typeof then !== 'function') { | ||
this._remaining--; | ||
this._result[i] = entry; | ||
} else if (c === lib$es6$promise$promise$$default) { | ||
var promise = new c(lib$es6$promise$$internal$$noop); | ||
lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then); | ||
this._willSettleAt(promise, i); | ||
} else { | ||
this._willSettleAt(new c(function(resolve) { resolve(entry); }), i); | ||
} | ||
} else { | ||
this._willSettleAt(resolve(entry), i); | ||
} | ||
}; | ||
lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) { | ||
var promise = this.promise; | ||
if (promise._state === lib$es6$promise$$internal$$PENDING) { | ||
this._remaining--; | ||
if (state === lib$es6$promise$$internal$$REJECTED) { | ||
lib$es6$promise$$internal$$reject(promise, value); | ||
} else { | ||
this._result[i] = value; | ||
} | ||
} | ||
if (this._remaining === 0) { | ||
lib$es6$promise$$internal$$fulfill(promise, this._result); | ||
} | ||
}; | ||
lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) { | ||
var enumerator = this; | ||
lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) { | ||
enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value); | ||
}, function(reason) { | ||
enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason); | ||
}); | ||
}; | ||
function lib$es6$promise$polyfill$$polyfill() { | ||
@@ -937,0 +924,0 @@ var local; |
@@ -6,5 +6,5 @@ /*! | ||
* See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE | ||
* @version 3.0.2 | ||
* @version 3.1.2 | ||
*/ | ||
(function(){"use strict";function lib$es6$promise$utils$$objectOrFunction(x){return typeof x==="function"||typeof x==="object"&&x!==null}function lib$es6$promise$utils$$isFunction(x){return typeof x==="function"}function lib$es6$promise$utils$$isMaybeThenable(x){return typeof x==="object"&&x!==null}var lib$es6$promise$utils$$_isArray;if(!Array.isArray){lib$es6$promise$utils$$_isArray=function(x){return Object.prototype.toString.call(x)==="[object Array]"}}else{lib$es6$promise$utils$$_isArray=Array.isArray}var lib$es6$promise$utils$$isArray=lib$es6$promise$utils$$_isArray;var lib$es6$promise$asap$$len=0;var lib$es6$promise$asap$$toString={}.toString;var lib$es6$promise$asap$$vertxNext;var lib$es6$promise$asap$$customSchedulerFn;var lib$es6$promise$asap$$asap=function asap(callback,arg){lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len]=callback;lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len+1]=arg;lib$es6$promise$asap$$len+=2;if(lib$es6$promise$asap$$len===2){if(lib$es6$promise$asap$$customSchedulerFn){lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush)}else{lib$es6$promise$asap$$scheduleFlush()}}};function lib$es6$promise$asap$$setScheduler(scheduleFn){lib$es6$promise$asap$$customSchedulerFn=scheduleFn}function lib$es6$promise$asap$$setAsap(asapFn){lib$es6$promise$asap$$asap=asapFn}var lib$es6$promise$asap$$browserWindow=typeof window!=="undefined"?window:undefined;var lib$es6$promise$asap$$browserGlobal=lib$es6$promise$asap$$browserWindow||{};var lib$es6$promise$asap$$BrowserMutationObserver=lib$es6$promise$asap$$browserGlobal.MutationObserver||lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;var lib$es6$promise$asap$$isNode=typeof process!=="undefined"&&{}.toString.call(process)==="[object process]";var lib$es6$promise$asap$$isWorker=typeof Uint8ClampedArray!=="undefined"&&typeof importScripts!=="undefined"&&typeof MessageChannel!=="undefined";function lib$es6$promise$asap$$useNextTick(){return function(){process.nextTick(lib$es6$promise$asap$$flush)}}function lib$es6$promise$asap$$useVertxTimer(){return function(){lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush)}}function lib$es6$promise$asap$$useMutationObserver(){var iterations=0;var observer=new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);var node=document.createTextNode("");observer.observe(node,{characterData:true});return function(){node.data=iterations=++iterations%2}}function lib$es6$promise$asap$$useMessageChannel(){var channel=new MessageChannel;channel.port1.onmessage=lib$es6$promise$asap$$flush;return function(){channel.port2.postMessage(0)}}function lib$es6$promise$asap$$useSetTimeout(){return function(){setTimeout(lib$es6$promise$asap$$flush,1)}}var lib$es6$promise$asap$$queue=new Array(1e3);function lib$es6$promise$asap$$flush(){for(var i=0;i<lib$es6$promise$asap$$len;i+=2){var callback=lib$es6$promise$asap$$queue[i];var arg=lib$es6$promise$asap$$queue[i+1];callback(arg);lib$es6$promise$asap$$queue[i]=undefined;lib$es6$promise$asap$$queue[i+1]=undefined}lib$es6$promise$asap$$len=0}function lib$es6$promise$asap$$attemptVertx(){try{var r=require;var vertx=r("vertx");lib$es6$promise$asap$$vertxNext=vertx.runOnLoop||vertx.runOnContext;return lib$es6$promise$asap$$useVertxTimer()}catch(e){return lib$es6$promise$asap$$useSetTimeout()}}var lib$es6$promise$asap$$scheduleFlush;if(lib$es6$promise$asap$$isNode){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useNextTick()}else if(lib$es6$promise$asap$$BrowserMutationObserver){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useMutationObserver()}else if(lib$es6$promise$asap$$isWorker){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useMessageChannel()}else if(lib$es6$promise$asap$$browserWindow===undefined&&typeof require==="function"){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$attemptVertx()}else{lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useSetTimeout()}function lib$es6$promise$$internal$$noop(){}var lib$es6$promise$$internal$$PENDING=void 0;var lib$es6$promise$$internal$$FULFILLED=1;var lib$es6$promise$$internal$$REJECTED=2;var lib$es6$promise$$internal$$GET_THEN_ERROR=new lib$es6$promise$$internal$$ErrorObject;function lib$es6$promise$$internal$$selfFulfillment(){return new TypeError("You cannot resolve a promise with itself")}function lib$es6$promise$$internal$$cannotReturnOwn(){return new TypeError("A promises callback cannot return that same promise.")}function lib$es6$promise$$internal$$getThen(promise){try{return promise.then}catch(error){lib$es6$promise$$internal$$GET_THEN_ERROR.error=error;return lib$es6$promise$$internal$$GET_THEN_ERROR}}function lib$es6$promise$$internal$$tryThen(then,value,fulfillmentHandler,rejectionHandler){try{then.call(value,fulfillmentHandler,rejectionHandler)}catch(e){return e}}function lib$es6$promise$$internal$$handleForeignThenable(promise,thenable,then){lib$es6$promise$asap$$asap(function(promise){var sealed=false;var error=lib$es6$promise$$internal$$tryThen(then,thenable,function(value){if(sealed){return}sealed=true;if(thenable!==value){lib$es6$promise$$internal$$resolve(promise,value)}else{lib$es6$promise$$internal$$fulfill(promise,value)}},function(reason){if(sealed){return}sealed=true;lib$es6$promise$$internal$$reject(promise,reason)},"Settle: "+(promise._label||" unknown promise"));if(!sealed&&error){sealed=true;lib$es6$promise$$internal$$reject(promise,error)}},promise)}function lib$es6$promise$$internal$$handleOwnThenable(promise,thenable){if(thenable._state===lib$es6$promise$$internal$$FULFILLED){lib$es6$promise$$internal$$fulfill(promise,thenable._result)}else if(thenable._state===lib$es6$promise$$internal$$REJECTED){lib$es6$promise$$internal$$reject(promise,thenable._result)}else{lib$es6$promise$$internal$$subscribe(thenable,undefined,function(value){lib$es6$promise$$internal$$resolve(promise,value)},function(reason){lib$es6$promise$$internal$$reject(promise,reason)})}}function lib$es6$promise$$internal$$handleMaybeThenable(promise,maybeThenable){if(maybeThenable.constructor===promise.constructor){lib$es6$promise$$internal$$handleOwnThenable(promise,maybeThenable)}else{var then=lib$es6$promise$$internal$$getThen(maybeThenable);if(then===lib$es6$promise$$internal$$GET_THEN_ERROR){lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$GET_THEN_ERROR.error)}else if(then===undefined){lib$es6$promise$$internal$$fulfill(promise,maybeThenable)}else if(lib$es6$promise$utils$$isFunction(then)){lib$es6$promise$$internal$$handleForeignThenable(promise,maybeThenable,then)}else{lib$es6$promise$$internal$$fulfill(promise,maybeThenable)}}}function lib$es6$promise$$internal$$resolve(promise,value){if(promise===value){lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$selfFulfillment())}else if(lib$es6$promise$utils$$objectOrFunction(value)){lib$es6$promise$$internal$$handleMaybeThenable(promise,value)}else{lib$es6$promise$$internal$$fulfill(promise,value)}}function lib$es6$promise$$internal$$publishRejection(promise){if(promise._onerror){promise._onerror(promise._result)}lib$es6$promise$$internal$$publish(promise)}function lib$es6$promise$$internal$$fulfill(promise,value){if(promise._state!==lib$es6$promise$$internal$$PENDING){return}promise._result=value;promise._state=lib$es6$promise$$internal$$FULFILLED;if(promise._subscribers.length!==0){lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish,promise)}}function lib$es6$promise$$internal$$reject(promise,reason){if(promise._state!==lib$es6$promise$$internal$$PENDING){return}promise._state=lib$es6$promise$$internal$$REJECTED;promise._result=reason;lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection,promise)}function lib$es6$promise$$internal$$subscribe(parent,child,onFulfillment,onRejection){var subscribers=parent._subscribers;var length=subscribers.length;parent._onerror=null;subscribers[length]=child;subscribers[length+lib$es6$promise$$internal$$FULFILLED]=onFulfillment;subscribers[length+lib$es6$promise$$internal$$REJECTED]=onRejection;if(length===0&&parent._state){lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish,parent)}}function lib$es6$promise$$internal$$publish(promise){var subscribers=promise._subscribers;var settled=promise._state;if(subscribers.length===0){return}var child,callback,detail=promise._result;for(var i=0;i<subscribers.length;i+=3){child=subscribers[i];callback=subscribers[i+settled];if(child){lib$es6$promise$$internal$$invokeCallback(settled,child,callback,detail)}else{callback(detail)}}promise._subscribers.length=0}function lib$es6$promise$$internal$$ErrorObject(){this.error=null}var lib$es6$promise$$internal$$TRY_CATCH_ERROR=new lib$es6$promise$$internal$$ErrorObject;function lib$es6$promise$$internal$$tryCatch(callback,detail){try{return callback(detail)}catch(e){lib$es6$promise$$internal$$TRY_CATCH_ERROR.error=e;return lib$es6$promise$$internal$$TRY_CATCH_ERROR}}function lib$es6$promise$$internal$$invokeCallback(settled,promise,callback,detail){var hasCallback=lib$es6$promise$utils$$isFunction(callback),value,error,succeeded,failed;if(hasCallback){value=lib$es6$promise$$internal$$tryCatch(callback,detail);if(value===lib$es6$promise$$internal$$TRY_CATCH_ERROR){failed=true;error=value.error;value=null}else{succeeded=true}if(promise===value){lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$cannotReturnOwn());return}}else{value=detail;succeeded=true}if(promise._state!==lib$es6$promise$$internal$$PENDING){}else if(hasCallback&&succeeded){lib$es6$promise$$internal$$resolve(promise,value)}else if(failed){lib$es6$promise$$internal$$reject(promise,error)}else if(settled===lib$es6$promise$$internal$$FULFILLED){lib$es6$promise$$internal$$fulfill(promise,value)}else if(settled===lib$es6$promise$$internal$$REJECTED){lib$es6$promise$$internal$$reject(promise,value)}}function lib$es6$promise$$internal$$initializePromise(promise,resolver){try{resolver(function resolvePromise(value){lib$es6$promise$$internal$$resolve(promise,value)},function rejectPromise(reason){lib$es6$promise$$internal$$reject(promise,reason)})}catch(e){lib$es6$promise$$internal$$reject(promise,e)}}function lib$es6$promise$enumerator$$Enumerator(Constructor,input){var enumerator=this;enumerator._instanceConstructor=Constructor;enumerator.promise=new Constructor(lib$es6$promise$$internal$$noop);if(enumerator._validateInput(input)){enumerator._input=input;enumerator.length=input.length;enumerator._remaining=input.length;enumerator._init();if(enumerator.length===0){lib$es6$promise$$internal$$fulfill(enumerator.promise,enumerator._result)}else{enumerator.length=enumerator.length||0;enumerator._enumerate();if(enumerator._remaining===0){lib$es6$promise$$internal$$fulfill(enumerator.promise,enumerator._result)}}}else{lib$es6$promise$$internal$$reject(enumerator.promise,enumerator._validationError())}}lib$es6$promise$enumerator$$Enumerator.prototype._validateInput=function(input){return lib$es6$promise$utils$$isArray(input)};lib$es6$promise$enumerator$$Enumerator.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")};lib$es6$promise$enumerator$$Enumerator.prototype._init=function(){this._result=new Array(this.length)};var lib$es6$promise$enumerator$$default=lib$es6$promise$enumerator$$Enumerator;lib$es6$promise$enumerator$$Enumerator.prototype._enumerate=function(){var enumerator=this;var length=enumerator.length;var promise=enumerator.promise;var input=enumerator._input;for(var i=0;promise._state===lib$es6$promise$$internal$$PENDING&&i<length;i++){enumerator._eachEntry(input[i],i)}};lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry=function(entry,i){var enumerator=this;var c=enumerator._instanceConstructor;if(lib$es6$promise$utils$$isMaybeThenable(entry)){if(entry.constructor===c&&entry._state!==lib$es6$promise$$internal$$PENDING){entry._onerror=null;enumerator._settledAt(entry._state,i,entry._result)}else{enumerator._willSettleAt(c.resolve(entry),i)}}else{enumerator._remaining--;enumerator._result[i]=entry}};lib$es6$promise$enumerator$$Enumerator.prototype._settledAt=function(state,i,value){var enumerator=this;var promise=enumerator.promise;if(promise._state===lib$es6$promise$$internal$$PENDING){enumerator._remaining--;if(state===lib$es6$promise$$internal$$REJECTED){lib$es6$promise$$internal$$reject(promise,value)}else{enumerator._result[i]=value}}if(enumerator._remaining===0){lib$es6$promise$$internal$$fulfill(promise,enumerator._result)}};lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt=function(promise,i){var enumerator=this;lib$es6$promise$$internal$$subscribe(promise,undefined,function(value){enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED,i,value)},function(reason){enumerator._settledAt(lib$es6$promise$$internal$$REJECTED,i,reason)})};function lib$es6$promise$promise$all$$all(entries){return new lib$es6$promise$enumerator$$default(this,entries).promise}var lib$es6$promise$promise$all$$default=lib$es6$promise$promise$all$$all;function lib$es6$promise$promise$race$$race(entries){var Constructor=this;var promise=new Constructor(lib$es6$promise$$internal$$noop);if(!lib$es6$promise$utils$$isArray(entries)){lib$es6$promise$$internal$$reject(promise,new TypeError("You must pass an array to race."));return promise}var length=entries.length;function onFulfillment(value){lib$es6$promise$$internal$$resolve(promise,value)}function onRejection(reason){lib$es6$promise$$internal$$reject(promise,reason)}for(var i=0;promise._state===lib$es6$promise$$internal$$PENDING&&i<length;i++){lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]),undefined,onFulfillment,onRejection)}return promise}var lib$es6$promise$promise$race$$default=lib$es6$promise$promise$race$$race;function lib$es6$promise$promise$resolve$$resolve(object){var Constructor=this;if(object&&typeof object==="object"&&object.constructor===Constructor){return object}var promise=new Constructor(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$resolve(promise,object);return promise}var lib$es6$promise$promise$resolve$$default=lib$es6$promise$promise$resolve$$resolve;function lib$es6$promise$promise$reject$$reject(reason){var Constructor=this;var promise=new Constructor(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$reject(promise,reason);return promise}var lib$es6$promise$promise$reject$$default=lib$es6$promise$promise$reject$$reject;var lib$es6$promise$promise$$counter=0;function lib$es6$promise$promise$$needsResolver(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function lib$es6$promise$promise$$needsNew(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}var lib$es6$promise$promise$$default=lib$es6$promise$promise$$Promise;function lib$es6$promise$promise$$Promise(resolver){this._id=lib$es6$promise$promise$$counter++;this._state=undefined;this._result=undefined;this._subscribers=[];if(lib$es6$promise$$internal$$noop!==resolver){if(!lib$es6$promise$utils$$isFunction(resolver)){lib$es6$promise$promise$$needsResolver()}if(!(this instanceof lib$es6$promise$promise$$Promise)){lib$es6$promise$promise$$needsNew()}lib$es6$promise$$internal$$initializePromise(this,resolver)}}lib$es6$promise$promise$$Promise.all=lib$es6$promise$promise$all$$default;lib$es6$promise$promise$$Promise.race=lib$es6$promise$promise$race$$default;lib$es6$promise$promise$$Promise.resolve=lib$es6$promise$promise$resolve$$default;lib$es6$promise$promise$$Promise.reject=lib$es6$promise$promise$reject$$default;lib$es6$promise$promise$$Promise._setScheduler=lib$es6$promise$asap$$setScheduler;lib$es6$promise$promise$$Promise._setAsap=lib$es6$promise$asap$$setAsap;lib$es6$promise$promise$$Promise._asap=lib$es6$promise$asap$$asap;lib$es6$promise$promise$$Promise.prototype={constructor:lib$es6$promise$promise$$Promise,then:function(onFulfillment,onRejection){var parent=this;var state=parent._state;if(state===lib$es6$promise$$internal$$FULFILLED&&!onFulfillment||state===lib$es6$promise$$internal$$REJECTED&&!onRejection){return this}var child=new this.constructor(lib$es6$promise$$internal$$noop);var result=parent._result;if(state){var callback=arguments[state-1];lib$es6$promise$asap$$asap(function(){lib$es6$promise$$internal$$invokeCallback(state,child,callback,result)})}else{lib$es6$promise$$internal$$subscribe(parent,child,onFulfillment,onRejection)}return child},"catch":function(onRejection){return this.then(null,onRejection)}};function lib$es6$promise$polyfill$$polyfill(){var local;if(typeof global!=="undefined"){local=global}else if(typeof self!=="undefined"){local=self}else{try{local=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}}var P=local.Promise;if(P&&Object.prototype.toString.call(P.resolve())==="[object Promise]"&&!P.cast){return}local.Promise=lib$es6$promise$promise$$default}var lib$es6$promise$polyfill$$default=lib$es6$promise$polyfill$$polyfill;var lib$es6$promise$umd$$ES6Promise={Promise:lib$es6$promise$promise$$default,polyfill:lib$es6$promise$polyfill$$default};if(typeof define==="function"&&define["amd"]){define(function(){return lib$es6$promise$umd$$ES6Promise})}else if(typeof module!=="undefined"&&module["exports"]){module["exports"]=lib$es6$promise$umd$$ES6Promise}else if(typeof this!=="undefined"){this["ES6Promise"]=lib$es6$promise$umd$$ES6Promise}lib$es6$promise$polyfill$$default()}).call(this); | ||
(function(){"use strict";function t(t){return"function"==typeof t||"object"==typeof t&&null!==t}function e(t){return"function"==typeof t}function n(t){W=t}function r(t){H=t}function o(){return function(){process.nextTick(a)}}function i(){return function(){U(a)}}function s(){var t=0,e=new Q(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){t.port2.postMessage(0)}}function c(){return function(){setTimeout(a,1)}}function a(){for(var t=0;G>t;t+=2){var e=X[t],n=X[t+1];e(n),X[t]=void 0,X[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return U=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=this,r=n._state;if(r===et&&!t||r===nt&&!e)return this;var o=new this.constructor(p),i=n._result;if(r){var s=arguments[r-1];H(function(){C(r,o,s,i)})}else j(n,o,t,e);return o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function _(){return new TypeError("You cannot resolve a promise with itself")}function v(){return new TypeError("A promises callback cannot return that same promise.")}function d(t){try{return t.then}catch(e){return rt.error=e,rt}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){H(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):E(t,n))},function(e){r||(r=!0,S(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,S(t,o))},t)}function w(t,e){e._state===et?E(t,e._result):e._state===nt?S(t,e._result):j(e,void 0,function(e){g(t,e)},function(e){S(t,e)})}function b(t,n,r){n.constructor===t.constructor&&r===Z&&constructor.resolve===$?w(t,n):r===rt?S(t,rt.error):void 0===r?E(t,n):e(r)?m(t,n,r):E(t,n)}function g(e,n){e===n?S(e,_()):t(n)?b(e,n,d(n)):E(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function E(t,e){t._state===tt&&(t._result=e,t._state=et,0!==t._subscribers.length&&H(T,t))}function S(t,e){t._state===tt&&(t._state=nt,t._result=e,H(A,t))}function j(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+et]=n,o[i+nt]=r,0===i&&t._state&&H(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r,o,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?C(n,r,o,i):o(i);t._subscribers.length=0}}function P(){this.error=null}function x(t,e){try{return t(e)}catch(n){return ot.error=n,ot}}function C(t,n,r,o){var i,s,u,c,a=e(r);if(a){if(i=x(r,o),i===ot?(c=!0,s=i.error,i=null):u=!0,n===i)return void S(n,v())}else i=o,u=!0;n._state!==tt||(a&&u?g(n,i):c?S(n,s):t===et?E(n,i):t===nt&&S(n,i))}function M(t,e){try{e(function(e){g(t,e)},function(e){S(t,e)})}catch(n){S(t,n)}}function O(t){return new ft(this,t).promise}function k(t){function e(t){g(o,t)}function n(t){S(o,t)}var r=this,o=new r(p);if(!B(t))return S(o,new TypeError("You must pass an array to race.")),o;for(var i=t.length,s=0;o._state===tt&&i>s;s++)j(r.resolve(t[s]),void 0,e,n);return o}function Y(t){var e=this,n=new e(p);return S(n,t),n}function q(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function F(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function D(t){this._id=ct++,this._state=void 0,this._result=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&q(),this instanceof D?M(this,t):F())}function K(t,e){this._instanceConstructor=t,this.promise=new t(p),Array.isArray(e)?(this._input=e,this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?E(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&E(this.promise,this._result))):S(this.promise,this._validationError())}function L(){var t;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;(!n||"[object Promise]"!==Object.prototype.toString.call(n.resolve())||n.cast)&&(t.Promise=at)}var N;N=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var U,W,z,B=N,G=0,H=function(t,e){X[G]=t,X[G+1]=e,G+=2,2===G&&(W?W(a):z())},I="undefined"!=typeof window?window:void 0,J=I||{},Q=J.MutationObserver||J.WebKitMutationObserver,R="undefined"!=typeof process&&"[object process]"==={}.toString.call(process),V="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,X=new Array(1e3);z=R?o():Q?s():V?u():void 0===I&&"function"==typeof require?f():c();var Z=l,$=h,tt=void 0,et=1,nt=2,rt=new P,ot=new P,it=O,st=k,ut=Y,ct=0,at=D;D.all=it,D.race=st,D.resolve=$,D.reject=ut,D._setScheduler=n,D._setAsap=r,D._asap=H,D.prototype={constructor:D,then:Z,"catch":function(t){return this.then(null,t)}};var ft=K;K.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},K.prototype._enumerate=function(){for(var t=this.length,e=this._input,n=0;this._state===tt&&t>n;n++)this._eachEntry(e[n],n)},K.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===$){var o=d(t);if(o===Z&&t._state!==tt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===at){var i=new n(p);b(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){e(t)}),e)}else this._willSettleAt(r(t),e)},K.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===tt&&(this._remaining--,t===nt?S(r,n):this._result[e]=n),0===this._remaining&&E(r,this._result)},K.prototype._willSettleAt=function(t,e){var n=this;j(t,void 0,function(t){n._settledAt(et,e,t)},function(t){n._settledAt(nt,e,t)})};var lt=L,ht={Promise:at,polyfill:lt};"function"==typeof define&&define.amd?define(function(){return ht}):"undefined"!=typeof module&&module.exports?module.exports=ht:"undefined"!=typeof this&&(this.ES6Promise=ht),lt()}).call(this); |
@@ -10,2 +10,5 @@ import { | ||
import originalThen from './then'; | ||
import originalResolve from './promise/resolve'; | ||
function noop() {} | ||
@@ -83,8 +86,8 @@ | ||
function handleMaybeThenable(promise, maybeThenable) { | ||
if (maybeThenable.constructor === promise.constructor) { | ||
function handleMaybeThenable(promise, maybeThenable, then) { | ||
if (maybeThenable.constructor === promise.constructor && | ||
then === originalThen && | ||
constructor.resolve === originalResolve) { | ||
handleOwnThenable(promise, maybeThenable); | ||
} else { | ||
var then = getThen(maybeThenable); | ||
if (then === GET_THEN_ERROR) { | ||
@@ -106,3 +109,3 @@ reject(promise, GET_THEN_ERROR.error); | ||
} else if (objectOrFunction(value)) { | ||
handleMaybeThenable(promise, value); | ||
handleMaybeThenable(promise, value, getThen(value)); | ||
} else { | ||
@@ -243,2 +246,3 @@ fulfill(promise, value); | ||
export { | ||
getThen, | ||
noop, | ||
@@ -255,3 +259,4 @@ resolve, | ||
REJECTED, | ||
PENDING | ||
PENDING, | ||
handleMaybeThenable | ||
}; |
var len = 0; | ||
var toString = {}.toString; | ||
var vertxNext; | ||
@@ -4,0 +3,0 @@ var customSchedulerFn; |
@@ -13,36 +13,38 @@ import { | ||
REJECTED, | ||
PENDING | ||
PENDING, | ||
getThen, | ||
handleMaybeThenable | ||
} from './-internal'; | ||
import then from './then'; | ||
import Promise from './promise'; | ||
import originalResolve from './promise/resolve'; | ||
import originalThen from './then'; | ||
export default Enumerator; | ||
function Enumerator(Constructor, input) { | ||
var enumerator = this; | ||
this._instanceConstructor = Constructor; | ||
this.promise = new Constructor(noop); | ||
enumerator._instanceConstructor = Constructor; | ||
enumerator.promise = new Constructor(noop); | ||
if (Array.isArray(input)) { | ||
this._input = input; | ||
this.length = input.length; | ||
this._remaining = input.length; | ||
if (enumerator._validateInput(input)) { | ||
enumerator._input = input; | ||
enumerator.length = input.length; | ||
enumerator._remaining = input.length; | ||
this._result = new Array(this.length); | ||
enumerator._init(); | ||
if (enumerator.length === 0) { | ||
fulfill(enumerator.promise, enumerator._result); | ||
if (this.length === 0) { | ||
fulfill(this.promise, this._result); | ||
} else { | ||
enumerator.length = enumerator.length || 0; | ||
enumerator._enumerate(); | ||
if (enumerator._remaining === 0) { | ||
fulfill(enumerator.promise, enumerator._result); | ||
this.length = this.length || 0; | ||
this._enumerate(); | ||
if (this._remaining === 0) { | ||
fulfill(this.promise, this._result); | ||
} | ||
} | ||
} else { | ||
reject(enumerator.promise, enumerator._validationError()); | ||
reject(this.promise, this._validationError()); | ||
} | ||
} | ||
Enumerator.prototype._validateInput = function(input) { | ||
return isArray(input); | ||
}; | ||
Enumerator.prototype._validationError = function() { | ||
@@ -52,17 +54,8 @@ return new Error('Array Methods must be provided an Array'); | ||
Enumerator.prototype._init = function() { | ||
this._result = new Array(this.length); | ||
}; | ||
export default Enumerator; | ||
Enumerator.prototype._enumerate = function() { | ||
var enumerator = this; | ||
var length = this.length; | ||
var input = this._input; | ||
var length = enumerator.length; | ||
var promise = enumerator.promise; | ||
var input = enumerator._input; | ||
for (var i = 0; promise._state === PENDING && i < length; i++) { | ||
enumerator._eachEntry(input[i], i); | ||
for (var i = 0; this._state === PENDING && i < length; i++) { | ||
this._eachEntry(input[i], i); | ||
} | ||
@@ -72,15 +65,23 @@ }; | ||
Enumerator.prototype._eachEntry = function(entry, i) { | ||
var enumerator = this; | ||
var c = enumerator._instanceConstructor; | ||
var c = this._instanceConstructor; | ||
var resolve = c.resolve; | ||
if (isMaybeThenable(entry)) { | ||
if (entry.constructor === c && entry._state !== PENDING) { | ||
entry._onerror = null; | ||
enumerator._settledAt(entry._state, i, entry._result); | ||
if (resolve === originalResolve) { | ||
var then = getThen(entry); | ||
if (then === originalThen && | ||
entry._state !== PENDING) { | ||
this._settledAt(entry._state, i, entry._result); | ||
} else if (typeof then !== 'function') { | ||
this._remaining--; | ||
this._result[i] = entry; | ||
} else if (c === Promise) { | ||
var promise = new c(noop); | ||
handleMaybeThenable(promise, entry, then); | ||
this._willSettleAt(promise, i); | ||
} else { | ||
enumerator._willSettleAt(c.resolve(entry), i); | ||
this._willSettleAt(new c(function(resolve) { resolve(entry); }), i); | ||
} | ||
} else { | ||
enumerator._remaining--; | ||
enumerator._result[i] = entry; | ||
this._willSettleAt(resolve(entry), i); | ||
} | ||
@@ -90,7 +91,6 @@ }; | ||
Enumerator.prototype._settledAt = function(state, i, value) { | ||
var enumerator = this; | ||
var promise = enumerator.promise; | ||
var promise = this.promise; | ||
if (promise._state === PENDING) { | ||
enumerator._remaining--; | ||
this._remaining--; | ||
@@ -100,8 +100,8 @@ if (state === REJECTED) { | ||
} else { | ||
enumerator._result[i] = value; | ||
this._result[i] = value; | ||
} | ||
} | ||
if (enumerator._remaining === 0) { | ||
fulfill(promise, enumerator._result); | ||
if (this._remaining === 0) { | ||
fulfill(promise, this._result); | ||
} | ||
@@ -108,0 +108,0 @@ }; |
@@ -7,7 +7,3 @@ import { | ||
noop, | ||
subscribe, | ||
initializePromise, | ||
invokeCallback, | ||
FULFILLED, | ||
REJECTED | ||
initializePromise | ||
} from './-internal'; | ||
@@ -25,2 +21,3 @@ | ||
import Reject from './promise/reject'; | ||
import then from './then'; | ||
@@ -148,11 +145,4 @@ var counter = 0; | ||
if (noop !== resolver) { | ||
if (!isFunction(resolver)) { | ||
needsResolver(); | ||
} | ||
if (!(this instanceof Promise)) { | ||
needsNew(); | ||
} | ||
initializePromise(this, resolver); | ||
typeof resolver !== 'function' && needsResolver(); | ||
this instanceof Promise ? initializePromise(this, resolver) : needsNew(); | ||
} | ||
@@ -365,25 +355,4 @@ } | ||
*/ | ||
then: function(onFulfillment, onRejection) { | ||
var parent = this; | ||
var state = parent._state; | ||
then: then, | ||
if (state === FULFILLED && !onFulfillment || state === REJECTED && !onRejection) { | ||
return this; | ||
} | ||
var child = new this.constructor(noop); | ||
var result = parent._result; | ||
if (state) { | ||
var callback = arguments[state - 1]; | ||
asap(function(){ | ||
invokeCallback(state, child, callback, result); | ||
}); | ||
} else { | ||
subscribe(parent, child, onFulfillment, onRejection); | ||
} | ||
return child; | ||
}, | ||
/** | ||
@@ -390,0 +359,0 @@ `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same |
{ | ||
"name": "es6-promise", | ||
"namespace": "es6-promise", | ||
"version": "3.0.2", | ||
"version": "3.1.2", | ||
"description": "A lightweight library that provides tools for organizing asynchronous code", | ||
@@ -16,17 +16,14 @@ "main": "dist/es6-promise.js", | ||
"devDependencies": { | ||
"bower": "^1.3.9", | ||
"brfs": "0.0.8", | ||
"broccoli-es3-safe-recast": "0.0.8", | ||
"broccoli-es6-module-transpiler": "^0.5.0", | ||
"broccoli-jshint": "^0.5.1", | ||
"broccoli-merge-trees": "^0.1.4", | ||
"broccoli-jshint": "^1.1.1", | ||
"broccoli-merge-trees": "^1.1.1", | ||
"broccoli-replace": "^0.2.0", | ||
"broccoli-stew": "0.0.6", | ||
"broccoli-stew": "^1.2.0", | ||
"broccoli-uglify-js": "^0.1.3", | ||
"broccoli-watchify": "^0.2.0", | ||
"ember-cli": "0.2.3", | ||
"ember-cli": "2.3.0-beta.1", | ||
"ember-publisher": "0.0.7", | ||
"git-repo-version": "0.0.2", | ||
"git-repo-version": "0.0.3", | ||
"json3": "^3.3.2", | ||
"minimatch": "^2.0.1", | ||
"mocha": "^1.20.1", | ||
@@ -38,2 +35,3 @@ "promises-aplus-tests-phantom": "^2.1.0-revise", | ||
"build": "ember build", | ||
"build:production": "ember build --environment production", | ||
"start": "ember s", | ||
@@ -40,0 +38,0 @@ "test": "ember test", |
@@ -26,2 +26,11 @@ # ES6-Promise (subset of [rsvp.js](https://github.com/tildeio/rsvp.js)) | ||
## Bower | ||
To install: | ||
```sh | ||
bower install es6-promise --save | ||
``` | ||
## Usage in IE<9 | ||
@@ -59,5 +68,9 @@ | ||
You will need to have PhantomJS installed globally in order to run the tests. | ||
`npm install -g phantomjs` | ||
* `npm run build` to build | ||
* `npm test` to run tests | ||
* `npm start` to run a build watcher, and webserver to test | ||
* `npm start` to run a build watcher, and webserver to test | ||
* `npm run test:server` for a testem test runner and watching builder |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
15
18
1807
75
73852