Features:
-
You may now return promises and thenables from the filterer function used in
Promise.filter
andPromise.prototype.filter
. -
.error()
now catches additional sources of rejections:-
Rejections originating from
Promise.reject
-
Rejections originating from thenables using the
reject
callback -
Rejections originating from promisified callbacks which use the
errback
argument -
Rejections originating from
new Promise
constructor where thereject
callback is called explicitly -
Rejections originating from
PromiseResolver
where.reject()
method is called explicitly
-
Bugfixes:
- Fix
captureStackTrace
being called when it wasnull
- Fix
Promise.map
not unwrapping thenables
Features:
- Improve performance of collection methods
- Improve performance of promise chains
Bugfixes:
- Fix
Promise.some
behavior with arguments like negative integers, 0... - Fix stack traces of synchronously throwing promisified functions'
Features:
- Improve performance of generators
Bugfixes:
- Fix critical bug with collection methods.
Features:
- Improve performance of all collection methods
Features:
- Improve overall performance.
- Improve performance of promisified functions.
- Improve performance of catch filters.
- Improve performance of .finally.
Bugfixes:
- Fix
.finally()
rejecting if passed non-function. It will now ignore non-functions like.then
. - Fix
.finally()
not converting thenables returned from the handler to promises. .spread()
now rejects if the ultimate value given to it is not spreadable.
Features:
- Improve overall performance when not using
.bind()
or cancellation. - Promises are now not cancellable by default. This is backwards incompatible change - see
.cancellable()
Promise.delay
.delay()
.timeout()
Bugfixes:
- Fix race condition when mixing 3rd party asynchrony.
Bugfixes:
- Fix another bug with progression.
Bugfixes:
- Fix bug with progression.
Bugfixes:
- Fix
.race()
not propagating bound values.
Features:
- Improve performance of
Promise.race
Bugfixes:
- Fixed
Promise.promisifyAll
invoking property accessors. Only data properties with function values are considered.
Features:
- Disable long stack traces in browsers by default. Call
Promise.longStackTraces()
to enable them.
Bugfixes:
- Fail early when
new Promise
is constructed incorrectly
Bugfixes:
- Promise.props now takes a thenable-for-collection
- All promise collection methods now reject when a promise-or-thenable-for-collection turns out not to give a collection
Features:
- All static collection methods take thenable-for-collection
Features:
- throw TypeError when thenable resolves with itself
- Make .race() and Promise.race() forever pending on empty collections
Bugfixes:
- Promise.resolve and PromiseResolver.resolve follow thenables too.
Bugfixes:
- Fix infinite loop when thenable resolves with itself
Bugfixes:
- Fix a file missing from build. (Critical fix)
Features:
- Remove dependency of es5-shim and es5-sham when using ES3.
Features:
- Improve performance of
Promise.method
Features:
- Rename PromiseResolver#asCallback to PromiseResolver#callback
Features:
- Remove memoization of thenables
Features:
- Add methods
Promise.resolve()
,Promise.reject()
,Promise.defer()
and.resolve()
.
Features:
- Implement
Promise.method()
- Implement
.return()
- Implement
.throw()
Bugfixes:
- Fix promises being able to use themselves as resolution or follower value
Features:
- Implicit
Promise.all()
when yielding an array from generators
Bugfixes:
- Fix
.spread
not unwrapping thenables
Features:
- Improve performance of promisified functions on V8
Bugfixes:
- Report unhandled rejections even when long stack traces are disabled
- Fix
.error()
showing up in stack traces
Bugfixes:
- Catch filter method calls showing in stack traces
Bugfixes:
- Support primitives in catch filters
Features:
- Add
Promise.race()
and.race()
Bugfixes:
- Fix bug with
Promise.try
not unwrapping returned promises and thenables
Bugfixes:
- Fix bug with build files containing duplicated code for promise.js
Features:
- Improve output of reporting unhandled non-errors
- Implement RejectionError wrapping and
.error()
method
Features:
- Allow fresh copies of the library to be made
Bugfixes:
- Rollback non-working multiple fresh copies feature
Features:
- Allow fresh copies of the library to be made
- Add more components to customized builds
Features:
- Allow custom builds
Bugfixes:
- Fix unhandled rethrown exceptions not reported
Features:
- Improve performance of
Promise.try
- Extend
Promise.try
to accept arguments and ctx to make it more usable in promisification of synchronous functions.
Features:
- Implement
.bind
andPromise.bind
Bugfixes:
- Fix
.some()
when argument is a pending promise that later resolves to an array
Features:
- Enable process wide long stack traces through BLUEBIRD_DEBUG environment variable
Features:
- Improve performance of all collection methods
Bugfixes:
- Fix .finally passing the value to handlers
- Remove kew from benchmarks due to bugs in the library breaking the benchmark
- Fix some bluebird library calls potentially appearing in stack traces
Bugfixes:
- Fix .pending() call showing in long stack traces
Bugfixes:
- Fix PromiseArray and its sub-classes swallowing possibly unhandled rejections
Bugfixes:
- Fix AMD-declaration using named module.
Features:
- The mortals that can handle it may now release Zalgo by
require("bluebird/zalgo");
Bugfixes:
- Fix memory leak when using the same promise to attach handlers over and over again
Features:
- Add
Promise.props()
andPromise.prototype.props()
. They work like.all()
for object properties.
Bugfixes:
- Fix bug with .some returning garbage when sparse arrays have rejections
Features:
- Improve performance of
.reduce()
wheninitialValue
can be synchronously cast to a value
Bugfixes:
- Fix .npmignore having irrelevant files
Features:
- Improve performance of
.some()
Bugfixes:
- Remove uses of dynamic evaluation (
new Function
,eval
etc) when strictly not necessary. Use feature detection to use static evaluation to avoid errors when dynamic evaluation is prohibited.
Features:
- Add
.asCallback
property toPromiseResolver
s
Features:
- Improve overall performance. Be able to sustain infinite recursion when using promises.
Bugfixes:
- Fix stackoverflow error when function calls itself "synchronously" from a promise handler
Bugfixes:
- Fix safari 6 not using
MutationObserver
as a scheduler - Fix process exceptions interfering with internal queue flushing
Bugfixes:
- Don't try to detect if generators are available to allow shims to be used
Features:
- Promisification now consider all functions on the object and its prototype chain
- Individual promisifcation uses current
this
if no explicit receiver is given - Give better stack traces when promisified callbacks throw or errback primitives such as strings by wrapping them in an
Error
object.
Bugfixes:
- Fix runtime APIs throwing synchronous errors
Features:
- Deprecate
Promise.promisify(Object target)
in favor ofPromise.promisifyAll(Object target)
to avoid confusion with function objects - Coroutines now throw error when a non-promise is
yielded
Features:
- Make tests pass Internet Explorer 8
Features:
- Create browser tests
Bugfixes:
- Fix promise cast bug when thenable fulfills using itself as the fulfillment value
Features:
- More performance improvements when long stack traces are enabled
Features:
- Performance improvements when long stack traces are enabled
Bugfixes:
- Fix promisified methods not turning synchronous exceptions into rejections
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix
Features:
- feature
Bugfixes:
- bugfix