| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274 |
- Executing test #1 - Promise basic behavior
- Test #1 - Executor function called synchronously
- Executing test #2 - Promise basic error behavior
- Test #2 - Executor function called synchronously
- Executing test #3 - Promise with multiple then handlers
- Executing test #4 - Promise with chained then handlers
- Executing test #5 - Promise with a throwing executor function
- Executing test #6 - Promise with a potential thenable that throws when getting the 'then' property
- Executing test #7 - Promise with a potential thenable that throws when calling the 'then' function
- Executing test #8 - Promise with a success handler that throws when called
- Executing test #9 - Promise with an error handler that throws when called
- Executing test #10 - Promise with an executor function that creates a self-resolution error
- Executing test #11 - Promise basic catch behavior
- Executing test #12 - Promise chained catch behavior
- Executing test #13 - Promise then and catch interleaved
- Executing test #14 - Promise identity function is used when no success handler is provided
- Executing test #15 - Promise thrower function is used when no error handler is provided
- Executing test #16 - Promise.resolve creates a fulfilled resolved promise
- Executing test #17 - Promise.resolve called with a promise returns the same promise
- Executing test #18 - Promise.reject creates a fulfilled rejected promise
- Executing test #19 - Promise.reject called with a promise returns a promise for that promise
- Executing test #20 - Promise.race with an object containing a non-function iterator property
- Executing test #21 - Promise.race with this argument missing the resolve function
- Executing test #22 - Promise.race with this argument resolve function returning a non-object
- Executing test #23 - Promise.race with this argument resolve function returning an object with no then function
- Executing test #24 - Promise.race with an object containing an iterator that throws
- Executing test #25 - Promise.race still returns a rejected promise if anything throws while iterating, even if resolved promises are encountered
- Executing test #26 - Promise.race fulfills with the same value as the first encountered resolved promise
- Executing test #27 - Promise.race fulfills with the same value as the first encountered resolved promise (promises complete async)
- Executing test #28 - Promise.race fulfills with the same value as the first encountered rejected promise (promises complete async)
- Executing test #29 - Promise.race passes each element in it's argument to Promise.resolve
- Executing test #30 - Promise.all with an object containing a non-function iterator property
- Executing test #31 - Promise.all with this argument missing the resolve function
- Executing test #32 - Promise.all with this argument resolve function returning a non-object
- Executing test #33 - Promise.all with this argument resolve function returning an object with no then function
- Executing test #34 - Promise.all with an object containing an iterator that throws
- Executing test #35 - Promise.all still returns a rejected promise if anything throws while iterating, even if resolved promises are encountered
- Executing test #36 - Promise.all fulfills with the same value as the first encountered rejected promise
- Executing test #37 - Promise.all fulfills with the same value as the first encountered rejected promise (async promises)
- Executing test #38 - Promise.all fulfills when all promises in iterable fulfill
- Executing test #39 - Promise.all passes each element in the arguments to Promise.resolve
- Executing test #40 - Promise.all called with empty iterator, calls Promise.resolve synchronously and passes abrupt completion to reject handler
- Test #40 - resolve called
- Test #40 - reject called: oops
- Executing test #41 - Promise.resolve called with a thenable calls then on the thenable
- Executing test #42 - Calling promise resolve function with thenable should call thenable.then
- Executing test #43 - Promise.all doesn't call then for rejected promises
- Executing test #44 - Promise.all with iterator that returns no items
- Executing test #45 - Simple tampering of Promise.all promise changes resolved result value
- Executing test #46 - Promise.all - can't prevent remaining elements counter from reaching zero
- Executing test #47 - Promise from Promise.all never resolved before arguments
- Executing test #48 - Promise from Promise.all never resolved if rejected promise in arguments
- Executing test #49 - Promise executor resolves with the first call resolve function
- Executing test #50 - Promise executor rejects with the first call reject function
- Executing test #51 - Promise executor resolves/rejects with the first call to either function
- Executing test #52 - Promise executor rejects/resolves with the first call to either function
- Executing test #53 - Promise executor rejects/resolves/rejects with the first call to either function
- Executing test #54 - Promise executor resolves/rejects/resolves with the first call to either function
- Executing test #55 - Promise.prototype.finally - called for resolved promise
- Executing test #56 - Promise.prototype.finally - called for rejected promise
- Executing test #57 - Promise.prototype.finally passes through result for Reject
- Executing test #58 - Promise.prototype.finally passes through result for Resolve
- Executing test #59 - Promise.prototype.finally passes through result for Reject with not callable argument
- Executing test #60 - Promise.prototype.finally passes through result for Resolve with not callable argument
- Executing test #61 - Promise.prototype.finally throws own rejection after a resolved promise
- Executing test #62 - Promise.prototype.finally throws own rejection after a rejected promise
- Executing test #63 - Ensure Multiple then handlers on a single promise are executed in correct order
- Executing test #64 - Promise.allSettled settles when all promises in iterable settle
- Executing test #65 - Promise.allSettled settles even if all promises reject
- Executing test #66 - Promise.allSettled settles immediately with an empty iterator
- Executing test #67 - Promise.allSettled doesn't settle if some promises don't settle
- Executing test #68 - Promise.allSettled rejects immediately with an iterator that throws
- Executing test #69 - Promise.allSettled resolve and reject functions cannot be called multiple times
- Test #69 - Temp then handler called from Promise.allSettled
- Executing test #70 - Promise.allSettled passes all elements of iterable to Promise.resolve
- Executing test #71 - Promise.allSettled called with empty iterator, calls Promise.resolve synchronously and passes abrupt completion to reject handler
- Test #71 - resolve called
- Test #71 - reject called: oops
- Executing test #72 - Promise.allSettled gets the constructor's resolve function only once
- Test #72 - get constructor resolve
- Test #72 - constructor resolve called
- Test #72 - constructor resolve called
- Executing test #73 - Promise.all gets the constructor's resolve function only once
- Test #73 - get constructor resolve
- Test #73 - constructor resolve called
- Test #73 - constructor resolve called
- Executing test #74 - Promise.race gets the constructor's resolve function only once
- Test #74 - get constructor resolve
- Test #74 - constructor resolve called
- Test #74 - constructor resolve called
- Executing test #75 - Promise.any gets the constructor's resolve function only once
- Test #75 - get constructor resolve
- Test #75 - constructor resolve called
- Test #75 - constructor resolve called
- Executing test #76 - Promise.any with an object containing a non-function iterator property
- Executing test #77 - Promise.any with this argument missing the resolve function
- Executing test #78 - Promise.any with this argument resolve function returning a non-object
- Executing test #79 - Promise.any with this argument resolve function returning an object with no then function
- Executing test #80 - Promise.any with an object containing an iterator that throws
- Executing test #81 - Promise.any still returns a rejected promise if anything throws while iterating, even if resolved promises are encountered
- Executing test #82 - Promise.any fulfills with the same value as the first encountered resolved promise
- Executing test #83 - Promise.any fulfills with the same value as the first encountered resolved promise (promises complete async)
- Executing test #84 - Promise.any fulfills with the same value as the first encountered rejected promise (promises complete async)
- Executing test #85 - Promise.any should wait until one resolve
- Executing test #86 - Promise.any should wait until all reject
- Executing test #87 - Promise.any should not call return
- Test #87 - get iterator called
- Test #87 - iterator next called: 2
- Test #87 - iterator next called: 1
- Test #87 - iterator next throw
- Executing test #88 - Promise.any should call return once
- Test #88 - get iterator called
- Test #88 - iterator next called: 2
- Test #88 - iterator return called
- Executing test #89 - Promise.any should throw TypeError if resolve not a function
- Test #89 - resolve getter called
- Executing test #90 - Promise.any passes each element in it's argument to Promise.resolve
- Executing test #91 - Promise.any should failure with empty list
- Executing test #92 - Promise.any should reject with aggregate error and errors
- Completion Results:
- Test #1 - Success handler called with result = basic:success
- Test #2 - Error handler called with err = basic:error
- Test #3 - Success handler #1 called with result = multithen:success
- Test #3 - Success handler #2 called with result = multithen:success
- Test #3 - Success handler #3 called with result = multithen:success
- Test #4 - Success handler #1 called with result = chain:success1
- Test #5 - Error handler called with err = basic:throw
- Test #6 - Success handler #1 called with result = thenable.get:unused
- Test #7 - Success handler #1 called with result = thenable.call:unused
- Test #8 - Success handler #1 called with result = success.throw:unused
- Test #9 - Error handler #1 called with err = error.throw:unused
- Test #11 - Catch handler called with err = error
- Test #12 - Catch handler #1 called with err = error1
- Test #13 - Catch handler #1 called with err = error1
- Test #16 - Success handler #1 called with result = resolved promise result
- Test #18 - Catch handler #1 called with err = rejected promise result
- Test #20 - Catch handler #1 called with err = TypeError: Function expected
- Test #21 - Catch handler #1 called with err = TypeError: Function expected
- Test #22 - Catch handler #1 called with err = TypeError: Object expected
- Test #23 - Catch handler #1 called with err = TypeError: Function expected
- Test #24 - Catch handler #1 called with err = TypeError: failure inside iterator
- Test #25 - Error handler #1 called with err = TypeError: failure inside iterator
- Test #30 - Catch handler #1 called with err = TypeError: Function expected
- Test #31 - Catch handler #1 called with err = TypeError: Function expected
- Test #32 - Catch handler #1 called with err = TypeError: Object expected
- Test #33 - Catch handler #1 called with err = TypeError: Function expected
- Test #34 - Catch handler #1 called with err = TypeError: failure inside iterator
- Test #35 - Error handler #1 called with err = TypeError: failure inside iterator
- Test #41 - Promise.resolve calls thenable.then
- Test #42 - thenable.then resolve = function reject = function
- Test #44 - Success handler #1 called with result = '' (length = 0) (isArray = true)
- Test #45 - Success handler called with result = 'tampered' (length = 1) (isArray = true)
- Test #46 - Success handler called with result = '' (length = 1) (isArray = true)
- Test #47 - Success handler #1a called with result = '2' (isArray = false) (fulfillCalled = false)
- Test #49 - Success handler #1 called with res = 'success'
- Test #50 - Error handler #1 called with err = 'success'
- Test #51 - Success handler #1 called with res = 'success'
- Test #52 - Error handler #1 called with err = 'success'
- Test #53 - Error handler #1 called with err = 'success'
- Test #54 - Success handler #1 called with res = 'success'
- Test #55 - Success finally handler called for resolved promise without value
- Test #56 - Success finally handler called for rejected promise without value
- Test #63 - val is 0(Expect 0)
- Test #66 - Success - []
- Test #68 - Failed - {}
- Test #76 - Catch handler #1 called with err = TypeError: Function expected
- Test #76 - Catch handler #1 called with err.message = Function expected
- Test #77 - Catch handler #1 called with err = TypeError: Function expected
- Test #77 - Catch handler #1 called with err.message = Function expected
- Test #78 - Catch handler #1 called with err = TypeError: Object expected
- Test #78 - Catch handler #1 called with err.message = Object expected
- Test #79 - Catch handler #1 called with err = TypeError: Function expected
- Test #79 - Catch handler #1 called with err.message = Function expected
- Test #80 - Catch handler #1 called with err = TypeError: failure inside iterator
- Test #80 - Catch handler #1 called with err.message = failure inside iterator
- Test #81 - Error handler #1 called with err = TypeError: failure inside iterator
- Test #81 - Error handler #1 called with err.message = failure inside iterator
- Test #87 - Error handler #1 called with err = Error: BANG
- Test #88 - Error handler #1 called with err = Error
- Test #89 - Error handler #1 called with err = TypeError: Function expected
- Test #90 - Error handler #1 called with err = Error
- Test #90 - Error handler #1 called with err.message =
- Test #91 - Error handler #1 called with err = AggregateError: Promise.any all promises rejected.
- Test #91 - Error handler #1 called with err.errors = []
- Test #91 - Error handler #1 called with err.message = Promise.any all promises rejected.
- Test #92 - Error handler #1 called with err = AggregateError: Promise.any all promises rejected.
- Test #92 - Error handler #1 called with err.message = "Promise.any all promises rejected."
- Test #92 - Error handler #1 called with err.name = AggregateError
- Test #92 - Error handler #1 called with err.errors = []
- Test #92 - Error handler #2 called with err = Error
- Test #92 - Error handler #2 called with err.message = ""
- Test #92 - Error handler #2 called with err.name = Error
- Test #92 - Error handler #2 called with err.errors = undefined
- Test #92 - Error handler #3 called with err = Error
- Test #92 - Error handler #3 called with err.message = ""
- Test #92 - Error handler #3 called with err.name = Error
- Test #92 - Error handler #3 called with err.errors = undefined
- Test #6 - Error handler #2 called with err = thenable.get:error!
- Test #8 - Error handler #2 called with err = success.throw:error
- Test #9 - Error handler #2 called with err = error.throw:error
- Test #10 - Error handler called with err = TypeError: Object used to resolve a promise creates a circular resolution
- Test #12 - Catch handler #2 called with err = error2
- Test #13 - Success handler #1 called with result = ok
- Test #14 - Success handler #1 called with result = success
- Test #26 - Success handler #1 called with result = first promise
- Test #27 - p1 success: p1
- Test #27 - p2 success: p2
- Test #27 - p3 failure: p3
- Test #28 - p1 failure: p1
- Test #28 - p2 success: p2
- Test #28 - p3 success: p3
- Test #29 - Success handler #1 called with result = first promise value
- Test #36 - Error handler #1 called with err = third promise
- Test #37 - p1 success: p1
- Test #37 - p2 success: p2
- Test #37 - p3 failure: p3
- Test #38 - p1 success: p1
- Test #38 - p2 success: p2
- Test #38 - p3 success: p3
- Test #39 - Success handler #1 called with result = success value 1,42,TypeError: an error
- Test #47 - Success handler #1b called with result = '3' (isArray = false) (fulfillCalled = false)
- Test #48 - Error handler #1 called with err = 2
- Test #59 - Success - Rejected status and value passed through finally with not callable argument
- Test #60 - Success - Resolved status and value passed through finally with not callable argument
- Test #61 - Success - own rejection passed through finally
- Test #62 - Success - own rejection passed through finally
- Test #64 - p1 success: p1
- Test #64 - p4 failure: p4
- Test #65 - p1 failure: p1
- Test #68 - p1 success: p1
- Test #68 - p2 success: p2
- Test #68 - p3 success: p3
- Test #69 - p1 success: p1
- Test #70 - Success - [{"status":"fulfilled","value":"p1"},{"status":"fulfilled","value":"p2"}]
- Test #82 - Success handler #1 called with result = first promise
- Test #83 - p1 success: p1
- Test #83 - p2 success: p2
- Test #83 - p3 failure: p3
- Test #84 - p1 failure: p1
- Test #84 - p2 success: p2
- Test #84 - p3 success: p3
- Test #85 - 2 failure: 2
- Test #85 - 3 success: 3
- Test #85 - 4 failure: 4
- Test #86 - 2 failure: 2
- Test #86 - 3 failure: 3
- Test #86 - 4 failure: 4
- Test #7 - Error handler #2 called with err = thenable.call:error!
- Test #13 - Catch handler #2 called with err = error2
- Test #15 - Catch handler #1 called with err = failure
- Test #27 - Success handler #1 called with result = p1
- Test #28 - Error handler #1 called with err = p1
- Test #37 - Error handler #1 called with err = p3
- Test #38 - Success handler #1 called with result = p1,p2,p3
- Test #43 - Catch handler #1 called with err = expected1
- Test #43 - Catch handler #2 called with err = expected2
- Test #43 - Catch handler #3 called with err = expected3
- Test #64 - Success - [{"status":"fulfilled","value":"p1"},{"status":"fulfilled","value":"p2"},{"status":"rejected","reason":"p3"},{"status":"rejected","reason":"p4"}]
- Test #65 - Success - [{"status":"rejected","reason":"p1"},{"status":"rejected","reason":"p2"},{"status":"rejected","reason":"p3"}]
- Test #69 - Success: [{"status":"fulfilled","value":"p1"}]
- Test #69 - p1 success: p2
- Test #69 - p1 failure: e2
- Test #83 - Success handler #1 called with result = p1
- Test #84 - Success handler #1 called with result = p2
- Test #85 - Success handler #1 called with result = 3
- Test #86 - Error handler #1 called with err = AggregateError: Promise.any all promises rejected.
- Test #86 - Error handler #1 called with err.message = "Promise.any all promises rejected."
- Test #86 - Error handler #1 called with err.name = AggregateError
- Test #86 - Error handler #1 called with err.errors = [1,2,3,4,5]
- Test #4 - Success handler #2 called with result = chain:success2
- Test #57 - Success - Rejected status and value passed through finally
- Test #58 - Success - Resolved status and value passed through finally
- Test #47 - Success handler #2 called with result = '0,,4' (length = 3) (isArray = true) (fulfillCalled = true)
|