Diff of the two buildlogs: -- --- b1/build.log 2024-08-01 12:12:40.629000066 +0000 +++ b2/build.log 2024-08-01 12:13:42.382379756 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Aug 1 00:08:24 -12 2024 -I: pbuilder-time-stamp: 1722514104 +I: Current time: Thu Sep 4 08:35:42 +14 2025 +I: pbuilder-time-stamp: 1756924542 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bullseye-reproducible-base.tgz] I: copying local configuration @@ -17,8 +17,8 @@ I: copying [./node-lie_3.3.0+dfsg-2.debian.tar.xz] I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' -gpgv: keyblock resource '/tmp/dpkg-verify-sig.vlhJBHXf/trustedkeys.kbx': General error -gpgv: Signature made Sat Dec 26 19:14:09 2020 -12 +gpgv: keyblock resource '/tmp/dpkg-verify-sig.ntj8ia97/trustedkeys.kbx': General error +gpgv: Signature made Sun Dec 27 21:14:09 2020 +14 gpgv: using RSA key 00DFE58B8B555779D1005EC9F6D74CA7C999EEE9 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./node-lie_3.3.0+dfsg-2.dsc @@ -29,135 +29,166 @@ dpkg-source: info: applying fix-for-mocha-8.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/137111/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/4148906/tmp/hooks/D01_modify_environment starting +debug: Running on ionos15-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Sep 4 08:35 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/4148906/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/4148906/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=20 ' - DISTRIBUTION='bullseye' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="1" [2]="4" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.1.4(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=42 ' + DIRSTACK=() + DISTRIBUTION=bullseye + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='050d3e19a7f44788834fc9f2f62f3021' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='137111' - PS1='# ' - PS2='> ' + INVOCATION_ID=9ce6d96d80c14d7f9386d05219242225 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=4148906 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.TqJudbtw/pbuilderrc_asTr --distribution bullseye --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.TqJudbtw/b1 --logfile b1/build.log node-lie_3.3.0+dfsg-2.dsc' - SUDO_GID='111' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.TqJudbtw/pbuilderrc_89tl --distribution bullseye --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.TqJudbtw/b2 --logfile b2/build.log node-lie_3.3.0+dfsg-2.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos11-amd64 6.1.0-23-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.99-1 (2024-07-15) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.9.7+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.9.7-1~bpo12+1 (2024-07-03) x86_64 GNU/Linux I: ls -l /bin total 5476 - -rwxr-xr-x 1 root root 1234376 Mar 27 2022 bash - -rwxr-xr-x 3 root root 38984 Jul 20 2020 bunzip2 - -rwxr-xr-x 3 root root 38984 Jul 20 2020 bzcat - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Jul 20 2020 bzdiff - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4877 Sep 4 2019 bzexe - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Jul 20 2020 bzgrep - -rwxr-xr-x 3 root root 38984 Jul 20 2020 bzip2 - -rwxr-xr-x 1 root root 18424 Jul 20 2020 bzip2recover - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Jul 20 2020 bzmore - -rwxr-xr-x 1 root root 43936 Sep 23 2020 cat - -rwxr-xr-x 1 root root 72672 Sep 23 2020 chgrp - -rwxr-xr-x 1 root root 64448 Sep 23 2020 chmod - -rwxr-xr-x 1 root root 72672 Sep 23 2020 chown - -rwxr-xr-x 1 root root 151168 Sep 23 2020 cp - -rwxr-xr-x 1 root root 125560 Dec 10 2020 dash - -rwxr-xr-x 1 root root 113664 Sep 23 2020 date - -rwxr-xr-x 1 root root 80968 Sep 23 2020 dd - -rwxr-xr-x 1 root root 93936 Sep 23 2020 df - -rwxr-xr-x 1 root root 147176 Sep 23 2020 dir - -rwxr-xr-x 1 root root 84440 Mar 27 22:09 dmesg - lrwxrwxrwx 1 root root 8 Nov 6 2019 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Nov 6 2019 domainname -> hostname - -rwxr-xr-x 1 root root 39712 Sep 23 2020 echo - -rwxr-xr-x 1 root root 28 Jan 24 2023 egrep - -rwxr-xr-x 1 root root 39680 Sep 23 2020 false - -rwxr-xr-x 1 root root 28 Jan 24 2023 fgrep - -rwxr-xr-x 1 root root 69032 Mar 27 22:09 findmnt - -rwsr-xr-x 1 root root 34896 Feb 26 2021 fusermount - -rwxr-xr-x 1 root root 203072 Jan 24 2023 grep - -rwxr-xr-x 2 root root 2346 Apr 9 2022 gunzip - -rwxr-xr-x 1 root root 6447 Apr 9 2022 gzexe - -rwxr-xr-x 1 root root 98048 Apr 9 2022 gzip - -rwxr-xr-x 1 root root 22600 Nov 6 2019 hostname - -rwxr-xr-x 1 root root 72840 Sep 23 2020 ln - -rwxr-xr-x 1 root root 56952 Feb 7 2020 login - -rwxr-xr-x 1 root root 147176 Sep 23 2020 ls - -rwxr-xr-x 1 root root 149736 Mar 27 22:09 lsblk - -rwxr-xr-x 1 root root 85184 Sep 23 2020 mkdir - -rwxr-xr-x 1 root root 76896 Sep 23 2020 mknod - -rwxr-xr-x 1 root root 48064 Sep 23 2020 mktemp - -rwxr-xr-x 1 root root 59632 Mar 27 22:09 more - -rwsr-xr-x 1 root root 55528 Mar 27 22:09 mount - -rwxr-xr-x 1 root root 18664 Mar 27 22:09 mountpoint - -rwxr-xr-x 1 root root 147080 Sep 23 2020 mv - lrwxrwxrwx 1 root root 8 Nov 6 2019 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Dec 16 2021 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 43872 Sep 23 2020 pwd - lrwxrwxrwx 1 root root 4 Mar 27 2022 rbash -> bash - -rwxr-xr-x 1 root root 52032 Sep 23 2020 readlink - -rwxr-xr-x 1 root root 72704 Sep 23 2020 rm - -rwxr-xr-x 1 root root 52032 Sep 23 2020 rmdir - -rwxr-xr-x 1 root root 27472 Sep 27 2020 run-parts - -rwxr-xr-x 1 root root 122224 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Jul 6 21:26 sh -> dash - -rwxr-xr-x 1 root root 43808 Sep 23 2020 sleep - -rwxr-xr-x 1 root root 84928 Sep 23 2020 stty - -rwsr-xr-x 1 root root 71912 Mar 27 22:09 su - -rwxr-xr-x 1 root root 39744 Sep 23 2020 sync - -rwxr-xr-x 1 root root 531928 Jan 19 2024 tar - -rwxr-xr-x 1 root root 14456 Sep 27 2020 tempfile - -rwxr-xr-x 1 root root 101408 Sep 23 2020 touch - -rwxr-xr-x 1 root root 39680 Sep 23 2020 true - -rwxr-xr-x 1 root root 14328 Feb 26 2021 ulockmgr_server - -rwsr-xr-x 1 root root 35040 Mar 27 22:09 umount - -rwxr-xr-x 1 root root 39744 Sep 23 2020 uname - -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress - -rwxr-xr-x 1 root root 147176 Sep 23 2020 vdir - -rwxr-xr-x 1 root root 63744 Mar 27 22:09 wdctl - lrwxrwxrwx 1 root root 8 Nov 6 2019 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Apr 9 2022 zcat - -rwxr-xr-x 1 root root 1678 Apr 9 2022 zcmp - -rwxr-xr-x 1 root root 5898 Apr 9 2022 zdiff - -rwxr-xr-x 1 root root 29 Apr 9 2022 zegrep - -rwxr-xr-x 1 root root 29 Apr 9 2022 zfgrep - -rwxr-xr-x 1 root root 2081 Apr 9 2022 zforce - -rwxr-xr-x 1 root root 8049 Apr 9 2022 zgrep - -rwxr-xr-x 1 root root 2206 Apr 9 2022 zless - -rwxr-xr-x 1 root root 1842 Apr 9 2022 zmore - -rwxr-xr-x 1 root root 4577 Apr 9 2022 znew -I: user script /srv/workspace/pbuilder/137111/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 1234376 Mar 28 2022 bash + -rwxr-xr-x 3 root root 38984 Jul 21 2020 bunzip2 + -rwxr-xr-x 3 root root 38984 Jul 21 2020 bzcat + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Jul 21 2020 bzdiff + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4877 Sep 5 2019 bzexe + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Jul 21 2020 bzgrep + -rwxr-xr-x 3 root root 38984 Jul 21 2020 bzip2 + -rwxr-xr-x 1 root root 18424 Jul 21 2020 bzip2recover + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Jul 21 2020 bzmore + -rwxr-xr-x 1 root root 43936 Sep 24 2020 cat + -rwxr-xr-x 1 root root 72672 Sep 24 2020 chgrp + -rwxr-xr-x 1 root root 64448 Sep 24 2020 chmod + -rwxr-xr-x 1 root root 72672 Sep 24 2020 chown + -rwxr-xr-x 1 root root 151168 Sep 24 2020 cp + -rwxr-xr-x 1 root root 125560 Dec 11 2020 dash + -rwxr-xr-x 1 root root 113664 Sep 24 2020 date + -rwxr-xr-x 1 root root 80968 Sep 24 2020 dd + -rwxr-xr-x 1 root root 93936 Sep 24 2020 df + -rwxr-xr-x 1 root root 147176 Sep 24 2020 dir + -rwxr-xr-x 1 root root 84440 Mar 29 2024 dmesg + lrwxrwxrwx 1 root root 8 Nov 8 2019 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Nov 8 2019 domainname -> hostname + -rwxr-xr-x 1 root root 39712 Sep 24 2020 echo + -rwxr-xr-x 1 root root 28 Jan 25 2023 egrep + -rwxr-xr-x 1 root root 39680 Sep 24 2020 false + -rwxr-xr-x 1 root root 28 Jan 25 2023 fgrep + -rwxr-xr-x 1 root root 69032 Mar 29 2024 findmnt + -rwsr-xr-x 1 root root 34896 Feb 27 2021 fusermount + -rwxr-xr-x 1 root root 203072 Jan 25 2023 grep + -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip + -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe + -rwxr-xr-x 1 root root 98048 Apr 10 2022 gzip + -rwxr-xr-x 1 root root 22600 Nov 8 2019 hostname + -rwxr-xr-x 1 root root 72840 Sep 24 2020 ln + -rwxr-xr-x 1 root root 56952 Feb 8 2020 login + -rwxr-xr-x 1 root root 147176 Sep 24 2020 ls + -rwxr-xr-x 1 root root 149736 Mar 29 2024 lsblk + -rwxr-xr-x 1 root root 85184 Sep 24 2020 mkdir + -rwxr-xr-x 1 root root 76896 Sep 24 2020 mknod + -rwxr-xr-x 1 root root 48064 Sep 24 2020 mktemp + -rwxr-xr-x 1 root root 59632 Mar 29 2024 more + -rwsr-xr-x 1 root root 55528 Mar 29 2024 mount + -rwxr-xr-x 1 root root 18664 Mar 29 2024 mountpoint + -rwxr-xr-x 1 root root 147080 Sep 24 2020 mv + lrwxrwxrwx 1 root root 8 Nov 8 2019 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Dec 17 2021 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 43872 Sep 24 2020 pwd + lrwxrwxrwx 1 root root 4 Mar 28 2022 rbash -> bash + -rwxr-xr-x 1 root root 52032 Sep 24 2020 readlink + -rwxr-xr-x 1 root root 72704 Sep 24 2020 rm + -rwxr-xr-x 1 root root 52032 Sep 24 2020 rmdir + -rwxr-xr-x 1 root root 27472 Sep 28 2020 run-parts + -rwxr-xr-x 1 root root 122224 Dec 23 2018 sed + lrwxrwxrwx 1 root root 9 Sep 4 08:35 sh -> /bin/bash + -rwxr-xr-x 1 root root 43808 Sep 24 2020 sleep + -rwxr-xr-x 1 root root 84928 Sep 24 2020 stty + -rwsr-xr-x 1 root root 71912 Mar 29 2024 su + -rwxr-xr-x 1 root root 39744 Sep 24 2020 sync + -rwxr-xr-x 1 root root 531928 Jan 20 2024 tar + -rwxr-xr-x 1 root root 14456 Sep 28 2020 tempfile + -rwxr-xr-x 1 root root 101408 Sep 24 2020 touch + -rwxr-xr-x 1 root root 39680 Sep 24 2020 true + -rwxr-xr-x 1 root root 14328 Feb 27 2021 ulockmgr_server + -rwsr-xr-x 1 root root 35040 Mar 29 2024 umount + -rwxr-xr-x 1 root root 39744 Sep 24 2020 uname + -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress + -rwxr-xr-x 1 root root 147176 Sep 24 2020 vdir + -rwxr-xr-x 1 root root 63744 Mar 29 2024 wdctl + lrwxrwxrwx 1 root root 8 Nov 8 2019 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat + -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp + -rwxr-xr-x 1 root root 5898 Apr 10 2022 zdiff + -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep + -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep + -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce + -rwxr-xr-x 1 root root 8049 Apr 10 2022 zgrep + -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless + -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore + -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew +I: user script /srv/workspace/pbuilder/4148906/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -406,7 +437,7 @@ Get: 201 http://deb.debian.org/debian bullseye/main amd64 node-sinon all 9.2.4+ds+~cs58.20.26-1 [284 kB] Get: 202 http://deb.debian.org/debian bullseye/main amd64 node-underscore all 1.9.1~dfsg-3 [7888 B] Get: 203 http://deb.debian.org/debian bullseye/main amd64 pkg-js-tools all 0.9.65 [38.0 kB] -Fetched 36.1 MB in 15s (2404 kB/s) +Fetched 36.1 MB in 6s (6365 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package bsdextrautils. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19711 files and directories currently installed.) @@ -1243,7 +1274,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/node-lie-3.3.0+dfsg/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../node-lie_3.3.0+dfsg-2_source.changes +I: user script /srv/workspace/pbuilder/4148906/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for bullseye +I: user script /srv/workspace/pbuilder/4148906/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/node-lie-3.3.0+dfsg/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../node-lie_3.3.0+dfsg-2_source.changes dpkg-buildpackage: info: source package node-lie dpkg-buildpackage: info: source version 3.3.0+dfsg-2 dpkg-buildpackage: info: source distribution unstable @@ -1302,19 +1337,19 @@ ✓ should reject with a TypeError if given a non-iterable Promises/A+ Tests 2.1.2.1: When fulfilled, a promise: must not transition to any other state. - ✓ already-fulfilled (102ms) - ✓ immediately-fulfilled (102ms) - ✓ eventually-fulfilled (103ms) - ✓ trying to fulfill then immediately reject (102ms) - ✓ trying to fulfill then reject, delayed (103ms) - ✓ trying to fulfill immediately then reject delayed (103ms) + ✓ already-fulfilled (101ms) + ✓ immediately-fulfilled (101ms) + ✓ eventually-fulfilled (101ms) + ✓ trying to fulfill then immediately reject (100ms) + ✓ trying to fulfill then reject, delayed (100ms) + ✓ trying to fulfill immediately then reject delayed (101ms) 2.1.3.1: When rejected, a promise: must not transition to any other state. - ✓ already-rejected (103ms) - ✓ immediately-rejected (103ms) - ✓ eventually-rejected (103ms) - ✓ trying to reject then immediately fulfill (103ms) - ✓ trying to reject then fulfill, delayed (104ms) - ✓ trying to reject immediately then fulfill delayed (103ms) + ✓ already-rejected (101ms) + ✓ immediately-rejected (101ms) + ✓ eventually-rejected (100ms) + ✓ trying to reject then immediately fulfill (101ms) + ✓ trying to reject then fulfill, delayed (100ms) + ✓ trying to reject immediately then fulfill delayed (101ms) 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 @@ -1346,40 +1381,40 @@ 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 (51ms) + ✓ eventually-fulfilled (50ms) 2.2.2.2: it must not be called before `promise` is fulfilled ✓ fulfilled after a delay (51ms) ✓ never fulfilled (151ms) 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 (55ms) + ✓ trying to fulfill a pending promise more than once, delayed (51ms) ✓ trying to fulfill a pending promise more than once, immediately then delayed - ✓ when multiple `then` calls are made, spaced apart in time (152ms) + ✓ when multiple `then` calls are made, spaced apart in time (150ms) ✓ 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 (53ms) + ✓ eventually-rejected (50ms) 2.2.3.2: it must not be called before `promise` is rejected - ✓ rejected after a delay (51ms) - ✓ never rejected (155ms) + ✓ rejected after a delay (50ms) + ✓ never rejected (151ms) 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 (52ms) + ✓ trying to reject a pending promise more than once, delayed (51ms) ✓ trying to reject a pending promise more than once, immediately then delayed - ✓ when multiple `then` calls are made, spaced apart in time (154ms) + ✓ when multiple `then` calls are made, spaced apart in time (151ms) ✓ 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 (53ms) + ✓ eventually-fulfilled (51ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (51ms) + ✓ eventually-rejected (50ms) 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 @@ -1401,36 +1436,36 @@ multiple boring fulfillment handlers ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (55ms) + ✓ eventually-fulfilled (51ms) multiple fulfillment handlers, one of which throws ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (56ms) + ✓ eventually-fulfilled (52ms) results in multiple branching chains with their own fulfillment values ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (52ms) + ✓ eventually-fulfilled (51ms) `onFulfilled` handlers are called in the original order ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (54ms) + ✓ eventually-fulfilled (51ms) even when one handler is added inside another handler ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (68ms) + ✓ eventually-fulfilled (66ms) 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 (53ms) + ✓ eventually-rejected (51ms) multiple rejection handlers, one of which throws ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (55ms) + ✓ eventually-rejected (52ms) results in multiple branching chains with their own fulfillment values ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (54ms) + ✓ eventually-rejected (51ms) `onRejected` handlers are called in the original order ✓ already-rejected ✓ immediately-rejected @@ -1438,7 +1473,7 @@ even when one handler is added inside another handler ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (71ms) + ✓ eventually-rejected (66ms) 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)` @@ -1447,14 +1482,14 @@ The reason is `undefined` ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (53ms) + ✓ eventually-fulfilled (50ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (54ms) + ✓ eventually-rejected (50ms) The reason is `null` ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (51ms) + ✓ eventually-fulfilled (50ms) ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected (51ms) @@ -1464,46 +1499,46 @@ ✓ eventually-fulfilled (51ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (52ms) + ✓ eventually-rejected (51ms) The reason is `0` ✓ already-fulfilled ✓ immediately-fulfilled ✓ eventually-fulfilled (51ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (51ms) + ✓ eventually-rejected (50ms) The reason is an error ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (51ms) + ✓ eventually-fulfilled (50ms) ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected (51ms) The reason is an error without a stack ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (52ms) + ✓ eventually-fulfilled (51ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (54ms) + ✓ eventually-rejected (50ms) The reason is a date ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (54ms) + ✓ eventually-fulfilled (50ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (54ms) + ✓ eventually-rejected (50ms) The reason is an object ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (54ms) + ✓ eventually-fulfilled (50ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (54ms) + ✓ eventually-rejected (51ms) The reason is an always-pending thenable ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (52ms) + ✓ eventually-fulfilled (50ms) ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected (51ms) @@ -1513,11 +1548,11 @@ ✓ eventually-fulfilled (51ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (52ms) + ✓ eventually-rejected (50ms) The reason is a rejected promise ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (51ms) + ✓ eventually-fulfilled (50ms) ✓ already-rejected ✓ immediately-rejected ✓ eventually-rejected (51ms) @@ -1525,19 +1560,19 @@ `onFulfilled` is `undefined` ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (52ms) + ✓ eventually-fulfilled (50ms) `onFulfilled` is `null` ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (51ms) + ✓ eventually-fulfilled (50ms) `onFulfilled` is `false` ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (54ms) + ✓ eventually-fulfilled (51ms) `onFulfilled` is `5` ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (53ms) + ✓ eventually-fulfilled (50ms) `onFulfilled` is an object ✓ already-fulfilled ✓ immediately-fulfilled @@ -1545,12 +1580,12 @@ `onFulfilled` is an array containing a function ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (54ms) + ✓ eventually-fulfilled (50ms) 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 (52ms) + ✓ eventually-rejected (50ms) `onRejected` is `null` ✓ already-rejected ✓ immediately-rejected @@ -1558,40 +1593,40 @@ `onRejected` is `false` ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (51ms) + ✓ eventually-rejected (50ms) `onRejected` is `5` ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (51ms) + ✓ eventually-rejected (50ms) `onRejected` is an object ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (52ms) + ✓ eventually-rejected (51ms) `onRejected` is an array containing a function ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (51ms) + ✓ eventually-rejected (50ms) 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 (102ms) - ✓ via return from a rejected promise (102ms) + ✓ via return from a fulfilled promise (101ms) + ✓ via return from a rejected promise (101ms) 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 (53ms) - ✓ via return from a rejected promise (54ms) + ✓ via return from a fulfilled promise (50ms) + ✓ via return from a rejected promise (50ms) 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 (54ms) - ✓ via return from a rejected promise (55ms) + ✓ via return from a fulfilled promise (50ms) + ✓ via return from a rejected promise (50ms) 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 @@ -1733,11 +1768,11 @@ ✓ via return from a rejected promise `y` is an eventually-fulfilled promise `then` calls `resolvePromise` synchronously - ✓ via return from a fulfilled promise (54ms) + ✓ via return from a fulfilled promise (51ms) ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (59ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (51ms) `y` is a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise @@ -1782,11 +1817,11 @@ ✓ via return from a rejected promise `y` is an eventually-rejected promise `then` calls `resolvePromise` synchronously - ✓ via return from a fulfilled promise (55ms) + ✓ via return from a fulfilled promise (51ms) ✓ via return from a rejected promise (50ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (60ms) - ✓ via return from a rejected promise (57ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) `y` is a thenable for a thenable `y` is a synchronously-fulfilled custom thenable for a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously @@ -1832,11 +1867,11 @@ ✓ 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 (54ms) + ✓ via return from a fulfilled promise (51ms) ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (57ms) - ✓ via return from a rejected promise (57ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (51ms) `y` is a synchronously-fulfilled custom thenable for a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise @@ -1882,10 +1917,10 @@ `y` is a synchronously-fulfilled custom thenable for an eventually-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise (50ms) - ✓ via return from a rejected promise (52ms) + ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (57ms) - ✓ via return from a rejected promise (57ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (51ms) `y` is an asynchronously-fulfilled custom thenable for a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise @@ -1930,11 +1965,11 @@ ✓ 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 (55ms) - ✓ via return from a rejected promise (51ms) + ✓ via return from a fulfilled promise (50ms) + ✓ via return from a rejected promise (50ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (55ms) - ✓ via return from a rejected promise (60ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (51ms) `y` is an asynchronously-fulfilled custom thenable for a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise @@ -1982,8 +2017,8 @@ ✓ via return from a fulfilled promise (51ms) ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (56ms) - ✓ via return from a rejected promise (59ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) `y` is a synchronously-fulfilled one-time thenable for a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise @@ -2028,11 +2063,11 @@ ✓ 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 (50ms) + ✓ via return from a fulfilled promise (51ms) ✓ via return from a rejected promise (50ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (57ms) - ✓ via return from a rejected promise (59ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (51ms) `y` is a synchronously-fulfilled one-time thenable for a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise @@ -2077,11 +2112,11 @@ ✓ 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 (55ms) + ✓ via return from a fulfilled promise (51ms) ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (56ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (51ms) `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 @@ -2126,11 +2161,11 @@ ✓ 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 (54ms) - ✓ via return from a rejected promise (51ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (50ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (58ms) - ✓ via return from a rejected promise (59ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (51ms) `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 @@ -2175,11 +2210,11 @@ ✓ 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 (63ms) - ✓ via return from a rejected promise (51ms) + ✓ via return from a fulfilled promise (50ms) + ✓ via return from a rejected promise (50ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (59ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) `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 @@ -2224,11 +2259,11 @@ ✓ 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 (51ms) - ✓ via return from a rejected promise (52ms) + ✓ via return from a fulfilled promise (50ms) + ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (60ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) `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 @@ -2273,11 +2308,11 @@ ✓ 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 (55ms) - ✓ via return from a rejected promise (55ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (50ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (60ms) - ✓ via return from a rejected promise (59ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (52ms) `y` is an already-fulfilled promise for a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise @@ -2322,11 +2357,11 @@ ✓ 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 (55ms) - ✓ via return from a rejected promise (51ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (50ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (59ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) `y` is an already-fulfilled promise for a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise @@ -2371,109 +2406,109 @@ ✓ 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 (55ms) - ✓ via return from a rejected promise (52ms) + ✓ via return from a fulfilled promise (50ms) + ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (60ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) `y` is an eventually-fulfilled promise for a synchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously - ✓ via return from a fulfilled promise (51ms) - ✓ via return from a rejected promise (52ms) + ✓ via return from a fulfilled promise (50ms) + ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (60ms) - ✓ via return from a rejected promise (60ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) `y` is an eventually-fulfilled promise for an asynchronously-fulfilled custom thenable `then` calls `resolvePromise` synchronously - ✓ via return from a fulfilled promise (55ms) - ✓ via return from a rejected promise (56ms) - `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (64ms) - ✓ via return from a rejected promise (64ms) - `y` is an eventually-fulfilled promise for a synchronously-fulfilled one-time thenable - `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise (51ms) ✓ via return from a rejected promise (52ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (60ms) - `y` is an eventually-fulfilled promise for a thenable that tries to fulfill twice + ✓ via return from a fulfilled promise (53ms) + ✓ via return from a rejected promise (52ms) + `y` is an eventually-fulfilled promise for a synchronously-fulfilled one-time thenable `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise (50ms) - ✓ via return from a rejected promise (52ms) + ✓ via return from a rejected promise (50ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (60ms) - `y` is an eventually-fulfilled promise for a thenable that fulfills but then throws + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (51ms) + `y` is an eventually-fulfilled promise for a thenable that tries to fulfill twice `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (51ms) + `then` calls `resolvePromise` asynchronously + ✓ via return from a fulfilled promise (52ms) ✓ via return from a rejected promise (52ms) + `y` is an eventually-fulfilled promise for a thenable that fulfills but then throws + `then` calls `resolvePromise` synchronously + ✓ via return from a fulfilled promise (50ms) + ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (60ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) `y` is an eventually-fulfilled promise for an already-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise (51ms) - ✓ via return from a rejected promise (52ms) + ✓ via return from a rejected promise (50ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (60ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) `y` is an eventually-fulfilled promise for an eventually-fulfilled promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise (51ms) - ✓ via return from a rejected promise (52ms) + ✓ via return from a rejected promise (50ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (60ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) `y` is an eventually-fulfilled promise for a synchronously-rejected custom thenable `then` calls `resolvePromise` synchronously - ✓ via return from a fulfilled promise (51ms) - ✓ via return from a rejected promise (52ms) + ✓ via return from a fulfilled promise (50ms) + ✓ via return from a rejected promise (50ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (64ms) - ✓ via return from a rejected promise (62ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (51ms) `y` is an eventually-fulfilled promise for an asynchronously-rejected custom thenable `then` calls `resolvePromise` synchronously - ✓ via return from a fulfilled promise (63ms) - ✓ via return from a rejected promise (55ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (63ms) - ✓ via return from a rejected promise (59ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (53ms) `y` is an eventually-fulfilled promise for a synchronously-rejected one-time thenable `then` calls `resolvePromise` synchronously - ✓ via return from a fulfilled promise (51ms) - ✓ via return from a rejected promise (54ms) + ✓ via return from a fulfilled promise (50ms) + ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (56ms) - ✓ via return from a rejected promise (57ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) `y` is an eventually-fulfilled promise for a thenable that immediately throws in `then` `then` calls `resolvePromise` synchronously - ✓ via return from a fulfilled promise (76ms) - ✓ via return from a rejected promise (55ms) + ✓ via return from a fulfilled promise (50ms) + ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (58ms) - ✓ via return from a rejected promise (61ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (51ms) `y` is an eventually-fulfilled promise for an object with a throwing `then` accessor `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise (51ms) - ✓ via return from a rejected promise (53ms) + ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (57ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) `y` is an eventually-fulfilled promise for an already-rejected promise `then` calls `resolvePromise` synchronously - ✓ via return from a fulfilled promise (52ms) - ✓ via return from a rejected promise (55ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (56ms) - ✓ via return from a rejected promise (60ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (52ms) `y` is an eventually-fulfilled promise for an eventually-rejected promise `then` calls `resolvePromise` synchronously ✓ via return from a fulfilled promise (50ms) - ✓ via return from a rejected promise (52ms) + ✓ via return from a rejected promise (51ms) `then` calls `resolvePromise` asynchronously - ✓ via return from a fulfilled promise (59ms) - ✓ via return from a rejected promise (58ms) + ✓ via return from a fulfilled promise (52ms) + ✓ via return from a rejected promise (52ms) 2.3.3.3.2: If/when `rejectPromise` is called with reason `r`, reject `promise` with `r` `r` is `undefined` `then` calls `rejectPromise` synchronously @@ -2566,8 +2601,8 @@ ✓ via return from a fulfilled promise (51ms) ✓ via return from a rejected promise (51ms) calling `resolvePromise` with an asynchronously-rejected promise, then calling `rejectPromise`, both synchronously - ✓ via return from a fulfilled promise (52ms) - ✓ via return from a rejected promise (59ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (51ms) calling `rejectPromise` then `resolvePromise`, both synchronously ✓ via return from a fulfilled promise ✓ via return from a rejected promise @@ -2587,7 +2622,7 @@ ✓ 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 (55ms) + ✓ via return from a fulfilled promise (51ms) ✓ via return from a rejected promise (51ms) calling `resolvePromise` with an asynchronously-rejected promise, then calling it again, both times synchronously ✓ via return from a fulfilled promise (51ms) @@ -2602,19 +2637,19 @@ ✓ via return from a fulfilled promise ✓ via return from a rejected promise saving and abusing `resolvePromise` and `rejectPromise` - ✓ via return from a fulfilled promise (103ms) - ✓ via return from a rejected promise (102ms) + ✓ via return from a fulfilled promise (100ms) + ✓ via return from a rejected promise (101ms) 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 (55ms) - ✓ via return from a rejected promise (51ms) + ✓ via return from a fulfilled promise (50ms) + ✓ via return from a rejected promise (50ms) `resolvePromise` was called with an asynchronously-rejected promise - ✓ via return from a fulfilled promise (55ms) - ✓ via return from a rejected promise (51ms) + ✓ via return from a fulfilled promise (51ms) + ✓ via return from a rejected promise (50ms) `rejectPromise` was called ✓ via return from a fulfilled promise ✓ via return from a rejected promise @@ -2654,24 +2689,24 @@ The value is `undefined` ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (55ms) + ✓ eventually-fulfilled (51ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (54ms) + ✓ eventually-rejected (50ms) The value is `null` ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (52ms) + ✓ eventually-fulfilled (51ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (52ms) + ✓ eventually-rejected (50ms) The value is `false` ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (51ms) + ✓ eventually-fulfilled (50ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (52ms) + ✓ eventually-rejected (50ms) The value is `true` ✓ already-fulfilled ✓ immediately-fulfilled @@ -2685,21 +2720,21 @@ ✓ eventually-fulfilled (51ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (52ms) + ✓ eventually-rejected (50ms) The value is `true` with `Boolean.prototype` modified to have a `then` method ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (52ms) + ✓ eventually-fulfilled (50ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (52ms) + ✓ eventually-rejected (51ms) The value is `1` with `Number.prototype` modified to have a `then` method ✓ already-fulfilled ✓ immediately-fulfilled - ✓ eventually-fulfilled (52ms) + ✓ eventually-fulfilled (51ms) ✓ already-rejected ✓ immediately-rejected - ✓ eventually-rejected (54ms) + ✓ eventually-rejected (51ms) mocha promise sanity check ✓ passes with a resolved promise @@ -2718,7 +2753,7 @@ ✓ from rejected returns a pending-forever promise ✓ from resolved (103ms) - ✓ from rejected (103ms) + ✓ from rejected (101ms) returns an immediately-fulfilled promise ✓ from resolved ✓ from rejected @@ -2727,13 +2762,13 @@ ✓ from rejected returns a fulfilled-after-a-second promise ✓ from resolved (1503ms) - ✓ from rejected (1504ms) + ✓ from rejected (1501ms) returns a rejected-after-a-second promise - ✓ from resolved (1503ms) + ✓ from resolved (1502ms) ✓ from rejected (1503ms) - 915 passing (23s) + 915 passing (19s) Removing node_modules/promises-aplus-tests Removing node_modules/lie @@ -2781,12 +2816,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/4148906/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/4148906/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/137111 and its subdirectories -I: Current time: Thu Aug 1 00:12:39 -12 2024 -I: pbuilder-time-stamp: 1722514359 +I: removing directory /srv/workspace/pbuilder/4148906 and its subdirectories +I: Current time: Thu Sep 4 08:36:41 +14 2025 +I: pbuilder-time-stamp: 1756924601