Mock Version: 1.3.4 ENTER ['do'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/nodejs-core-js.spec'], timeout=0nspawn_args=[]printOutput=Falsegid=135logger=shell=FalsechrootPath='/var/lib/mock/fedora-rawhide-x86_64-mockbuilder-5946/root'user='mockbuild'env={'TERM': 'vt100', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8', 'SHELL': '/bin/bash', 'HOSTNAME': 'mock', 'HOME': '/builddir', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin'}uid=1001) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/nodejs-core-js.spec'] with env {'TERM': 'vt100', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8', 'SHELL': '/bin/bash', 'HOSTNAME': 'mock', 'HOME': '/builddir', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin'} and shell False Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/nodejs-core-js-2.4.1-1.fc27.src.rpm Child return code was: 0 ENTER ['do'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/nodejs-core-js.spec'], timeout=0nspawn_args=[]printOutput=Falsegid=135logger=shell=FalsechrootPath='/var/lib/mock/fedora-rawhide-x86_64-mockbuilder-5946/root'user='mockbuild'env={'TERM': 'vt100', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8', 'SHELL': '/bin/bash', 'HOSTNAME': 'mock', 'HOME': '/builddir', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin'}uid=1001) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/nodejs-core-js.spec'] with env {'TERM': 'vt100', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8', 'SHELL': '/bin/bash', 'HOSTNAME': 'mock', 'HOME': '/builddir', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin'} and shell False Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.lFx24m + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf package + /usr/bin/gzip -dc /builddir/build/SOURCES/core-js-2.4.1.tgz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd package + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + cd /builddir/build/BUILD + cd package + /usr/bin/tar -xof - + /usr/bin/bzip2 -dc /builddir/build/SOURCES/tests-2.4.1.tar.bz2 + STATUS=0 + '[' 0 -ne 0 ']' + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + find library/modules -type f -delete + find modules/library -type f -delete + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.fghwl5 + umask 022 + cd /builddir/build/BUILD + cd package + cp -pr es5/ es6/ es7/ stage/ web/ core/ fn/ index.js shim.js library/ + cp -pr modules/_a-function.js modules/_a-number-value.js modules/_add-to-unscopables.js modules/_an-instance.js modules/_an-object.js modules/_array-copy-within.js modules/_array-fill.js modules/_array-from-iterable.js modules/_array-includes.js modules/_array-methods.js modules/_array-reduce.js modules/_array-species-constructor.js modules/_array-species-create.js modules/_bind.js modules/_classof.js modules/_cof.js modules/_collection-strong.js modules/_collection-to-json.js modules/_collection-weak.js modules/_collection.js modules/_core.js modules/_create-property.js modules/_ctx.js modules/_date-to-primitive.js modules/_defined.js modules/_descriptors.js modules/_dom-create.js modules/_entry-virtual.js modules/_enum-bug-keys.js modules/_enum-keys.js modules/_export.js modules/_fails-is-regexp.js modules/_fails.js modules/_fix-re-wks.js modules/_flags.js modules/_for-of.js modules/_global.js modules/_has.js modules/_hide.js modules/_html.js modules/_ie8-dom-define.js modules/_inherit-if-required.js modules/_invoke.js modules/_iobject.js modules/_is-array-iter.js modules/_is-array.js modules/_is-integer.js modules/_is-object.js modules/_is-regexp.js modules/_iter-call.js modules/_iter-create.js modules/_iter-define.js modules/_iter-detect.js modules/_iter-step.js modules/_iterators.js modules/_keyof.js modules/_library.js modules/_math-expm1.js modules/_math-log1p.js modules/_math-sign.js modules/_meta.js modules/_metadata.js modules/_microtask.js modules/_object-assign.js modules/_object-create.js modules/_object-define.js modules/_object-dp.js modules/_object-dps.js modules/_object-forced-pam.js modules/_object-gopd.js modules/_object-gopn-ext.js modules/_object-gopn.js modules/_object-gops.js modules/_object-gpo.js modules/_object-keys-internal.js modules/_object-keys.js modules/_object-pie.js modules/_object-sap.js modules/_object-to-array.js modules/_own-keys.js modules/_parse-float.js modules/_parse-int.js modules/_partial.js modules/_path.js modules/_property-desc.js modules/_redefine-all.js modules/_redefine.js modules/_replacer.js modules/_same-value.js modules/_set-proto.js modules/_set-species.js modules/_set-to-string-tag.js modules/_shared-key.js modules/_shared.js modules/_species-constructor.js modules/_strict-method.js modules/_string-at.js modules/_string-context.js modules/_string-html.js modules/_string-pad.js modules/_string-repeat.js modules/_string-trim.js modules/_string-ws.js modules/_task.js modules/_to-index.js modules/_to-integer.js modules/_to-iobject.js modules/_to-length.js modules/_to-object.js modules/_to-primitive.js modules/_typed-array.js modules/_typed-buffer.js modules/_typed.js modules/_uid.js modules/_wks-define.js modules/_wks-ext.js modules/_wks.js modules/core.delay.js modules/core.dict.js modules/core.function.part.js modules/core.get-iterator-method.js modules/core.get-iterator.js modules/core.is-iterable.js modules/core.number.iterator.js modules/core.object.classof.js modules/core.object.define.js modules/core.object.is-object.js modules/core.object.make.js modules/core.regexp.escape.js modules/core.string.escape-html.js modules/core.string.unescape-html.js modules/es5.js modules/es6.array.copy-within.js modules/es6.array.every.js modules/es6.array.fill.js modules/es6.array.filter.js modules/es6.array.find-index.js modules/es6.array.find.js modules/es6.array.for-each.js modules/es6.array.from.js modules/es6.array.index-of.js modules/es6.array.is-array.js modules/es6.array.iterator.js modules/es6.array.join.js modules/es6.array.last-index-of.js modules/es6.array.map.js modules/es6.array.of.js modules/es6.array.reduce-right.js modules/es6.array.reduce.js modules/es6.array.slice.js modules/es6.array.some.js modules/es6.array.sort.js modules/es6.array.species.js modules/es6.date.now.js modules/es6.date.to-iso-string.js modules/es6.date.to-json.js modules/es6.date.to-primitive.js modules/es6.date.to-string.js modules/es6.function.bind.js modules/es6.function.has-instance.js modules/es6.function.name.js modules/es6.map.js modules/es6.math.acosh.js modules/es6.math.asinh.js modules/es6.math.atanh.js modules/es6.math.cbrt.js modules/es6.math.clz32.js modules/es6.math.cosh.js modules/es6.math.expm1.js modules/es6.math.fround.js modules/es6.math.hypot.js modules/es6.math.imul.js modules/es6.math.log10.js modules/es6.math.log1p.js modules/es6.math.log2.js modules/es6.math.sign.js modules/es6.math.sinh.js modules/es6.math.tanh.js modules/es6.math.trunc.js modules/es6.number.constructor.js modules/es6.number.epsilon.js modules/es6.number.is-finite.js modules/es6.number.is-integer.js modules/es6.number.is-nan.js modules/es6.number.is-safe-integer.js modules/es6.number.max-safe-integer.js modules/es6.number.min-safe-integer.js modules/es6.number.parse-float.js modules/es6.number.parse-int.js modules/es6.number.to-fixed.js modules/es6.number.to-precision.js modules/es6.object.assign.js modules/es6.object.create.js modules/es6.object.define-properties.js modules/es6.object.define-property.js modules/es6.object.freeze.js modules/es6.object.get-own-property-descriptor.js modules/es6.object.get-own-property-names.js modules/es6.object.get-prototype-of.js modules/es6.object.is-extensible.js modules/es6.object.is-frozen.js modules/es6.object.is-sealed.js modules/es6.object.is.js modules/es6.object.keys.js modules/es6.object.prevent-extensions.js modules/es6.object.seal.js modules/es6.object.set-prototype-of.js modules/es6.object.to-string.js modules/es6.parse-float.js modules/es6.parse-int.js modules/es6.promise.js modules/es6.reflect.apply.js modules/es6.reflect.construct.js modules/es6.reflect.define-property.js modules/es6.reflect.delete-property.js modules/es6.reflect.enumerate.js modules/es6.reflect.get-own-property-descriptor.js modules/es6.reflect.get-prototype-of.js modules/es6.reflect.get.js modules/es6.reflect.has.js modules/es6.reflect.is-extensible.js modules/es6.reflect.own-keys.js modules/es6.reflect.prevent-extensions.js modules/es6.reflect.set-prototype-of.js modules/es6.reflect.set.js modules/es6.regexp.constructor.js modules/es6.regexp.flags.js modules/es6.regexp.match.js modules/es6.regexp.replace.js modules/es6.regexp.search.js modules/es6.regexp.split.js modules/es6.regexp.to-string.js modules/es6.set.js modules/es6.string.anchor.js modules/es6.string.big.js modules/es6.string.blink.js modules/es6.string.bold.js modules/es6.string.code-point-at.js modules/es6.string.ends-with.js modules/es6.string.fixed.js modules/es6.string.fontcolor.js modules/es6.string.fontsize.js modules/es6.string.from-code-point.js modules/es6.string.includes.js modules/es6.string.italics.js modules/es6.string.iterator.js modules/es6.string.link.js modules/es6.string.raw.js modules/es6.string.repeat.js modules/es6.string.small.js modules/es6.string.starts-with.js modules/es6.string.strike.js modules/es6.string.sub.js modules/es6.string.sup.js modules/es6.string.trim.js modules/es6.symbol.js modules/es6.typed.array-buffer.js modules/es6.typed.data-view.js modules/es6.typed.float32-array.js modules/es6.typed.float64-array.js modules/es6.typed.int16-array.js modules/es6.typed.int32-array.js modules/es6.typed.int8-array.js modules/es6.typed.uint16-array.js modules/es6.typed.uint32-array.js modules/es6.typed.uint8-array.js modules/es6.typed.uint8-clamped-array.js modules/es6.weak-map.js modules/es6.weak-set.js modules/es7.array.includes.js modules/es7.asap.js modules/es7.error.is-error.js modules/es7.map.to-json.js modules/es7.math.iaddh.js modules/es7.math.imulh.js modules/es7.math.isubh.js modules/es7.math.umulh.js modules/es7.object.define-getter.js modules/es7.object.define-setter.js modules/es7.object.entries.js modules/es7.object.enumerable-entries.js modules/es7.object.enumerable-keys.js modules/es7.object.enumerable-values.js modules/es7.object.get-own-property-descriptors.js modules/es7.object.lookup-getter.js modules/es7.object.lookup-setter.js modules/es7.object.values.js modules/es7.observable.js modules/es7.reflect.define-metadata.js modules/es7.reflect.delete-metadata.js modules/es7.reflect.get-metadata-keys.js modules/es7.reflect.get-metadata.js modules/es7.reflect.get-own-metadata-keys.js modules/es7.reflect.get-own-metadata.js modules/es7.reflect.has-metadata.js modules/es7.reflect.has-own-metadata.js modules/es7.reflect.metadata.js modules/es7.set.to-json.js modules/es7.string.at.js modules/es7.string.match-all.js modules/es7.string.pad-end.js modules/es7.string.pad-start.js modules/es7.string.trim-left.js modules/es7.string.trim-right.js modules/es7.symbol.async-iterator.js modules/es7.symbol.observable.js modules/es7.system.global.js modules/web.dom.iterable.js modules/web.immediate.js modules/web.timers.js library/modules/ + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.vgmbGN + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64 ++ dirname /builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64 + cd package + mkdir -p /builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64/usr/lib/node_modules/core-js + cp -pr package.json client/ library/ modules/ web/ /builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64/usr/lib/node_modules/core-js + /usr/lib/rpm/nodejs-symlink-deps /usr/lib/node_modules + /usr/lib/rpm/find-debuginfo.sh --strict-build-id -m --ver-rel 2.4.1-1.fc27 --unique-debug-arch x86_64 --unique-debug-src-base nodejs-core-js --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 /builddir/build/BUILD/package find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 + /usr/lib/rpm/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.zbCztO + umask 022 + cd /builddir/build/BUILD + cd package + /usr/lib/rpm/nodejs-symlink-deps /usr/lib/node_modules --check + /usr/bin/node -e 'require("./")' + /usr/bin/promises-aplus-tests tests/promises-aplus/adapter 2.1.2.1: When fulfilled, a promise: must not transition to any other state. ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ trying to fulfill then immediately reject ✓ trying to fulfill then reject, delayed ✓ trying to fulfill immediately then reject delayed 2.1.3.1: When rejected, a promise: must not transition to any other state. ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected ✓ trying to reject then immediately fulfill ✓ trying to reject then fulfill, delayed ✓ trying to reject immediately then fulfill delayed 2.2.1: Both `onFulfilled` and `onRejected` are optional arguments. 2.2.1.1: If `onFulfilled` is not a function, it must be ignored. applied to a directly-rejected promise ✓ `onFulfilled` is `undefined` ✓ `onFulfilled` is `null` ✓ `onFulfilled` is `false` ✓ `onFulfilled` is `5` ✓ `onFulfilled` is an object applied to a promise rejected and then chained off of ✓ `onFulfilled` is `undefined` ✓ `onFulfilled` is `null` ✓ `onFulfilled` is `false` ✓ `onFulfilled` is `5` ✓ `onFulfilled` is an object 2.2.1.2: If `onRejected` is not a function, it must be ignored. applied to a directly-fulfilled promise ✓ `onRejected` is `undefined` ✓ `onRejected` is `null` ✓ `onRejected` is `false` ✓ `onRejected` is `5` ✓ `onRejected` is an object applied to a promise fulfilled and then chained off of ✓ `onFulfilled` is `undefined` ✓ `onFulfilled` is `null` ✓ `onFulfilled` is `false` ✓ `onFulfilled` is `5` ✓ `onFulfilled` is an object 2.2.2: If `onFulfilled` is a function, 2.2.2.1: it must be called after `promise` is fulfilled, with `promise`’s fulfillment value as its first argument. ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled 2.2.2.2: it must not be called before `promise` is fulfilled ✓ fulfilled after a delay ✓ never fulfilled 2.2.2.3: it must not be called more than once. ✓ already-fulfilled ✓ trying to fulfill a pending promise more than once, immediately ✓ trying to fulfill a pending promise more than once, delayed ✓ trying to fulfill a pending promise more than once, immediately then delayed ✓ when multiple `then` calls are made, spaced apart in time ✓ when `then` is interleaved with fulfillment 2.2.3: If `onRejected` is a function, 2.2.3.1: it must be called after `promise` is rejected, with `promise`’s rejection reason as its first argument. ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected 2.2.3.2: it must not be called before `promise` is rejected ✓ rejected after a delay ✓ never rejected 2.2.3.3: it must not be called more than once. ✓ already-rejected ✓ trying to reject a pending promise more than once, immediately ✓ trying to reject a pending promise more than once, delayed ✓ trying to reject a pending promise more than once, immediately then delayed ✓ when multiple `then` calls are made, spaced apart in time ✓ when `then` is interleaved with rejection 2.2.4: `onFulfilled` or `onRejected` must not be called until the execution context stack contains only platform code. `then` returns before the promise becomes fulfilled or rejected ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected Clean-stack execution ordering tests (fulfillment case) ✓ when `onFulfilled` is added immediately before the promise is fulfilled ✓ when `onFulfilled` is added immediately after the promise is fulfilled ✓ when one `onFulfilled` is added inside another `onFulfilled` ✓ when `onFulfilled` is added inside an `onRejected` ✓ when the promise is fulfilled asynchronously Clean-stack execution ordering tests (rejection case) ✓ when `onRejected` is added immediately before the promise is rejected ✓ when `onRejected` is added immediately after the promise is rejected ✓ when `onRejected` is added inside an `onFulfilled` ✓ when one `onRejected` is added inside another `onRejected` ✓ when the promise is rejected asynchronously 2.2.5 `onFulfilled` and `onRejected` must be called as functions (i.e. with no `this` value). strict mode ✓ fulfilled ✓ rejected sloppy mode ✓ fulfilled ✓ rejected 2.2.6: `then` may be called multiple times on the same promise. 2.2.6.1: If/when `promise` is fulfilled, all respective `onFulfilled` callbacks must execute in the order of their originating calls to `then`. multiple boring fulfillment handlers ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled multiple fulfillment handlers, one of which throws ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled results in multiple branching chains with their own fulfillment values ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled `onFulfilled` handlers are called in the original order ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled even when one handler is added inside another handler ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled 2.2.6.2: If/when `promise` is rejected, all respective `onRejected` callbacks must execute in the order of their originating calls to `then`. multiple boring rejection handlers ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected multiple rejection handlers, one of which throws ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected results in multiple branching chains with their own fulfillment values ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected `onRejected` handlers are called in the original order ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected even when one handler is added inside another handler ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected 2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)` ✓ is a promise 2.2.7.1: If either `onFulfilled` or `onRejected` returns a value `x`, run the Promise Resolution Procedure `[[Resolve]](promise2, x)` ✓ see separate 3.3 tests 2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected with `e` as the reason. The reason is `undefined` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The reason is `null` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The reason is `false` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The reason is `0` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The reason is an error ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The reason is an error without a stack ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The reason is a date ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The reason is an object ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The reason is an always-pending thenable ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The reason is a fulfilled promise ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The reason is a rejected promise ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected 2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled with the same value. `onFulfilled` is `undefined` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled `onFulfilled` is `null` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled `onFulfilled` is `false` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled `onFulfilled` is `5` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled `onFulfilled` is an object ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled `onFulfilled` is an array containing a function ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled 2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected with the same reason. `onRejected` is `undefined` ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected `onRejected` is `null` ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected `onRejected` is `false` ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected `onRejected` is `5` ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected `onRejected` is an object ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected `onRejected` is an array containing a function ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected 2.3.1: If `promise` and `x` refer to the same object, reject `promise` with a `TypeError' as the reason. ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.2: If `x` is a promise, adopt its state 2.3.2.1: If `x` is pending, `promise` must remain pending until `x` is fulfilled or rejected. ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.2.2: If/when `x` is fulfilled, fulfill `promise` with the same value. `x` is already-fulfilled ✓ via return from a fulfilled promise ✓ via return from a rejected promise `x` is eventually-fulfilled ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.2.3: If/when `x` is rejected, reject `promise` with the same reason. `x` is already-rejected ✓ via return from a fulfilled promise ✓ via return from a rejected promise `x` is eventually-rejected ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.3: Otherwise, if `x` is an object or function, 2.3.3.1: Let `then` be `x.then` `x` is an object with null prototype ✓ via return from a fulfilled promise ✓ via return from a rejected promise `x` is an object with normal Object.prototype ✓ via return from a fulfilled promise ✓ via return from a rejected promise `x` is a function ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.3.2: If retrieving the property `x.then` results in a thrown exception `e`, reject `promise` with `e` as the reason. `e` is `undefined` ✓ via return from a fulfilled promise ✓ via return from a rejected promise `e` is `null` ✓ via return from a fulfilled promise ✓ via return from a rejected promise `e` is `false` ✓ via return from a fulfilled promise ✓ via return from a rejected promise `e` is `0` ✓ via return from a fulfilled promise ✓ via return from a rejected promise `e` is an error ✓ via return from a fulfilled promise ✓ via return from a rejected promise `e` is an error without a stack ✓ via return from a fulfilled promise ✓ via return from a rejected promise `e` is a date ✓ via return from a fulfilled promise ✓ via return from a rejected promise `e` is an object ✓ via return from a fulfilled promise ✓ via return from a rejected promise `e` is an always-pending thenable ✓ via return from a fulfilled promise ✓ via return from a rejected promise `e` is a fulfilled promise ✓ via return from a fulfilled promise ✓ via return from a rejected promise `e` is a rejected promise ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.3.3: If `then` is a function, call it with `x` as `this`, first argument `resolvePromise`, and second argument `rejectPromise` Calls with `x` as `this` and two function arguments ✓ via return from a fulfilled promise ✓ via return from a rejected promise Uses the original value of `then` ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.3.3.1: If/when `resolvePromise` is called with value `y`, run `[[Resolve]](promise, y)` `y` is not a thenable `y` is `undefined` `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is `null` `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is `false` `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is `5` `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an object `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an array `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable `y` is a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-rejected one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that immediately throws in `then` `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an object with a throwing `then` accessor `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable for a thenable `y` is a synchronously-fulfilled custom thenable for a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for an asynchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for a synchronously-fulfilled one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for a thenable that tries to fulfill twice `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for a thenable that fulfills but then throws `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for an already-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for an eventually-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for an asynchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for a synchronously-rejected one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for a thenable that immediately throws in `then` `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for an object with a throwing `then` accessor `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for an already-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled custom thenable for an eventually-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for an asynchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for a synchronously-fulfilled one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for a thenable that tries to fulfill twice `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for a thenable that fulfills but then throws `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for an already-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for an eventually-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for an asynchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for a synchronously-rejected one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for a thenable that immediately throws in `then` `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for an object with a throwing `then` accessor `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for an already-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an asynchronously-fulfilled custom thenable for an eventually-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for an asynchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for a synchronously-fulfilled one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for a thenable that tries to fulfill twice `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for a thenable that fulfills but then throws `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for an already-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for an eventually-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for an asynchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for a synchronously-rejected one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for a thenable that immediately throws in `then` `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for an object with a throwing `then` accessor `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for an already-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a synchronously-fulfilled one-time thenable for an eventually-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for an asynchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for a synchronously-fulfilled one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for a thenable that tries to fulfill twice `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for a thenable that fulfills but then throws `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for an already-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for an eventually-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for an asynchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for a synchronously-rejected one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for a thenable that immediately throws in `then` `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for an object with a throwing `then` accessor `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for an already-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that tries to fulfill twice for an eventually-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for an asynchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for a synchronously-fulfilled one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for a thenable that tries to fulfill twice `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for a thenable that fulfills but then throws `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for an already-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for an eventually-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for an asynchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for a synchronously-rejected one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for a thenable that immediately throws in `then` `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for an object with a throwing `then` accessor `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for an already-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is a thenable that fulfills but then throws for an eventually-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for an asynchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for a synchronously-fulfilled one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for a thenable that tries to fulfill twice `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for a thenable that fulfills but then throws `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for an already-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for an eventually-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for an asynchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for a synchronously-rejected one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for a thenable that immediately throws in `then` `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for an object with a throwing `then` accessor `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for an already-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an already-fulfilled promise for an eventually-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for an asynchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for a synchronously-fulfilled one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for a thenable that tries to fulfill twice `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for a thenable that fulfills but then throws `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for an already-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for an eventually-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for an asynchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for a synchronously-rejected one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for a thenable that immediately throws in `then` `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for an object with a throwing `then` accessor `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for an already-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `y` is an eventually-fulfilled promise for an eventually-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.3.3.2: If/when `rejectPromise` is called with reason `r`, reject `promise` with `r` `r` is `undefined` `then` calls `rejectPromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `rejectPromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `r` is `null` `then` calls `rejectPromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `rejectPromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `r` is `false` `then` calls `rejectPromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `rejectPromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `r` is `0` `then` calls `rejectPromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `rejectPromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `r` is an error `then` calls `rejectPromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `rejectPromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `r` is an error without a stack `then` calls `rejectPromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `rejectPromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `r` is a date `then` calls `rejectPromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `rejectPromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `r` is an object `then` calls `rejectPromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `rejectPromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `r` is an always-pending thenable `then` calls `rejectPromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `rejectPromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `r` is a fulfilled promise `then` calls `rejectPromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `rejectPromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `r` is a rejected promise `then` calls `rejectPromise` synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` calls `rejectPromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.3.3.3: If both `resolvePromise` and `rejectPromise` are called, or multiple calls to the same argument are made, the first call takes precedence, and any further calls are ignored. calling `resolvePromise` then `rejectPromise`, both synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `resolvePromise` synchronously then `rejectPromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `resolvePromise` then `rejectPromise`, both asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `resolvePromise` with an asynchronously-fulfilled promise, then calling `rejectPromise`, both synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `resolvePromise` with an asynchronously-rejected promise, then calling `rejectPromise`, both synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `rejectPromise` then `resolvePromise`, both synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `rejectPromise` synchronously then `resolvePromise` asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `rejectPromise` then `resolvePromise`, both asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `resolvePromise` twice synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `resolvePromise` twice, first synchronously then asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `resolvePromise` twice, both times asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `resolvePromise` with an asynchronously-fulfilled promise, then calling it again, both times synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `resolvePromise` with an asynchronously-rejected promise, then calling it again, both times synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `rejectPromise` twice synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `rejectPromise` twice, first synchronously then asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise calling `rejectPromise` twice, both times asynchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise saving and abusing `resolvePromise` and `rejectPromise` ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.3.3.4: If calling `then` throws an exception `e`, 2.3.3.3.4.1: If `resolvePromise` or `rejectPromise` have been called, ignore it. `resolvePromise` was called with a non-thenable ✓ via return from a fulfilled promise ✓ via return from a rejected promise `resolvePromise` was called with an asynchronously-fulfilled promise ✓ via return from a fulfilled promise ✓ via return from a rejected promise `resolvePromise` was called with an asynchronously-rejected promise ✓ via return from a fulfilled promise ✓ via return from a rejected promise `rejectPromise` was called ✓ via return from a fulfilled promise ✓ via return from a rejected promise `resolvePromise` then `rejectPromise` were called ✓ via return from a fulfilled promise ✓ via return from a rejected promise `rejectPromise` then `resolvePromise` were called ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.3.3.4.2: Otherwise, reject `promise` with `e` as the reason. straightforward case ✓ via return from a fulfilled promise ✓ via return from a rejected promise `resolvePromise` is called asynchronously before the `throw` ✓ via return from a fulfilled promise ✓ via return from a rejected promise `rejectPromise` is called asynchronously before the `throw` ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.3.4: If `then` is not a function, fulfill promise with `x` `then` is `5` ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` is an object ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` is an array containing a function ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` is a regular expression ✓ via return from a fulfilled promise ✓ via return from a rejected promise `then` is an object inheriting from `Function.prototype` ✓ via return from a fulfilled promise ✓ via return from a rejected promise 2.3.4: If `x` is not an object or function, fulfill `promise` with `x` The value is `undefined` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The value is `null` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The value is `false` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The value is `true` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The value is `0` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The value is `true` with `Boolean.prototype` modified to have a `then` method ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected The value is `1` with `Number.prototype` modified to have a `then` method ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected 872 passing (13s) + exit 0 Processing files: nodejs-core-js-2.4.1-1.fc27.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.bMLhlF + umask 022 + cd /builddir/build/BUILD + cd package + DOCDIR=/builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64/usr/share/doc/nodejs-core-js + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64/usr/share/doc/nodejs-core-js + cp -pr CHANGELOG.md /builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64/usr/share/doc/nodejs-core-js + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.vLsdew + umask 022 + cd /builddir/build/BUILD + cd package + LICENSEDIR=/builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64/usr/share/licenses/nodejs-core-js + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64/usr/share/licenses/nodejs-core-js + cp -pr LICENSE /builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64/usr/share/licenses/nodejs-core-js + exit 0 Provides: nodejs-core-js = 2.4.1-1.fc27 npm(core-js) = 2.4.1 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: nodejs(engine) Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64 Wrote: /builddir/build/RPMS/nodejs-core-js-2.4.1-1.fc27.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.hsJLSA + umask 022 + cd /builddir/build/BUILD + cd package + /usr/bin/rm -rf /builddir/build/BUILDROOT/nodejs-core-js-2.4.1-1.fc27.x86_64 + exit 0 Child return code was: 0