Wed Aug 20 12:11:06 UTC 2025 I: starting to build golang-github-dop251-goja/forky/amd64 on jenkins on '2025-08-20 12:10' Wed Aug 20 12:11:06 UTC 2025 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/amd64_36/77200/console.log Wed Aug 20 12:11:06 UTC 2025 I: Downloading source for forky/golang-github-dop251-goja=0.0~git20250630.0.58d95d8-1 --2025-08-20 12:11:06-- http://deb.debian.org/debian/pool/main/g/golang-github-dop251-goja/golang-github-dop251-goja_0.0%7egit20250630.0.58d95d8-1.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2588 (2.5K) [text/prs.lines.tag] Saving to: ‘golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.dsc’ 0K .. 100% 326M=0s 2025-08-20 12:11:06 (326 MB/s) - ‘golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.dsc’ saved [2588/2588] Wed Aug 20 12:11:06 UTC 2025 I: golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: golang-github-dop251-goja Binary: golang-github-dop251-goja-dev Architecture: all Version: 0.0~git20250630.0.58d95d8-1 Maintainer: Debian Go Packaging Team Uploaders: Diego M. Rodriguez Homepage: https://github.com/dop251/goja Standards-Version: 4.7.2 Vcs-Browser: https://salsa.debian.org/go-team/packages/golang-github-dop251-goja Vcs-Git: https://salsa.debian.org/go-team/packages/golang-github-dop251-goja.git Testsuite: autopkgtest-pkg-go Build-Depends: debhelper-compat (= 13), dh-golang, golang-any, golang-github-dlclark-regexp2-dev, golang-github-go-sourcemap-sourcemap-dev, golang-github-google-pprof-dev, golang-github-masterminds-semver-dev, golang-golang-x-text-dev, golang-gopkg-yaml.v2-dev, tzdata Package-List: golang-github-dop251-goja-dev deb golang optional arch=all Checksums-Sha1: 62b818b74ca16708bb4832ef866e66ab2579d43b 404160 golang-github-dop251-goja_0.0~git20250630.0.58d95d8.orig.tar.gz 9db8ad395c7a715978b0db16fbdc11fab020969c 3860 golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.debian.tar.xz Checksums-Sha256: 15ed1e5dcd5004d55a2e54db86eef9bce598afeff0647a1548719d676f4e7653 404160 golang-github-dop251-goja_0.0~git20250630.0.58d95d8.orig.tar.gz 329e07ff71c6b66d4b3a00fe05ce89770b440b9eea7435d144a0ae331f78f020 3860 golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.debian.tar.xz Files: 585fa98d13fe5ea99b27caac78d441e9 404160 golang-github-dop251-goja_0.0~git20250630.0.58d95d8.orig.tar.gz 4515ff8eb93f6efbfc667701b64feef3 3860 golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.debian.tar.xz Go-Import-Path: github.com/dop251/goja -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEC77u8GTpSr6EMli0dUHPqvw16s8FAmih/lASHHNzZ2VsbUBk ZWJpYW4ub3JnAAoJEHVBz6r8NerPU28P/imQ1s725GeR3tXm4kG+SDhBhUpvXRNh NPa5QYqHSnyVCbDBkp66Zz8lk5RxGX8LFXHPAt1KGNxWViwtNHu8ZjPjPJhW12jj THLwCbgGaHrNB9kXnOcPamhMBnCXDC6FeExI64RWq9DksEqkzb+7PY5msMW9zYSV xRgRF77qNvwgaoR8c/Ue0pTum539aJDNTONTtUVV8J2erf1J0x+z4AQp+qcfzAdV xLYU+6jcvtuMkyO3e6tRMIog6ho9tKcoyVunxLSPlIB5hhvuQgYb8PvrYR+QBauO FW/7yWGK60RcqcBM77PbXiO4M731Pye6VsWkvrp+lV7WhXu5NaVUum7xEsAidsxz PQcVbP1sPSrS6zJo7cWNRnTl1zqzqQ81iYfzFWd0pleiRErDWDnKxJNpEXfcDdXs j3pKL+jSGGrWloItRgFz5TuSkVqmprK0nzVQkb9fZJNrJvh1bPpZHzjMywIWYt0D 1UPP18hOhmKTlJK7KGfy8r2fAfa3tIXcl+KaIsrM66EJnadoig8hH78DQPsOh7ts gfyuYFO8AaRyweoXWNR1PtimipDJm2LtJja9KPMuVHPjQKexJ+dPilVqgs4s5AR6 FHngSGnOEPiyaEk6WT0I8ukL+7dwZ3P7qh2f6KVZGyzrmsk4Bd1c/F5evXmn9EXZ U1Y0M/3eiCGz =RJcF -----END PGP SIGNATURE----- Wed Aug 20 12:11:06 UTC 2025 I: Checking whether the package is not for us Wed Aug 20 12:11:06 UTC 2025 I: Starting 1st build on remote node infom02-amd64.debian.net. Wed Aug 20 12:11:06 UTC 2025 I: Preparing to do remote build '1' on infom02-amd64.debian.net. Wed Aug 20 12:13:07 UTC 2025 I: Deleting $TMPDIR on infom02-amd64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Tue Sep 22 06:34:07 -12 2026 I: pbuilder-time-stamp: 1790102047 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/forky-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.dsc] I: copying [./golang-github-dop251-goja_0.0~git20250630.0.58d95d8.orig.tar.gz] I: copying [./golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.debian.tar.xz] I: Extracting source dpkg-source: warning: cannot verify inline signature for ./golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.dsc: no acceptable signature found dpkg-source: info: extracting golang-github-dop251-goja in golang-github-dop251-goja-0.0~git20250630.0.58d95d8 dpkg-source: info: unpacking golang-github-dop251-goja_0.0~git20250630.0.58d95d8.orig.tar.gz dpkg-source: info: unpacking golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/3109515/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 parallel=16 ' DISTRIBUTION='forky' HOME='/root' HOST_ARCH='amd64' IFS=' ' INVOCATION_ID='444d52eceb6b4c1fb8364f64eedd46ce' 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='3109515' PS1='# ' PS2='> ' 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.OAhwcQVz/pbuilderrc_qGkk --distribution forky --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.OAhwcQVz/b1 --logfile b1/build.log golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.dsc' SUDO_GID='109' SUDO_HOME='/var/lib/jenkins' SUDO_UID='104' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' I: uname -a Linux infom02-amd64 6.12.41+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.41-1 (2025-08-12) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin I: user script /srv/workspace/pbuilder/3109515/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: amd64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), dh-golang, golang-any, golang-github-dlclark-regexp2-dev, golang-github-go-sourcemap-sourcemap-dev, golang-github-google-pprof-dev, golang-github-masterminds-semver-dev, golang-golang-x-text-dev, golang-gopkg-yaml.v2-dev, tzdata dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19890 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-golang; however: Package dh-golang is not installed. pbuilder-satisfydepends-dummy depends on golang-any; however: Package golang-any is not installed. pbuilder-satisfydepends-dummy depends on golang-github-dlclark-regexp2-dev; however: Package golang-github-dlclark-regexp2-dev is not installed. pbuilder-satisfydepends-dummy depends on golang-github-go-sourcemap-sourcemap-dev; however: Package golang-github-go-sourcemap-sourcemap-dev is not installed. pbuilder-satisfydepends-dummy depends on golang-github-google-pprof-dev; however: Package golang-github-google-pprof-dev is not installed. pbuilder-satisfydepends-dummy depends on golang-github-masterminds-semver-dev; however: Package golang-github-masterminds-semver-dev is not installed. pbuilder-satisfydepends-dummy depends on golang-golang-x-text-dev; however: Package golang-golang-x-text-dev is not installed. pbuilder-satisfydepends-dummy depends on golang-gopkg-yaml.v2-dev; however: Package golang-gopkg-yaml.v2-dev is not installed. pbuilder-satisfydepends-dummy depends on tzdata; however: Package tzdata is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} debhelper{a} dh-autoreconf{a} dh-golang{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} golang-1.24-go{a} golang-1.24-src{a} golang-any{a} golang-github-chzyer-readline-dev{a} golang-github-dlclark-regexp2-dev{a} golang-github-go-sourcemap-sourcemap-dev{a} golang-github-google-pprof-dev{a} golang-github-ianlancetaylor-demangle-dev{a} golang-github-masterminds-semver-dev{a} golang-go{a} golang-golang-x-text-dev{a} golang-gopkg-yaml.v2-dev{a} golang-src{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libdebhelper-perl{a} libelf1t64{a} libfile-stripnondeterminism-perl{a} libmagic-mgc{a} libmagic1t64{a} libpipeline1{a} libtool{a} libuchardet0{a} libunistring5{a} libxml2-16{a} m4{a} man-db{a} po-debconf{a} sensible-utils{a} tzdata{a} The following packages are RECOMMENDED but will NOT be installed: curl libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx pkgconf wget 0 packages upgraded, 44 newly installed, 0 to remove and 0 not upgraded. Need to get 66.6 MB of archives. After unpacking 349 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian forky/main amd64 tzdata all 2025b-5 [260 kB] Get: 2 http://deb.debian.org/debian forky/main amd64 sensible-utils all 0.0.25 [25.0 kB] Get: 3 http://deb.debian.org/debian forky/main amd64 libmagic-mgc amd64 1:5.46-5 [338 kB] Get: 4 http://deb.debian.org/debian forky/main amd64 libmagic1t64 amd64 1:5.46-5 [109 kB] Get: 5 http://deb.debian.org/debian forky/main amd64 file amd64 1:5.46-5 [43.6 kB] Get: 6 http://deb.debian.org/debian forky/main amd64 gettext-base amd64 0.23.1-2+b1 [244 kB] Get: 7 http://deb.debian.org/debian forky/main amd64 libuchardet0 amd64 0.0.8-1+b2 [68.9 kB] Get: 8 http://deb.debian.org/debian forky/main amd64 groff-base amd64 1.23.0-9 [1187 kB] Get: 9 http://deb.debian.org/debian forky/main amd64 bsdextrautils amd64 2.41.1-1 [94.7 kB] Get: 10 http://deb.debian.org/debian forky/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB] Get: 11 http://deb.debian.org/debian forky/main amd64 man-db amd64 2.13.1-1 [1469 kB] Get: 12 http://deb.debian.org/debian forky/main amd64 m4 amd64 1.4.19-8 [294 kB] Get: 13 http://deb.debian.org/debian forky/main amd64 autoconf all 2.72-3.1 [494 kB] Get: 14 http://deb.debian.org/debian forky/main amd64 autotools-dev all 20240727.1 [60.2 kB] Get: 15 http://deb.debian.org/debian forky/main amd64 automake all 1:1.17-4 [862 kB] Get: 16 http://deb.debian.org/debian forky/main amd64 autopoint all 0.23.1-2 [770 kB] Get: 17 http://deb.debian.org/debian forky/main amd64 libdebhelper-perl all 13.25 [91.6 kB] Get: 18 http://deb.debian.org/debian forky/main amd64 libtool all 2.5.4-4 [539 kB] Get: 19 http://deb.debian.org/debian forky/main amd64 dh-autoreconf all 20 [17.1 kB] Get: 20 http://deb.debian.org/debian forky/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 21 http://deb.debian.org/debian forky/main amd64 libfile-stripnondeterminism-perl all 1.14.1-2 [19.7 kB] Get: 22 http://deb.debian.org/debian forky/main amd64 dh-strip-nondeterminism all 1.14.1-2 [8620 B] Get: 23 http://deb.debian.org/debian forky/main amd64 libelf1t64 amd64 0.192-4 [189 kB] Get: 24 http://deb.debian.org/debian forky/main amd64 dwz amd64 0.15-1+b1 [110 kB] Get: 25 http://deb.debian.org/debian forky/main amd64 libunistring5 amd64 1.3-2 [477 kB] Get: 26 http://deb.debian.org/debian forky/main amd64 libxml2-16 amd64 2.14.5+dfsg-0.1 [640 kB] Get: 27 http://deb.debian.org/debian forky/main amd64 gettext amd64 0.23.1-2+b1 [1680 kB] Get: 28 http://deb.debian.org/debian forky/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 29 http://deb.debian.org/debian forky/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 30 http://deb.debian.org/debian forky/main amd64 debhelper all 13.25 [937 kB] Get: 31 http://deb.debian.org/debian forky/main amd64 dh-golang all 1.63 [24.4 kB] Get: 32 http://deb.debian.org/debian forky/main amd64 golang-1.24-src all 1.24.4-1 [21.2 MB] Get: 33 http://deb.debian.org/debian forky/main amd64 golang-1.24-go amd64 1.24.4-1 [28.7 MB] Get: 34 http://deb.debian.org/debian forky/main amd64 golang-src all 2:1.24~2 [5136 B] Get: 35 http://deb.debian.org/debian forky/main amd64 golang-go amd64 2:1.24~2 [44.3 kB] Get: 36 http://deb.debian.org/debian forky/main amd64 golang-any amd64 2:1.24~2 [5216 B] Get: 37 http://deb.debian.org/debian forky/main amd64 golang-github-dlclark-regexp2-dev all 1.11.0+ds1-1 [85.2 kB] Get: 38 http://deb.debian.org/debian forky/main amd64 golang-github-go-sourcemap-sourcemap-dev all 2.1.3+git20201028.eed1c20-4 [7556 B] Get: 39 http://deb.debian.org/debian forky/main amd64 golang-github-chzyer-readline-dev all 1.4.39.g2972be2-3 [30.8 kB] Get: 40 http://deb.debian.org/debian forky/main amd64 golang-github-ianlancetaylor-demangle-dev all 0.0~git20200824.28f6c0f-2 [49.1 kB] Get: 41 http://deb.debian.org/debian forky/main amd64 golang-github-google-pprof-dev all 0.0~git20211008.947d60d-1 [977 kB] Get: 42 http://deb.debian.org/debian forky/main amd64 golang-github-masterminds-semver-dev all 3.2.0-1 [22.2 kB] Get: 43 http://deb.debian.org/debian forky/main amd64 golang-golang-x-text-dev all 0.22.0-1 [3995 kB] Get: 44 http://deb.debian.org/debian forky/main amd64 golang-gopkg-yaml.v2-dev all 2.4.0-5 [60.5 kB] Fetched 66.6 MB in 3s (19.9 MB/s) Preconfiguring packages ... Selecting previously unselected package tzdata. (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 ... 19890 files and directories currently installed.) Preparing to unpack .../00-tzdata_2025b-5_all.deb ... Unpacking tzdata (2025b-5) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../01-sensible-utils_0.0.25_all.deb ... Unpacking sensible-utils (0.0.25) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../02-libmagic-mgc_1%3a5.46-5_amd64.deb ... Unpacking libmagic-mgc (1:5.46-5) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../03-libmagic1t64_1%3a5.46-5_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.46-5) ... Selecting previously unselected package file. Preparing to unpack .../04-file_1%3a5.46-5_amd64.deb ... Unpacking file (1:5.46-5) ... Selecting previously unselected package gettext-base. Preparing to unpack .../05-gettext-base_0.23.1-2+b1_amd64.deb ... Unpacking gettext-base (0.23.1-2+b1) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../06-libuchardet0_0.0.8-1+b2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../07-groff-base_1.23.0-9_amd64.deb ... Unpacking groff-base (1.23.0-9) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../08-bsdextrautils_2.41.1-1_amd64.deb ... Unpacking bsdextrautils (2.41.1-1) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../09-libpipeline1_1.5.8-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../10-man-db_2.13.1-1_amd64.deb ... Unpacking man-db (2.13.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../11-m4_1.4.19-8_amd64.deb ... Unpacking m4 (1.4.19-8) ... Selecting previously unselected package autoconf. Preparing to unpack .../12-autoconf_2.72-3.1_all.deb ... Unpacking autoconf (2.72-3.1) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../13-autotools-dev_20240727.1_all.deb ... Unpacking autotools-dev (20240727.1) ... Selecting previously unselected package automake. Preparing to unpack .../14-automake_1%3a1.17-4_all.deb ... Unpacking automake (1:1.17-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../15-autopoint_0.23.1-2_all.deb ... Unpacking autopoint (0.23.1-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../16-libdebhelper-perl_13.25_all.deb ... Unpacking libdebhelper-perl (13.25) ... Selecting previously unselected package libtool. Preparing to unpack .../17-libtool_2.5.4-4_all.deb ... Unpacking libtool (2.5.4-4) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../18-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../19-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../20-libfile-stripnondeterminism-perl_1.14.1-2_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.1-2) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../21-dh-strip-nondeterminism_1.14.1-2_all.deb ... Unpacking dh-strip-nondeterminism (1.14.1-2) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../22-libelf1t64_0.192-4_amd64.deb ... Unpacking libelf1t64:amd64 (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../23-dwz_0.15-1+b1_amd64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libunistring5:amd64. Preparing to unpack .../24-libunistring5_1.3-2_amd64.deb ... Unpacking libunistring5:amd64 (1.3-2) ... Selecting previously unselected package libxml2-16:amd64. Preparing to unpack .../25-libxml2-16_2.14.5+dfsg-0.1_amd64.deb ... Unpacking libxml2-16:amd64 (2.14.5+dfsg-0.1) ... Selecting previously unselected package gettext. Preparing to unpack .../26-gettext_0.23.1-2+b1_amd64.deb ... Unpacking gettext (0.23.1-2+b1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../27-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../28-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../29-debhelper_13.25_all.deb ... Unpacking debhelper (13.25) ... Selecting previously unselected package dh-golang. Preparing to unpack .../30-dh-golang_1.63_all.deb ... Unpacking dh-golang (1.63) ... Selecting previously unselected package golang-1.24-src. Preparing to unpack .../31-golang-1.24-src_1.24.4-1_all.deb ... Unpacking golang-1.24-src (1.24.4-1) ... Selecting previously unselected package golang-1.24-go. Preparing to unpack .../32-golang-1.24-go_1.24.4-1_amd64.deb ... Unpacking golang-1.24-go (1.24.4-1) ... Selecting previously unselected package golang-src. Preparing to unpack .../33-golang-src_2%3a1.24~2_all.deb ... Unpacking golang-src (2:1.24~2) ... Selecting previously unselected package golang-go:amd64. Preparing to unpack .../34-golang-go_2%3a1.24~2_amd64.deb ... Unpacking golang-go:amd64 (2:1.24~2) ... Selecting previously unselected package golang-any:amd64. Preparing to unpack .../35-golang-any_2%3a1.24~2_amd64.deb ... Unpacking golang-any:amd64 (2:1.24~2) ... Selecting previously unselected package golang-github-dlclark-regexp2-dev. Preparing to unpack .../36-golang-github-dlclark-regexp2-dev_1.11.0+ds1-1_all.deb ... Unpacking golang-github-dlclark-regexp2-dev (1.11.0+ds1-1) ... Selecting previously unselected package golang-github-go-sourcemap-sourcemap-dev. Preparing to unpack .../37-golang-github-go-sourcemap-sourcemap-dev_2.1.3+git20201028.eed1c20-4_all.deb ... Unpacking golang-github-go-sourcemap-sourcemap-dev (2.1.3+git20201028.eed1c20-4) ... Selecting previously unselected package golang-github-chzyer-readline-dev. Preparing to unpack .../38-golang-github-chzyer-readline-dev_1.4.39.g2972be2-3_all.deb ... Unpacking golang-github-chzyer-readline-dev (1.4.39.g2972be2-3) ... Selecting previously unselected package golang-github-ianlancetaylor-demangle-dev. Preparing to unpack .../39-golang-github-ianlancetaylor-demangle-dev_0.0~git20200824.28f6c0f-2_all.deb ... Unpacking golang-github-ianlancetaylor-demangle-dev (0.0~git20200824.28f6c0f-2) ... Selecting previously unselected package golang-github-google-pprof-dev. Preparing to unpack .../40-golang-github-google-pprof-dev_0.0~git20211008.947d60d-1_all.deb ... Unpacking golang-github-google-pprof-dev (0.0~git20211008.947d60d-1) ... Selecting previously unselected package golang-github-masterminds-semver-dev. Preparing to unpack .../41-golang-github-masterminds-semver-dev_3.2.0-1_all.deb ... Unpacking golang-github-masterminds-semver-dev (3.2.0-1) ... Selecting previously unselected package golang-golang-x-text-dev. Preparing to unpack .../42-golang-golang-x-text-dev_0.22.0-1_all.deb ... Unpacking golang-golang-x-text-dev (0.22.0-1) ... Selecting previously unselected package golang-gopkg-yaml.v2-dev. Preparing to unpack .../43-golang-gopkg-yaml.v2-dev_2.4.0-5_all.deb ... Unpacking golang-gopkg-yaml.v2-dev (2.4.0-5) ... Setting up golang-1.24-src (1.24.4-1) ... Setting up libpipeline1:amd64 (1.5.8-1) ... Setting up golang-gopkg-yaml.v2-dev (2.4.0-5) ... Setting up golang-github-ianlancetaylor-demangle-dev (0.0~git20200824.28f6c0f-2) ... Setting up bsdextrautils (2.41.1-1) ... Setting up libmagic-mgc (1:5.46-5) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libxml2-16:amd64 (2.14.5+dfsg-0.1) ... Setting up libdebhelper-perl (13.25) ... Setting up libmagic1t64:amd64 (1:5.46-5) ... Setting up gettext-base (0.23.1-2+b1) ... Setting up m4 (1.4.19-8) ... Setting up golang-github-dlclark-regexp2-dev (1.11.0+ds1-1) ... Setting up file (1:5.46-5) ... Setting up golang-github-masterminds-semver-dev (3.2.0-1) ... Setting up libelf1t64:amd64 (0.192-4) ... Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' Local time is now: Tue Sep 22 18:35:31 UTC 2026. Universal Time is now: Tue Sep 22 18:35:31 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20240727.1) ... Setting up golang-github-go-sourcemap-sourcemap-dev (2.1.3+git20201028.eed1c20-4) ... Setting up golang-github-chzyer-readline-dev (1.4.39.g2972be2-3) ... Setting up libunistring5:amd64 (1.3-2) ... Setting up autopoint (0.23.1-2) ... Setting up golang-1.24-go (1.24.4-1) ... Setting up autoconf (2.72-3.1) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.25) ... Setting up golang-golang-x-text-dev (0.22.0-1) ... Setting up libuchardet0:amd64 (0.0.8-1+b2) ... Setting up golang-src (2:1.24~2) ... Setting up automake (1:1.17-4) ... update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.14.1-2) ... Setting up gettext (0.23.1-2+b1) ... Setting up libtool (2.5.4-4) ... Setting up golang-go:amd64 (2:1.24~2) ... Setting up golang-github-google-pprof-dev (0.0~git20211008.947d60d-1) ... Setting up golang-any:amd64 (2:1.24~2) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up dh-strip-nondeterminism (1.14.1-2) ... Setting up groff-base (1.23.0-9) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up man-db (2.13.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up debhelper (13.25) ... Setting up dh-golang (1.63) ... Processing triggers for libc-bin (2.41-12) ... Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps Reading package lists... Building dependency tree... Reading state information... fakeroot is already the newest version (1.37.1.2-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package I: Running cd /build/reproducible-path/golang-github-dop251-goja-0.0~git20250630.0.58d95d8/ && 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 > ../golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1_source.changes dpkg-buildpackage: info: source package golang-github-dop251-goja dpkg-buildpackage: info: source version 0.0~git20250630.0.58d95d8-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Stephen Gelman dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 debian/rules clean dh clean --buildsystem=golang --with=golang dh_auto_clean -O--buildsystem=golang dh_autoreconf_clean -O--buildsystem=golang dh_clean -O--buildsystem=golang debian/rules binary dh binary --buildsystem=golang --with=golang dh_update_autotools_config -O--buildsystem=golang dh_autoreconf -O--buildsystem=golang dh_auto_configure -O--buildsystem=golang dh_auto_build -O--buildsystem=golang cd obj-x86_64-linux-gnu && go install -trimpath -v -p 16 github.com/dop251/goja github.com/dop251/goja/ast github.com/dop251/goja/file github.com/dop251/goja/ftoa github.com/dop251/goja/ftoa/internal/fast github.com/dop251/goja/parser github.com/dop251/goja/token github.com/dop251/goja/unistring internal/coverage/rtcov internal/unsafeheader internal/goos internal/asan internal/byteorder internal/runtime/atomic internal/godebugs internal/msan internal/runtime/syscall internal/goarch internal/profilerecord internal/cpu sync/atomic unicode/utf8 unicode cmp internal/goexperiment math/bits encoding internal/itoa unicode/utf16 internal/runtime/math internal/runtime/sys internal/abi internal/chacha8rand internal/runtime/exithook internal/bytealg math internal/stringslite internal/race internal/sync internal/runtime/maps hash/maphash runtime internal/reflectlite iter sync maps slices internal/bisect internal/testlog errors sort io internal/oserror path strconv internal/godebug syscall github.com/go-sourcemap/sourcemap/internal/base64vlq bytes hash strings golang.org/x/text/internal/tag golang.org/x/text/unicode/rangetable hash/crc32 math/rand github.com/dop251/goja/token reflect golang.org/x/text/transform bufio regexp/syntax internal/syscall/execenv time internal/syscall/unix regexp io/fs internal/poll internal/filepathlite os internal/fmtsort encoding/binary github.com/dop251/goja/unistring encoding/base64 io/ioutil path/filepath fmt net/url github.com/dlclark/regexp2/syntax github.com/dop251/goja/ftoa/internal/fast encoding/json compress/flate go/token golang.org/x/text/internal/language math/big golang.org/x/text/unicode/norm go/scanner compress/gzip go/ast golang.org/x/text/internal/language/compact github.com/google/pprof/profile golang.org/x/text/language github.com/dlclark/regexp2 golang.org/x/text/internal golang.org/x/text/internal/colltab golang.org/x/text/cases github.com/go-sourcemap/sourcemap github.com/dop251/goja/file golang.org/x/text/collate github.com/dop251/goja/ftoa github.com/dop251/goja/ast github.com/dop251/goja/parser github.com/dop251/goja dh_auto_test -O--buildsystem=golang cd obj-x86_64-linux-gnu && go test -vet=off -v -p 16 github.com/dop251/goja github.com/dop251/goja/ast github.com/dop251/goja/file github.com/dop251/goja/ftoa github.com/dop251/goja/ftoa/internal/fast github.com/dop251/goja/parser github.com/dop251/goja/token github.com/dop251/goja/unistring === RUN TestSparseArraySetLengthWithPropItems compiler.go:433: 0: *goja.bindGlobal(&{[a thrown] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.newArray(4) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja.loadVal({3}) compiler.go:433: 8: goja._pushArrayItem({}) compiler.go:433: 9: goja.loadVal({4}) compiler.go:433: 10: goja._pushArrayItem({}) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(a) compiler.go:433: 13: goja.loadVal({100000}) compiler.go:433: 14: goja.loadVal({5}) compiler.go:433: 15: goja._setElemP({}) compiler.go:433: 16: goja.resolveVar1(thrown) compiler.go:433: 17: goja.loadVal({false}) compiler.go:433: 18: goja._initValueP({}) compiler.go:433: 19: goja.loadDynamic(Object) compiler.go:433: 20: goja.getPropCallee(defineProperty) compiler.go:433: 21: goja.loadDynamic(a) compiler.go:433: 22: goja.loadVal({2}) compiler.go:433: 23: goja._newObject({}) compiler.go:433: 24: goja.loadVal({42}) compiler.go:433: 25: goja.putProp(value) compiler.go:433: 26: goja.loadVal({false}) compiler.go:433: 27: goja.putProp(configurable) compiler.go:433: 28: goja.loadVal({false}) compiler.go:433: 29: goja.putProp(writable) compiler.go:433: 30: goja.call(3) compiler.go:433: 31: goja._pop({}) compiler.go:433: 32: goja.try({13 0}) compiler.go:433: 33: goja.loadDynamic(Object) compiler.go:433: 34: goja.getPropCallee(defineProperty) compiler.go:433: 35: goja.loadDynamic(a) compiler.go:433: 36: goja.loadVal({length}) compiler.go:433: 37: goja._newObject({}) compiler.go:433: 38: goja.loadVal({0}) compiler.go:433: 39: goja.putProp(value) compiler.go:433: 40: goja.loadVal({false}) compiler.go:433: 41: goja.putProp(writable) compiler.go:433: 42: goja.call(3) compiler.go:433: 43: goja._pop({}) compiler.go:433: 44: goja.jump(8) compiler.go:433: 45: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 46: goja.resolveVar1(thrown) compiler.go:433: 47: goja.loadStackLex(1) compiler.go:433: 48: goja.loadDynamic(TypeError) compiler.go:433: 49: goja._op_instanceof({}) compiler.go:433: 50: goja._putValueP({}) compiler.go:433: 51: *goja.leaveBlock(&{1 false}) compiler.go:433: 52: goja.leaveTry({}) compiler.go:433: 53: goja.loadDynamic(thrown) compiler.go:433: 54: goja.jne(5) compiler.go:433: 55: goja.loadDynamic(a) compiler.go:433: 56: goja.getProp(length) compiler.go:433: 57: goja.loadVal({3}) compiler.go:433: 58: goja._op_strict_eq({}) compiler.go:433: 59: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSparseArraySetLengthWithPropItems (0.00s) === RUN TestSparseArraySwitch --- PASS: TestSparseArraySwitch (0.06s) === RUN TestSparseArrayOwnKeys compiler.go:433: 0: *goja.bindGlobal(&{[a1 seen count keys] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a1) compiler.go:433: 2: goja.newArray(0) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(a1) compiler.go:433: 5: goja.loadVal({500000}) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja._setElemP({}) compiler.go:433: 8: goja.resolveVar1(seen) compiler.go:433: 9: goja.loadVal({false}) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.resolveVar1(count) compiler.go:433: 12: goja.loadVal({0}) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.resolveVar1(keys) compiler.go:433: 15: goja.loadDynamic(Object) compiler.go:433: 16: goja.getPropCallee(keys) compiler.go:433: 17: goja.loadDynamic(a1) compiler.go:433: 18: goja.call(1) compiler.go:433: 19: goja._initValueP({}) compiler.go:433: 20: goja.loadDynamic(keys) compiler.go:433: 21: goja.getProp(length) compiler.go:433: 22: goja.loadVal({1}) compiler.go:433: 23: goja._op_strict_eq({}) compiler.go:433: 24: goja.jne(6) compiler.go:433: 25: goja.loadDynamic(keys) compiler.go:433: 26: goja.loadVal({0}) compiler.go:433: 27: goja._getElem({}) compiler.go:433: 28: goja.loadVal({500000}) compiler.go:433: 29: goja._op_strict_eq({}) compiler.go:433: 30: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSparseArrayOwnKeys (0.00s) === RUN TestSparseArrayEnumerate compiler.go:433: 0: *goja.bindGlobal(&{[a1 seen count i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a1) compiler.go:433: 2: goja.newArray(0) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(a1) compiler.go:433: 5: goja.loadVal({500000}) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja._setElemP({}) compiler.go:433: 8: goja.resolveVar1(seen) compiler.go:433: 9: goja.loadVal({false}) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.resolveVar1(count) compiler.go:433: 12: goja.loadVal({0}) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.loadDynamic(a1) compiler.go:433: 15: goja._enumerate({}) compiler.go:433: 16: goja.enumNext(22) compiler.go:433: 17: goja.resolveVar1(i) compiler.go:433: 18: goja._enumGet({}) compiler.go:433: 19: goja._putValueP({}) compiler.go:433: 20: goja.loadDynamic(i) compiler.go:433: 21: goja.loadVal({500000}) compiler.go:433: 22: goja._op_strict_eq({}) compiler.go:433: 23: goja.jneP(10) compiler.go:433: 24: goja.loadDynamic(seen) compiler.go:433: 25: goja.jneP(5) compiler.go:433: 26: goja.loadDynamic(Error) compiler.go:433: 27: goja.loadVal({seen twice}) compiler.go:433: 28: goja._new(1) compiler.go:433: 29: goja._throw({}) compiler.go:433: 30: goja.resolveVar1(seen) compiler.go:433: 31: goja.loadVal({true}) compiler.go:433: 32: goja._putValueP({}) compiler.go:433: 33: goja.resolveVar1(count) compiler.go:433: 34: goja._getValue({}) compiler.go:433: 35: goja._inc({}) compiler.go:433: 36: goja._putValueP({}) compiler.go:433: 37: goja.jump(-21) compiler.go:433: 38: goja._enumPop({}) compiler.go:433: 39: goja.jump(2) compiler.go:433: 40: goja._enumPopClose({}) compiler.go:433: 41: goja.loadDynamic(seen) compiler.go:433: 42: goja.jne(4) compiler.go:433: 43: goja.loadDynamic(count) compiler.go:433: 44: goja.loadVal({1}) compiler.go:433: 45: goja._op_strict_eq({}) compiler.go:433: 46: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSparseArrayEnumerate (0.00s) === RUN TestArraySparseMaxLength compiler.go:433: 0: *goja.bindGlobal(&{[a] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.newArray(0) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(a) compiler.go:433: 5: goja.loadVal({4294967294}) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja._setElemP({}) compiler.go:433: 8: goja.loadDynamic(a) compiler.go:433: 9: goja.getProp(length) compiler.go:433: 10: goja.loadVal({4294967295}) compiler.go:433: 11: goja._op_strict_eq({}) compiler.go:433: 12: goja.jne(6) compiler.go:433: 13: goja.loadDynamic(a) compiler.go:433: 14: goja.loadVal({4294967294}) compiler.go:433: 15: goja._getElem({}) compiler.go:433: 16: goja.loadVal({1}) compiler.go:433: 17: goja._op_strict_eq({}) compiler.go:433: 18: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArraySparseMaxLength (0.00s) === RUN TestArraySparseExportProps --- PASS: TestArraySparseExportProps (0.00s) === RUN TestSparseArrayExportToSlice --- PASS: TestSparseArrayExportToSlice (0.00s) === RUN TestArray1 --- PASS: TestArray1 (0.00s) === RUN TestArrayExportProps --- PASS: TestArrayExportProps (0.00s) === RUN TestArrayCanonicalIndex compiler.go:433: 0: *goja.bindGlobal(&{[a] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.newArray(0) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(a) compiler.go:433: 5: goja.loadVal({1}) compiler.go:433: 6: goja.setPropP(00) compiler.go:433: 7: goja.loadDynamic(a) compiler.go:433: 8: goja.loadVal({2}) compiler.go:433: 9: goja.setPropP(01) compiler.go:433: 10: goja._clearResult({}) compiler.go:433: 11: goja.loadDynamic(a) compiler.go:433: 12: goja.loadVal({0}) compiler.go:433: 13: goja._getElem({}) compiler.go:433: 14: goja.loadDynamic(undefined) compiler.go:433: 15: goja._op_strict_neq({}) compiler.go:433: 16: goja.jneP(6) compiler.go:433: 17: goja.loadDynamic(Error) compiler.go:433: 18: goja.loadVal({a[0]}) compiler.go:433: 19: goja._new(1) compiler.go:433: 20: goja._throw({}) compiler.go:433: 21: goja.jump(2) compiler.go:433: 22: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayCanonicalIndex (0.00s) === RUN TestArrayProtoProp compiler.go:433: 0: *goja.bindGlobal(&{[a] [] [] [] false}) compiler.go:433: 1: goja.loadDynamic(Object) compiler.go:433: 2: goja.getPropCallee(defineProperty) compiler.go:433: 3: goja.loadDynamic(Array) compiler.go:433: 4: goja.getProp(prototype) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja._newObject({}) compiler.go:433: 7: goja.loadVal({42}) compiler.go:433: 8: goja.putProp(value) compiler.go:433: 9: goja.loadVal({true}) compiler.go:433: 10: goja.putProp(configurable) compiler.go:433: 11: goja.loadVal({false}) compiler.go:433: 12: goja.putProp(writable) compiler.go:433: 13: goja.call(3) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja.resolveVar1(a) compiler.go:433: 16: goja.newArray(0) compiler.go:433: 17: goja._initValueP({}) compiler.go:433: 18: goja.loadDynamic(a) compiler.go:433: 19: goja.loadVal({0}) compiler.go:433: 20: goja.loadVal({1}) compiler.go:433: 21: goja._setElemP({}) compiler.go:433: 22: goja.loadDynamic(a) compiler.go:433: 23: goja.loadVal({0}) compiler.go:433: 24: goja._getElem({}) compiler.go:433: 25: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayProtoProp (0.00s) === RUN TestArrayDelete compiler.go:433: 0: *goja.bindGlobal(&{[a deleted undef len] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.newArray(2) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.resolveVar1(deleted) compiler.go:433: 9: goja.loadDynamic(a) compiler.go:433: 10: goja.loadVal({0}) compiler.go:433: 11: goja._deleteElem({}) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.resolveVar1(undef) compiler.go:433: 14: goja.loadDynamic(a) compiler.go:433: 15: goja.loadVal({0}) compiler.go:433: 16: goja._getElem({}) compiler.go:433: 17: goja.loadDynamic(undefined) compiler.go:433: 18: goja._op_strict_eq({}) compiler.go:433: 19: goja._initValueP({}) compiler.go:433: 20: goja.resolveVar1(len) compiler.go:433: 21: goja.loadDynamic(a) compiler.go:433: 22: goja.getProp(length) compiler.go:433: 23: goja._initValueP({}) compiler.go:433: 24: goja.loadDynamic(deleted) compiler.go:433: 25: goja.jne(2) compiler.go:433: 26: goja.loadDynamic(undef) compiler.go:433: 27: goja.jne(4) compiler.go:433: 28: goja.loadDynamic(len) compiler.go:433: 29: goja.loadVal({2}) compiler.go:433: 30: goja._op_strict_eq({}) compiler.go:433: 31: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayDelete (0.00s) === RUN TestArrayDeleteNonexisting compiler.go:433: 0: *goja.bindGlobal(&{[a] [] [] [] false}) compiler.go:433: 1: goja.loadDynamic(Array) compiler.go:433: 2: goja.getProp(prototype) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja.loadVal({42}) compiler.go:433: 5: goja._setElemP({}) compiler.go:433: 6: goja.resolveVar1(a) compiler.go:433: 7: goja.newArray(0) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja.loadDynamic(a) compiler.go:433: 10: goja.loadVal({0}) compiler.go:433: 11: goja._deleteElem({}) compiler.go:433: 12: goja.jne(6) compiler.go:433: 13: goja.loadDynamic(a) compiler.go:433: 14: goja.loadVal({0}) compiler.go:433: 15: goja._getElem({}) compiler.go:433: 16: goja.loadVal({42}) compiler.go:433: 17: goja._op_strict_eq({}) compiler.go:433: 18: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayDeleteNonexisting (0.00s) === RUN TestArraySetLength compiler.go:433: 0: *goja.bindGlobal(&{[a assert0 assert1 assert2] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.newArray(2) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.resolveVar1(assert0) compiler.go:433: 9: goja.loadDynamic(a) compiler.go:433: 10: goja.getProp(length) compiler.go:433: 11: goja.loadVal({2}) compiler.go:433: 12: goja._op_eq({}) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.loadDynamic(a) compiler.go:433: 15: goja.loadVal({1}) compiler.go:433: 16: goja.setPropP(length) compiler.go:433: 17: goja.loadDynamic(a) compiler.go:433: 18: goja.loadVal({1}) compiler.go:433: 19: goja.setPropP(length) compiler.go:433: 20: goja.loadDynamic(a) compiler.go:433: 21: goja.loadVal({1}) compiler.go:433: 22: goja.setPropP(length) compiler.go:433: 23: goja.resolveVar1(assert1) compiler.go:433: 24: goja.loadDynamic(a) compiler.go:433: 25: goja.getProp(length) compiler.go:433: 26: goja.loadVal({1}) compiler.go:433: 27: goja._op_eq({}) compiler.go:433: 28: goja._initValueP({}) compiler.go:433: 29: goja.loadDynamic(a) compiler.go:433: 30: goja.loadVal({2}) compiler.go:433: 31: goja.setPropP(length) compiler.go:433: 32: goja.resolveVar1(assert2) compiler.go:433: 33: goja.loadDynamic(a) compiler.go:433: 34: goja.getProp(length) compiler.go:433: 35: goja.loadVal({2}) compiler.go:433: 36: goja._op_eq({}) compiler.go:433: 37: goja._initValueP({}) compiler.go:433: 38: goja.loadDynamic(assert0) compiler.go:433: 39: goja.jne(2) compiler.go:433: 40: goja.loadDynamic(assert1) compiler.go:433: 41: goja.jne(2) compiler.go:433: 42: goja.loadDynamic(assert2) compiler.go:433: 43: goja.jne(6) compiler.go:433: 44: goja.loadDynamic(a) compiler.go:433: 45: goja.loadVal({1}) compiler.go:433: 46: goja._getElem({}) compiler.go:433: 47: goja.loadDynamic(undefined) compiler.go:433: 48: goja._op_strict_eq({}) compiler.go:433: 49: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArraySetLength (0.00s) === RUN TestArrayReverseNonOptimisable compiler.go:433: 0: *goja.bindGlobal(&{[a] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.newArray(0) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(Object) compiler.go:433: 5: goja.getPropCallee(defineProperty) compiler.go:433: 6: goja.loadDynamic(a) compiler.go:433: 7: goja.loadVal({0}) compiler.go:433: 8: goja._newObject({}) compiler.go:433: 9: *goja.newFunc(&{0xc000021810 get function() {return 42} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({42}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 10: goja.putProp(get) compiler.go:433: 11: *goja.newFunc(&{0xc000021860 set function(v) {Object.defineProperty(a, "0", {value: v + 1, writable: true, configurable: true})} 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadDynamic(Object) compiler.go:433: > 2: goja.getPropCallee(defineProperty) compiler.go:433: > 3: goja.loadDynamic(a) compiler.go:433: > 4: goja.loadVal({0}) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadStackLex(-1) compiler.go:433: > 7: goja.loadVal({1}) compiler.go:433: > 8: goja._add({}) compiler.go:433: > 9: goja.putProp(value) compiler.go:433: > 10: goja.loadVal({true}) compiler.go:433: > 11: goja.putProp(writable) compiler.go:433: > 12: goja.loadVal({true}) compiler.go:433: > 13: goja.putProp(configurable) compiler.go:433: > 14: goja.call(3) compiler.go:433: > 15: goja._pop({}) compiler.go:433: > 16: goja._loadUndef({}) compiler.go:433: > 17: goja._ret({}) compiler.go:433: 12: goja.putProp(set) compiler.go:433: 13: goja.loadVal({true}) compiler.go:433: 14: goja.putProp(configurable) compiler.go:433: 15: goja.call(3) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadDynamic(a) compiler.go:433: 18: goja.loadVal({1}) compiler.go:433: 19: goja.loadVal({43}) compiler.go:433: 20: goja._setElemP({}) compiler.go:433: 21: goja.loadDynamic(a) compiler.go:433: 22: goja.getPropCallee(reverse) compiler.go:433: 23: goja.call(0) compiler.go:433: 24: goja._pop({}) compiler.go:433: 25: goja.loadDynamic(a) compiler.go:433: 26: goja.getProp(length) compiler.go:433: 27: goja.loadVal({2}) compiler.go:433: 28: goja._op_strict_eq({}) compiler.go:433: 29: goja.jne(6) compiler.go:433: 30: goja.loadDynamic(a) compiler.go:433: 31: goja.loadVal({0}) compiler.go:433: 32: goja._getElem({}) compiler.go:433: 33: goja.loadVal({44}) compiler.go:433: 34: goja._op_strict_eq({}) compiler.go:433: 35: goja.jne(6) compiler.go:433: 36: goja.loadDynamic(a) compiler.go:433: 37: goja.loadVal({1}) compiler.go:433: 38: goja._getElem({}) compiler.go:433: 39: goja.loadVal({42}) compiler.go:433: 40: goja._op_strict_eq({}) compiler.go:433: 41: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayReverseNonOptimisable (0.00s) === RUN TestArrayPushNonOptimisable compiler.go:433: 0: *goja.bindGlobal(&{[a thrown] [] [] [] false}) compiler.go:433: 1: goja.loadDynamic(Object) compiler.go:433: 2: goja.getPropCallee(defineProperty) compiler.go:433: 3: goja.loadDynamic(Object) compiler.go:433: 4: goja.getProp(prototype) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja._newObject({}) compiler.go:433: 7: goja.loadVal({42}) compiler.go:433: 8: goja.putProp(value) compiler.go:433: 9: goja.call(3) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.resolveVar1(a) compiler.go:433: 12: goja.newArray(0) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.resolveVar1(thrown) compiler.go:433: 15: goja.loadVal({false}) compiler.go:433: 16: goja._initValueP({}) compiler.go:433: 17: goja.try({7 0}) compiler.go:433: 18: goja.loadDynamic(a) compiler.go:433: 19: goja.getPropCallee(push) compiler.go:433: 20: goja.loadVal({1}) compiler.go:433: 21: goja.call(1) compiler.go:433: 22: goja._pop({}) compiler.go:433: 23: goja.jump(8) compiler.go:433: 24: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 25: goja.resolveVar1(thrown) compiler.go:433: 26: goja.loadStackLex(1) compiler.go:433: 27: goja.loadDynamic(TypeError) compiler.go:433: 28: goja._op_instanceof({}) compiler.go:433: 29: goja._putValueP({}) compiler.go:433: 30: *goja.leaveBlock(&{1 false}) compiler.go:433: 31: goja.leaveTry({}) compiler.go:433: 32: goja.loadDynamic(thrown) compiler.go:433: 33: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayPushNonOptimisable (0.00s) === RUN TestArraySetLengthWithPropItems compiler.go:433: 0: *goja.bindGlobal(&{[a thrown] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.newArray(4) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja.loadVal({3}) compiler.go:433: 8: goja._pushArrayItem({}) compiler.go:433: 9: goja.loadVal({4}) compiler.go:433: 10: goja._pushArrayItem({}) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.resolveVar1(thrown) compiler.go:433: 13: goja.loadVal({false}) compiler.go:433: 14: goja._initValueP({}) compiler.go:433: 15: goja.loadDynamic(Object) compiler.go:433: 16: goja.getPropCallee(defineProperty) compiler.go:433: 17: goja.loadDynamic(a) compiler.go:433: 18: goja.loadVal({2}) compiler.go:433: 19: goja._newObject({}) compiler.go:433: 20: goja.loadVal({42}) compiler.go:433: 21: goja.putProp(value) compiler.go:433: 22: goja.loadVal({false}) compiler.go:433: 23: goja.putProp(configurable) compiler.go:433: 24: goja.loadVal({false}) compiler.go:433: 25: goja.putProp(writable) compiler.go:433: 26: goja.call(3) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja.try({13 0}) compiler.go:433: 29: goja.loadDynamic(Object) compiler.go:433: 30: goja.getPropCallee(defineProperty) compiler.go:433: 31: goja.loadDynamic(a) compiler.go:433: 32: goja.loadVal({length}) compiler.go:433: 33: goja._newObject({}) compiler.go:433: 34: goja.loadVal({0}) compiler.go:433: 35: goja.putProp(value) compiler.go:433: 36: goja.loadVal({false}) compiler.go:433: 37: goja.putProp(writable) compiler.go:433: 38: goja.call(3) compiler.go:433: 39: goja._pop({}) compiler.go:433: 40: goja.jump(8) compiler.go:433: 41: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 42: goja.resolveVar1(thrown) compiler.go:433: 43: goja.loadStackLex(1) compiler.go:433: 44: goja.loadDynamic(TypeError) compiler.go:433: 45: goja._op_instanceof({}) compiler.go:433: 46: goja._putValueP({}) compiler.go:433: 47: *goja.leaveBlock(&{1 false}) compiler.go:433: 48: goja.leaveTry({}) compiler.go:433: 49: goja.loadDynamic(thrown) compiler.go:433: 50: goja.jne(5) compiler.go:433: 51: goja.loadDynamic(a) compiler.go:433: 52: goja.getProp(length) compiler.go:433: 53: goja.loadVal({3}) compiler.go:433: 54: goja._op_strict_eq({}) compiler.go:433: 55: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArraySetLengthWithPropItems (0.00s) === RUN TestArrayFrom compiler.go:433: 0: *goja.newFunc(&{0xc00037ebe0 checkDestHoles function checkDestHoles(dest, prefix) { assert(dest !== source, prefix + ": dest !== source"); assert.sameValue(dest.length, 3, prefix + ": dest.length"); assert.sameValue(dest[0], 1, prefix + ": [0]"); assert.sameValue(dest[1], undefined, prefix + ": [1]"); assert(dest.hasOwnProperty("1"), prefix + ': hasOwnProperty("1")'); assert.sameValue(dest[2], 3, prefix + ": [2]"); } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadDynamicCallee(assert) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja.loadDynamic(source) compiler.go:433: > 4: goja._op_strict_neq({}) compiler.go:433: > 5: goja.loadStackLex(-2) compiler.go:433: > 6: goja.loadVal({: dest !== source}) compiler.go:433: > 7: goja._add({}) compiler.go:433: > 8: goja.call(2) compiler.go:433: > 9: goja._pop({}) compiler.go:433: > 10: goja.loadDynamic(assert) compiler.go:433: > 11: goja.getPropCallee(sameValue) compiler.go:433: > 12: goja.loadStackLex(-1) compiler.go:433: > 13: goja.getProp(length) compiler.go:433: > 14: goja.loadVal({3}) compiler.go:433: > 15: goja.loadStackLex(-2) compiler.go:433: > 16: goja.loadVal({: dest.length}) compiler.go:433: > 17: goja._add({}) compiler.go:433: > 18: goja.call(3) compiler.go:433: > 19: goja._pop({}) compiler.go:433: > 20: goja.loadDynamic(assert) compiler.go:433: > 21: goja.getPropCallee(sameValue) compiler.go:433: > 22: goja.loadStackLex(-1) compiler.go:433: > 23: goja.loadVal({0}) compiler.go:433: > 24: goja._getElem({}) compiler.go:433: > 25: goja.loadVal({1}) compiler.go:433: > 26: goja.loadStackLex(-2) compiler.go:433: > 27: goja.loadVal({: [0]}) compiler.go:433: > 28: goja._add({}) compiler.go:433: > 29: goja.call(3) compiler.go:433: > 30: goja._pop({}) compiler.go:433: > 31: goja.loadDynamic(assert) compiler.go:433: > 32: goja.getPropCallee(sameValue) compiler.go:433: > 33: goja.loadStackLex(-1) compiler.go:433: > 34: goja.loadVal({1}) compiler.go:433: > 35: goja._getElem({}) compiler.go:433: > 36: goja.loadDynamic(undefined) compiler.go:433: > 37: goja.loadStackLex(-2) compiler.go:433: > 38: goja.loadVal({: [1]}) compiler.go:433: > 39: goja._add({}) compiler.go:433: > 40: goja.call(3) compiler.go:433: > 41: goja._pop({}) compiler.go:433: > 42: goja.loadDynamicCallee(assert) compiler.go:433: > 43: goja.loadStackLex(-1) compiler.go:433: > 44: goja.getPropCallee(hasOwnProperty) compiler.go:433: > 45: goja.loadVal({1}) compiler.go:433: > 46: goja.call(1) compiler.go:433: > 47: goja.loadStackLex(-2) compiler.go:433: > 48: goja.loadVal({: hasOwnProperty("1")}) compiler.go:433: > 49: goja._add({}) compiler.go:433: > 50: goja.call(2) compiler.go:433: > 51: goja._pop({}) compiler.go:433: > 52: goja.loadDynamic(assert) compiler.go:433: > 53: goja.getPropCallee(sameValue) compiler.go:433: > 54: goja.loadStackLex(-1) compiler.go:433: > 55: goja.loadVal({2}) compiler.go:433: > 56: goja._getElem({}) compiler.go:433: > 57: goja.loadVal({3}) compiler.go:433: > 58: goja.loadStackLex(-2) compiler.go:433: > 59: goja.loadVal({: [2]}) compiler.go:433: > 60: goja._add({}) compiler.go:433: > 61: goja.call(3) compiler.go:433: > 62: goja._pop({}) compiler.go:433: > 63: goja._loadUndef({}) compiler.go:433: > 64: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc00037ec30 checkDest function checkDest(dest, prefix) { assert(dest !== source, prefix + ": dest !== source"); assert.sameValue(dest.length, 3, prefix + ": dest.length"); assert.sameValue(dest[0], 1, prefix + ": [0]"); assert.sameValue(dest[1], 2, prefix + ": [1]"); assert.sameValue(dest[2], 3, prefix + ": [2]"); } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadDynamicCallee(assert) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja.loadDynamic(source) compiler.go:433: > 4: goja._op_strict_neq({}) compiler.go:433: > 5: goja.loadStackLex(-2) compiler.go:433: > 6: goja.loadVal({: dest !== source}) compiler.go:433: > 7: goja._add({}) compiler.go:433: > 8: goja.call(2) compiler.go:433: > 9: goja._pop({}) compiler.go:433: > 10: goja.loadDynamic(assert) compiler.go:433: > 11: goja.getPropCallee(sameValue) compiler.go:433: > 12: goja.loadStackLex(-1) compiler.go:433: > 13: goja.getProp(length) compiler.go:433: > 14: goja.loadVal({3}) compiler.go:433: > 15: goja.loadStackLex(-2) compiler.go:433: > 16: goja.loadVal({: dest.length}) compiler.go:433: > 17: goja._add({}) compiler.go:433: > 18: goja.call(3) compiler.go:433: > 19: goja._pop({}) compiler.go:433: > 20: goja.loadDynamic(assert) compiler.go:433: > 21: goja.getPropCallee(sameValue) compiler.go:433: > 22: goja.loadStackLex(-1) compiler.go:433: > 23: goja.loadVal({0}) compiler.go:433: > 24: goja._getElem({}) compiler.go:433: > 25: goja.loadVal({1}) compiler.go:433: > 26: goja.loadStackLex(-2) compiler.go:433: > 27: goja.loadVal({: [0]}) compiler.go:433: > 28: goja._add({}) compiler.go:433: > 29: goja.call(3) compiler.go:433: > 30: goja._pop({}) compiler.go:433: > 31: goja.loadDynamic(assert) compiler.go:433: > 32: goja.getPropCallee(sameValue) compiler.go:433: > 33: goja.loadStackLex(-1) compiler.go:433: > 34: goja.loadVal({1}) compiler.go:433: > 35: goja._getElem({}) compiler.go:433: > 36: goja.loadVal({2}) compiler.go:433: > 37: goja.loadStackLex(-2) compiler.go:433: > 38: goja.loadVal({: [1]}) compiler.go:433: > 39: goja._add({}) compiler.go:433: > 40: goja.call(3) compiler.go:433: > 41: goja._pop({}) compiler.go:433: > 42: goja.loadDynamic(assert) compiler.go:433: > 43: goja.getPropCallee(sameValue) compiler.go:433: > 44: goja.loadStackLex(-1) compiler.go:433: > 45: goja.loadVal({2}) compiler.go:433: > 46: goja._getElem({}) compiler.go:433: > 47: goja.loadVal({3}) compiler.go:433: > 48: goja.loadStackLex(-2) compiler.go:433: > 49: goja.loadVal({: [2]}) compiler.go:433: > 50: goja._add({}) compiler.go:433: > 51: goja.call(3) compiler.go:433: > 52: goja._pop({}) compiler.go:433: > 53: goja._loadUndef({}) compiler.go:433: > 54: goja._ret({}) compiler.go:433: 2: *goja.newFunc(&{0xc00037ec80 Iter function Iter() { this.idx = 0; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.loadVal({0}) compiler.go:433: > 4: goja.setPropP(idx) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 3: *goja.newFunc(&{0xc00037ecd0 A function A() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 4: *goja.newFunc(&{0xc00037ed20 T2 function T2() { Object.defineProperty(this, 0, { configurable: false, writable: true, enumerable: true }); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadDynamic(Object) compiler.go:433: > 3: goja.getPropCallee(defineProperty) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: goja.loadVal({0}) compiler.go:433: > 6: goja._newObject({}) compiler.go:433: > 7: goja.loadVal({false}) compiler.go:433: > 8: goja.putProp(configurable) compiler.go:433: > 9: goja.loadVal({true}) compiler.go:433: > 10: goja.putProp(writable) compiler.go:433: > 11: goja.loadVal({true}) compiler.go:433: > 12: goja.putProp(enumerable) compiler.go:433: > 13: goja.call(3) compiler.go:433: > 14: goja._pop({}) compiler.go:433: > 15: goja._loadUndef({}) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 5: *goja.bindGlobal(&{[source srcHoles src] [checkDestHoles checkDest Iter A T2] [] [] false}) compiler.go:433: 6: goja.resolveVar1(source) compiler.go:433: 7: goja.newArray(3) compiler.go:433: 8: goja.loadVal({1}) compiler.go:433: 9: goja._pushArrayItem({}) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja._pushArrayItem({}) compiler.go:433: 12: goja.loadVal({3}) compiler.go:433: 13: goja._pushArrayItem({}) compiler.go:433: 14: goja._initValueP({}) compiler.go:433: 15: goja.resolveVar1(srcHoles) compiler.go:433: 16: goja.newArray(3) compiler.go:433: 17: goja.loadVal({1}) compiler.go:433: 18: goja._pushArrayItem({}) compiler.go:433: 19: goja._loadNil({}) compiler.go:433: 20: goja._pushArrayItem({}) compiler.go:433: 21: goja.loadVal({3}) compiler.go:433: 22: goja._pushArrayItem({}) compiler.go:433: 23: goja._initValueP({}) compiler.go:433: 24: goja.loadDynamicCallee(checkDest) compiler.go:433: 25: goja.loadDynamic(Array) compiler.go:433: 26: goja.getPropCallee(from) compiler.go:433: 27: goja.loadDynamic(source) compiler.go:433: 28: goja.call(1) compiler.go:433: 29: goja.loadVal({std source/std dest}) compiler.go:433: 30: goja.call(2) compiler.go:433: 31: goja._pop({}) compiler.go:433: 32: goja.loadDynamicCallee(checkDestHoles) compiler.go:433: 33: goja.loadDynamic(Array) compiler.go:433: 34: goja.getPropCallee(from) compiler.go:433: 35: goja.loadDynamic(srcHoles) compiler.go:433: 36: goja.call(1) compiler.go:433: 37: goja.loadVal({std source (holes)/std dest}) compiler.go:433: 38: goja.call(2) compiler.go:433: 39: goja._pop({}) compiler.go:433: 40: goja.loadDynamic(Iter) compiler.go:433: 41: goja.getProp(prototype) compiler.go:433: 42: *goja.newFunc(&{0xc00037ed70 function() { if (this.idx < source.length) { return {value: source[this.idx++]}; } else { return {done: true}; } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.getProp(idx) compiler.go:433: > 4: goja.loadDynamic(source) compiler.go:433: > 5: goja.getProp(length) compiler.go:433: > 6: goja._op_lt({}) compiler.go:433: > 7: goja.jneP(15) compiler.go:433: > 8: goja._newObject({}) compiler.go:433: > 9: goja.loadDynamic(source) compiler.go:433: > 10: goja._loadUndef({}) compiler.go:433: > 11: goja.loadStack(0) compiler.go:433: > 12: goja._dup({}) compiler.go:433: > 13: goja.getProp(idx) compiler.go:433: > 14: goja._toNumber({}) compiler.go:433: > 15: goja.rdupN(2) compiler.go:433: > 16: goja._inc({}) compiler.go:433: > 17: goja.setPropP(idx) compiler.go:433: > 18: goja._getElem({}) compiler.go:433: > 19: goja.putProp(value) compiler.go:433: > 20: goja._ret({}) compiler.go:433: > 21: goja.jump(5) compiler.go:433: > 22: goja._newObject({}) compiler.go:433: > 23: goja.loadVal({true}) compiler.go:433: > 24: goja.putProp(done) compiler.go:433: > 25: goja._ret({}) compiler.go:433: > 26: goja._loadUndef({}) compiler.go:433: > 27: goja._ret({}) compiler.go:433: 43: goja.setPropP(next) compiler.go:433: 44: goja.resolveVar1(src) compiler.go:433: 45: goja._newObject({}) compiler.go:433: 46: goja._initValueP({}) compiler.go:433: 47: goja.loadDynamic(src) compiler.go:433: 48: goja.loadDynamic(Symbol) compiler.go:433: 49: goja.getProp(iterator) compiler.go:433: 50: *goja.newFunc(&{0xc00037edc0 function() { return new Iter(); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Iter) compiler.go:433: > 2: goja._new(0) compiler.go:433: > 3: goja._ret({}) compiler.go:433: 51: goja._setElemP({}) compiler.go:433: 52: goja.loadDynamicCallee(checkDest) compiler.go:433: 53: goja.loadDynamic(Array) compiler.go:433: 54: goja.getPropCallee(from) compiler.go:433: 55: goja.loadDynamic(src) compiler.go:433: 56: goja.call(1) compiler.go:433: 57: goja.loadVal({iter src/std dest}) compiler.go:433: 58: goja.call(2) compiler.go:433: 59: goja._pop({}) compiler.go:433: 60: goja.resolveVar1(src) compiler.go:433: 61: goja._newObject({}) compiler.go:433: 62: goja.loadVal({1}) compiler.go:433: 63: goja.putProp(0) compiler.go:433: 64: goja.loadVal({3}) compiler.go:433: 65: goja.putProp(2) compiler.go:433: 66: goja.loadVal({3}) compiler.go:433: 67: goja.putProp(length) compiler.go:433: 68: goja._putValueP({}) compiler.go:433: 69: goja.loadDynamicCallee(checkDestHoles) compiler.go:433: 70: goja.loadDynamic(Array) compiler.go:433: 71: goja.getPropCallee(from) compiler.go:433: 72: goja.loadDynamic(src) compiler.go:433: 73: goja.call(1) compiler.go:433: 74: goja.loadVal({arrayLike src/std dest}) compiler.go:433: 75: goja.call(2) compiler.go:433: 76: goja._pop({}) compiler.go:433: 77: goja.loadDynamic(A) compiler.go:433: 78: goja.loadDynamic(Array) compiler.go:433: 79: goja.getProp(from) compiler.go:433: 80: goja.setPropP(from) compiler.go:433: 81: goja.loadDynamicCallee(checkDest) compiler.go:433: 82: goja.loadDynamic(A) compiler.go:433: 83: goja.getPropCallee(from) compiler.go:433: 84: goja.loadDynamic(source) compiler.go:433: 85: goja.call(1) compiler.go:433: 86: goja.loadVal({std src/cust dest}) compiler.go:433: 87: goja.call(2) compiler.go:433: 88: goja._pop({}) compiler.go:433: 89: goja.loadDynamicCallee(checkDestHoles) compiler.go:433: 90: goja.loadDynamic(A) compiler.go:433: 91: goja.getPropCallee(from) compiler.go:433: 92: goja.loadDynamic(srcHoles) compiler.go:433: 93: goja.call(1) compiler.go:433: 94: goja.loadVal({std src (holes)/cust dest}) compiler.go:433: 95: goja.call(2) compiler.go:433: 96: goja._pop({}) compiler.go:433: 97: goja.loadDynamicCallee(checkDestHoles) compiler.go:433: 98: goja.loadDynamic(A) compiler.go:433: 99: goja.getPropCallee(from) compiler.go:433: 100: goja.loadDynamic(src) compiler.go:433: 101: goja.call(1) compiler.go:433: 102: goja.loadVal({arrayLike src/cust dest}) compiler.go:433: 103: goja.call(2) compiler.go:433: 104: goja._pop({}) compiler.go:433: 105: goja.loadDynamic(assert) compiler.go:433: 106: goja.getPropCallee(throws) compiler.go:433: 107: goja.loadDynamic(TypeError) compiler.go:433: 108: *goja.newFunc(&{0xc00037ee10 function() { Array.from.call(T2, source); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Array) compiler.go:433: > 2: goja.getProp(from) compiler.go:433: > 3: goja.getPropCallee(call) compiler.go:433: > 4: goja.loadDynamic(T2) compiler.go:433: > 5: goja.loadDynamic(source) compiler.go:433: > 6: goja.call(2) compiler.go:433: > 7: goja._pop({}) compiler.go:433: > 8: goja._loadUndef({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 109: goja.call(2) compiler.go:433: 110: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayFrom (0.00s) === RUN TestArrayOf compiler.go:433: 0: *goja.newFunc(&{0xc00037f220 T1 function T1() { Object.preventExtensions(this); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadDynamic(Object) compiler.go:433: > 3: goja.getPropCallee(preventExtensions) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: goja.call(1) compiler.go:433: > 6: goja._pop({}) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc00037f270 T2 function T2() { Object.defineProperty(this, 0, { configurable: false, writable: true, enumerable: true }); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadDynamic(Object) compiler.go:433: > 3: goja.getPropCallee(defineProperty) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: goja.loadVal({0}) compiler.go:433: > 6: goja._newObject({}) compiler.go:433: > 7: goja.loadVal({false}) compiler.go:433: > 8: goja.putProp(configurable) compiler.go:433: > 9: goja.loadVal({true}) compiler.go:433: > 10: goja.putProp(writable) compiler.go:433: > 11: goja.loadVal({true}) compiler.go:433: > 12: goja.putProp(enumerable) compiler.go:433: > 13: goja.call(3) compiler.go:433: > 14: goja._pop({}) compiler.go:433: > 15: goja._loadUndef({}) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[] [T1 T2] [] [] false}) compiler.go:433: 3: goja.loadDynamic(assert) compiler.go:433: 4: goja.getPropCallee(throws) compiler.go:433: 5: goja.loadDynamic(TypeError) compiler.go:433: 6: *goja.newFunc(&{0xc00037f2c0 function() { Array.of.call(T1, 'Bob'); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Array) compiler.go:433: > 2: goja.getProp(of) compiler.go:433: > 3: goja.getPropCallee(call) compiler.go:433: > 4: goja.loadDynamic(T1) compiler.go:433: > 5: goja.loadVal({Bob}) compiler.go:433: > 6: goja.call(2) compiler.go:433: > 7: goja._pop({}) compiler.go:433: > 8: goja._loadUndef({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 7: goja.call(2) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja.loadDynamic(assert) compiler.go:433: 10: goja.getPropCallee(throws) compiler.go:433: 11: goja.loadDynamic(TypeError) compiler.go:433: 12: *goja.newFunc(&{0xc00037f310 function() { Array.of.call(T2, 'Bob'); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Array) compiler.go:433: > 2: goja.getProp(of) compiler.go:433: > 3: goja.getPropCallee(call) compiler.go:433: > 4: goja.loadDynamic(T2) compiler.go:433: > 5: goja.loadVal({Bob}) compiler.go:433: > 6: goja.call(2) compiler.go:433: > 7: goja._pop({}) compiler.go:433: > 8: goja._loadUndef({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 13: goja.call(2) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja.resolveVar1(result) compiler.go:433: 16: goja.loadDynamic(Array) compiler.go:433: 17: goja.getProp(of) compiler.go:433: 18: goja.getPropCallee(call) compiler.go:433: 19: goja.loadDynamic(undefined) compiler.go:433: 20: goja.call(1) compiler.go:433: 21: goja._putValueP({}) compiler.go:433: 22: goja.loadDynamicCallee(assert) compiler.go:433: 23: goja.loadDynamic(result) compiler.go:433: 24: goja.loadDynamic(Array) compiler.go:433: 25: goja._op_instanceof({}) compiler.go:433: 26: goja.loadVal({this is not a constructor}) compiler.go:433: 27: goja.call(2) compiler.go:433: 28: goja._pop({}) compiler.go:433: 29: goja.resolveVar1(result) compiler.go:433: 30: goja.loadDynamic(Array) compiler.go:433: 31: goja.getProp(of) compiler.go:433: 32: goja.getPropCallee(call) compiler.go:433: 33: goja.loadDynamic(Math) compiler.go:433: 34: goja.getProp(cos) compiler.go:433: 35: goja.call(1) compiler.go:433: 36: goja._putValueP({}) compiler.go:433: 37: goja.loadDynamicCallee(assert) compiler.go:433: 38: goja.loadDynamic(result) compiler.go:433: 39: goja.loadDynamic(Array) compiler.go:433: 40: goja._op_instanceof({}) compiler.go:433: 41: goja.loadVal({this is a builtin function with no [[Construct]] slot}) compiler.go:433: 42: goja.call(2) compiler.go:433: 43: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayOf (0.00s) === RUN TestUnscopables compiler.go:433: 0: *goja.bindGlobal(&{[keys _length] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(keys) compiler.go:433: 2: goja.newArray(0) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(Array) compiler.go:433: 5: goja.getProp(prototype) compiler.go:433: 6: goja._enterWith({}) compiler.go:433: 7: goja.resolveVar1(_length) compiler.go:433: 8: goja.loadDynamic(length) compiler.go:433: 9: goja._putValueP({}) compiler.go:433: 10: goja.loadDynamic(keys) compiler.go:433: 11: goja.getPropCallee(push) compiler.go:433: 12: goja.loadVal({something}) compiler.go:433: 13: goja.call(1) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja._leaveWith({}) compiler.go:433: 16: goja.loadDynamic(_length) compiler.go:433: 17: goja.loadVal({0}) compiler.go:433: 18: goja._op_strict_eq({}) compiler.go:433: 19: goja.jne(5) compiler.go:433: 20: goja.loadDynamic(keys) compiler.go:433: 21: goja.getProp(length) compiler.go:433: 22: goja.loadVal({1}) compiler.go:433: 23: goja._op_strict_eq({}) compiler.go:433: 24: goja.jne(6) compiler.go:433: 25: goja.loadDynamic(keys) compiler.go:433: 26: goja.loadVal({0}) compiler.go:433: 27: goja._getElem({}) compiler.go:433: 28: goja.loadVal({something}) compiler.go:433: 29: goja._op_strict_eq({}) compiler.go:433: 30: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestUnscopables (0.00s) === RUN TestArraySort compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(throws) compiler.go:433: 2: goja.loadDynamic(TypeError) compiler.go:433: 3: *goja.newFunc(&{0xc00037f770 function() { [1,2].sort(null); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.newArray(2) compiler.go:433: > 2: goja.loadVal({1}) compiler.go:433: > 3: goja._pushArrayItem({}) compiler.go:433: > 4: goja.loadVal({2}) compiler.go:433: > 5: goja._pushArrayItem({}) compiler.go:433: > 6: goja.getPropCallee(sort) compiler.go:433: > 7: goja.loadVal({{}}) compiler.go:433: > 8: goja.call(1) compiler.go:433: > 9: goja._pop({}) compiler.go:433: > 10: goja._loadUndef({}) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 4: goja.loadVal({null compare function}) compiler.go:433: 5: goja.call(3) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja.loadDynamic(assert) compiler.go:433: 8: goja.getPropCallee(throws) compiler.go:433: 9: goja.loadDynamic(TypeError) compiler.go:433: 10: *goja.newFunc(&{0xc00037f7c0 function() { [1,2].sort({}); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.newArray(2) compiler.go:433: > 2: goja.loadVal({1}) compiler.go:433: > 3: goja._pushArrayItem({}) compiler.go:433: > 4: goja.loadVal({2}) compiler.go:433: > 5: goja._pushArrayItem({}) compiler.go:433: > 6: goja.getPropCallee(sort) compiler.go:433: > 7: goja._newObject({}) compiler.go:433: > 8: goja.call(1) compiler.go:433: > 9: goja._pop({}) compiler.go:433: > 10: goja._loadUndef({}) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 11: goja.loadVal({non-callable compare function}) compiler.go:433: 12: goja.call(3) compiler.go:433: 13: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArraySort (0.00s) === RUN TestArraySortNonStdArray compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [array] false}) compiler.go:433: 1: goja.newArray(8) compiler.go:433: 2: goja.loadDynamic(undefined) compiler.go:433: 3: goja._pushArrayItem({}) compiler.go:433: 4: goja.loadVal({c}) compiler.go:433: 5: goja._pushArrayItem({}) compiler.go:433: 6: goja._loadNil({}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja.loadVal({b}) compiler.go:433: 9: goja._pushArrayItem({}) compiler.go:433: 10: goja.loadDynamic(undefined) compiler.go:433: 11: goja._pushArrayItem({}) compiler.go:433: 12: goja._loadNil({}) compiler.go:433: 13: goja._pushArrayItem({}) compiler.go:433: 14: goja.loadVal({a}) compiler.go:433: 15: goja._pushArrayItem({}) compiler.go:433: 16: goja.loadVal({d}) compiler.go:433: 17: goja._pushArrayItem({}) compiler.go:433: 18: goja.initGlobalP(array) compiler.go:433: 19: goja.loadDynamic(Object) compiler.go:433: 20: goja.getPropCallee(defineProperty) compiler.go:433: 21: goja.loadDynamic(array) compiler.go:433: 22: goja.loadVal({2}) compiler.go:433: 23: goja._newObject({}) compiler.go:433: 24: *goja.newMethod(&{{0xc00037fa90 get get() { array.pop(); array.pop(); return this.foo; } 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadDynamic(array) compiler.go:433: > 3: goja.getPropCallee(pop) compiler.go:433: > 4: goja.call(0) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja.loadDynamic(array) compiler.go:433: > 7: goja.getPropCallee(pop) compiler.go:433: > 8: goja.call(0) compiler.go:433: > 9: goja._pop({}) compiler.go:433: > 10: goja.loadStack(0) compiler.go:433: > 11: goja.getProp(foo) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 25: *goja.defineMethodKeyed(&{get true}) compiler.go:433: 26: *goja.newMethod(&{{0xc00037fae0 set set(v) { this.foo = v; } 1 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.loadStackLex(-1) compiler.go:433: > 4: goja.setPropP(foo) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 27: *goja.defineMethodKeyed(&{set true}) compiler.go:433: 28: goja.call(3) compiler.go:433: 29: goja._pop({}) compiler.go:433: 30: goja.loadDynamic(array) compiler.go:433: 31: goja.getPropCallee(sort) compiler.go:433: 32: goja.call(0) compiler.go:433: 33: goja._pop({}) compiler.go:433: 34: goja.loadDynamic(assert) compiler.go:433: 35: goja.getPropCallee(sameValue) compiler.go:433: 36: goja.loadDynamic(array) compiler.go:433: 37: goja.loadVal({0}) compiler.go:433: 38: goja._getElem({}) compiler.go:433: 39: goja.loadVal({b}) compiler.go:433: 40: goja.call(2) compiler.go:433: 41: goja._pop({}) compiler.go:433: 42: goja.loadDynamic(assert) compiler.go:433: 43: goja.getPropCallee(sameValue) compiler.go:433: 44: goja.loadDynamic(array) compiler.go:433: 45: goja.loadVal({1}) compiler.go:433: 46: goja._getElem({}) compiler.go:433: 47: goja.loadVal({c}) compiler.go:433: 48: goja.call(2) compiler.go:433: 49: goja._pop({}) compiler.go:433: 50: goja.loadDynamic(assert) compiler.go:433: 51: goja.getPropCallee(sameValue) compiler.go:433: 52: goja.loadDynamic(array) compiler.go:433: 53: goja.loadVal({3}) compiler.go:433: 54: goja._getElem({}) compiler.go:433: 55: goja.loadDynamic(undefined) compiler.go:433: 56: goja.call(2) compiler.go:433: 57: goja._pop({}) compiler.go:433: 58: goja.loadDynamic(assert) compiler.go:433: 59: goja.getPropCallee(sameValue) compiler.go:433: 60: goja.loadDynamic(array) compiler.go:433: 61: goja.loadVal({4}) compiler.go:433: 62: goja._getElem({}) compiler.go:433: 63: goja.loadDynamic(undefined) compiler.go:433: 64: goja.call(2) compiler.go:433: 65: goja._pop({}) compiler.go:433: 66: goja.loadDynamic(assert) compiler.go:433: 67: goja.getPropCallee(sameValue) compiler.go:433: 68: goja.loadVal({5}) compiler.go:433: 69: goja.loadDynamic(array) compiler.go:433: 70: goja._op_in({}) compiler.go:433: 71: goja.loadVal({false}) compiler.go:433: 72: goja.call(2) compiler.go:433: 73: goja._pop({}) compiler.go:433: 74: goja.loadDynamic(assert) compiler.go:433: 75: goja.getPropCallee(sameValue) compiler.go:433: 76: goja.loadDynamic(array) compiler.go:433: 77: goja.getPropCallee(hasOwnProperty) compiler.go:433: 78: goja.loadVal({5}) compiler.go:433: 79: goja.call(1) compiler.go:433: 80: goja.loadVal({false}) compiler.go:433: 81: goja.call(2) compiler.go:433: 82: goja._pop({}) compiler.go:433: 83: goja.loadDynamic(assert) compiler.go:433: 84: goja.getPropCallee(sameValue) compiler.go:433: 85: goja.loadDynamic(array) compiler.go:433: 86: goja.getProp(length) compiler.go:433: 87: goja.loadVal({6}) compiler.go:433: 88: goja.call(2) compiler.go:433: 89: goja._pop({}) compiler.go:433: 90: goja.loadDynamic(assert) compiler.go:433: 91: goja.getPropCallee(sameValue) compiler.go:433: 92: goja.loadDynamic(array) compiler.go:433: 93: goja.getProp(foo) compiler.go:433: 94: goja.loadDynamic(undefined) compiler.go:433: 95: goja.call(2) compiler.go:433: 96: goja._pop({}) compiler.go:433: 97: goja.loadDynamic(assert) compiler.go:433: 98: goja.getPropCallee(sameValue) compiler.go:433: 99: goja.loadDynamic(array) compiler.go:433: 100: goja.loadVal({2}) compiler.go:433: 101: goja._getElem({}) compiler.go:433: 102: goja.loadDynamic(undefined) compiler.go:433: 103: goja.call(2) compiler.go:433: 104: goja._pop({}) compiler.go:433: 105: goja.loadDynamic(assert) compiler.go:433: 106: goja.getPropCallee(sameValue) compiler.go:433: 107: goja.loadDynamic(array) compiler.go:433: 108: goja.getProp(length) compiler.go:433: 109: goja.loadVal({4}) compiler.go:433: 110: goja.call(2) compiler.go:433: 111: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArraySortNonStdArray (0.00s) === RUN TestArrayConcat compiler.go:433: 0: *goja.bindGlobal(&{[concat array sparseArray nonSpreadableArray arrayLike spreadableArrayLike] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(concat) compiler.go:433: 2: goja.loadDynamic(Array) compiler.go:433: 3: goja.getProp(prototype) compiler.go:433: 4: goja.getProp(concat) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(array) compiler.go:433: 7: goja.newArray(2) compiler.go:433: 8: goja.loadVal({1}) compiler.go:433: 9: goja._pushArrayItem({}) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja._pushArrayItem({}) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.resolveVar1(sparseArray) compiler.go:433: 14: goja.newArray(3) compiler.go:433: 15: goja.loadVal({1}) compiler.go:433: 16: goja._pushArrayItem({}) compiler.go:433: 17: goja._loadNil({}) compiler.go:433: 18: goja._pushArrayItem({}) compiler.go:433: 19: goja.loadVal({2}) compiler.go:433: 20: goja._pushArrayItem({}) compiler.go:433: 21: goja._initValueP({}) compiler.go:433: 22: goja.resolveVar1(nonSpreadableArray) compiler.go:433: 23: goja.newArray(2) compiler.go:433: 24: goja.loadVal({1}) compiler.go:433: 25: goja._pushArrayItem({}) compiler.go:433: 26: goja.loadVal({2}) compiler.go:433: 27: goja._pushArrayItem({}) compiler.go:433: 28: goja._initValueP({}) compiler.go:433: 29: goja.loadDynamic(nonSpreadableArray) compiler.go:433: 30: goja.loadDynamic(Symbol) compiler.go:433: 31: goja.getProp(isConcatSpreadable) compiler.go:433: 32: goja.loadVal({false}) compiler.go:433: 33: goja._setElemP({}) compiler.go:433: 34: goja.resolveVar1(arrayLike) compiler.go:433: 35: goja._newObject({}) compiler.go:433: 36: goja.loadVal({1}) compiler.go:433: 37: goja.putProp(0) compiler.go:433: 38: goja.loadVal({2}) compiler.go:433: 39: goja.putProp(1) compiler.go:433: 40: goja.loadVal({2}) compiler.go:433: 41: goja.putProp(length) compiler.go:433: 42: goja._initValueP({}) compiler.go:433: 43: goja.resolveVar1(spreadableArrayLike) compiler.go:433: 44: goja._newObject({}) compiler.go:433: 45: goja.loadVal({1}) compiler.go:433: 46: goja.putProp(0) compiler.go:433: 47: goja.loadVal({2}) compiler.go:433: 48: goja.putProp(1) compiler.go:433: 49: goja.loadVal({2}) compiler.go:433: 50: goja.putProp(length) compiler.go:433: 51: goja._initValueP({}) compiler.go:433: 52: goja.loadDynamic(spreadableArrayLike) compiler.go:433: 53: goja.loadDynamic(Symbol) compiler.go:433: 54: goja.getProp(isConcatSpreadable) compiler.go:433: 55: goja.loadVal({true}) compiler.go:433: 56: goja._setElemP({}) compiler.go:433: 57: goja.loadDynamicCallee(assert) compiler.go:433: 58: goja.loadDynamicCallee(looksNative) compiler.go:433: 59: goja.loadDynamic(concat) compiler.go:433: 60: goja.call(1) compiler.go:433: 61: goja.call(1) compiler.go:433: 62: goja._pop({}) compiler.go:433: 63: goja.loadDynamicCallee(assert) compiler.go:433: 64: goja.loadDynamicCallee(deepEqual) compiler.go:433: 65: goja.loadDynamic(array) compiler.go:433: 66: goja.getPropCallee(concat) compiler.go:433: 67: goja.call(0) compiler.go:433: 68: goja.newArray(2) compiler.go:433: 69: goja.loadVal({1}) compiler.go:433: 70: goja._pushArrayItem({}) compiler.go:433: 71: goja.loadVal({2}) compiler.go:433: 72: goja._pushArrayItem({}) compiler.go:433: 73: goja.call(2) compiler.go:433: 74: goja.loadVal({#1}) compiler.go:433: 75: goja.call(2) compiler.go:433: 76: goja._pop({}) compiler.go:433: 77: goja.loadDynamicCallee(assert) compiler.go:433: 78: goja.loadDynamicCallee(deepEqual) compiler.go:433: 79: goja.loadDynamic(sparseArray) compiler.go:433: 80: goja.getPropCallee(concat) compiler.go:433: 81: goja.call(0) compiler.go:433: 82: goja.newArray(3) compiler.go:433: 83: goja.loadVal({1}) compiler.go:433: 84: goja._pushArrayItem({}) compiler.go:433: 85: goja._loadNil({}) compiler.go:433: 86: goja._pushArrayItem({}) compiler.go:433: 87: goja.loadVal({2}) compiler.go:433: 88: goja._pushArrayItem({}) compiler.go:433: 89: goja.call(2) compiler.go:433: 90: goja.loadVal({#2}) compiler.go:433: 91: goja.call(2) compiler.go:433: 92: goja._pop({}) compiler.go:433: 93: goja.loadDynamicCallee(assert) compiler.go:433: 94: goja.loadDynamicCallee(deepEqual) compiler.go:433: 95: goja.loadDynamic(nonSpreadableArray) compiler.go:433: 96: goja.getPropCallee(concat) compiler.go:433: 97: goja.call(0) compiler.go:433: 98: goja.newArray(1) compiler.go:433: 99: goja.newArray(2) compiler.go:433: 100: goja.loadVal({1}) compiler.go:433: 101: goja._pushArrayItem({}) compiler.go:433: 102: goja.loadVal({2}) compiler.go:433: 103: goja._pushArrayItem({}) compiler.go:433: 104: goja._pushArrayItem({}) compiler.go:433: 105: goja.call(2) compiler.go:433: 106: goja.loadVal({#3}) compiler.go:433: 107: goja.call(2) compiler.go:433: 108: goja._pop({}) compiler.go:433: 109: goja.loadDynamicCallee(assert) compiler.go:433: 110: goja.loadDynamicCallee(deepEqual) compiler.go:433: 111: goja.loadDynamic(concat) compiler.go:433: 112: goja.getPropCallee(call) compiler.go:433: 113: goja.loadDynamic(arrayLike) compiler.go:433: 114: goja.call(1) compiler.go:433: 115: goja.newArray(1) compiler.go:433: 116: goja._newObject({}) compiler.go:433: 117: goja.loadVal({1}) compiler.go:433: 118: goja.putProp(0) compiler.go:433: 119: goja.loadVal({2}) compiler.go:433: 120: goja.putProp(1) compiler.go:433: 121: goja.loadVal({2}) compiler.go:433: 122: goja.putProp(length) compiler.go:433: 123: goja._pushArrayItem({}) compiler.go:433: 124: goja.call(2) compiler.go:433: 125: goja.loadVal({#4}) compiler.go:433: 126: goja.call(2) compiler.go:433: 127: goja._pop({}) compiler.go:433: 128: goja.loadDynamicCallee(assert) compiler.go:433: 129: goja.loadDynamicCallee(deepEqual) compiler.go:433: 130: goja.loadDynamic(concat) compiler.go:433: 131: goja.getPropCallee(call) compiler.go:433: 132: goja.loadDynamic(spreadableArrayLike) compiler.go:433: 133: goja.call(1) compiler.go:433: 134: goja.newArray(2) compiler.go:433: 135: goja.loadVal({1}) compiler.go:433: 136: goja._pushArrayItem({}) compiler.go:433: 137: goja.loadVal({2}) compiler.go:433: 138: goja._pushArrayItem({}) compiler.go:433: 139: goja.call(2) compiler.go:433: 140: goja.loadVal({#5}) compiler.go:433: 141: goja.call(2) compiler.go:433: 142: goja._pop({}) compiler.go:433: 143: goja.loadDynamicCallee(assert) compiler.go:433: 144: goja.loadDynamicCallee(deepEqual) compiler.go:433: 145: goja.newArray(0) compiler.go:433: 146: goja.getPropCallee(concat) compiler.go:433: 147: goja.loadDynamic(array) compiler.go:433: 148: goja.call(1) compiler.go:433: 149: goja.newArray(2) compiler.go:433: 150: goja.loadVal({1}) compiler.go:433: 151: goja._pushArrayItem({}) compiler.go:433: 152: goja.loadVal({2}) compiler.go:433: 153: goja._pushArrayItem({}) compiler.go:433: 154: goja.call(2) compiler.go:433: 155: goja.loadVal({#6}) compiler.go:433: 156: goja.call(2) compiler.go:433: 157: goja._pop({}) compiler.go:433: 158: goja.loadDynamicCallee(assert) compiler.go:433: 159: goja.loadDynamicCallee(deepEqual) compiler.go:433: 160: goja.newArray(0) compiler.go:433: 161: goja.getPropCallee(concat) compiler.go:433: 162: goja.loadDynamic(sparseArray) compiler.go:433: 163: goja.call(1) compiler.go:433: 164: goja.newArray(3) compiler.go:433: 165: goja.loadVal({1}) compiler.go:433: 166: goja._pushArrayItem({}) compiler.go:433: 167: goja._loadNil({}) compiler.go:433: 168: goja._pushArrayItem({}) compiler.go:433: 169: goja.loadVal({2}) compiler.go:433: 170: goja._pushArrayItem({}) compiler.go:433: 171: goja.call(2) compiler.go:433: 172: goja.loadVal({#7}) compiler.go:433: 173: goja.call(2) compiler.go:433: 174: goja._pop({}) compiler.go:433: 175: goja.loadDynamicCallee(assert) compiler.go:433: 176: goja.loadDynamicCallee(deepEqual) compiler.go:433: 177: goja.newArray(0) compiler.go:433: 178: goja.getPropCallee(concat) compiler.go:433: 179: goja.loadDynamic(nonSpreadableArray) compiler.go:433: 180: goja.call(1) compiler.go:433: 181: goja.newArray(1) compiler.go:433: 182: goja.newArray(2) compiler.go:433: 183: goja.loadVal({1}) compiler.go:433: 184: goja._pushArrayItem({}) compiler.go:433: 185: goja.loadVal({2}) compiler.go:433: 186: goja._pushArrayItem({}) compiler.go:433: 187: goja._pushArrayItem({}) compiler.go:433: 188: goja.call(2) compiler.go:433: 189: goja.loadVal({#8}) compiler.go:433: 190: goja.call(2) compiler.go:433: 191: goja._pop({}) compiler.go:433: 192: goja.loadDynamicCallee(assert) compiler.go:433: 193: goja.loadDynamicCallee(deepEqual) compiler.go:433: 194: goja.newArray(0) compiler.go:433: 195: goja.getPropCallee(concat) compiler.go:433: 196: goja.loadDynamic(arrayLike) compiler.go:433: 197: goja.call(1) compiler.go:433: 198: goja.newArray(1) compiler.go:433: 199: goja._newObject({}) compiler.go:433: 200: goja.loadVal({1}) compiler.go:433: 201: goja.putProp(0) compiler.go:433: 202: goja.loadVal({2}) compiler.go:433: 203: goja.putProp(1) compiler.go:433: 204: goja.loadVal({2}) compiler.go:433: 205: goja.putProp(length) compiler.go:433: 206: goja._pushArrayItem({}) compiler.go:433: 207: goja.call(2) compiler.go:433: 208: goja.loadVal({#9}) compiler.go:433: 209: goja.call(2) compiler.go:433: 210: goja._pop({}) compiler.go:433: 211: goja.loadDynamicCallee(assert) compiler.go:433: 212: goja.loadDynamicCallee(deepEqual) compiler.go:433: 213: goja.newArray(0) compiler.go:433: 214: goja.getPropCallee(concat) compiler.go:433: 215: goja.loadDynamic(spreadableArrayLike) compiler.go:433: 216: goja.call(1) compiler.go:433: 217: goja.newArray(2) compiler.go:433: 218: goja.loadVal({1}) compiler.go:433: 219: goja._pushArrayItem({}) compiler.go:433: 220: goja.loadVal({2}) compiler.go:433: 221: goja._pushArrayItem({}) compiler.go:433: 222: goja.call(2) compiler.go:433: 223: goja.loadVal({#10}) compiler.go:433: 224: goja.call(2) compiler.go:433: 225: goja._pop({}) compiler.go:433: 226: goja.loadDynamicCallee(assert) compiler.go:433: 227: goja.loadDynamicCallee(deepEqual) compiler.go:433: 228: goja.loadDynamic(array) compiler.go:433: 229: goja.getPropCallee(concat) compiler.go:433: 230: goja.loadDynamic(sparseArray) compiler.go:433: 231: goja.loadDynamic(nonSpreadableArray) compiler.go:433: 232: goja.loadDynamic(arrayLike) compiler.go:433: 233: goja.loadDynamic(spreadableArrayLike) compiler.go:433: 234: goja.call(4) compiler.go:433: 235: goja.newArray(9) compiler.go:433: 236: goja.loadVal({1}) compiler.go:433: 237: goja._pushArrayItem({}) compiler.go:433: 238: goja.loadVal({2}) compiler.go:433: 239: goja._pushArrayItem({}) compiler.go:433: 240: goja.loadVal({1}) compiler.go:433: 241: goja._pushArrayItem({}) compiler.go:433: 242: goja._loadNil({}) compiler.go:433: 243: goja._pushArrayItem({}) compiler.go:433: 244: goja.loadVal({2}) compiler.go:433: 245: goja._pushArrayItem({}) compiler.go:433: 246: goja.newArray(2) compiler.go:433: 247: goja.loadVal({1}) compiler.go:433: 248: goja._pushArrayItem({}) compiler.go:433: 249: goja.loadVal({2}) compiler.go:433: 250: goja._pushArrayItem({}) compiler.go:433: 251: goja._pushArrayItem({}) compiler.go:433: 252: goja._newObject({}) compiler.go:433: 253: goja.loadVal({1}) compiler.go:433: 254: goja.putProp(0) compiler.go:433: 255: goja.loadVal({2}) compiler.go:433: 256: goja.putProp(1) compiler.go:433: 257: goja.loadVal({2}) compiler.go:433: 258: goja.putProp(length) compiler.go:433: 259: goja._pushArrayItem({}) compiler.go:433: 260: goja.loadVal({1}) compiler.go:433: 261: goja._pushArrayItem({}) compiler.go:433: 262: goja.loadVal({2}) compiler.go:433: 263: goja._pushArrayItem({}) compiler.go:433: 264: goja.call(2) compiler.go:433: 265: goja.loadVal({#11}) compiler.go:433: 266: goja.call(2) compiler.go:433: 267: goja._pop({}) compiler.go:433: 268: goja.resolveVar1(array) compiler.go:433: 269: goja.newArray(0) compiler.go:433: 270: goja._putValueP({}) compiler.go:433: 271: goja.loadDynamic(array) compiler.go:433: 272: goja._newObject({}) compiler.go:433: 273: goja.setPropP(constructor) compiler.go:433: 274: goja.loadDynamic(array) compiler.go:433: 275: goja.getProp(constructor) compiler.go:433: 276: goja.loadDynamic(Symbol) compiler.go:433: 277: goja.getProp(species) compiler.go:433: 278: *goja.newFunc(&{0xc0004841e0 function () { return { foo: 1 }; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: goja.loadVal({1}) compiler.go:433: > 3: goja.putProp(foo) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 279: goja._setElemP({}) compiler.go:433: 280: goja.loadDynamic(assert) compiler.go:433: 281: goja.getPropCallee(sameValue) compiler.go:433: 282: goja.loadDynamic(array) compiler.go:433: 283: goja.getPropCallee(concat) compiler.go:433: 284: goja.call(0) compiler.go:433: 285: goja.getProp(foo) compiler.go:433: 286: goja.loadVal({1}) compiler.go:433: 287: goja.loadVal({@@species}) compiler.go:433: 288: goja.call(3) compiler.go:433: 289: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayConcat (0.00s) === RUN TestArrayFlat compiler.go:433: 0: *goja.bindGlobal(&{[array] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(array) compiler.go:433: 2: goja.newArray(3) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.newArray(3) compiler.go:433: 6: goja.loadVal({2}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja.loadVal({3}) compiler.go:433: 9: goja._pushArrayItem({}) compiler.go:433: 10: goja.newArray(3) compiler.go:433: 11: goja.loadVal({4}) compiler.go:433: 12: goja._pushArrayItem({}) compiler.go:433: 13: goja.loadVal({5}) compiler.go:433: 14: goja._pushArrayItem({}) compiler.go:433: 15: goja.loadVal({6}) compiler.go:433: 16: goja._pushArrayItem({}) compiler.go:433: 17: goja._pushArrayItem({}) compiler.go:433: 18: goja._pushArrayItem({}) compiler.go:433: 19: goja.newArray(1) compiler.go:433: 20: goja.newArray(1) compiler.go:433: 21: goja.newArray(1) compiler.go:433: 22: goja.newArray(3) compiler.go:433: 23: goja.loadVal({7}) compiler.go:433: 24: goja._pushArrayItem({}) compiler.go:433: 25: goja.loadVal({8}) compiler.go:433: 26: goja._pushArrayItem({}) compiler.go:433: 27: goja.loadVal({9}) compiler.go:433: 28: goja._pushArrayItem({}) compiler.go:433: 29: goja._pushArrayItem({}) compiler.go:433: 30: goja._pushArrayItem({}) compiler.go:433: 31: goja._pushArrayItem({}) compiler.go:433: 32: goja._pushArrayItem({}) compiler.go:433: 33: goja._initValueP({}) compiler.go:433: 34: goja.loadDynamicCallee(assert) compiler.go:433: 35: goja.loadDynamicCallee(deepEqual) compiler.go:433: 36: goja.loadDynamic(array) compiler.go:433: 37: goja.getPropCallee(flat) compiler.go:433: 38: goja.call(0) compiler.go:433: 39: goja.newArray(5) compiler.go:433: 40: goja.loadVal({1}) compiler.go:433: 41: goja._pushArrayItem({}) compiler.go:433: 42: goja.loadVal({2}) compiler.go:433: 43: goja._pushArrayItem({}) compiler.go:433: 44: goja.loadVal({3}) compiler.go:433: 45: goja._pushArrayItem({}) compiler.go:433: 46: goja.newArray(3) compiler.go:433: 47: goja.loadVal({4}) compiler.go:433: 48: goja._pushArrayItem({}) compiler.go:433: 49: goja.loadVal({5}) compiler.go:433: 50: goja._pushArrayItem({}) compiler.go:433: 51: goja.loadVal({6}) compiler.go:433: 52: goja._pushArrayItem({}) compiler.go:433: 53: goja._pushArrayItem({}) compiler.go:433: 54: goja.newArray(1) compiler.go:433: 55: goja.newArray(1) compiler.go:433: 56: goja.newArray(3) compiler.go:433: 57: goja.loadVal({7}) compiler.go:433: 58: goja._pushArrayItem({}) compiler.go:433: 59: goja.loadVal({8}) compiler.go:433: 60: goja._pushArrayItem({}) compiler.go:433: 61: goja.loadVal({9}) compiler.go:433: 62: goja._pushArrayItem({}) compiler.go:433: 63: goja._pushArrayItem({}) compiler.go:433: 64: goja._pushArrayItem({}) compiler.go:433: 65: goja._pushArrayItem({}) compiler.go:433: 66: goja.call(2) compiler.go:433: 67: goja.loadVal({#1}) compiler.go:433: 68: goja.call(2) compiler.go:433: 69: goja._pop({}) compiler.go:433: 70: goja.loadDynamicCallee(assert) compiler.go:433: 71: goja.loadDynamicCallee(deepEqual) compiler.go:433: 72: goja.loadDynamic(array) compiler.go:433: 73: goja.getPropCallee(flat) compiler.go:433: 74: goja.loadVal({1}) compiler.go:433: 75: goja.call(1) compiler.go:433: 76: goja.newArray(5) compiler.go:433: 77: goja.loadVal({1}) compiler.go:433: 78: goja._pushArrayItem({}) compiler.go:433: 79: goja.loadVal({2}) compiler.go:433: 80: goja._pushArrayItem({}) compiler.go:433: 81: goja.loadVal({3}) compiler.go:433: 82: goja._pushArrayItem({}) compiler.go:433: 83: goja.newArray(3) compiler.go:433: 84: goja.loadVal({4}) compiler.go:433: 85: goja._pushArrayItem({}) compiler.go:433: 86: goja.loadVal({5}) compiler.go:433: 87: goja._pushArrayItem({}) compiler.go:433: 88: goja.loadVal({6}) compiler.go:433: 89: goja._pushArrayItem({}) compiler.go:433: 90: goja._pushArrayItem({}) compiler.go:433: 91: goja.newArray(1) compiler.go:433: 92: goja.newArray(1) compiler.go:433: 93: goja.newArray(3) compiler.go:433: 94: goja.loadVal({7}) compiler.go:433: 95: goja._pushArrayItem({}) compiler.go:433: 96: goja.loadVal({8}) compiler.go:433: 97: goja._pushArrayItem({}) compiler.go:433: 98: goja.loadVal({9}) compiler.go:433: 99: goja._pushArrayItem({}) compiler.go:433: 100: goja._pushArrayItem({}) compiler.go:433: 101: goja._pushArrayItem({}) compiler.go:433: 102: goja._pushArrayItem({}) compiler.go:433: 103: goja.call(2) compiler.go:433: 104: goja.loadVal({#2}) compiler.go:433: 105: goja.call(2) compiler.go:433: 106: goja._pop({}) compiler.go:433: 107: goja.loadDynamicCallee(assert) compiler.go:433: 108: goja.loadDynamicCallee(deepEqual) compiler.go:433: 109: goja.loadDynamic(array) compiler.go:433: 110: goja.getPropCallee(flat) compiler.go:433: 111: goja.loadVal({3}) compiler.go:433: 112: goja.call(1) compiler.go:433: 113: goja.newArray(7) compiler.go:433: 114: goja.loadVal({1}) compiler.go:433: 115: goja._pushArrayItem({}) compiler.go:433: 116: goja.loadVal({2}) compiler.go:433: 117: goja._pushArrayItem({}) compiler.go:433: 118: goja.loadVal({3}) compiler.go:433: 119: goja._pushArrayItem({}) compiler.go:433: 120: goja.loadVal({4}) compiler.go:433: 121: goja._pushArrayItem({}) compiler.go:433: 122: goja.loadVal({5}) compiler.go:433: 123: goja._pushArrayItem({}) compiler.go:433: 124: goja.loadVal({6}) compiler.go:433: 125: goja._pushArrayItem({}) compiler.go:433: 126: goja.newArray(3) compiler.go:433: 127: goja.loadVal({7}) compiler.go:433: 128: goja._pushArrayItem({}) compiler.go:433: 129: goja.loadVal({8}) compiler.go:433: 130: goja._pushArrayItem({}) compiler.go:433: 131: goja.loadVal({9}) compiler.go:433: 132: goja._pushArrayItem({}) compiler.go:433: 133: goja._pushArrayItem({}) compiler.go:433: 134: goja.call(2) compiler.go:433: 135: goja.loadVal({#3}) compiler.go:433: 136: goja.call(2) compiler.go:433: 137: goja._pop({}) compiler.go:433: 138: goja.loadDynamicCallee(assert) compiler.go:433: 139: goja.loadDynamicCallee(deepEqual) compiler.go:433: 140: goja.loadDynamic(array) compiler.go:433: 141: goja.getPropCallee(flat) compiler.go:433: 142: goja.loadVal({4}) compiler.go:433: 143: goja.call(1) compiler.go:433: 144: goja.newArray(9) compiler.go:433: 145: goja.loadVal({1}) compiler.go:433: 146: goja._pushArrayItem({}) compiler.go:433: 147: goja.loadVal({2}) compiler.go:433: 148: goja._pushArrayItem({}) compiler.go:433: 149: goja.loadVal({3}) compiler.go:433: 150: goja._pushArrayItem({}) compiler.go:433: 151: goja.loadVal({4}) compiler.go:433: 152: goja._pushArrayItem({}) compiler.go:433: 153: goja.loadVal({5}) compiler.go:433: 154: goja._pushArrayItem({}) compiler.go:433: 155: goja.loadVal({6}) compiler.go:433: 156: goja._pushArrayItem({}) compiler.go:433: 157: goja.loadVal({7}) compiler.go:433: 158: goja._pushArrayItem({}) compiler.go:433: 159: goja.loadVal({8}) compiler.go:433: 160: goja._pushArrayItem({}) compiler.go:433: 161: goja.loadVal({9}) compiler.go:433: 162: goja._pushArrayItem({}) compiler.go:433: 163: goja.call(2) compiler.go:433: 164: goja.loadVal({#4}) compiler.go:433: 165: goja.call(2) compiler.go:433: 166: goja._pop({}) compiler.go:433: 167: goja.loadDynamicCallee(assert) compiler.go:433: 168: goja.loadDynamicCallee(deepEqual) compiler.go:433: 169: goja.loadDynamic(array) compiler.go:433: 170: goja.getPropCallee(flat) compiler.go:433: 171: goja.loadVal({10}) compiler.go:433: 172: goja.call(1) compiler.go:433: 173: goja.newArray(9) compiler.go:433: 174: goja.loadVal({1}) compiler.go:433: 175: goja._pushArrayItem({}) compiler.go:433: 176: goja.loadVal({2}) compiler.go:433: 177: goja._pushArrayItem({}) compiler.go:433: 178: goja.loadVal({3}) compiler.go:433: 179: goja._pushArrayItem({}) compiler.go:433: 180: goja.loadVal({4}) compiler.go:433: 181: goja._pushArrayItem({}) compiler.go:433: 182: goja.loadVal({5}) compiler.go:433: 183: goja._pushArrayItem({}) compiler.go:433: 184: goja.loadVal({6}) compiler.go:433: 185: goja._pushArrayItem({}) compiler.go:433: 186: goja.loadVal({7}) compiler.go:433: 187: goja._pushArrayItem({}) compiler.go:433: 188: goja.loadVal({8}) compiler.go:433: 189: goja._pushArrayItem({}) compiler.go:433: 190: goja.loadVal({9}) compiler.go:433: 191: goja._pushArrayItem({}) compiler.go:433: 192: goja.call(2) compiler.go:433: 193: goja.loadVal({#5}) compiler.go:433: 194: goja.call(2) compiler.go:433: 195: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayFlat (0.00s) === RUN TestArrayFlatMap compiler.go:433: 0: *goja.bindGlobal(&{[double array] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(double) compiler.go:433: 2: *goja.newFunc(&{0xc000484640 double function(x) { if (isNaN(x)) { return x } return x * 2 } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadDynamicCallee(isNaN) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja.call(1) compiler.go:433: > 4: goja.jneP(3) compiler.go:433: > 5: goja.loadStackLex(-1) compiler.go:433: > 6: goja._ret({}) compiler.go:433: > 7: goja.loadStackLex(-1) compiler.go:433: > 8: goja.loadVal({2}) compiler.go:433: > 9: goja._mul({}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(array) compiler.go:433: 5: goja.newArray(3) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja.newArray(3) compiler.go:433: 9: goja.loadVal({2}) compiler.go:433: 10: goja._pushArrayItem({}) compiler.go:433: 11: goja.loadVal({3}) compiler.go:433: 12: goja._pushArrayItem({}) compiler.go:433: 13: goja.newArray(3) compiler.go:433: 14: goja.loadVal({4}) compiler.go:433: 15: goja._pushArrayItem({}) compiler.go:433: 16: goja.loadVal({5}) compiler.go:433: 17: goja._pushArrayItem({}) compiler.go:433: 18: goja.loadVal({6}) compiler.go:433: 19: goja._pushArrayItem({}) compiler.go:433: 20: goja._pushArrayItem({}) compiler.go:433: 21: goja._pushArrayItem({}) compiler.go:433: 22: goja.newArray(1) compiler.go:433: 23: goja.newArray(1) compiler.go:433: 24: goja.newArray(1) compiler.go:433: 25: goja.newArray(3) compiler.go:433: 26: goja.loadVal({7}) compiler.go:433: 27: goja._pushArrayItem({}) compiler.go:433: 28: goja.loadVal({8}) compiler.go:433: 29: goja._pushArrayItem({}) compiler.go:433: 30: goja.loadVal({9}) compiler.go:433: 31: goja._pushArrayItem({}) compiler.go:433: 32: goja._pushArrayItem({}) compiler.go:433: 33: goja._pushArrayItem({}) compiler.go:433: 34: goja._pushArrayItem({}) compiler.go:433: 35: goja._pushArrayItem({}) compiler.go:433: 36: goja._initValueP({}) compiler.go:433: 37: goja.loadDynamicCallee(assert) compiler.go:433: 38: goja.loadDynamicCallee(deepEqual) compiler.go:433: 39: goja.loadDynamic(array) compiler.go:433: 40: goja.getPropCallee(flatMap) compiler.go:433: 41: goja.loadDynamic(double) compiler.go:433: 42: goja.call(1) compiler.go:433: 43: goja.newArray(5) compiler.go:433: 44: goja.loadVal({2}) compiler.go:433: 45: goja._pushArrayItem({}) compiler.go:433: 46: goja.loadVal({2}) compiler.go:433: 47: goja._pushArrayItem({}) compiler.go:433: 48: goja.loadVal({3}) compiler.go:433: 49: goja._pushArrayItem({}) compiler.go:433: 50: goja.newArray(3) compiler.go:433: 51: goja.loadVal({4}) compiler.go:433: 52: goja._pushArrayItem({}) compiler.go:433: 53: goja.loadVal({5}) compiler.go:433: 54: goja._pushArrayItem({}) compiler.go:433: 55: goja.loadVal({6}) compiler.go:433: 56: goja._pushArrayItem({}) compiler.go:433: 57: goja._pushArrayItem({}) compiler.go:433: 58: goja.newArray(1) compiler.go:433: 59: goja.newArray(1) compiler.go:433: 60: goja.newArray(3) compiler.go:433: 61: goja.loadVal({7}) compiler.go:433: 62: goja._pushArrayItem({}) compiler.go:433: 63: goja.loadVal({8}) compiler.go:433: 64: goja._pushArrayItem({}) compiler.go:433: 65: goja.loadVal({9}) compiler.go:433: 66: goja._pushArrayItem({}) compiler.go:433: 67: goja._pushArrayItem({}) compiler.go:433: 68: goja._pushArrayItem({}) compiler.go:433: 69: goja._pushArrayItem({}) compiler.go:433: 70: goja.call(2) compiler.go:433: 71: goja.loadVal({#1}) compiler.go:433: 72: goja.call(2) compiler.go:433: 73: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayFlatMap (0.00s) === RUN TestArrayProto compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [a] false}) compiler.go:433: 1: goja.loadDynamic(Array) compiler.go:433: 2: goja.getProp(prototype) compiler.go:433: 3: goja.initGlobalP(a) compiler.go:433: 4: goja.loadDynamic(a) compiler.go:433: 5: goja.getPropCallee(push) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja.loadVal({2}) compiler.go:433: 8: goja.loadVal({3}) compiler.go:433: 9: goja.loadVal({4}) compiler.go:433: 10: goja.loadVal({5}) compiler.go:433: 11: goja.call(5) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: goja.loadDynamic(assert) compiler.go:433: 14: goja.getPropCallee(sameValue) compiler.go:433: 15: goja.loadDynamic(a) compiler.go:433: 16: goja.getProp(length) compiler.go:433: 17: goja.loadVal({5}) compiler.go:433: 18: goja.call(2) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.loadDynamic(assert) compiler.go:433: 21: goja.getPropCallee(sameValue) compiler.go:433: 22: goja.loadDynamic(a) compiler.go:433: 23: goja.loadVal({0}) compiler.go:433: 24: goja._getElem({}) compiler.go:433: 25: goja.loadVal({1}) compiler.go:433: 26: goja.call(2) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja.loadDynamic(a) compiler.go:433: 29: goja.loadVal({3}) compiler.go:433: 30: goja.setPropP(length) compiler.go:433: 31: goja.loadDynamic(assert) compiler.go:433: 32: goja.getPropCallee(sameValue) compiler.go:433: 33: goja.loadDynamic(a) compiler.go:433: 34: goja.getProp(length) compiler.go:433: 35: goja.loadVal({3}) compiler.go:433: 36: goja.call(2) compiler.go:433: 37: goja._pop({}) compiler.go:433: 38: goja.loadDynamicCallee(assert) compiler.go:433: 39: goja.loadDynamicCallee(compareArray) compiler.go:433: 40: goja.loadDynamic(a) compiler.go:433: 41: goja.newArray(3) compiler.go:433: 42: goja.loadVal({1}) compiler.go:433: 43: goja._pushArrayItem({}) compiler.go:433: 44: goja.loadVal({2}) compiler.go:433: 45: goja._pushArrayItem({}) compiler.go:433: 46: goja.loadVal({3}) compiler.go:433: 47: goja._pushArrayItem({}) compiler.go:433: 48: goja.call(2) compiler.go:433: 49: goja.call(1) compiler.go:433: 50: goja._pop({}) compiler.go:433: 51: goja.loadDynamic(a) compiler.go:433: 52: goja.getPropCallee(shift) compiler.go:433: 53: goja.call(0) compiler.go:433: 54: goja._pop({}) compiler.go:433: 55: goja.loadDynamic(assert) compiler.go:433: 56: goja.getPropCallee(sameValue) compiler.go:433: 57: goja.loadDynamic(a) compiler.go:433: 58: goja.getProp(length) compiler.go:433: 59: goja.loadVal({2}) compiler.go:433: 60: goja.call(2) compiler.go:433: 61: goja._pop({}) compiler.go:433: 62: goja.loadDynamicCallee(assert) compiler.go:433: 63: goja.loadDynamicCallee(compareArray) compiler.go:433: 64: goja.loadDynamic(a) compiler.go:433: 65: goja.newArray(2) compiler.go:433: 66: goja.loadVal({2}) compiler.go:433: 67: goja._pushArrayItem({}) compiler.go:433: 68: goja.loadVal({3}) compiler.go:433: 69: goja._pushArrayItem({}) compiler.go:433: 70: goja.call(2) compiler.go:433: 71: goja.call(1) compiler.go:433: 72: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayProto (0.00s) === RUN TestArrayToSpliced compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [a b c] false}) compiler.go:433: 1: goja.newArray(3) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja._pushArrayItem({}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja._pushArrayItem({}) compiler.go:433: 6: goja.loadVal({3}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja.initGlobalP(a) compiler.go:433: 9: goja.loadDynamic(a) compiler.go:433: 10: goja.getPropCallee(push) compiler.go:433: 11: goja.loadVal({4}) compiler.go:433: 12: goja.call(1) compiler.go:433: 13: goja._pop({}) compiler.go:433: 14: goja.loadDynamicCallee(assert) compiler.go:433: 15: goja.loadDynamicCallee(compareArray) compiler.go:433: 16: goja.loadDynamic(a) compiler.go:433: 17: goja.newArray(4) compiler.go:433: 18: goja.loadVal({1}) compiler.go:433: 19: goja._pushArrayItem({}) compiler.go:433: 20: goja.loadVal({2}) compiler.go:433: 21: goja._pushArrayItem({}) compiler.go:433: 22: goja.loadVal({3}) compiler.go:433: 23: goja._pushArrayItem({}) compiler.go:433: 24: goja.loadVal({4}) compiler.go:433: 25: goja._pushArrayItem({}) compiler.go:433: 26: goja.call(2) compiler.go:433: 27: goja.call(1) compiler.go:433: 28: goja._pop({}) compiler.go:433: 29: goja.loadDynamic(a) compiler.go:433: 30: goja.getPropCallee(toSpliced) compiler.go:433: 31: goja.loadVal({2}) compiler.go:433: 32: goja.call(1) compiler.go:433: 33: goja.initGlobalP(b) compiler.go:433: 34: goja.loadDynamicCallee(assert) compiler.go:433: 35: goja.loadDynamicCallee(compareArray) compiler.go:433: 36: goja.loadDynamic(a) compiler.go:433: 37: goja.newArray(4) compiler.go:433: 38: goja.loadVal({1}) compiler.go:433: 39: goja._pushArrayItem({}) compiler.go:433: 40: goja.loadVal({2}) compiler.go:433: 41: goja._pushArrayItem({}) compiler.go:433: 42: goja.loadVal({3}) compiler.go:433: 43: goja._pushArrayItem({}) compiler.go:433: 44: goja.loadVal({4}) compiler.go:433: 45: goja._pushArrayItem({}) compiler.go:433: 46: goja.call(2) compiler.go:433: 47: goja.call(1) compiler.go:433: 48: goja._pop({}) compiler.go:433: 49: goja.loadDynamicCallee(assert) compiler.go:433: 50: goja.loadDynamicCallee(compareArray) compiler.go:433: 51: goja.loadDynamic(b) compiler.go:433: 52: goja.newArray(2) compiler.go:433: 53: goja.loadVal({1}) compiler.go:433: 54: goja._pushArrayItem({}) compiler.go:433: 55: goja.loadVal({2}) compiler.go:433: 56: goja._pushArrayItem({}) compiler.go:433: 57: goja.call(2) compiler.go:433: 58: goja.call(1) compiler.go:433: 59: goja._pop({}) compiler.go:433: 60: goja.loadDynamic(a) compiler.go:433: 61: goja.getPropCallee(push) compiler.go:433: 62: goja.loadVal({5}) compiler.go:433: 63: goja.call(1) compiler.go:433: 64: goja._pop({}) compiler.go:433: 65: goja.loadDynamic(a) compiler.go:433: 66: goja.getPropCallee(toSpliced) compiler.go:433: 67: goja.loadVal({1}) compiler.go:433: 68: goja.loadVal({2}) compiler.go:433: 69: goja.call(2) compiler.go:433: 70: goja.initGlobalP(c) compiler.go:433: 71: goja.loadDynamicCallee(assert) compiler.go:433: 72: goja.loadDynamicCallee(compareArray) compiler.go:433: 73: goja.loadDynamic(a) compiler.go:433: 74: goja.newArray(5) compiler.go:433: 75: goja.loadVal({1}) compiler.go:433: 76: goja._pushArrayItem({}) compiler.go:433: 77: goja.loadVal({2}) compiler.go:433: 78: goja._pushArrayItem({}) compiler.go:433: 79: goja.loadVal({3}) compiler.go:433: 80: goja._pushArrayItem({}) compiler.go:433: 81: goja.loadVal({4}) compiler.go:433: 82: goja._pushArrayItem({}) compiler.go:433: 83: goja.loadVal({5}) compiler.go:433: 84: goja._pushArrayItem({}) compiler.go:433: 85: goja.call(2) compiler.go:433: 86: goja.call(1) compiler.go:433: 87: goja._pop({}) compiler.go:433: 88: goja.loadDynamicCallee(assert) compiler.go:433: 89: goja.loadDynamicCallee(compareArray) compiler.go:433: 90: goja.loadDynamic(c) compiler.go:433: 91: goja.newArray(3) compiler.go:433: 92: goja.loadVal({1}) compiler.go:433: 93: goja._pushArrayItem({}) compiler.go:433: 94: goja.loadVal({4}) compiler.go:433: 95: goja._pushArrayItem({}) compiler.go:433: 96: goja.loadVal({5}) compiler.go:433: 97: goja._pushArrayItem({}) compiler.go:433: 98: goja.call(2) compiler.go:433: 99: goja.call(1) compiler.go:433: 100: goja._pop({}) compiler.go:433: 101: goja.loadDynamicCallee(assert) compiler.go:433: 102: goja.loadDynamicCallee(compareArray) compiler.go:433: 103: goja.loadDynamic(a) compiler.go:433: 104: goja.getPropCallee(toSpliced) compiler.go:433: 105: goja.loadVal({4}) compiler.go:433: 106: goja.loadVal({2}) compiler.go:433: 107: goja.loadVal({a}) compiler.go:433: 108: goja.loadVal({b}) compiler.go:433: 109: goja.call(4) compiler.go:433: 110: goja.newArray(6) compiler.go:433: 111: goja.loadVal({1}) compiler.go:433: 112: goja._pushArrayItem({}) compiler.go:433: 113: goja.loadVal({2}) compiler.go:433: 114: goja._pushArrayItem({}) compiler.go:433: 115: goja.loadVal({3}) compiler.go:433: 116: goja._pushArrayItem({}) compiler.go:433: 117: goja.loadVal({4}) compiler.go:433: 118: goja._pushArrayItem({}) compiler.go:433: 119: goja.loadVal({a}) compiler.go:433: 120: goja._pushArrayItem({}) compiler.go:433: 121: goja.loadVal({b}) compiler.go:433: 122: goja._pushArrayItem({}) compiler.go:433: 123: goja.call(2) compiler.go:433: 124: goja.call(1) compiler.go:433: 125: goja._pop({}) compiler.go:433: 126: goja.loadDynamicCallee(assert) compiler.go:433: 127: goja.loadDynamicCallee(compareArray) compiler.go:433: 128: goja.loadDynamic(a) compiler.go:433: 129: goja.newArray(5) compiler.go:433: 130: goja.loadVal({1}) compiler.go:433: 131: goja._pushArrayItem({}) compiler.go:433: 132: goja.loadVal({2}) compiler.go:433: 133: goja._pushArrayItem({}) compiler.go:433: 134: goja.loadVal({3}) compiler.go:433: 135: goja._pushArrayItem({}) compiler.go:433: 136: goja.loadVal({4}) compiler.go:433: 137: goja._pushArrayItem({}) compiler.go:433: 138: goja.loadVal({5}) compiler.go:433: 139: goja._pushArrayItem({}) compiler.go:433: 140: goja.call(2) compiler.go:433: 141: goja.call(1) compiler.go:433: 142: goja._pop({}) compiler.go:433: 143: goja.loadDynamicCallee(assert) compiler.go:433: 144: goja.loadDynamicCallee(compareArray) compiler.go:433: 145: goja.loadDynamic(a) compiler.go:433: 146: goja.getPropCallee(toSpliced) compiler.go:433: 147: goja.loadVal({2}) compiler.go:433: 148: goja._neg({}) compiler.go:433: 149: goja.loadVal({2}) compiler.go:433: 150: goja.call(2) compiler.go:433: 151: goja.newArray(3) compiler.go:433: 152: goja.loadVal({1}) compiler.go:433: 153: goja._pushArrayItem({}) compiler.go:433: 154: goja.loadVal({2}) compiler.go:433: 155: goja._pushArrayItem({}) compiler.go:433: 156: goja.loadVal({3}) compiler.go:433: 157: goja._pushArrayItem({}) compiler.go:433: 158: goja.call(2) compiler.go:433: 159: goja.call(1) compiler.go:433: 160: goja._pop({}) compiler.go:433: 161: goja.loadDynamicCallee(assert) compiler.go:433: 162: goja.loadDynamicCallee(compareArray) compiler.go:433: 163: goja.loadDynamic(a) compiler.go:433: 164: goja.newArray(5) compiler.go:433: 165: goja.loadVal({1}) compiler.go:433: 166: goja._pushArrayItem({}) compiler.go:433: 167: goja.loadVal({2}) compiler.go:433: 168: goja._pushArrayItem({}) compiler.go:433: 169: goja.loadVal({3}) compiler.go:433: 170: goja._pushArrayItem({}) compiler.go:433: 171: goja.loadVal({4}) compiler.go:433: 172: goja._pushArrayItem({}) compiler.go:433: 173: goja.loadVal({5}) compiler.go:433: 174: goja._pushArrayItem({}) compiler.go:433: 175: goja.call(2) compiler.go:433: 176: goja.call(1) compiler.go:433: 177: goja._pop({}) compiler.go:433: 178: goja.loadDynamicCallee(assert) compiler.go:433: 179: goja.loadDynamicCallee(compareArray) compiler.go:433: 180: goja.loadDynamic(a) compiler.go:433: 181: goja.getPropCallee(toSpliced) compiler.go:433: 182: goja.loadVal({2}) compiler.go:433: 183: goja.loadVal({10}) compiler.go:433: 184: goja.call(2) compiler.go:433: 185: goja.newArray(2) compiler.go:433: 186: goja.loadVal({1}) compiler.go:433: 187: goja._pushArrayItem({}) compiler.go:433: 188: goja.loadVal({2}) compiler.go:433: 189: goja._pushArrayItem({}) compiler.go:433: 190: goja.call(2) compiler.go:433: 191: goja.call(1) compiler.go:433: 192: goja._pop({}) compiler.go:433: 193: goja.loadDynamicCallee(assert) compiler.go:433: 194: goja.loadDynamicCallee(compareArray) compiler.go:433: 195: goja.loadDynamic(a) compiler.go:433: 196: goja.newArray(5) compiler.go:433: 197: goja.loadVal({1}) compiler.go:433: 198: goja._pushArrayItem({}) compiler.go:433: 199: goja.loadVal({2}) compiler.go:433: 200: goja._pushArrayItem({}) compiler.go:433: 201: goja.loadVal({3}) compiler.go:433: 202: goja._pushArrayItem({}) compiler.go:433: 203: goja.loadVal({4}) compiler.go:433: 204: goja._pushArrayItem({}) compiler.go:433: 205: goja.loadVal({5}) compiler.go:433: 206: goja._pushArrayItem({}) compiler.go:433: 207: goja.call(2) compiler.go:433: 208: goja.call(1) compiler.go:433: 209: goja._pop({}) compiler.go:433: 210: goja.loadDynamicCallee(assert) compiler.go:433: 211: goja.loadDynamicCallee(compareArray) compiler.go:433: 212: goja.loadDynamic(a) compiler.go:433: 213: goja.getPropCallee(toSpliced) compiler.go:433: 214: goja.loadVal({1}) compiler.go:433: 215: goja.loadVal({0}) compiler.go:433: 216: goja.loadVal({a}) compiler.go:433: 217: goja.call(3) compiler.go:433: 218: goja.newArray(6) compiler.go:433: 219: goja.loadVal({1}) compiler.go:433: 220: goja._pushArrayItem({}) compiler.go:433: 221: goja.loadVal({a}) compiler.go:433: 222: goja._pushArrayItem({}) compiler.go:433: 223: goja.loadVal({2}) compiler.go:433: 224: goja._pushArrayItem({}) compiler.go:433: 225: goja.loadVal({3}) compiler.go:433: 226: goja._pushArrayItem({}) compiler.go:433: 227: goja.loadVal({4}) compiler.go:433: 228: goja._pushArrayItem({}) compiler.go:433: 229: goja.loadVal({5}) compiler.go:433: 230: goja._pushArrayItem({}) compiler.go:433: 231: goja.call(2) compiler.go:433: 232: goja.call(1) compiler.go:433: 233: goja._pop({}) compiler.go:433: 234: goja.loadDynamicCallee(assert) compiler.go:433: 235: goja.loadDynamicCallee(compareArray) compiler.go:433: 236: goja.loadDynamic(a) compiler.go:433: 237: goja.newArray(5) compiler.go:433: 238: goja.loadVal({1}) compiler.go:433: 239: goja._pushArrayItem({}) compiler.go:433: 240: goja.loadVal({2}) compiler.go:433: 241: goja._pushArrayItem({}) compiler.go:433: 242: goja.loadVal({3}) compiler.go:433: 243: goja._pushArrayItem({}) compiler.go:433: 244: goja.loadVal({4}) compiler.go:433: 245: goja._pushArrayItem({}) compiler.go:433: 246: goja.loadVal({5}) compiler.go:433: 247: goja._pushArrayItem({}) compiler.go:433: 248: goja.call(2) compiler.go:433: 249: goja.call(1) compiler.go:433: 250: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayToSpliced (0.00s) === RUN TestBigInt compiler.go:433: 0: goja.loadVal({0xc0001c7a80}) compiler.go:433: 1: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestBigInt (0.00s) === RUN TestBigIntExportTo === RUN TestBigIntExportTo/bigint_exportType === RUN TestBigIntExportTo/bigint --- PASS: TestBigIntExportTo (0.00s) --- PASS: TestBigIntExportTo/bigint_exportType (0.00s) --- PASS: TestBigIntExportTo/bigint (0.00s) === RUN TestBigIntFormat compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(sameValue) compiler.go:433: 2: goja.loadVal({0xc000250000}) compiler.go:433: 3: goja.getPropCallee(toString) compiler.go:433: 4: goja.loadDynamic(undefined) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja.loadVal({radius undefined}) compiler.go:433: 8: goja.call(3) compiler.go:433: 9: goja._pop({}) compiler.go:433: 10: goja.loadDynamic(assert) compiler.go:433: 11: goja.getPropCallee(throws) compiler.go:433: 12: goja.loadDynamic(RangeError) compiler.go:433: 13: *goja.newArrowFunc(&{{0xc000485220 () => { (1n).toString(-1); } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({0xc000250060}) compiler.go:433: > 2: goja.getPropCallee(toString) compiler.go:433: > 3: goja.loadVal({1}) compiler.go:433: > 4: goja._neg({}) compiler.go:433: > 5: goja.call(1) compiler.go:433: > 6: goja._pop({}) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 14: goja.loadVal({radius -1}) compiler.go:433: 15: goja.call(3) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadDynamic(assert) compiler.go:433: 18: goja.getPropCallee(throws) compiler.go:433: 19: goja.loadDynamic(RangeError) compiler.go:433: 20: *goja.newArrowFunc(&{{0xc000485270 () => { (1n).toString(37); } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({0xc0002500e0}) compiler.go:433: > 2: goja.getPropCallee(toString) compiler.go:433: > 3: goja.loadVal({37}) compiler.go:433: > 4: goja.call(1) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 21: goja.loadVal({radius 37}) compiler.go:433: 22: goja.call(3) compiler.go:433: 23: goja._pop({}) compiler.go:433: 24: goja.loadDynamic(assert) compiler.go:433: 25: goja.getPropCallee(sameValue) compiler.go:433: 26: goja.loadVal({0xc000250140}) compiler.go:433: 27: goja.getPropCallee(toString) compiler.go:433: 28: goja.loadVal({2}) compiler.go:433: 29: goja.call(1) compiler.go:433: 30: goja.loadVal({1}) compiler.go:433: 31: goja.loadVal({radius 2}) compiler.go:433: 32: goja.call(3) compiler.go:433: 33: goja._pop({}) compiler.go:433: 34: goja.loadDynamic(assert) compiler.go:433: 35: goja.getPropCallee(sameValue) compiler.go:433: 36: goja.loadVal({0xc0002501a0}) compiler.go:433: 37: goja.getPropCallee(toString) compiler.go:433: 38: goja.loadVal({3}) compiler.go:433: 39: goja.call(1) compiler.go:433: 40: goja.loadVal({101}) compiler.go:433: 41: goja.loadVal({radius 3}) compiler.go:433: 42: goja.call(3) compiler.go:433: 43: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestBigIntFormat (0.00s) === RUN TestBigIntOperator compiler.go:433: 0: *goja.bindGlobal(&{[] [] [a] [] false}) compiler.go:433: 1: goja.loadDynamic(assert) compiler.go:433: 2: goja.getPropCallee(throws) compiler.go:433: 3: goja.loadDynamic(TypeError) compiler.go:433: 4: *goja.newArrowFunc(&{{0xc000020aa0 () => { 1 - 1n; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 5: goja.loadVal({mix type add}) compiler.go:433: 6: goja.call(3) compiler.go:433: 7: goja._pop({}) compiler.go:433: 8: goja.loadDynamic(assert) compiler.go:433: 9: goja.getPropCallee(throws) compiler.go:433: 10: goja.loadDynamic(TypeError) compiler.go:433: 11: *goja.newArrowFunc(&{{0xc000020b90 () => { 1n - 1; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 12: goja.loadVal({mix type add}) compiler.go:433: 13: goja.call(3) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja.loadDynamic(assert) compiler.go:433: 16: goja.getPropCallee(throws) compiler.go:433: 17: goja.loadDynamic(TypeError) compiler.go:433: 18: *goja.newArrowFunc(&{{0xc000020c80 () => { 1n + 1; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 19: goja.loadVal({mix type sub}) compiler.go:433: 20: goja.call(3) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.loadDynamic(assert) compiler.go:433: 23: goja.getPropCallee(throws) compiler.go:433: 24: goja.loadDynamic(TypeError) compiler.go:433: 25: *goja.newArrowFunc(&{{0xc000020d20 () => { 1 + 1n; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 26: goja.loadVal({mix type sub}) compiler.go:433: 27: goja.call(3) compiler.go:433: 28: goja._pop({}) compiler.go:433: 29: goja.loadDynamic(assert) compiler.go:433: 30: goja.getPropCallee(throws) compiler.go:433: 31: goja.loadDynamic(TypeError) compiler.go:433: 32: *goja.newArrowFunc(&{{0xc000020dc0 () => { 1 * 1n; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 33: goja.loadVal({mix type mul}) compiler.go:433: 34: goja.call(3) compiler.go:433: 35: goja._pop({}) compiler.go:433: 36: goja.loadDynamic(assert) compiler.go:433: 37: goja.getPropCallee(throws) compiler.go:433: 38: goja.loadDynamic(TypeError) compiler.go:433: 39: *goja.newArrowFunc(&{{0xc000020e60 () => { 1n * 1; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 40: goja.loadVal({mix type mul}) compiler.go:433: 41: goja.call(3) compiler.go:433: 42: goja._pop({}) compiler.go:433: 43: goja.loadDynamic(assert) compiler.go:433: 44: goja.getPropCallee(throws) compiler.go:433: 45: goja.loadDynamic(TypeError) compiler.go:433: 46: *goja.newArrowFunc(&{{0xc000020f00 () => { 1 / 1n; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 47: goja.loadVal({mix type div}) compiler.go:433: 48: goja.call(3) compiler.go:433: 49: goja._pop({}) compiler.go:433: 50: goja.loadDynamic(assert) compiler.go:433: 51: goja.getPropCallee(throws) compiler.go:433: 52: goja.loadDynamic(TypeError) compiler.go:433: 53: *goja.newArrowFunc(&{{0xc000020fa0 () => { 1n / 1; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 54: goja.loadVal({mix type div}) compiler.go:433: 55: goja.call(3) compiler.go:433: 56: goja._pop({}) compiler.go:433: 57: goja.loadDynamic(assert) compiler.go:433: 58: goja.getPropCallee(throws) compiler.go:433: 59: goja.loadDynamic(TypeError) compiler.go:433: 60: *goja.newArrowFunc(&{{0xc000021040 () => { 1 % 1n; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 61: goja.loadVal({mix type mod}) compiler.go:433: 62: goja.call(3) compiler.go:433: 63: goja._pop({}) compiler.go:433: 64: goja.loadDynamic(assert) compiler.go:433: 65: goja.getPropCallee(throws) compiler.go:433: 66: goja.loadDynamic(TypeError) compiler.go:433: 67: *goja.newArrowFunc(&{{0xc0000211d0 () => { 1n % 1; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 68: goja.loadVal({mix type mod}) compiler.go:433: 69: goja.call(3) compiler.go:433: 70: goja._pop({}) compiler.go:433: 71: goja.loadDynamic(assert) compiler.go:433: 72: goja.getPropCallee(throws) compiler.go:433: 73: goja.loadDynamic(TypeError) compiler.go:433: 74: *goja.newArrowFunc(&{{0xc000021310 () => { 1n ** 1; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 75: goja.loadVal({mix type exp}) compiler.go:433: 76: goja.call(3) compiler.go:433: 77: goja._pop({}) compiler.go:433: 78: goja.loadDynamic(assert) compiler.go:433: 79: goja.getPropCallee(throws) compiler.go:433: 80: goja.loadDynamic(TypeError) compiler.go:433: 81: *goja.newArrowFunc(&{{0xc0000214a0 () => { 1 ** 1n; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 82: goja.loadVal({mix type exp}) compiler.go:433: 83: goja.call(3) compiler.go:433: 84: goja._pop({}) compiler.go:433: 85: goja.loadDynamic(assert) compiler.go:433: 86: goja.getPropCallee(throws) compiler.go:433: 87: goja.loadDynamic(TypeError) compiler.go:433: 88: *goja.newArrowFunc(&{{0xc000021540 () => { 1 & 1n; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 89: goja.loadVal({mix type and}) compiler.go:433: 90: goja.call(3) compiler.go:433: 91: goja._pop({}) compiler.go:433: 92: goja.loadDynamic(assert) compiler.go:433: 93: goja.getPropCallee(throws) compiler.go:433: 94: goja.loadDynamic(TypeError) compiler.go:433: 95: *goja.newArrowFunc(&{{0xc0000215e0 () => { 1n & 1; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 96: goja.loadVal({mix type and}) compiler.go:433: 97: goja.call(3) compiler.go:433: 98: goja._pop({}) compiler.go:433: 99: goja.loadDynamic(assert) compiler.go:433: 100: goja.getPropCallee(throws) compiler.go:433: 101: goja.loadDynamic(TypeError) compiler.go:433: 102: *goja.newArrowFunc(&{{0xc000021680 () => { 1 | 1n; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 103: goja.loadVal({mix type or}) compiler.go:433: 104: goja.call(3) compiler.go:433: 105: goja._pop({}) compiler.go:433: 106: goja.loadDynamic(assert) compiler.go:433: 107: goja.getPropCallee(throws) compiler.go:433: 108: goja.loadDynamic(TypeError) compiler.go:433: 109: *goja.newArrowFunc(&{{0xc000021720 () => { 1n | 1; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 110: goja.loadVal({mix type or}) compiler.go:433: 111: goja.call(3) compiler.go:433: 112: goja._pop({}) compiler.go:433: 113: goja.loadDynamic(assert) compiler.go:433: 114: goja.getPropCallee(throws) compiler.go:433: 115: goja.loadDynamic(TypeError) compiler.go:433: 116: *goja.newArrowFunc(&{{0xc000021810 () => { 1 ^ 1n; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 117: goja.loadVal({mix type xor}) compiler.go:433: 118: goja.call(3) compiler.go:433: 119: goja._pop({}) compiler.go:433: 120: goja.loadDynamic(assert) compiler.go:433: 121: goja.getPropCallee(throws) compiler.go:433: 122: goja.loadDynamic(TypeError) compiler.go:433: 123: *goja.newArrowFunc(&{{0xc0000218b0 () => { 1n ^ 1; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 124: goja.loadVal({mix type xor}) compiler.go:433: 125: goja.call(3) compiler.go:433: 126: goja._pop({}) compiler.go:433: 127: goja.loadDynamic(assert) compiler.go:433: 128: goja.getPropCallee(throws) compiler.go:433: 129: goja.loadDynamic(TypeError) compiler.go:433: 130: *goja.newArrowFunc(&{{0xc000021950 () => { 1 << 1n; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 131: goja.loadVal({mix type lsh}) compiler.go:433: 132: goja.call(3) compiler.go:433: 133: goja._pop({}) compiler.go:433: 134: goja.loadDynamic(assert) compiler.go:433: 135: goja.getPropCallee(throws) compiler.go:433: 136: goja.loadDynamic(TypeError) compiler.go:433: 137: *goja.newArrowFunc(&{{0xc0000219f0 () => { 1n << 1; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 138: goja.loadVal({mix type lsh}) compiler.go:433: 139: goja.call(3) compiler.go:433: 140: goja._pop({}) compiler.go:433: 141: goja.loadDynamic(assert) compiler.go:433: 142: goja.getPropCallee(throws) compiler.go:433: 143: goja.loadDynamic(TypeError) compiler.go:433: 144: *goja.newArrowFunc(&{{0xc000021a90 () => { 1 >> 1n; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 145: goja.loadVal({mix type rsh}) compiler.go:433: 146: goja.call(3) compiler.go:433: 147: goja._pop({}) compiler.go:433: 148: goja.loadDynamic(assert) compiler.go:433: 149: goja.getPropCallee(throws) compiler.go:433: 150: goja.loadDynamic(TypeError) compiler.go:433: 151: *goja.newArrowFunc(&{{0xc000021b30 () => { 1n >> 1; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({Cannot mix BigInt and other types, use explicit conversions}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 152: goja.loadVal({mix type rsh}) compiler.go:433: 153: goja.call(3) compiler.go:433: 154: goja._pop({}) compiler.go:433: 155: goja.loadDynamic(assert) compiler.go:433: 156: goja.getPropCallee(throws) compiler.go:433: 157: goja.loadDynamic(TypeError) compiler.go:433: 158: *goja.newArrowFunc(&{{0xc000021bd0 () => { 1 >>> 1n; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({BigInts have no unsigned right shift, use >> instead}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 159: goja.loadVal({mix type ursh}) compiler.go:433: 160: goja.call(3) compiler.go:433: 161: goja._pop({}) compiler.go:433: 162: goja.loadDynamic(assert) compiler.go:433: 163: goja.getPropCallee(throws) compiler.go:433: 164: goja.loadDynamic(TypeError) compiler.go:433: 165: *goja.newArrowFunc(&{{0xc000021c70 () => { 1n >>> 1; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({BigInts have no unsigned right shift, use >> instead}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 166: goja.loadVal({mix type ursh}) compiler.go:433: 167: goja.call(3) compiler.go:433: 168: goja._pop({}) compiler.go:433: 169: goja.loadDynamic(assert) compiler.go:433: 170: goja.getPropCallee(sameValue) compiler.go:433: 171: goja.loadVal({0xc000251900}) compiler.go:433: 172: goja.loadVal({0xc000251940}) compiler.go:433: 173: goja._add({}) compiler.go:433: 174: goja.loadVal({0xc000251980}) compiler.go:433: 175: goja.loadVal({add}) compiler.go:433: 176: goja.call(3) compiler.go:433: 177: goja._pop({}) compiler.go:433: 178: goja.loadDynamic(assert) compiler.go:433: 179: goja.getPropCallee(sameValue) compiler.go:433: 180: goja.loadVal({0xc0002519e0}) compiler.go:433: 181: goja.loadVal({0xc000251a20}) compiler.go:433: 182: goja._sub({}) compiler.go:433: 183: goja.loadVal({0xc000251a60}) compiler.go:433: 184: goja.loadVal({sub}) compiler.go:433: 185: goja.call(3) compiler.go:433: 186: goja._pop({}) compiler.go:433: 187: goja.loadDynamic(assert) compiler.go:433: 188: goja.getPropCallee(sameValue) compiler.go:433: 189: goja.loadVal({0xc000251ac0}) compiler.go:433: 190: goja.loadVal({0xc000251b00}) compiler.go:433: 191: goja._mul({}) compiler.go:433: 192: goja.loadVal({0xc000251b40}) compiler.go:433: 193: goja.loadVal({mul}) compiler.go:433: 194: goja.call(3) compiler.go:433: 195: goja._pop({}) compiler.go:433: 196: goja.loadDynamic(assert) compiler.go:433: 197: goja.getPropCallee(sameValue) compiler.go:433: 198: goja.loadVal({0xc000251ba0}) compiler.go:433: 199: goja.loadVal({0xc000251be0}) compiler.go:433: 200: goja._div({}) compiler.go:433: 201: goja.loadVal({0xc000251c20}) compiler.go:433: 202: goja.loadVal({div}) compiler.go:433: 203: goja.call(3) compiler.go:433: 204: goja._pop({}) compiler.go:433: 205: goja.loadDynamic(assert) compiler.go:433: 206: goja.getPropCallee(sameValue) compiler.go:433: 207: goja.loadVal({0xc000251c80}) compiler.go:433: 208: goja.loadVal({0xc000251cc0}) compiler.go:433: 209: goja._mod({}) compiler.go:433: 210: goja.loadVal({0xc000251d00}) compiler.go:433: 211: goja.loadVal({mod}) compiler.go:433: 212: goja.call(3) compiler.go:433: 213: goja._pop({}) compiler.go:433: 214: goja.loadDynamic(assert) compiler.go:433: 215: goja.getPropCallee(sameValue) compiler.go:433: 216: goja.loadVal({0xc000251d60}) compiler.go:433: 217: goja.loadVal({0xc000251da0}) compiler.go:433: 218: goja._exp({}) compiler.go:433: 219: goja.loadVal({0xc000251de0}) compiler.go:433: 220: goja.loadVal({exp}) compiler.go:433: 221: goja.call(3) compiler.go:433: 222: goja._pop({}) compiler.go:433: 223: goja.loadDynamic(assert) compiler.go:433: 224: goja.getPropCallee(sameValue) compiler.go:433: 225: goja.loadVal({0xc000251e40}) compiler.go:433: 226: goja.loadVal({0xc000251e80}) compiler.go:433: 227: goja._and({}) compiler.go:433: 228: goja.loadVal({0xc000251ec0}) compiler.go:433: 229: goja.loadVal({and}) compiler.go:433: 230: goja.call(3) compiler.go:433: 231: goja._pop({}) compiler.go:433: 232: goja.loadDynamic(assert) compiler.go:433: 233: goja.getPropCallee(sameValue) compiler.go:433: 234: goja.loadVal({0xc000251f20}) compiler.go:433: 235: goja.loadVal({0xc000251f60}) compiler.go:433: 236: goja._or({}) compiler.go:433: 237: goja.loadVal({0xc00026c020}) compiler.go:433: 238: goja.loadVal({or}) compiler.go:433: 239: goja.call(3) compiler.go:433: 240: goja._pop({}) compiler.go:433: 241: goja.loadDynamic(assert) compiler.go:433: 242: goja.getPropCallee(sameValue) compiler.go:433: 243: goja.loadVal({0xc00026c080}) compiler.go:433: 244: goja.loadVal({0xc00026c0c0}) compiler.go:433: 245: goja._xor({}) compiler.go:433: 246: goja.loadVal({0xc00026c100}) compiler.go:433: 247: goja.loadVal({xor}) compiler.go:433: 248: goja.call(3) compiler.go:433: 249: goja._pop({}) compiler.go:433: 250: goja.loadDynamic(assert) compiler.go:433: 251: goja.getPropCallee(sameValue) compiler.go:433: 252: goja.loadVal({0xc00026c160}) compiler.go:433: 253: goja.loadVal({0xc00026c1a0}) compiler.go:433: 254: goja._sal({}) compiler.go:433: 255: goja.loadVal({0xc00026c1e0}) compiler.go:433: 256: goja.loadVal({lsh}) compiler.go:433: 257: goja.call(3) compiler.go:433: 258: goja._pop({}) compiler.go:433: 259: goja.loadDynamic(assert) compiler.go:433: 260: goja.getPropCallee(sameValue) compiler.go:433: 261: goja.loadVal({0xc00026c240}) compiler.go:433: 262: goja.loadVal({0xc000278fe0}) compiler.go:433: 263: goja._sal({}) compiler.go:433: 264: goja.loadVal({0xc00026c2c0}) compiler.go:433: 265: goja.loadVal({neg lsh}) compiler.go:433: 266: goja.call(3) compiler.go:433: 267: goja._pop({}) compiler.go:433: 268: goja.loadDynamic(assert) compiler.go:433: 269: goja.getPropCallee(sameValue) compiler.go:433: 270: goja.loadVal({0xc00026c320}) compiler.go:433: 271: goja.loadVal({0xc00026c360}) compiler.go:433: 272: goja._sar({}) compiler.go:433: 273: goja.loadVal({0xc00026c3a0}) compiler.go:433: 274: goja.loadVal({rsh}) compiler.go:433: 275: goja.call(3) compiler.go:433: 276: goja._pop({}) compiler.go:433: 277: goja.loadDynamic(assert) compiler.go:433: 278: goja.getPropCallee(sameValue) compiler.go:433: 279: goja.loadVal({0xc00026c400}) compiler.go:433: 280: goja.loadVal({0xc000279160}) compiler.go:433: 281: goja._sar({}) compiler.go:433: 282: goja.loadVal({0xc00026c480}) compiler.go:433: 283: goja.loadVal({neg rsh}) compiler.go:433: 284: goja.call(3) compiler.go:433: 285: goja._pop({}) compiler.go:433: 286: goja.loadVal({0xc00026c500}) compiler.go:433: 287: goja.initGlobalP(a) compiler.go:433: 288: goja.loadDynamic(assert) compiler.go:433: 289: goja.getPropCallee(sameValue) compiler.go:433: 290: goja.resolveVar1(a) compiler.go:433: 291: goja._loadUndef({}) compiler.go:433: 292: goja._getValue({}) compiler.go:433: 293: goja._toNumber({}) compiler.go:433: 294: goja._inc({}) compiler.go:433: 295: goja.rdupN(1) compiler.go:433: 296: goja._putValue({}) compiler.go:433: 297: goja._pop({}) compiler.go:433: 298: goja.loadVal({0xc00026c540}) compiler.go:433: 299: goja.loadVal({inc}) compiler.go:433: 300: goja.call(3) compiler.go:433: 301: goja._pop({}) compiler.go:433: 302: goja.loadDynamic(assert) compiler.go:433: 303: goja.getPropCallee(sameValue) compiler.go:433: 304: goja.resolveVar1(a) compiler.go:433: 305: goja._loadUndef({}) compiler.go:433: 306: goja._getValue({}) compiler.go:433: 307: goja._toNumber({}) compiler.go:433: 308: goja._dec({}) compiler.go:433: 309: goja.rdupN(1) compiler.go:433: 310: goja._putValue({}) compiler.go:433: 311: goja._pop({}) compiler.go:433: 312: goja.loadVal({0xc00026c5a0}) compiler.go:433: 313: goja.loadVal({dec}) compiler.go:433: 314: goja.call(3) compiler.go:433: 315: goja._pop({}) compiler.go:433: 316: goja.loadDynamic(assert) compiler.go:433: 317: goja.getPropCallee(sameValue) compiler.go:433: 318: goja.loadDynamicCallee(Object) compiler.go:433: 319: goja.loadVal({0xc00026c600}) compiler.go:433: 320: goja.call(1) compiler.go:433: 321: goja.loadVal({0xc00026c640}) compiler.go:433: 322: goja._sub({}) compiler.go:433: 323: goja.loadVal({0xc00026c680}) compiler.go:433: 324: goja.loadVal({primitive sub}) compiler.go:433: 325: goja.call(3) compiler.go:433: 326: goja._pop({}) compiler.go:433: 327: goja.loadDynamic(assert) compiler.go:433: 328: goja.getPropCallee(sameValue) compiler.go:433: 329: goja.loadDynamicCallee(Object) compiler.go:433: 330: goja.loadDynamicCallee(Object) compiler.go:433: 331: goja.loadVal({0xc00026c6e0}) compiler.go:433: 332: goja.call(1) compiler.go:433: 333: goja.call(1) compiler.go:433: 334: goja.loadVal({0xc00026c720}) compiler.go:433: 335: goja._sub({}) compiler.go:433: 336: goja.loadVal({0xc00026c760}) compiler.go:433: 337: goja.loadVal({primitive sub}) compiler.go:433: 338: goja.call(3) compiler.go:433: 339: goja._pop({}) compiler.go:433: 340: goja.loadDynamic(assert) compiler.go:433: 341: goja.getPropCallee(sameValue) compiler.go:433: 342: goja._newObject({}) compiler.go:433: 343: goja.loadDynamic(Symbol) compiler.go:433: 344: goja.getProp(toPrimitive) compiler.go:433: 345: goja._toPropertyKey({}) compiler.go:433: 346: *goja.newArrowFunc(&{{0xc000021db0 () => 1n 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({0xc00026c7c0}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 347: goja._setElem1Named({}) compiler.go:433: 348: goja.loadVal({0xc00026c800}) compiler.go:433: 349: goja._sub({}) compiler.go:433: 350: goja.loadVal({0xc00026c840}) compiler.go:433: 351: goja.loadVal({primitive sub}) compiler.go:433: 352: goja.call(3) compiler.go:433: 353: goja._pop({}) compiler.go:433: 354: goja.loadDynamic(assert) compiler.go:433: 355: goja.getPropCallee(sameValue) compiler.go:433: 356: goja._newObject({}) compiler.go:433: 357: *goja.newArrowFunc(&{{0xc000021e00 valueOf () => 1n 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({0xc00026c8a0}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 358: goja.putProp(valueOf) compiler.go:433: 359: goja.loadVal({0xc00026c8e0}) compiler.go:433: 360: goja._sub({}) compiler.go:433: 361: goja.loadVal({0xc00026c920}) compiler.go:433: 362: goja.loadVal({valueOf sub}) compiler.go:433: 363: goja.call(3) compiler.go:433: 364: goja._pop({}) compiler.go:433: 365: goja.loadDynamic(assert) compiler.go:433: 366: goja.getPropCallee(sameValue) compiler.go:433: 367: goja.loadVal({0xc00026c980}) compiler.go:433: 368: goja.loadVal({0}) compiler.go:433: 369: goja._op_gt({}) compiler.go:433: 370: goja.loadVal({true}) compiler.go:433: 371: goja.loadVal({gt}) compiler.go:433: 372: goja.call(3) compiler.go:433: 373: goja._pop({}) compiler.go:433: 374: goja.loadDynamic(assert) compiler.go:433: 375: goja.getPropCallee(sameValue) compiler.go:433: 376: goja.loadVal({0}) compiler.go:433: 377: goja.loadVal({0xc00026ca00}) compiler.go:433: 378: goja._op_gt({}) compiler.go:433: 379: goja.loadVal({false}) compiler.go:433: 380: goja.loadVal({gt}) compiler.go:433: 381: goja.call(3) compiler.go:433: 382: goja._pop({}) compiler.go:433: 383: goja.loadDynamic(assert) compiler.go:433: 384: goja.getPropCallee(sameValue) compiler.go:433: 385: goja.loadDynamicCallee(Object) compiler.go:433: 386: goja.loadVal({0xc00026ca80}) compiler.go:433: 387: goja.call(1) compiler.go:433: 388: goja.loadVal({0}) compiler.go:433: 389: goja._op_gt({}) compiler.go:433: 390: goja.loadVal({true}) compiler.go:433: 391: goja.loadVal({gt}) compiler.go:433: 392: goja.call(3) compiler.go:433: 393: goja._pop({}) compiler.go:433: 394: goja.loadDynamic(assert) compiler.go:433: 395: goja.getPropCallee(sameValue) compiler.go:433: 396: goja.loadVal({0}) compiler.go:433: 397: goja.loadDynamicCallee(Object) compiler.go:433: 398: goja.loadVal({0xc00026cb00}) compiler.go:433: 399: goja.call(1) compiler.go:433: 400: goja._op_gt({}) compiler.go:433: 401: goja.loadVal({false}) compiler.go:433: 402: goja.loadVal({gt}) compiler.go:433: 403: goja.call(3) compiler.go:433: 404: goja._pop({}) compiler.go:433: 405: goja.loadDynamic(assert) compiler.go:433: 406: goja.getPropCallee(sameValue) compiler.go:433: 407: goja.loadVal({0xc00026cb80}) compiler.go:433: 408: goja.loadVal({0}) compiler.go:433: 409: goja._op_lt({}) compiler.go:433: 410: goja.loadVal({false}) compiler.go:433: 411: goja.loadVal({lt}) compiler.go:433: 412: goja.call(3) compiler.go:433: 413: goja._pop({}) compiler.go:433: 414: goja.loadDynamic(assert) compiler.go:433: 415: goja.getPropCallee(sameValue) compiler.go:433: 416: goja.loadVal({0}) compiler.go:433: 417: goja.loadVal({0xc00026cc00}) compiler.go:433: 418: goja._op_lt({}) compiler.go:433: 419: goja.loadVal({true}) compiler.go:433: 420: goja.loadVal({lt}) compiler.go:433: 421: goja.call(3) compiler.go:433: 422: goja._pop({}) compiler.go:433: 423: goja.loadDynamic(assert) compiler.go:433: 424: goja.getPropCallee(sameValue) compiler.go:433: 425: goja.loadDynamicCallee(Object) compiler.go:433: 426: goja.loadVal({0xc00026cc80}) compiler.go:433: 427: goja.call(1) compiler.go:433: 428: goja.loadVal({0}) compiler.go:433: 429: goja._op_lt({}) compiler.go:433: 430: goja.loadVal({false}) compiler.go:433: 431: goja.loadVal({lt}) compiler.go:433: 432: goja.call(3) compiler.go:433: 433: goja._pop({}) compiler.go:433: 434: goja.loadDynamic(assert) compiler.go:433: 435: goja.getPropCallee(sameValue) compiler.go:433: 436: goja.loadVal({0}) compiler.go:433: 437: goja.loadDynamicCallee(Object) compiler.go:433: 438: goja.loadVal({0xc00026cd00}) compiler.go:433: 439: goja.call(1) compiler.go:433: 440: goja._op_lt({}) compiler.go:433: 441: goja.loadVal({true}) compiler.go:433: 442: goja.loadVal({lt}) compiler.go:433: 443: goja.call(3) compiler.go:433: 444: goja._pop({}) compiler.go:433: 445: goja.loadDynamic(assert) compiler.go:433: 446: goja.getPropCallee(sameValue) compiler.go:433: 447: goja.loadVal({0xc00026cd80}) compiler.go:433: 448: goja.loadVal({0}) compiler.go:433: 449: goja._op_gte({}) compiler.go:433: 450: goja.loadVal({true}) compiler.go:433: 451: goja.loadVal({ge}) compiler.go:433: 452: goja.call(3) compiler.go:433: 453: goja._pop({}) compiler.go:433: 454: goja.loadDynamic(assert) compiler.go:433: 455: goja.getPropCallee(sameValue) compiler.go:433: 456: goja.loadVal({0}) compiler.go:433: 457: goja.loadVal({0xc00026ce00}) compiler.go:433: 458: goja._op_gte({}) compiler.go:433: 459: goja.loadVal({false}) compiler.go:433: 460: goja.loadVal({ge}) compiler.go:433: 461: goja.call(3) compiler.go:433: 462: goja._pop({}) compiler.go:433: 463: goja.loadDynamic(assert) compiler.go:433: 464: goja.getPropCallee(sameValue) compiler.go:433: 465: goja.loadVal({0xc00026ce80}) compiler.go:433: 466: goja.loadVal({0}) compiler.go:433: 467: goja._op_lte({}) compiler.go:433: 468: goja.loadVal({false}) compiler.go:433: 469: goja.loadVal({le}) compiler.go:433: 470: goja.call(3) compiler.go:433: 471: goja._pop({}) compiler.go:433: 472: goja.loadDynamic(assert) compiler.go:433: 473: goja.getPropCallee(sameValue) compiler.go:433: 474: goja.loadVal({0}) compiler.go:433: 475: goja.loadVal({0xc00026cf00}) compiler.go:433: 476: goja._op_lte({}) compiler.go:433: 477: goja.loadVal({true}) compiler.go:433: 478: goja.loadVal({le}) compiler.go:433: 479: goja.call(3) compiler.go:433: 480: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestBigIntOperator (0.01s) === RUN TestHashbangInFunctionConstructor compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(throws) compiler.go:433: 2: goja.loadDynamic(SyntaxError) compiler.go:433: 3: *goja.newFunc(&{0xc00037e0f0 function() { new Function("#!") } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Function) compiler.go:433: > 2: goja.loadVal({#!}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._pop({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestHashbangInFunctionConstructor (0.00s) === RUN TestFunctionApplyNullArgArray compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(sameValue) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: *goja.newFunc(&{0xc00037e730 function() {return arguments.length} 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 0 1 0 1 true false}) compiler.go:433: > 1: goja.createArgsMapped(0) compiler.go:433: > 2: goja.initStack1P(1) compiler.go:433: > 3: goja.loadStack1(1) compiler.go:433: > 4: goja.getProp(length) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 4: goja.getPropCallee(apply) compiler.go:433: 5: goja.loadDynamic(undefined) compiler.go:433: 6: goja.loadVal({{}}) compiler.go:433: 7: goja.call(2) compiler.go:433: 8: goja.call(2) compiler.go:433: 9: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestFunctionApplyNullArgArray (0.00s) === RUN TestEncodeURI compiler.go:433: 0: goja.loadDynamicCallee(encodeURI) compiler.go:433: 1: goja.loadVal({[65279 1090 1077 1089 1090]}) compiler.go:433: 2: goja.call(1) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEncodeURI (0.00s) === RUN TestDecodeURI compiler.go:433: 0: goja.loadDynamicCallee(decodeURI) compiler.go:433: 1: goja.loadVal({http://ru.wikipedia.org/wiki/%d0%ae%D0%bd%D0%B8%D0%BA%D0%BE%D0%B4}) compiler.go:433: 2: goja.call(1) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDecodeURI (0.00s) === RUN TestJSONMarshalObject --- PASS: TestJSONMarshalObject (0.00s) === RUN TestJSONMarshalGoDate --- PASS: TestJSONMarshalGoDate (0.00s) === RUN TestJSONMarshalObjectCircular --- PASS: TestJSONMarshalObjectCircular (0.00s) === RUN TestJSONStringifyCircularWrappedGo --- PASS: TestJSONStringifyCircularWrappedGo (0.00s) === RUN TestJSONParseReviver compiler.go:433: 0: goja.loadDynamic(JSON) compiler.go:433: 1: goja.getPropCallee(parse) compiler.go:433: 2: goja.loadVal({{"p": 5}}) compiler.go:433: 3: *goja.newFunc(&{0xc00037fd60 function(key, value) { return typeof value === 'number' ? value * 2 // return value * 2 for numbers : value // return everything else unchanged } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadStackLex(-2) compiler.go:433: > 2: goja._typeof({}) compiler.go:433: > 3: goja.loadVal({number}) compiler.go:433: > 4: goja._op_strict_eq({}) compiler.go:433: > 5: goja.jneP(5) compiler.go:433: > 6: goja.loadStackLex(-2) compiler.go:433: > 7: goja.loadVal({2}) compiler.go:433: > 8: goja._mul({}) compiler.go:433: > 9: goja.jump(2) compiler.go:433: > 10: goja.loadStackLex(-2) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja.getProp(p) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestJSONParseReviver (0.00s) === RUN TestQuoteMalformedSurrogatePair compiler.go:433: 0: goja.loadDynamic(JSON) compiler.go:433: 1: goja.getPropCallee(stringify) compiler.go:433: 2: goja.loadVal({[65279 55296]}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestQuoteMalformedSurrogatePair (0.00s) === RUN TestEOFWrapping --- PASS: TestEOFWrapping (0.00s) === RUN TestMarshalJSONError --- PASS: TestMarshalJSONError (0.00s) === RUN TestMapEvilIterator compiler.go:433: 0: *goja.newFunc(&{0xc000360a50 Iter function Iter(value) { this.value = value; this.idx = 0; } 1 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja.setPropStrictP(value) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: goja.loadVal({0}) compiler.go:433: > 6: goja.setPropStrictP(idx) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc000360aa0 t function t(prefix) { var m = new Map(o); assert.sameValue(1, m.size, prefix+": m.size"); assert.sameValue(true, m.has(undefined), prefix+": m.has(undefined)"); assert.sameValue(undefined, m.get(undefined), prefix+": m.get(undefined)"); } 1 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 1}) compiler.go:433: > 1: goja.loadDynamic(Map) compiler.go:433: > 2: goja.loadDynamic(o) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja.initStackP(1) compiler.go:433: > 5: goja.loadDynamic(assert) compiler.go:433: > 6: goja.getPropCallee(sameValue) compiler.go:433: > 7: goja.loadVal({1}) compiler.go:433: > 8: goja.loadStack(1) compiler.go:433: > 9: goja.getProp(size) compiler.go:433: > 10: goja.loadStackLex(-1) compiler.go:433: > 11: goja.loadVal({: m.size}) compiler.go:433: > 12: goja._add({}) compiler.go:433: > 13: goja.call(3) compiler.go:433: > 14: goja._pop({}) compiler.go:433: > 15: goja.loadDynamic(assert) compiler.go:433: > 16: goja.getPropCallee(sameValue) compiler.go:433: > 17: goja.loadVal({true}) compiler.go:433: > 18: goja.loadStack(1) compiler.go:433: > 19: goja.getPropCallee(has) compiler.go:433: > 20: goja.loadDynamic(undefined) compiler.go:433: > 21: goja.call(1) compiler.go:433: > 22: goja.loadStackLex(-1) compiler.go:433: > 23: goja.loadVal({: m.has(undefined)}) compiler.go:433: > 24: goja._add({}) compiler.go:433: > 25: goja.call(3) compiler.go:433: > 26: goja._pop({}) compiler.go:433: > 27: goja.loadDynamic(assert) compiler.go:433: > 28: goja.getPropCallee(sameValue) compiler.go:433: > 29: goja.loadDynamic(undefined) compiler.go:433: > 30: goja.loadStack(1) compiler.go:433: > 31: goja.getPropCallee(get) compiler.go:433: > 32: goja.loadDynamic(undefined) compiler.go:433: > 33: goja.call(1) compiler.go:433: > 34: goja.loadStackLex(-1) compiler.go:433: > 35: goja.loadVal({: m.get(undefined)}) compiler.go:433: > 36: goja._add({}) compiler.go:433: > 37: goja.call(3) compiler.go:433: > 38: goja._pop({}) compiler.go:433: > 39: goja._loadUndef({}) compiler.go:433: > 40: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[o count origSet] [Iter t] [] [] false}) compiler.go:433: 3: goja.resolveVar1Strict(o) compiler.go:433: 4: goja._newObject({}) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(Iter) compiler.go:433: 7: goja.getProp(prototype) compiler.go:433: 8: *goja.newFunc(&{0xc000360b40 function() { var idx = this.idx; if (idx === 0) { this.idx++; return this.value; } return {done: true}; } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.getProp(idx) compiler.go:433: > 3: goja.initStackP(1) compiler.go:433: > 4: goja.loadStack(1) compiler.go:433: > 5: goja.loadVal({0}) compiler.go:433: > 6: goja._op_strict_eq({}) compiler.go:433: > 7: goja.jneP(9) compiler.go:433: > 8: goja.loadStack(0) compiler.go:433: > 9: goja._dup({}) compiler.go:433: > 10: goja.getProp(idx) compiler.go:433: > 11: goja._inc({}) compiler.go:433: > 12: goja.setPropStrictP(idx) compiler.go:433: > 13: goja.loadStack(0) compiler.go:433: > 14: goja.getProp(value) compiler.go:433: > 15: goja._ret({}) compiler.go:433: > 16: goja._newObject({}) compiler.go:433: > 17: goja.loadVal({true}) compiler.go:433: > 18: goja.putProp(done) compiler.go:433: > 19: goja._ret({}) compiler.go:433: 9: goja.setPropStrictP(next) compiler.go:433: 10: goja.loadDynamic(o) compiler.go:433: 11: goja.loadDynamic(Symbol) compiler.go:433: 12: goja.getProp(iterator) compiler.go:433: 13: *goja.newFunc(&{0xc000360b90 function() { return new Iter({}); } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Iter) compiler.go:433: > 2: goja._newObject({}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 14: goja._setElemStrictP({}) compiler.go:433: 15: goja.loadDynamic(assert) compiler.go:433: 16: goja.getPropCallee(throws) compiler.go:433: 17: goja.loadDynamic(TypeError) compiler.go:433: 18: *goja.newFunc(&{0xc000360c30 function() { new Map(o); } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Map) compiler.go:433: > 2: goja.loadDynamic(o) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._pop({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 19: goja.call(2) compiler.go:433: 20: goja._pop({}) compiler.go:433: 21: goja.loadDynamic(o) compiler.go:433: 22: goja.loadDynamic(Symbol) compiler.go:433: 23: goja.getProp(iterator) compiler.go:433: 24: *goja.newFunc(&{0xc000360c80 function() { return new Iter({value: []}); } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Iter) compiler.go:433: > 2: goja._newObject({}) compiler.go:433: > 3: goja.newArray(0) compiler.go:433: > 4: goja.putProp(value) compiler.go:433: > 5: goja._new(1) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 25: goja._setElemStrictP({}) compiler.go:433: 26: goja.loadDynamicCallee(t) compiler.go:433: 27: goja.loadVal({standard adder}) compiler.go:433: 28: goja.call(1) compiler.go:433: 29: goja._pop({}) compiler.go:433: 30: goja.resolveVar1Strict(count) compiler.go:433: 31: goja.loadVal({0}) compiler.go:433: 32: goja._initValueP({}) compiler.go:433: 33: goja.resolveVar1Strict(origSet) compiler.go:433: 34: goja.loadDynamic(Map) compiler.go:433: 35: goja.getProp(prototype) compiler.go:433: 36: goja.getProp(set) compiler.go:433: 37: goja._initValueP({}) compiler.go:433: 38: goja.loadDynamic(Map) compiler.go:433: 39: goja.getProp(prototype) compiler.go:433: 40: *goja.newFunc(&{0xc000360cd0 function() { count++; origSet.apply(this, arguments); } 0 true}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 0 1 0 1 true false}) compiler.go:433: > 1: goja.createArgsUnmapped(0) compiler.go:433: > 2: goja.initStack1P(1) compiler.go:433: > 3: goja.resolveVar1Strict(count) compiler.go:433: > 4: goja._getValue({}) compiler.go:433: > 5: goja._inc({}) compiler.go:433: > 6: goja._putValueP({}) compiler.go:433: > 7: goja.loadDynamic(origSet) compiler.go:433: > 8: goja.getPropCallee(apply) compiler.go:433: > 9: goja.loadStack(0) compiler.go:433: > 10: goja.loadStack1(1) compiler.go:433: > 11: goja.call(2) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 41: goja.setPropStrictP(set) compiler.go:433: 42: goja.loadDynamicCallee(t) compiler.go:433: 43: goja.loadVal({custom adder}) compiler.go:433: 44: goja.call(1) compiler.go:433: 45: goja._pop({}) compiler.go:433: 46: goja.loadDynamic(assert) compiler.go:433: 47: goja.getPropCallee(sameValue) compiler.go:433: 48: goja.loadVal({1}) compiler.go:433: 49: goja.loadDynamic(count) compiler.go:433: 50: goja.loadVal({count}) compiler.go:433: 51: goja.call(3) compiler.go:433: 52: goja._pop({}) compiler.go:433: 53: goja.loadDynamic(undefined) compiler.go:433: 54: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestMapEvilIterator (0.00s) === RUN TestMapExportToNilMap --- PASS: TestMapExportToNilMap (0.00s) === RUN TestMapExportToNonNilMap --- PASS: TestMapExportToNonNilMap (0.00s) === RUN TestMapGetAdderGetIteratorOrder compiler.go:433: 0: *goja.bindGlobal(&{[] [] [getterCalled M getIteratorCalled iterable thrown] [] false}) compiler.go:433: 1: goja.loadVal({0}) compiler.go:433: 2: goja.initGlobalP(getterCalled) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: goja.loadDynamic(Map) compiler.go:433: 5: *goja.newDerivedClass(&{{ M class M extends Map { get set() { getterCalled++; return null; } } [] [] 0 0 0 false}}) compiler.go:433: 6: goja.dupN(1) compiler.go:433: 7: *goja.newMethod(&{{0xc000361270 set get set() { getterCalled++; return null; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1Strict(getterCalled) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja._inc({}) compiler.go:433: > 4: goja._putValueP({}) compiler.go:433: > 5: goja.loadVal({{}}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 8: *goja.defineGetterKeyed(&{set false}) compiler.go:433: 9: goja._pop({}) compiler.go:433: 10: goja._endVariadic({}) compiler.go:433: 11: goja.initGlobalP(M) compiler.go:433: 12: goja.loadVal({0}) compiler.go:433: 13: goja.initGlobalP(getIteratorCalled) compiler.go:433: 14: goja._newObject({}) compiler.go:433: 15: goja.initGlobalP(iterable) compiler.go:433: 16: goja.loadDynamic(iterable) compiler.go:433: 17: goja.loadDynamic(Symbol) compiler.go:433: 18: goja.getProp(iterator) compiler.go:433: 19: *goja.newArrowFunc(&{{0xc0003612c0 () => { getIteratorCalled++ return { next: 1 }; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(getIteratorCalled) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja._inc({}) compiler.go:433: > 4: goja._putValueP({}) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadVal({1}) compiler.go:433: > 7: goja.putProp(next) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 20: goja._setElemP({}) compiler.go:433: 21: goja.loadVal({false}) compiler.go:433: 22: goja.initGlobalP(thrown) compiler.go:433: 23: goja.try({6 0}) compiler.go:433: 24: goja.loadDynamic(M) compiler.go:433: 25: goja.loadDynamic(iterable) compiler.go:433: 26: goja._new(1) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja.jump(13) compiler.go:433: 29: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 30: goja.loadStackLex(1) compiler.go:433: 31: goja.loadDynamic(TypeError) compiler.go:433: 32: goja._op_instanceof({}) compiler.go:433: 33: goja.jneP(5) compiler.go:433: 34: goja.resolveVar1(thrown) compiler.go:433: 35: goja.loadVal({true}) compiler.go:433: 36: goja._putValueP({}) compiler.go:433: 37: goja.jump(3) compiler.go:433: 38: goja.loadStackLex(1) compiler.go:433: 39: goja._throw({}) compiler.go:433: 40: *goja.leaveBlock(&{1 false}) compiler.go:433: 41: goja.leaveTry({}) compiler.go:433: 42: goja.loadDynamic(thrown) compiler.go:433: 43: goja.jne(4) compiler.go:433: 44: goja.loadDynamic(getterCalled) compiler.go:433: 45: goja.loadVal({1}) compiler.go:433: 46: goja._op_strict_eq({}) compiler.go:433: 47: goja.jne(4) compiler.go:433: 48: goja.loadDynamic(getIteratorCalled) compiler.go:433: 49: goja.loadVal({0}) compiler.go:433: 50: goja._op_strict_eq({}) compiler.go:433: 51: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestMapGetAdderGetIteratorOrder (0.00s) === RUN TestProxy_Object_target_getPrototypeOf compiler.go:433: 0: *goja.bindGlobal(&{[proto obj proxy p] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(proto) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(obj) compiler.go:433: 5: goja.loadDynamic(Object) compiler.go:433: 6: goja.getPropCallee(create) compiler.go:433: 7: goja.loadDynamic(proto) compiler.go:433: 8: goja.call(1) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(proxy) compiler.go:433: 11: goja.loadDynamic(Proxy) compiler.go:433: 12: goja.loadDynamic(obj) compiler.go:433: 13: goja._newObject({}) compiler.go:433: 14: goja._new(2) compiler.go:433: 15: goja._initValueP({}) compiler.go:433: 16: goja.resolveVar1(p) compiler.go:433: 17: goja.loadDynamic(Object) compiler.go:433: 18: goja.getPropCallee(getPrototypeOf) compiler.go:433: 19: goja.loadDynamic(proxy) compiler.go:433: 20: goja.call(1) compiler.go:433: 21: goja._initValueP({}) compiler.go:433: 22: goja.loadDynamic(assert) compiler.go:433: 23: goja.getPropCallee(sameValue) compiler.go:433: 24: goja.loadDynamic(proto) compiler.go:433: 25: goja.loadDynamic(p) compiler.go:433: 26: goja.call(2) compiler.go:433: 27: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_Object_target_getPrototypeOf (0.00s) === RUN TestProxy_Object_proxy_getPrototypeOf compiler.go:433: 0: *goja.bindGlobal(&{[proto proto2 obj proxy p] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(proto) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proto2) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(obj) compiler.go:433: 8: goja.loadDynamic(Object) compiler.go:433: 9: goja.getPropCallee(create) compiler.go:433: 10: goja.loadDynamic(proto) compiler.go:433: 11: goja.call(1) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.resolveVar1(proxy) compiler.go:433: 14: goja.loadDynamic(Proxy) compiler.go:433: 15: goja.loadDynamic(obj) compiler.go:433: 16: goja._newObject({}) compiler.go:433: 17: *goja.newFunc(&{0xc000360230 getPrototypeOf function(target) { return proto2; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadDynamic(proto2) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 18: goja.putProp(getPrototypeOf) compiler.go:433: 19: goja._new(2) compiler.go:433: 20: goja._initValueP({}) compiler.go:433: 21: goja.resolveVar1(p) compiler.go:433: 22: goja.loadDynamic(Object) compiler.go:433: 23: goja.getPropCallee(getPrototypeOf) compiler.go:433: 24: goja.loadDynamic(proxy) compiler.go:433: 25: goja.call(1) compiler.go:433: 26: goja._initValueP({}) compiler.go:433: 27: goja.loadDynamic(assert) compiler.go:433: 28: goja.getPropCallee(sameValue) compiler.go:433: 29: goja.loadDynamic(proto2) compiler.go:433: 30: goja.loadDynamic(p) compiler.go:433: 31: goja.call(2) compiler.go:433: 32: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_Object_proxy_getPrototypeOf (0.00s) === RUN TestProxy_Object_native_proxy_getPrototypeOf compiler.go:433: 0: *goja.bindGlobal(&{[p] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(p) compiler.go:433: 2: goja.loadDynamic(Object) compiler.go:433: 3: goja.getPropCallee(getPrototypeOf) compiler.go:433: 4: goja.loadDynamic(proxy) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(assert) compiler.go:433: 8: goja.getPropCallee(sameValue) compiler.go:433: 9: goja.loadDynamic(proto) compiler.go:433: 10: goja.loadDynamic(p) compiler.go:433: 11: goja.call(2) compiler.go:433: 12: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_Object_native_proxy_getPrototypeOf (0.00s) === RUN TestProxy_Object_target_setPrototypeOf compiler.go:433: 0: *goja.bindGlobal(&{[proto obj proxy p] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(proto) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(obj) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(Object) compiler.go:433: 8: goja.getPropCallee(setPrototypeOf) compiler.go:433: 9: goja.loadDynamic(obj) compiler.go:433: 10: goja.loadDynamic(proto) compiler.go:433: 11: goja.call(2) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: goja.resolveVar1(proxy) compiler.go:433: 14: goja.loadDynamic(Proxy) compiler.go:433: 15: goja.loadDynamic(obj) compiler.go:433: 16: goja._newObject({}) compiler.go:433: 17: goja._new(2) compiler.go:433: 18: goja._initValueP({}) compiler.go:433: 19: goja.resolveVar1(p) compiler.go:433: 20: goja.loadDynamic(Object) compiler.go:433: 21: goja.getPropCallee(getPrototypeOf) compiler.go:433: 22: goja.loadDynamic(proxy) compiler.go:433: 23: goja.call(1) compiler.go:433: 24: goja._initValueP({}) compiler.go:433: 25: goja.loadDynamic(assert) compiler.go:433: 26: goja.getPropCallee(sameValue) compiler.go:433: 27: goja.loadDynamic(proto) compiler.go:433: 28: goja.loadDynamic(p) compiler.go:433: 29: goja.call(2) compiler.go:433: 30: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_Object_target_setPrototypeOf (0.00s) === RUN TestProxy_Object_proxy_setPrototypeOf compiler.go:433: 0: *goja.bindGlobal(&{[proto proto2 obj proxy p] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(proto) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proto2) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(obj) compiler.go:433: 8: goja._newObject({}) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(Object) compiler.go:433: 11: goja.getPropCallee(setPrototypeOf) compiler.go:433: 12: goja.loadDynamic(obj) compiler.go:433: 13: goja.loadDynamic(proto) compiler.go:433: 14: goja.call(2) compiler.go:433: 15: goja._pop({}) compiler.go:433: 16: goja.resolveVar1(proxy) compiler.go:433: 17: goja.loadDynamic(Proxy) compiler.go:433: 18: goja.loadDynamic(obj) compiler.go:433: 19: goja._newObject({}) compiler.go:433: 20: *goja.newFunc(&{0xc0003607d0 setPrototypeOf function(target, prototype) { return Object.setPrototypeOf(target, proto2); } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadDynamic(Object) compiler.go:433: > 2: goja.getPropCallee(setPrototypeOf) compiler.go:433: > 3: goja.loadStackLex(-1) compiler.go:433: > 4: goja.loadDynamic(proto2) compiler.go:433: > 5: goja.call(2) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 21: goja.putProp(setPrototypeOf) compiler.go:433: 22: goja._new(2) compiler.go:433: 23: goja._initValueP({}) compiler.go:433: 24: goja.loadDynamic(Object) compiler.go:433: 25: goja.getPropCallee(setPrototypeOf) compiler.go:433: 26: goja.loadDynamic(proxy) compiler.go:433: 27: goja.loadVal({{}}) compiler.go:433: 28: goja.call(2) compiler.go:433: 29: goja._pop({}) compiler.go:433: 30: goja.resolveVar1(p) compiler.go:433: 31: goja.loadDynamic(Object) compiler.go:433: 32: goja.getPropCallee(getPrototypeOf) compiler.go:433: 33: goja.loadDynamic(proxy) compiler.go:433: 34: goja.call(1) compiler.go:433: 35: goja._initValueP({}) compiler.go:433: 36: goja.loadDynamic(assert) compiler.go:433: 37: goja.getPropCallee(sameValue) compiler.go:433: 38: goja.loadDynamic(proto2) compiler.go:433: 39: goja.loadDynamic(p) compiler.go:433: 40: goja.call(2) compiler.go:433: 41: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_Object_proxy_setPrototypeOf (0.00s) === RUN TestProxy_Object_target_isExtensible compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(Object) compiler.go:433: 5: goja.getPropCallee(seal) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja.call(1) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja.resolveVar1(proxy) compiler.go:433: 10: goja.loadDynamic(Proxy) compiler.go:433: 11: goja.loadDynamic(obj) compiler.go:433: 12: goja._newObject({}) compiler.go:433: 13: goja._new(2) compiler.go:433: 14: goja._initValueP({}) compiler.go:433: 15: goja.loadDynamic(Object) compiler.go:433: 16: goja.getPropCallee(isExtensible) compiler.go:433: 17: goja.loadDynamic(proxy) compiler.go:433: 18: goja.call(1) compiler.go:433: 19: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_Object_target_isExtensible (0.00s) === RUN TestProxy_proxy_isExtensible compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(Object) compiler.go:433: 5: goja.getPropCallee(seal) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja.call(1) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja.resolveVar1(proxy) compiler.go:433: 10: goja.loadDynamic(Proxy) compiler.go:433: 11: goja.loadDynamic(obj) compiler.go:433: 12: goja._newObject({}) compiler.go:433: 13: *goja.newFunc(&{0xc000360af0 isExtensible function(target) { return false; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadVal({false}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 14: goja.putProp(isExtensible) compiler.go:433: 15: goja._new(2) compiler.go:433: 16: goja._initValueP({}) compiler.go:433: 17: goja.loadDynamic(Object) compiler.go:433: 18: goja.getPropCallee(isExtensible) compiler.go:433: 19: goja.loadDynamic(proxy) compiler.go:433: 20: goja.call(1) compiler.go:433: 21: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_isExtensible (0.00s) === RUN TestProxy_native_proxy_isExtensible --- PASS: TestProxy_native_proxy_isExtensible (0.00s) === RUN TestProxy_Object_target_preventExtensions compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({true}) compiler.go:433: 4: goja.putProp(canEvolve) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(proxy) compiler.go:433: 7: goja.loadDynamic(Proxy) compiler.go:433: 8: goja.loadDynamic(obj) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(Object) compiler.go:433: 13: goja.getPropCallee(preventExtensions) compiler.go:433: 14: goja.loadDynamic(proxy) compiler.go:433: 15: goja.call(1) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadDynamic(proxy) compiler.go:433: 18: goja.getProp(canEvolve) compiler.go:433: 19: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_Object_target_preventExtensions (0.00s) === RUN TestProxy_proxy_preventExtensions compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({true}) compiler.go:433: 4: goja.putProp(canEvolve) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(proxy) compiler.go:433: 7: goja.loadDynamic(Proxy) compiler.go:433: 8: goja.loadDynamic(obj) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: *goja.newFunc(&{0xc000361090 preventExtensions function(target) { target.canEvolve = false; Object.preventExtensions(obj); return true; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.loadVal({false}) compiler.go:433: > 3: goja.setPropP(canEvolve) compiler.go:433: > 4: goja.loadDynamic(Object) compiler.go:433: > 5: goja.getPropCallee(preventExtensions) compiler.go:433: > 6: goja.loadDynamic(obj) compiler.go:433: > 7: goja.call(1) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja.loadVal({true}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 11: goja.putProp(preventExtensions) compiler.go:433: 12: goja._new(2) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.loadDynamic(Object) compiler.go:433: 15: goja.getPropCallee(preventExtensions) compiler.go:433: 16: goja.loadDynamic(proxy) compiler.go:433: 17: goja.call(1) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamic(proxy) compiler.go:433: 20: goja.getProp(canEvolve) compiler.go:433: 21: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_preventExtensions (0.00s) === RUN TestProxy_native_proxy_preventExtensions --- PASS: TestProxy_native_proxy_preventExtensions (0.00s) === RUN TestProxy_Object_target_getOwnPropertyDescriptor compiler.go:433: 0: *goja.bindGlobal(&{[desc obj proxy desc2] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(desc) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({false}) compiler.go:433: 4: goja.putProp(configurable) compiler.go:433: 5: goja.loadVal({false}) compiler.go:433: 6: goja.putProp(enumerable) compiler.go:433: 7: goja.loadVal({42}) compiler.go:433: 8: goja.putProp(value) compiler.go:433: 9: goja.loadVal({false}) compiler.go:433: 10: goja.putProp(writable) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.resolveVar1(obj) compiler.go:433: 13: goja._newObject({}) compiler.go:433: 14: goja._initValueP({}) compiler.go:433: 15: goja.loadDynamic(Object) compiler.go:433: 16: goja.getPropCallee(defineProperty) compiler.go:433: 17: goja.loadDynamic(obj) compiler.go:433: 18: goja.loadVal({foo}) compiler.go:433: 19: goja.loadDynamic(desc) compiler.go:433: 20: goja.call(3) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.resolveVar1(proxy) compiler.go:433: 23: goja.loadDynamic(Proxy) compiler.go:433: 24: goja.loadDynamic(obj) compiler.go:433: 25: goja._newObject({}) compiler.go:433: 26: goja._new(2) compiler.go:433: 27: goja._initValueP({}) compiler.go:433: 28: goja.resolveVar1(desc2) compiler.go:433: 29: goja.loadDynamic(Object) compiler.go:433: 30: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 31: goja.loadDynamic(proxy) compiler.go:433: 32: goja.loadVal({foo}) compiler.go:433: 33: goja.call(2) compiler.go:433: 34: goja._initValueP({}) compiler.go:433: 35: goja.loadDynamic(desc2) compiler.go:433: 36: goja.getProp(value) compiler.go:433: 37: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_Object_target_getOwnPropertyDescriptor (0.00s) === RUN TestProxy_proxy_getOwnPropertyDescriptor compiler.go:433: 0: *goja.bindGlobal(&{[desc proxy_desc obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(desc) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({false}) compiler.go:433: 4: goja.putProp(configurable) compiler.go:433: 5: goja.loadVal({false}) compiler.go:433: 6: goja.putProp(enumerable) compiler.go:433: 7: goja.loadVal({42}) compiler.go:433: 8: goja.putProp(value) compiler.go:433: 9: goja.loadVal({false}) compiler.go:433: 10: goja.putProp(writable) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.resolveVar1(proxy_desc) compiler.go:433: 13: goja._newObject({}) compiler.go:433: 14: goja.loadVal({false}) compiler.go:433: 15: goja.putProp(configurable) compiler.go:433: 16: goja.loadVal({false}) compiler.go:433: 17: goja.putProp(enumerable) compiler.go:433: 18: goja.loadVal({24}) compiler.go:433: 19: goja.putProp(value) compiler.go:433: 20: goja.loadVal({false}) compiler.go:433: 21: goja.putProp(writable) compiler.go:433: 22: goja._initValueP({}) compiler.go:433: 23: goja.resolveVar1(obj) compiler.go:433: 24: goja._newObject({}) compiler.go:433: 25: goja._initValueP({}) compiler.go:433: 26: goja.loadDynamic(Object) compiler.go:433: 27: goja.getPropCallee(defineProperty) compiler.go:433: 28: goja.loadDynamic(obj) compiler.go:433: 29: goja.loadVal({foo}) compiler.go:433: 30: goja.loadDynamic(desc) compiler.go:433: 31: goja.call(3) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja.resolveVar1(proxy) compiler.go:433: 34: goja.loadDynamic(Proxy) compiler.go:433: 35: goja.loadDynamic(obj) compiler.go:433: 36: goja._newObject({}) compiler.go:433: 37: *goja.newFunc(&{0xc000361900 getOwnPropertyDescriptor function(target, property) { return proxy_desc; } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadDynamic(proxy_desc) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 38: goja.putProp(getOwnPropertyDescriptor) compiler.go:433: 39: goja._new(2) compiler.go:433: 40: goja._initValueP({}) compiler.go:433: 41: goja.loadDynamic(assert) compiler.go:433: 42: goja.getPropCallee(throws) compiler.go:433: 43: goja.loadDynamic(TypeError) compiler.go:433: 44: *goja.newFunc(&{0xc000361950 function() { Object.getOwnPropertyDescriptor(proxy, "foo"); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Object) compiler.go:433: > 2: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: > 3: goja.loadDynamic(proxy) compiler.go:433: > 4: goja.loadVal({foo}) compiler.go:433: > 5: goja.call(2) compiler.go:433: > 6: goja._pop({}) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 45: goja.call(2) compiler.go:433: 46: goja._pop({}) compiler.go:433: 47: goja.loadDynamic(undefined) compiler.go:433: 48: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_getOwnPropertyDescriptor (0.00s) === RUN TestProxy_native_proxy_getOwnPropertyDescriptor --- PASS: TestProxy_native_proxy_getOwnPropertyDescriptor (0.00s) === RUN TestProxy_native_proxy_getOwnPropertyDescriptorIdx compiler.go:433: 0: *goja.bindGlobal(&{[desc i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(i) compiler.go:433: 2: goja.loadVal({-1}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(i) compiler.go:433: 5: goja.loadVal({1}) compiler.go:433: 6: goja._op_lte({}) compiler.go:433: 7: goja.jneP(114) compiler.go:433: 8: goja.resolveVar1(desc) compiler.go:433: 9: goja.loadDynamic(Object) compiler.go:433: 10: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 11: goja.loadDynamic(proxy1) compiler.go:433: 12: goja.loadDynamic(i) compiler.go:433: 13: goja.call(2) compiler.go:433: 14: goja._putValueP({}) compiler.go:433: 15: goja.loadDynamicCallee(assert) compiler.go:433: 16: goja.loadDynamicCallee(deepEqual) compiler.go:433: 17: goja.loadDynamic(desc) compiler.go:433: 18: goja._newObject({}) compiler.go:433: 19: goja.loadDynamic(i) compiler.go:433: 20: goja.putProp(value) compiler.go:433: 21: goja.loadVal({false}) compiler.go:433: 22: goja.putProp(writable) compiler.go:433: 23: goja.loadVal({false}) compiler.go:433: 24: goja.putProp(enumerable) compiler.go:433: 25: goja.loadVal({true}) compiler.go:433: 26: goja.putProp(configurable) compiler.go:433: 27: goja.call(2) compiler.go:433: 28: goja.loadVal({1. int }) compiler.go:433: 29: goja.loadDynamic(i) compiler.go:433: 30: goja._add({}) compiler.go:433: 31: goja.call(2) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja.resolveVar1(desc) compiler.go:433: 34: goja.loadDynamic(Object) compiler.go:433: 35: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 36: goja.loadDynamic(proxy1) compiler.go:433: 37: goja.loadVal({}) compiler.go:433: 38: goja.loadDynamic(i) compiler.go:433: 39: goja._add({}) compiler.go:433: 40: goja.call(2) compiler.go:433: 41: goja._putValueP({}) compiler.go:433: 42: goja.loadDynamicCallee(assert) compiler.go:433: 43: goja.loadDynamicCallee(deepEqual) compiler.go:433: 44: goja.loadDynamic(desc) compiler.go:433: 45: goja._newObject({}) compiler.go:433: 46: goja.loadDynamic(i) compiler.go:433: 47: goja.putProp(value) compiler.go:433: 48: goja.loadVal({false}) compiler.go:433: 49: goja.putProp(writable) compiler.go:433: 50: goja.loadVal({false}) compiler.go:433: 51: goja.putProp(enumerable) compiler.go:433: 52: goja.loadVal({true}) compiler.go:433: 53: goja.putProp(configurable) compiler.go:433: 54: goja.call(2) compiler.go:433: 55: goja.loadVal({1. str }) compiler.go:433: 56: goja.loadDynamic(i) compiler.go:433: 57: goja._add({}) compiler.go:433: 58: goja.call(2) compiler.go:433: 59: goja._pop({}) compiler.go:433: 60: goja.resolveVar1(desc) compiler.go:433: 61: goja.loadDynamic(Object) compiler.go:433: 62: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 63: goja.loadDynamic(proxy2) compiler.go:433: 64: goja.loadDynamic(i) compiler.go:433: 65: goja.call(2) compiler.go:433: 66: goja._putValueP({}) compiler.go:433: 67: goja.loadDynamicCallee(assert) compiler.go:433: 68: goja.loadDynamicCallee(deepEqual) compiler.go:433: 69: goja.loadDynamic(desc) compiler.go:433: 70: goja._newObject({}) compiler.go:433: 71: goja.loadVal({}) compiler.go:433: 72: goja.loadDynamic(i) compiler.go:433: 73: goja._add({}) compiler.go:433: 74: goja.putProp(value) compiler.go:433: 75: goja.loadVal({false}) compiler.go:433: 76: goja.putProp(writable) compiler.go:433: 77: goja.loadVal({false}) compiler.go:433: 78: goja.putProp(enumerable) compiler.go:433: 79: goja.loadVal({true}) compiler.go:433: 80: goja.putProp(configurable) compiler.go:433: 81: goja.call(2) compiler.go:433: 82: goja.loadVal({2. int }) compiler.go:433: 83: goja.loadDynamic(i) compiler.go:433: 84: goja._add({}) compiler.go:433: 85: goja.call(2) compiler.go:433: 86: goja._pop({}) compiler.go:433: 87: goja.resolveVar1(desc) compiler.go:433: 88: goja.loadDynamic(Object) compiler.go:433: 89: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 90: goja.loadDynamic(proxy2) compiler.go:433: 91: goja.loadVal({}) compiler.go:433: 92: goja.loadDynamic(i) compiler.go:433: 93: goja._add({}) compiler.go:433: 94: goja.call(2) compiler.go:433: 95: goja._putValueP({}) compiler.go:433: 96: goja.loadDynamicCallee(assert) compiler.go:433: 97: goja.loadDynamicCallee(deepEqual) compiler.go:433: 98: goja.loadDynamic(desc) compiler.go:433: 99: goja._newObject({}) compiler.go:433: 100: goja.loadVal({}) compiler.go:433: 101: goja.loadDynamic(i) compiler.go:433: 102: goja._add({}) compiler.go:433: 103: goja.putProp(value) compiler.go:433: 104: goja.loadVal({false}) compiler.go:433: 105: goja.putProp(writable) compiler.go:433: 106: goja.loadVal({false}) compiler.go:433: 107: goja.putProp(enumerable) compiler.go:433: 108: goja.loadVal({true}) compiler.go:433: 109: goja.putProp(configurable) compiler.go:433: 110: goja.call(2) compiler.go:433: 111: goja.loadVal({2. str }) compiler.go:433: 112: goja.loadDynamic(i) compiler.go:433: 113: goja._add({}) compiler.go:433: 114: goja.call(2) compiler.go:433: 115: goja._pop({}) compiler.go:433: 116: goja.resolveVar1(i) compiler.go:433: 117: goja._getValue({}) compiler.go:433: 118: goja._inc({}) compiler.go:433: 119: goja._putValueP({}) compiler.go:433: 120: goja.jump(-116) compiler.go:433: 121: goja.jump(1) compiler.go:433: 122: goja.newArray(4) compiler.go:433: 123: goja.loadVal({00}) compiler.go:433: 124: goja._pushArrayItem({}) compiler.go:433: 125: goja.loadVal({ 0}) compiler.go:433: 126: goja._pushArrayItem({}) compiler.go:433: 127: goja.loadVal({-0}) compiler.go:433: 128: goja._pushArrayItem({}) compiler.go:433: 129: goja.loadVal({01}) compiler.go:433: 130: goja._pushArrayItem({}) compiler.go:433: 131: goja._iterateP({}) compiler.go:433: 132: goja._clearResult({}) compiler.go:433: 133: goja.iterNext(32) compiler.go:433: 134: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 135: goja._enumGet({}) compiler.go:433: 136: goja.initStackP(1) compiler.go:433: 137: goja._clearResult({}) compiler.go:433: 138: goja.resolveVar1(desc) compiler.go:433: 139: goja.loadDynamic(Object) compiler.go:433: 140: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 141: goja.loadDynamic(proxy3) compiler.go:433: 142: goja.loadStackLex(1) compiler.go:433: 143: goja.call(2) compiler.go:433: 144: goja._putValueP({}) compiler.go:433: 145: goja.loadDynamicCallee(assert) compiler.go:433: 146: goja.loadDynamicCallee(deepEqual) compiler.go:433: 147: goja.loadDynamic(desc) compiler.go:433: 148: goja._newObject({}) compiler.go:433: 149: goja.loadStackLex(1) compiler.go:433: 150: goja.putProp(value) compiler.go:433: 151: goja.loadVal({false}) compiler.go:433: 152: goja.putProp(writable) compiler.go:433: 153: goja.loadVal({false}) compiler.go:433: 154: goja.putProp(enumerable) compiler.go:433: 155: goja.loadVal({true}) compiler.go:433: 156: goja.putProp(configurable) compiler.go:433: 157: goja.call(2) compiler.go:433: 158: goja.loadVal({3. }) compiler.go:433: 159: goja.loadStackLex(1) compiler.go:433: 160: goja._add({}) compiler.go:433: 161: goja.call(2) compiler.go:433: 162: goja._saveResult({}) compiler.go:433: 163: *goja.leaveBlock(&{1 false}) compiler.go:433: 164: goja.jump(-31) compiler.go:433: 165: goja._enumPop({}) compiler.go:433: 166: goja.jump(2) compiler.go:433: 167: goja._enumPopClose({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_native_proxy_getOwnPropertyDescriptorIdx (0.00s) === RUN TestProxy_native_proxy_getOwnPropertyDescriptorSym compiler.go:433: 0: *goja.bindGlobal(&{[desc] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(desc) compiler.go:433: 2: goja.loadDynamic(Object) compiler.go:433: 3: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 4: goja.loadDynamic(proxy) compiler.go:433: 5: goja.loadDynamic(sym) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.loadDynamicCallee(assert) compiler.go:433: 9: goja.loadDynamicCallee(deepEqual) compiler.go:433: 10: goja.loadDynamic(desc) compiler.go:433: 11: goja._newObject({}) compiler.go:433: 12: goja.loadVal({passed}) compiler.go:433: 13: goja.putProp(value) compiler.go:433: 14: goja.loadVal({true}) compiler.go:433: 15: goja.putProp(writable) compiler.go:433: 16: goja.loadVal({false}) compiler.go:433: 17: goja.putProp(enumerable) compiler.go:433: 18: goja.loadVal({true}) compiler.go:433: 19: goja.putProp(configurable) compiler.go:433: 20: goja.call(2) compiler.go:433: 21: goja.call(1) compiler.go:433: 22: goja._pop({}) compiler.go:433: 23: goja.loadDynamic(assert) compiler.go:433: 24: goja.getPropCallee(sameValue) compiler.go:433: 25: goja.loadDynamic(Object) compiler.go:433: 26: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 27: goja.loadDynamic(proxy) compiler.go:433: 28: goja.loadDynamic(Symbol) compiler.go:433: 29: goja.getProp(iterator) compiler.go:433: 30: goja.call(2) compiler.go:433: 31: goja.loadDynamic(undefined) compiler.go:433: 32: goja.call(2) compiler.go:433: 33: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_native_proxy_getOwnPropertyDescriptorSym (0.00s) === RUN TestProxy_native_proxy_getOwnPropertyDescriptor_non_existing --- PASS: TestProxy_native_proxy_getOwnPropertyDescriptor_non_existing (0.00s) === RUN TestProxy_Object_target_defineProperty compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja._new(2) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(Object) compiler.go:433: 11: goja.getPropCallee(defineProperty) compiler.go:433: 12: goja.loadDynamic(proxy) compiler.go:433: 13: goja.loadVal({foo}) compiler.go:433: 14: goja._newObject({}) compiler.go:433: 15: goja.loadVal({test123}) compiler.go:433: 16: goja.putProp(value) compiler.go:433: 17: goja.call(3) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamic(proxy) compiler.go:433: 20: goja.getProp(foo) compiler.go:433: 21: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_Object_target_defineProperty (0.00s) === RUN TestProxy_proxy_defineProperty compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: *goja.newFunc(&{0xc0004845a0 defineProperty function(target, prop, descriptor) { target.foo = "321tset"; return true; } 3 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 3}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.loadVal({321tset}) compiler.go:433: > 3: goja.setPropP(foo) compiler.go:433: > 4: goja.loadVal({true}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 9: goja.putProp(defineProperty) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(Object) compiler.go:433: 13: goja.getPropCallee(defineProperty) compiler.go:433: 14: goja.loadDynamic(proxy) compiler.go:433: 15: goja.loadVal({foo}) compiler.go:433: 16: goja._newObject({}) compiler.go:433: 17: goja.loadVal({test123}) compiler.go:433: 18: goja.putProp(value) compiler.go:433: 19: goja.call(3) compiler.go:433: 20: goja._pop({}) compiler.go:433: 21: goja.loadDynamic(proxy) compiler.go:433: 22: goja.getProp(foo) compiler.go:433: 23: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_defineProperty (0.00s) === RUN TestProxy_native_proxy_defineProperty compiler.go:433: 0: goja.loadDynamic(Object) compiler.go:433: 1: goja.getPropCallee(defineProperty) compiler.go:433: 2: goja.loadDynamic(proxy) compiler.go:433: 3: goja.loadVal({foo}) compiler.go:433: 4: goja._newObject({}) compiler.go:433: 5: goja.loadVal({teststr}) compiler.go:433: 6: goja.putProp(value) compiler.go:433: 7: goja.call(3) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja.loadDynamic(Object) compiler.go:433: 10: goja.getPropCallee(defineProperty) compiler.go:433: 11: goja.loadDynamic(proxy) compiler.go:433: 12: goja.loadVal({0}) compiler.go:433: 13: goja._newObject({}) compiler.go:433: 14: goja.loadVal({testidx}) compiler.go:433: 15: goja.putProp(value) compiler.go:433: 16: goja.call(3) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.loadDynamic(Object) compiler.go:433: 19: goja.getPropCallee(defineProperty) compiler.go:433: 20: goja.loadDynamic(proxy) compiler.go:433: 21: goja.loadDynamic(Symbol) compiler.go:433: 22: goja.getProp(toStringTag) compiler.go:433: 23: goja._newObject({}) compiler.go:433: 24: goja.loadVal({testsym}) compiler.go:433: 25: goja.putProp(value) compiler.go:433: 26: goja.call(3) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja.loadDynamic(assert) compiler.go:433: 29: goja.getPropCallee(sameValue) compiler.go:433: 30: goja.loadDynamic(proxy) compiler.go:433: 31: goja.getProp(foo) compiler.go:433: 32: goja.loadVal({teststr-passed-str}) compiler.go:433: 33: goja.call(2) compiler.go:433: 34: goja._pop({}) compiler.go:433: 35: goja.loadDynamic(assert) compiler.go:433: 36: goja.getPropCallee(sameValue) compiler.go:433: 37: goja.loadDynamic(proxy) compiler.go:433: 38: goja.loadVal({0}) compiler.go:433: 39: goja._getElem({}) compiler.go:433: 40: goja.loadVal({testidx-passed-idx}) compiler.go:433: 41: goja.call(2) compiler.go:433: 42: goja._pop({}) compiler.go:433: 43: goja.loadDynamic(assert) compiler.go:433: 44: goja.getPropCallee(sameValue) compiler.go:433: 45: goja.loadDynamic(proxy) compiler.go:433: 46: goja.loadDynamic(Symbol) compiler.go:433: 47: goja.getProp(toStringTag) compiler.go:433: 48: goja._getElem({}) compiler.go:433: 49: goja.loadVal({testsym-passed-sym}) compiler.go:433: 50: goja.call(2) compiler.go:433: 51: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_native_proxy_defineProperty (0.00s) === RUN TestProxy_target_has_in compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({true}) compiler.go:433: 4: goja.putProp(secret) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(proxy) compiler.go:433: 7: goja.loadDynamic(Proxy) compiler.go:433: 8: goja.loadDynamic(obj) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadVal({secret}) compiler.go:433: 13: goja.loadDynamic(proxy) compiler.go:433: 14: goja._op_in({}) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_target_has_in (0.00s) === RUN TestProxy_proxy_has_in compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({true}) compiler.go:433: 4: goja.putProp(secret) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(proxy) compiler.go:433: 7: goja.loadDynamic(Proxy) compiler.go:433: 8: goja.loadDynamic(obj) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: *goja.newFunc(&{0xc000484a50 has function(target, key) { return key !== "secret"; } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadStackLex(-2) compiler.go:433: > 2: goja.loadVal({secret}) compiler.go:433: > 3: goja._op_strict_neq({}) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 11: goja.putProp(has) compiler.go:433: 12: goja._new(2) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.loadVal({secret}) compiler.go:433: 15: goja.loadDynamic(proxy) compiler.go:433: 16: goja._op_in({}) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_has_in (0.00s) === RUN TestProxy_target_has_with compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({true}) compiler.go:433: 4: goja.putProp(secret) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(proxy) compiler.go:433: 7: goja.loadDynamic(Proxy) compiler.go:433: 8: goja.loadDynamic(obj) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(proxy) compiler.go:433: 13: goja._enterWith({}) compiler.go:433: 14: goja.loadDynamic(secret) compiler.go:433: 15: goja._saveResult({}) compiler.go:433: 16: goja._leaveWith({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestProxy_target_has_with (0.00s) === RUN TestProxy_proxy_has_with compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy thrown] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({true}) compiler.go:433: 4: goja.putProp(secret) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(proxy) compiler.go:433: 7: goja.loadDynamic(Proxy) compiler.go:433: 8: goja.loadDynamic(obj) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: *goja.newFunc(&{0xc000484fa0 has function(target, key) { return key !== "secret"; } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadStackLex(-2) compiler.go:433: > 2: goja.loadVal({secret}) compiler.go:433: > 3: goja._op_strict_neq({}) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 11: goja.putProp(has) compiler.go:433: 12: goja._new(2) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.resolveVar1(thrown) compiler.go:433: 15: goja.loadVal({false}) compiler.go:433: 16: goja._initValueP({}) compiler.go:433: 17: goja.try({7 0}) compiler.go:433: 18: goja.loadDynamic(proxy) compiler.go:433: 19: goja._enterWith({}) compiler.go:433: 20: goja.loadDynamic(secret) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja._leaveWith({}) compiler.go:433: 23: goja.jump(13) compiler.go:433: 24: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 25: goja.loadStackLex(1) compiler.go:433: 26: goja.loadDynamic(ReferenceError) compiler.go:433: 27: goja._op_instanceof({}) compiler.go:433: 28: goja.jneP(5) compiler.go:433: 29: goja.resolveVar1(thrown) compiler.go:433: 30: goja.loadVal({true}) compiler.go:433: 31: goja._putValueP({}) compiler.go:433: 32: goja.jump(3) compiler.go:433: 33: goja.loadStackLex(1) compiler.go:433: 34: goja._throw({}) compiler.go:433: 35: *goja.leaveBlock(&{1 false}) compiler.go:433: 36: goja.leaveTry({}) compiler.go:433: 37: goja.loadDynamic(thrown) compiler.go:433: 38: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestProxy_proxy_has_with (0.00s) === RUN TestProxy_target_get compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja._new(2) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(Object) compiler.go:433: 11: goja.getPropCallee(defineProperty) compiler.go:433: 12: goja.loadDynamic(proxy) compiler.go:433: 13: goja.loadVal({foo}) compiler.go:433: 14: goja._newObject({}) compiler.go:433: 15: goja.loadVal({test123}) compiler.go:433: 16: goja.putProp(value) compiler.go:433: 17: goja.call(3) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamic(proxy) compiler.go:433: 20: goja.getProp(foo) compiler.go:433: 21: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_target_get (0.00s) === RUN TestProxy_proxy_get compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: *goja.newFunc(&{0xc0004853b0 get function(target, prop, receiver) { return "321tset" } 3 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 3}) compiler.go:433: > 1: goja.loadVal({321tset}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 9: goja.putProp(get) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(Object) compiler.go:433: 13: goja.getPropCallee(defineProperty) compiler.go:433: 14: goja.loadDynamic(proxy) compiler.go:433: 15: goja.loadVal({foo}) compiler.go:433: 16: goja._newObject({}) compiler.go:433: 17: goja.loadVal({test123}) compiler.go:433: 18: goja.putProp(value) compiler.go:433: 19: goja.loadVal({true}) compiler.go:433: 20: goja.putProp(configurable) compiler.go:433: 21: goja.call(3) compiler.go:433: 22: goja._pop({}) compiler.go:433: 23: goja.loadDynamic(proxy) compiler.go:433: 24: goja.getProp(foo) compiler.go:433: 25: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_get (0.00s) === RUN TestProxy_proxy_get_json_stringify compiler.go:433: 0: *goja.bindGlobal(&{[obj propValue _handler _target _prop _receiver proxy res] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(propValue) compiler.go:433: 5: goja.loadVal({321tset}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(proxy) compiler.go:433: 8: goja.loadDynamic(Proxy) compiler.go:433: 9: goja.loadDynamic(obj) compiler.go:433: 10: goja._newObject({}) compiler.go:433: 11: *goja.newFunc(&{0xc000485770 ownKeys function() { return ["foo"]; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.newArray(1) compiler.go:433: > 2: goja.loadVal({foo}) compiler.go:433: > 3: goja._pushArrayItem({}) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 12: goja.putProp(ownKeys) compiler.go:433: 13: *goja.newFunc(&{0xc000485810 getOwnPropertyDescriptor function(target, prop) { if (prop === "foo") { return { value: propValue, enumerable: true, configurable: true } } } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadStackLex(-2) compiler.go:433: > 2: goja.loadVal({foo}) compiler.go:433: > 3: goja._op_strict_eq({}) compiler.go:433: > 4: goja.jneP(9) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadDynamic(propValue) compiler.go:433: > 7: goja.putProp(value) compiler.go:433: > 8: goja.loadVal({true}) compiler.go:433: > 9: goja.putProp(enumerable) compiler.go:433: > 10: goja.loadVal({true}) compiler.go:433: > 11: goja.putProp(configurable) compiler.go:433: > 12: goja._ret({}) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 14: goja.putProp(getOwnPropertyDescriptor) compiler.go:433: 15: *goja.newFunc(&{0xc000485860 get function(target, prop, receiver) { if (prop === "foo") { _prop = prop; _receiver = receiver; return propValue; } return obj[prop]; } 3 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 3}) compiler.go:433: > 1: goja.loadStackLex(-2) compiler.go:433: > 2: goja.loadVal({foo}) compiler.go:433: > 3: goja._op_strict_eq({}) compiler.go:433: > 4: goja.jneP(9) compiler.go:433: > 5: goja.resolveVar1(_prop) compiler.go:433: > 6: goja.loadStackLex(-2) compiler.go:433: > 7: goja._putValueP({}) compiler.go:433: > 8: goja.resolveVar1(_receiver) compiler.go:433: > 9: goja.loadStackLex(-3) compiler.go:433: > 10: goja._putValueP({}) compiler.go:433: > 11: goja.loadDynamic(propValue) compiler.go:433: > 12: goja._ret({}) compiler.go:433: > 13: goja.loadDynamic(obj) compiler.go:433: > 14: goja.loadStackLex(-2) compiler.go:433: > 15: goja._getElem({}) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 16: goja.putProp(get) compiler.go:433: 17: goja._new(2) compiler.go:433: 18: goja._initValueP({}) compiler.go:433: 19: goja.resolveVar1(res) compiler.go:433: 20: goja.loadDynamic(JSON) compiler.go:433: 21: goja.getPropCallee(stringify) compiler.go:433: 22: goja.loadDynamic(proxy) compiler.go:433: 23: goja.call(1) compiler.go:433: 24: goja._initValueP({}) compiler.go:433: 25: goja.loadDynamic(assert) compiler.go:433: 26: goja.getPropCallee(sameValue) compiler.go:433: 27: goja.loadDynamic(res) compiler.go:433: 28: goja.loadVal({{"foo":"321tset"}}) compiler.go:433: 29: goja.call(2) compiler.go:433: 30: goja._pop({}) compiler.go:433: 31: goja.loadDynamic(assert) compiler.go:433: 32: goja.getPropCallee(sameValue) compiler.go:433: 33: goja.loadDynamic(_prop) compiler.go:433: 34: goja.loadVal({foo}) compiler.go:433: 35: goja.call(2) compiler.go:433: 36: goja._pop({}) compiler.go:433: 37: goja.loadDynamic(assert) compiler.go:433: 38: goja.getPropCallee(sameValue) compiler.go:433: 39: goja.loadDynamic(_receiver) compiler.go:433: 40: goja.loadDynamic(proxy) compiler.go:433: 41: goja.call(2) compiler.go:433: 42: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_get_json_stringify (0.00s) === RUN TestProxy_native_proxy_get --- PASS: TestProxy_native_proxy_get (0.00s) === RUN TestProxy_native_proxy_set --- PASS: TestProxy_native_proxy_set (0.00s) === RUN TestProxy_target_set_prop compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja._new(2) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(proxy) compiler.go:433: 11: goja.loadVal({test123}) compiler.go:433: 12: goja.setPropP(foo) compiler.go:433: 13: goja.loadDynamic(proxy) compiler.go:433: 14: goja.getProp(foo) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_target_set_prop (0.00s) === RUN TestProxy_proxy_set_prop compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: *goja.newFunc(&{0xc000485ef0 set function(target, prop, receiver) { target.foo = "321tset"; return true; } 3 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 3}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.loadVal({321tset}) compiler.go:433: > 3: goja.setPropP(foo) compiler.go:433: > 4: goja.loadVal({true}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 9: goja.putProp(set) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(proxy) compiler.go:433: 13: goja.loadVal({test123}) compiler.go:433: 14: goja.setPropP(foo) compiler.go:433: 15: goja.loadDynamic(proxy) compiler.go:433: 16: goja.getProp(foo) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_set_prop (0.00s) === RUN TestProxy_target_set_associative compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja._new(2) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(proxy) compiler.go:433: 11: goja.loadVal({test123}) compiler.go:433: 12: goja.setPropP(foo) compiler.go:433: 13: goja.loadDynamic(proxy) compiler.go:433: 14: goja.getProp(foo) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_target_set_associative (0.00s) === RUN TestProxy_proxy_set_associative compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: *goja.newFunc(&{0xc000020960 set function(target, property, value, receiver) { target["foo"] = "321tset"; return true; } 4 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 4}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.loadVal({321tset}) compiler.go:433: > 3: goja.setPropP(foo) compiler.go:433: > 4: goja.loadVal({true}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 9: goja.putProp(set) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(proxy) compiler.go:433: 13: goja.loadVal({test123}) compiler.go:433: 14: goja.setPropP(foo) compiler.go:433: 15: goja.loadDynamic(proxy) compiler.go:433: 16: goja.getProp(foo) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_set_associative (0.00s) === RUN TestProxy_target_delete compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({test}) compiler.go:433: 4: goja.putProp(foo) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(proxy) compiler.go:433: 7: goja.loadDynamic(Proxy) compiler.go:433: 8: goja.loadDynamic(obj) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(proxy) compiler.go:433: 13: goja.deleteProp(foo) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja.loadDynamic(proxy) compiler.go:433: 16: goja.getProp(foo) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_target_delete (0.00s) === RUN TestProxy_proxy_delete compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({test}) compiler.go:433: 4: goja.putProp(foo) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(proxy) compiler.go:433: 7: goja.loadDynamic(Proxy) compiler.go:433: 8: goja.loadDynamic(obj) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: *goja.newFunc(&{0xc000020d70 deleteProperty function(target, prop) { return true; } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadVal({true}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 11: goja.putProp(deleteProperty) compiler.go:433: 12: goja._new(2) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.loadDynamic(proxy) compiler.go:433: 15: goja.deleteProp(foo) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadDynamic(proxy) compiler.go:433: 18: goja.getProp(foo) compiler.go:433: 19: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_delete (0.00s) === RUN TestProxy_native_delete --- PASS: TestProxy_native_delete (0.00s) === RUN TestProxy_target_keys compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy keys] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({test}) compiler.go:433: 4: goja.putProp(foo) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(proxy) compiler.go:433: 7: goja.loadDynamic(Proxy) compiler.go:433: 8: goja.loadDynamic(obj) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.resolveVar1(keys) compiler.go:433: 13: goja.loadDynamic(Object) compiler.go:433: 14: goja.getPropCallee(keys) compiler.go:433: 15: goja.loadDynamic(proxy) compiler.go:433: 16: goja.call(1) compiler.go:433: 17: goja._initValueP({}) compiler.go:433: 18: goja._clearResult({}) compiler.go:433: 19: goja.loadDynamic(keys) compiler.go:433: 20: goja.getProp(length) compiler.go:433: 21: goja.loadVal({1}) compiler.go:433: 22: goja._op_neq({}) compiler.go:433: 23: goja.jneP(6) compiler.go:433: 24: goja.loadDynamic(Error) compiler.go:433: 25: goja.loadVal({assertion error}) compiler.go:433: 26: goja._new(1) compiler.go:433: 27: goja._throw({}) compiler.go:433: 28: goja.jump(2) compiler.go:433: 29: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_target_keys (0.00s) === RUN TestProxy_proxy_keys compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy keys] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({test}) compiler.go:433: 4: goja.putProp(foo) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(proxy) compiler.go:433: 7: goja.loadDynamic(Proxy) compiler.go:433: 8: goja.loadDynamic(obj) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: *goja.newFunc(&{0xc0000214a0 ownKeys function(target) { return ["foo", "bar"]; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.newArray(2) compiler.go:433: > 2: goja.loadVal({foo}) compiler.go:433: > 3: goja._pushArrayItem({}) compiler.go:433: > 4: goja.loadVal({bar}) compiler.go:433: > 5: goja._pushArrayItem({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 11: goja.putProp(ownKeys) compiler.go:433: 12: goja._new(2) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.resolveVar1(keys) compiler.go:433: 15: goja.loadDynamic(Object) compiler.go:433: 16: goja.getPropCallee(keys) compiler.go:433: 17: goja.loadDynamic(proxy) compiler.go:433: 18: goja.call(1) compiler.go:433: 19: goja._initValueP({}) compiler.go:433: 20: goja.loadDynamic(keys) compiler.go:433: 21: goja.getProp(length) compiler.go:433: 22: goja.loadVal({1}) compiler.go:433: 23: goja._op_strict_neq({}) compiler.go:433: 24: goja.jneP(8) compiler.go:433: 25: goja.loadDynamic(Error) compiler.go:433: 26: goja.loadVal({length is }) compiler.go:433: 27: goja.loadDynamic(keys) compiler.go:433: 28: goja.getProp(length) compiler.go:433: 29: goja._add({}) compiler.go:433: 30: goja._new(1) compiler.go:433: 31: goja._throw({}) compiler.go:433: 32: goja._clearResult({}) compiler.go:433: 33: goja.loadDynamic(keys) compiler.go:433: 34: goja.loadVal({0}) compiler.go:433: 35: goja._getElem({}) compiler.go:433: 36: goja.loadVal({foo}) compiler.go:433: 37: goja._op_strict_neq({}) compiler.go:433: 38: goja.jneP(10) compiler.go:433: 39: goja.loadDynamic(Error) compiler.go:433: 40: goja.loadVal({keys[0] is }) compiler.go:433: 41: goja.loadDynamic(keys) compiler.go:433: 42: goja.loadVal({0}) compiler.go:433: 43: goja._getElem({}) compiler.go:433: 44: goja._add({}) compiler.go:433: 45: goja._new(1) compiler.go:433: 46: goja._throw({}) compiler.go:433: 47: goja.jump(2) compiler.go:433: 48: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_keys (0.00s) === RUN TestProxy_target_call compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: *goja.newFunc(&{0xc0000216d0 obj function() { return "test" } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({test}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja._new(2) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamicCallee(proxy) compiler.go:433: 11: goja.call(0) compiler.go:433: 12: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_target_call (0.00s) === RUN TestProxy_proxy_call compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: *goja.newFunc(&{0xc0000219f0 obj function() { return "test" } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({test}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: *goja.newFunc(&{0xc000021a40 apply function(target, thisArg, args) { return "tset" } 3 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 3}) compiler.go:433: > 1: goja.loadVal({tset}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 9: goja.putProp(apply) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamicCallee(proxy) compiler.go:433: 13: goja.call(0) compiler.go:433: 14: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_call (0.00s) === RUN TestProxy_target_func_apply compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: *goja.newFunc(&{0xc000021c70 obj function() { return "test" } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({test}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja._new(2) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(proxy) compiler.go:433: 11: goja.getPropCallee(apply) compiler.go:433: 12: goja.call(0) compiler.go:433: 13: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_target_func_apply (0.00s) === RUN TestProxy_proxy_func_apply compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: *goja.newFunc(&{0xc00037e000 obj function() { return "test" } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({test}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: *goja.newFunc(&{0xc00037e050 apply function(target, thisArg, args) { return "tset" } 3 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 3}) compiler.go:433: > 1: goja.loadVal({tset}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 9: goja.putProp(apply) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(proxy) compiler.go:433: 13: goja.getPropCallee(apply) compiler.go:433: 14: goja.call(0) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_func_apply (0.00s) === RUN TestProxy_target_func_call compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: *goja.newFunc(&{0xc00037e280 obj function() { return "test" } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({test}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja._new(2) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(proxy) compiler.go:433: 11: goja.getPropCallee(call) compiler.go:433: 12: goja.call(0) compiler.go:433: 13: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_target_func_call (0.00s) === RUN TestProxy_proxy_func_call compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: *goja.newFunc(&{0xc00037e870 obj function() { return "test" } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({test}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: *goja.newFunc(&{0xc00037e8c0 apply function(target, thisArg, args) { return "tset" } 3 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 3}) compiler.go:433: > 1: goja.loadVal({tset}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 9: goja.putProp(apply) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(proxy) compiler.go:433: 13: goja.getPropCallee(call) compiler.go:433: 14: goja.call(0) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_func_call (0.00s) === RUN TestProxy_target_new compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy instance] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: *goja.newFunc(&{0xc00037ef50 obj function(word) { this.foo = function() { return word; } } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 1 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: *goja.newFunc(&{0xc00037f090 function() { return word; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStashLex(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 4: goja.setPropP(foo) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja._new(2) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(instance) compiler.go:433: 11: goja.loadDynamic(proxy) compiler.go:433: 12: goja.loadVal({test}) compiler.go:433: 13: goja._new(1) compiler.go:433: 14: goja._initValueP({}) compiler.go:433: 15: goja.loadDynamic(instance) compiler.go:433: 16: goja.getPropCallee(foo) compiler.go:433: 17: goja.call(0) compiler.go:433: 18: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestProxy_target_new (0.00s) === RUN TestProxy_proxy_new compiler.go:433: 0: *goja.bindGlobal(&{[obj proxy instance] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(obj) compiler.go:433: 2: *goja.newFunc(&{0xc00037f6d0 obj function(word) { this.foo = function() { return word; } } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 1 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: *goja.newFunc(&{0xc00037f720 function() { return word; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStashLex(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 4: goja.setPropP(foo) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(proxy) compiler.go:433: 5: goja.loadDynamic(Proxy) compiler.go:433: 6: goja.loadDynamic(obj) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: *goja.newFunc(&{0xc00037f7c0 construct function(target, args, newTarget) { var word = args[0]; return { foo: function() { return "caught-" + word } } } 3 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 3 1 false false}) compiler.go:433: > 1: goja.loadStackLex(-2) compiler.go:433: > 2: goja.loadVal({0}) compiler.go:433: > 3: goja._getElem({}) compiler.go:433: > 4: goja.initStashP(0) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: *goja.newFunc(&{0xc00037f810 foo function() { return "caught-" + word } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadVal({caught-}) compiler.go:433: >> 2: goja.loadStash(0) compiler.go:433: >> 3: goja._add({}) compiler.go:433: >> 4: goja._ret({}) compiler.go:433: > 7: goja.putProp(foo) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 9: goja.putProp(construct) compiler.go:433: 10: goja._new(2) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.resolveVar1(instance) compiler.go:433: 13: goja.loadDynamic(proxy) compiler.go:433: 14: goja.loadVal({test}) compiler.go:433: 15: goja._new(1) compiler.go:433: 16: goja._initValueP({}) compiler.go:433: 17: goja.loadDynamic(instance) compiler.go:433: 18: goja.getPropCallee(foo) compiler.go:433: 19: goja.call(0) compiler.go:433: 20: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestProxy_proxy_new (0.00s) === RUN TestProxy_Object_native_proxy_ownKeys --- PASS: TestProxy_Object_native_proxy_ownKeys (0.00s) === RUN TestProxy_proxy_forIn compiler.go:433: 0: *goja.bindGlobal(&{[proto target proxy forInResult key] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(proto) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({2}) compiler.go:433: 4: goja.putProp(a) compiler.go:433: 5: goja.loadVal({1}) compiler.go:433: 6: goja.putProp(protoProp) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.loadDynamic(Object) compiler.go:433: 9: goja.getPropCallee(defineProperty) compiler.go:433: 10: goja.loadDynamic(proto) compiler.go:433: 11: goja.loadVal({protoNonEnum}) compiler.go:433: 12: goja._newObject({}) compiler.go:433: 13: goja.loadVal({2}) compiler.go:433: 14: goja.putProp(value) compiler.go:433: 15: goja.loadVal({true}) compiler.go:433: 16: goja.putProp(writable) compiler.go:433: 17: goja.loadVal({true}) compiler.go:433: 18: goja.putProp(configurable) compiler.go:433: 19: goja.call(3) compiler.go:433: 20: goja._pop({}) compiler.go:433: 21: goja.resolveVar1(target) compiler.go:433: 22: goja.loadDynamic(Object) compiler.go:433: 23: goja.getPropCallee(create) compiler.go:433: 24: goja.loadDynamic(proto) compiler.go:433: 25: goja.call(1) compiler.go:433: 26: goja._initValueP({}) compiler.go:433: 27: goja.resolveVar1(proxy) compiler.go:433: 28: goja.loadDynamic(Proxy) compiler.go:433: 29: goja.loadDynamic(target) compiler.go:433: 30: goja._newObject({}) compiler.go:433: 31: *goja.newFunc(&{0xc00037fe00 ownKeys function() { return ["a", "b"]; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.newArray(2) compiler.go:433: > 2: goja.loadVal({a}) compiler.go:433: > 3: goja._pushArrayItem({}) compiler.go:433: > 4: goja.loadVal({b}) compiler.go:433: > 5: goja._pushArrayItem({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 32: goja.putProp(ownKeys) compiler.go:433: 33: *goja.newFunc(&{0xc00037fe50 getOwnPropertyDescriptor function(target, p) { switch (p) { case "a": case "b": return { value: 42, enumerable: true, configurable: true } } } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadStackLex(-2) compiler.go:433: > 2: goja._dup({}) compiler.go:433: > 3: goja.loadVal({a}) compiler.go:433: > 4: goja._op_strict_eq({}) compiler.go:433: > 5: goja.jneP(3) compiler.go:433: > 6: goja._pop({}) compiler.go:433: > 7: goja.jump(9) compiler.go:433: > 8: goja._dup({}) compiler.go:433: > 9: goja.loadVal({b}) compiler.go:433: > 10: goja._op_strict_eq({}) compiler.go:433: > 11: goja.jneP(3) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja.jump(3) compiler.go:433: > 14: goja._pop({}) compiler.go:433: > 15: goja.jump(9) compiler.go:433: > 16: goja._newObject({}) compiler.go:433: > 17: goja.loadVal({42}) compiler.go:433: > 18: goja.putProp(value) compiler.go:433: > 19: goja.loadVal({true}) compiler.go:433: > 20: goja.putProp(enumerable) compiler.go:433: > 21: goja.loadVal({true}) compiler.go:433: > 22: goja.putProp(configurable) compiler.go:433: > 23: goja._ret({}) compiler.go:433: > 24: goja._loadUndef({}) compiler.go:433: > 25: goja._ret({}) compiler.go:433: 34: goja.putProp(getOwnPropertyDescriptor) compiler.go:433: 35: goja._new(2) compiler.go:433: 36: goja._initValueP({}) compiler.go:433: 37: goja.resolveVar1(forInResult) compiler.go:433: 38: goja.newArray(0) compiler.go:433: 39: goja._initValueP({}) compiler.go:433: 40: goja.loadDynamic(proxy) compiler.go:433: 41: goja._enumerate({}) compiler.go:433: 42: goja.enumNext(23) compiler.go:433: 43: goja.resolveVar1(key) compiler.go:433: 44: goja._enumGet({}) compiler.go:433: 45: goja._putValueP({}) compiler.go:433: 46: goja.loadDynamic(forInResult) compiler.go:433: 47: goja.getPropCallee(indexOf) compiler.go:433: 48: goja.loadDynamic(key) compiler.go:433: 49: goja.call(1) compiler.go:433: 50: goja.loadVal({-1}) compiler.go:433: 51: goja._op_strict_neq({}) compiler.go:433: 52: goja.jneP(7) compiler.go:433: 53: goja.loadDynamic(Error) compiler.go:433: 54: goja.loadVal({Duplicate property }) compiler.go:433: 55: goja.loadDynamic(key) compiler.go:433: 56: goja._add({}) compiler.go:433: 57: goja._new(1) compiler.go:433: 58: goja._throw({}) compiler.go:433: 59: goja.loadDynamic(forInResult) compiler.go:433: 60: goja.getPropCallee(push) compiler.go:433: 61: goja.loadDynamic(key) compiler.go:433: 62: goja.call(1) compiler.go:433: 63: goja._pop({}) compiler.go:433: 64: goja.jump(-22) compiler.go:433: 65: goja._enumPop({}) compiler.go:433: 66: goja.jump(2) compiler.go:433: 67: goja._enumPopClose({}) compiler.go:433: 68: goja.loadDynamic(forInResult) compiler.go:433: 69: goja.getProp(length) compiler.go:433: 70: goja.loadVal({3}) compiler.go:433: 71: goja._op_strict_eq({}) compiler.go:433: 72: goja.jne(6) compiler.go:433: 73: goja.loadDynamic(forInResult) compiler.go:433: 74: goja.loadVal({0}) compiler.go:433: 75: goja._getElem({}) compiler.go:433: 76: goja.loadVal({a}) compiler.go:433: 77: goja._op_strict_eq({}) compiler.go:433: 78: goja.jne(6) compiler.go:433: 79: goja.loadDynamic(forInResult) compiler.go:433: 80: goja.loadVal({1}) compiler.go:433: 81: goja._getElem({}) compiler.go:433: 82: goja.loadVal({b}) compiler.go:433: 83: goja._op_strict_eq({}) compiler.go:433: 84: goja.jne(6) compiler.go:433: 85: goja.loadDynamic(forInResult) compiler.go:433: 86: goja.loadVal({2}) compiler.go:433: 87: goja._getElem({}) compiler.go:433: 88: goja.loadVal({protoProp}) compiler.go:433: 89: goja._op_strict_eq({}) compiler.go:433: 90: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_forIn (0.00s) === RUN TestProxyExport --- PASS: TestProxyExport (0.00s) === RUN TestProxy_proxy_createTargetNotCallable compiler.go:433: 0: *goja.bindGlobal(&{[p] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(p) compiler.go:433: 2: goja.loadDynamic(Proxy) compiler.go:433: 3: goja._newObject({}) compiler.go:433: 4: goja._newObject({}) compiler.go:433: 5: goja._new(2) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(assert) compiler.go:433: 8: goja.getPropCallee(throws) compiler.go:433: 9: goja.loadDynamic(TypeError) compiler.go:433: 10: *goja.newFunc(&{0xc00036c3c0 function() { p(); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamicCallee(p) compiler.go:433: > 2: goja.call(0) compiler.go:433: > 3: goja._pop({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 11: goja.call(2) compiler.go:433: 12: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxy_proxy_createTargetNotCallable (0.00s) === RUN TestProxyEnumerableSymbols compiler.go:433: 0: *goja.bindGlobal(&{[getOwnKeys ownKeysResult proxy] [] [$] [] false}) compiler.go:433: 1: goja.resolveVar1(getOwnKeys) compiler.go:433: 2: goja.newArray(0) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(ownKeysResult) compiler.go:433: 5: goja.newArray(3) compiler.go:433: 6: goja.loadDynamicCallee(Symbol) compiler.go:433: 7: goja.call(0) compiler.go:433: 8: goja._pushArrayItem({}) compiler.go:433: 9: goja.loadVal({foo}) compiler.go:433: 10: goja._pushArrayItem({}) compiler.go:433: 11: goja.loadVal({0}) compiler.go:433: 12: goja._pushArrayItem({}) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.resolveVar1(proxy) compiler.go:433: 15: goja.loadDynamic(Proxy) compiler.go:433: 16: goja._newObject({}) compiler.go:433: 17: goja._newObject({}) compiler.go:433: 18: *goja.newFunc(&{0xc00036c690 getOwnPropertyDescriptor function(_target, key) { getOwnKeys.push(key); } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadDynamic(getOwnKeys) compiler.go:433: > 2: goja.getPropCallee(push) compiler.go:433: > 3: goja.loadStackLex(-2) compiler.go:433: > 4: goja.call(1) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 19: goja.putProp(getOwnPropertyDescriptor) compiler.go:433: 20: *goja.newFunc(&{0xc00036c6e0 ownKeys function() { return ownKeysResult; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(ownKeysResult) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 21: goja.putProp(ownKeys) compiler.go:433: 22: goja._new(2) compiler.go:433: 23: goja._initValueP({}) compiler.go:433: 24: goja.loadDynamic(proxy) compiler.go:433: 25: goja._createDestructSrc({}) compiler.go:433: 26: goja._copyRest({}) compiler.go:433: 27: goja.initGlobalP($) compiler.go:433: 28: goja._pop({}) compiler.go:433: 29: goja._pop({}) compiler.go:433: 30: goja.loadDynamicCallee(compareArray) compiler.go:433: 31: goja.loadDynamic(getOwnKeys) compiler.go:433: 32: goja.loadDynamic(ownKeysResult) compiler.go:433: 33: goja.call(2) compiler.go:433: 34: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProxyEnumerableSymbols (0.00s) === RUN TestSetEvilIterator compiler.go:433: 0: *goja.bindGlobal(&{[o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(o) compiler.go:433: 5: goja.loadDynamic(Symbol) compiler.go:433: 6: goja.getProp(iterator) compiler.go:433: 7: *goja.newFunc(&{0xc00036c960 function() { return { next: function() { if (!this.flag) { this.flag = true; return {}; } return {done: true}; } } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: *goja.newFunc(&{0xc00036c9b0 next function() { if (!this.flag) { this.flag = true; return {}; } return {done: true}; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._boxThis({}) compiler.go:433: >> 2: goja.loadStack(0) compiler.go:433: >> 3: goja.getProp(flag) compiler.go:433: >> 4: goja._not({}) compiler.go:433: >> 5: goja.jneP(6) compiler.go:433: >> 6: goja.loadStack(0) compiler.go:433: >> 7: goja.loadVal({true}) compiler.go:433: >> 8: goja.setPropP(flag) compiler.go:433: >> 9: goja._newObject({}) compiler.go:433: >> 10: goja._ret({}) compiler.go:433: >> 11: goja._newObject({}) compiler.go:433: >> 12: goja.loadVal({true}) compiler.go:433: >> 13: goja.putProp(done) compiler.go:433: >> 14: goja._ret({}) compiler.go:433: > 3: goja.putProp(next) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 8: goja._setElemP({}) compiler.go:433: 9: goja.loadDynamic(Set) compiler.go:433: 10: goja.loadDynamic(o) compiler.go:433: 11: goja._new(1) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: goja.loadDynamic(undefined) compiler.go:433: 14: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSetEvilIterator (0.00s) === RUN TestSetExportToSliceCircular --- PASS: TestSetExportToSliceCircular (0.00s) === RUN TestSetExportToArrayMismatchedLengths --- PASS: TestSetExportToArrayMismatchedLengths (0.00s) === RUN TestSetExportToNilMap --- PASS: TestSetExportToNilMap (0.00s) === RUN TestSetExportToNonNilMap --- PASS: TestSetExportToNonNilMap (0.00s) === RUN TestSetGetAdderGetIteratorOrder compiler.go:433: 0: *goja.bindGlobal(&{[] [] [getterCalled S getIteratorCalled iterable thrown] [] false}) compiler.go:433: 1: goja.loadVal({0}) compiler.go:433: 2: goja.initGlobalP(getterCalled) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: goja.loadDynamic(Set) compiler.go:433: 5: *goja.newDerivedClass(&{{ S class S extends Set { get add() { getterCalled++; return null; } } [] [] 0 0 0 false}}) compiler.go:433: 6: goja.dupN(1) compiler.go:433: 7: *goja.newMethod(&{{0xc00036d220 add get add() { getterCalled++; return null; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1Strict(getterCalled) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja._inc({}) compiler.go:433: > 4: goja._putValueP({}) compiler.go:433: > 5: goja.loadVal({{}}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 8: *goja.defineGetterKeyed(&{add false}) compiler.go:433: 9: goja._pop({}) compiler.go:433: 10: goja._endVariadic({}) compiler.go:433: 11: goja.initGlobalP(S) compiler.go:433: 12: goja.loadVal({0}) compiler.go:433: 13: goja.initGlobalP(getIteratorCalled) compiler.go:433: 14: goja._newObject({}) compiler.go:433: 15: goja.initGlobalP(iterable) compiler.go:433: 16: goja.loadDynamic(iterable) compiler.go:433: 17: goja.loadDynamic(Symbol) compiler.go:433: 18: goja.getProp(iterator) compiler.go:433: 19: *goja.newArrowFunc(&{{0xc00036d270 () => { getIteratorCalled++ return { next: 1 }; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(getIteratorCalled) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja._inc({}) compiler.go:433: > 4: goja._putValueP({}) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadVal({1}) compiler.go:433: > 7: goja.putProp(next) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 20: goja._setElemP({}) compiler.go:433: 21: goja.loadVal({false}) compiler.go:433: 22: goja.initGlobalP(thrown) compiler.go:433: 23: goja.try({6 0}) compiler.go:433: 24: goja.loadDynamic(S) compiler.go:433: 25: goja.loadDynamic(iterable) compiler.go:433: 26: goja._new(1) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja.jump(13) compiler.go:433: 29: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 30: goja.loadStackLex(1) compiler.go:433: 31: goja.loadDynamic(TypeError) compiler.go:433: 32: goja._op_instanceof({}) compiler.go:433: 33: goja.jneP(5) compiler.go:433: 34: goja.resolveVar1(thrown) compiler.go:433: 35: goja.loadVal({true}) compiler.go:433: 36: goja._putValueP({}) compiler.go:433: 37: goja.jump(3) compiler.go:433: 38: goja.loadStackLex(1) compiler.go:433: 39: goja._throw({}) compiler.go:433: 40: *goja.leaveBlock(&{1 false}) compiler.go:433: 41: goja.leaveTry({}) compiler.go:433: 42: goja.loadDynamic(thrown) compiler.go:433: 43: goja.jne(4) compiler.go:433: 44: goja.loadDynamic(getterCalled) compiler.go:433: 45: goja.loadVal({1}) compiler.go:433: 46: goja._op_strict_eq({}) compiler.go:433: 47: goja.jne(4) compiler.go:433: 48: goja.loadDynamic(getIteratorCalled) compiler.go:433: 49: goja.loadVal({0}) compiler.go:433: 50: goja._op_strict_eq({}) compiler.go:433: 51: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSetGetAdderGetIteratorOrder (0.00s) === RUN TestSubstr compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(sameValue) compiler.go:433: 2: goja.loadVal({abc}) compiler.go:433: 3: goja.getPropCallee(substr) compiler.go:433: 4: goja.loadVal({0}) compiler.go:433: 5: goja.loadVal({false}) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja.loadVal({}) compiler.go:433: 8: goja.loadVal({start: 0, length: false}) compiler.go:433: 9: goja.call(3) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.loadDynamic(assert) compiler.go:433: 12: goja.getPropCallee(sameValue) compiler.go:433: 13: goja.loadVal({abc}) compiler.go:433: 14: goja.getPropCallee(substr) compiler.go:433: 15: goja.loadVal({1}) compiler.go:433: 16: goja.loadVal({false}) compiler.go:433: 17: goja.call(2) compiler.go:433: 18: goja.loadVal({}) compiler.go:433: 19: goja.loadVal({start: 1, length: false}) compiler.go:433: 20: goja.call(3) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.loadDynamic(assert) compiler.go:433: 23: goja.getPropCallee(sameValue) compiler.go:433: 24: goja.loadVal({abc}) compiler.go:433: 25: goja.getPropCallee(substr) compiler.go:433: 26: goja.loadVal({2}) compiler.go:433: 27: goja.loadVal({false}) compiler.go:433: 28: goja.call(2) compiler.go:433: 29: goja.loadVal({}) compiler.go:433: 30: goja.loadVal({start: 2, length: false}) compiler.go:433: 31: goja.call(3) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja.loadDynamic(assert) compiler.go:433: 34: goja.getPropCallee(sameValue) compiler.go:433: 35: goja.loadVal({abc}) compiler.go:433: 36: goja.getPropCallee(substr) compiler.go:433: 37: goja.loadVal({3}) compiler.go:433: 38: goja.loadVal({false}) compiler.go:433: 39: goja.call(2) compiler.go:433: 40: goja.loadVal({}) compiler.go:433: 41: goja.loadVal({start: 3, length: false}) compiler.go:433: 42: goja.call(3) compiler.go:433: 43: goja._pop({}) compiler.go:433: 44: goja.loadDynamic(assert) compiler.go:433: 45: goja.getPropCallee(sameValue) compiler.go:433: 46: goja.loadVal({abc}) compiler.go:433: 47: goja.getPropCallee(substr) compiler.go:433: 48: goja.loadVal({0}) compiler.go:433: 49: goja.loadDynamic(NaN) compiler.go:433: 50: goja.call(2) compiler.go:433: 51: goja.loadVal({}) compiler.go:433: 52: goja.loadVal({start: 0, length: NaN}) compiler.go:433: 53: goja.call(3) compiler.go:433: 54: goja._pop({}) compiler.go:433: 55: goja.loadDynamic(assert) compiler.go:433: 56: goja.getPropCallee(sameValue) compiler.go:433: 57: goja.loadVal({abc}) compiler.go:433: 58: goja.getPropCallee(substr) compiler.go:433: 59: goja.loadVal({1}) compiler.go:433: 60: goja.loadDynamic(NaN) compiler.go:433: 61: goja.call(2) compiler.go:433: 62: goja.loadVal({}) compiler.go:433: 63: goja.loadVal({start: 1, length: NaN}) compiler.go:433: 64: goja.call(3) compiler.go:433: 65: goja._pop({}) compiler.go:433: 66: goja.loadDynamic(assert) compiler.go:433: 67: goja.getPropCallee(sameValue) compiler.go:433: 68: goja.loadVal({abc}) compiler.go:433: 69: goja.getPropCallee(substr) compiler.go:433: 70: goja.loadVal({2}) compiler.go:433: 71: goja.loadDynamic(NaN) compiler.go:433: 72: goja.call(2) compiler.go:433: 73: goja.loadVal({}) compiler.go:433: 74: goja.loadVal({start: 2, length: NaN}) compiler.go:433: 75: goja.call(3) compiler.go:433: 76: goja._pop({}) compiler.go:433: 77: goja.loadDynamic(assert) compiler.go:433: 78: goja.getPropCallee(sameValue) compiler.go:433: 79: goja.loadVal({abc}) compiler.go:433: 80: goja.getPropCallee(substr) compiler.go:433: 81: goja.loadVal({3}) compiler.go:433: 82: goja.loadDynamic(NaN) compiler.go:433: 83: goja.call(2) compiler.go:433: 84: goja.loadVal({}) compiler.go:433: 85: goja.loadVal({start: 3, length: NaN}) compiler.go:433: 86: goja.call(3) compiler.go:433: 87: goja._pop({}) compiler.go:433: 88: goja.loadDynamic(assert) compiler.go:433: 89: goja.getPropCallee(sameValue) compiler.go:433: 90: goja.loadVal({abc}) compiler.go:433: 91: goja.getPropCallee(substr) compiler.go:433: 92: goja.loadVal({0}) compiler.go:433: 93: goja.loadVal({}) compiler.go:433: 94: goja.call(2) compiler.go:433: 95: goja.loadVal({}) compiler.go:433: 96: goja.loadVal({start: 0, length: ""}) compiler.go:433: 97: goja.call(3) compiler.go:433: 98: goja._pop({}) compiler.go:433: 99: goja.loadDynamic(assert) compiler.go:433: 100: goja.getPropCallee(sameValue) compiler.go:433: 101: goja.loadVal({abc}) compiler.go:433: 102: goja.getPropCallee(substr) compiler.go:433: 103: goja.loadVal({1}) compiler.go:433: 104: goja.loadVal({}) compiler.go:433: 105: goja.call(2) compiler.go:433: 106: goja.loadVal({}) compiler.go:433: 107: goja.loadVal({start: 1, length: ""}) compiler.go:433: 108: goja.call(3) compiler.go:433: 109: goja._pop({}) compiler.go:433: 110: goja.loadDynamic(assert) compiler.go:433: 111: goja.getPropCallee(sameValue) compiler.go:433: 112: goja.loadVal({abc}) compiler.go:433: 113: goja.getPropCallee(substr) compiler.go:433: 114: goja.loadVal({2}) compiler.go:433: 115: goja.loadVal({}) compiler.go:433: 116: goja.call(2) compiler.go:433: 117: goja.loadVal({}) compiler.go:433: 118: goja.loadVal({start: 2, length: ""}) compiler.go:433: 119: goja.call(3) compiler.go:433: 120: goja._pop({}) compiler.go:433: 121: goja.loadDynamic(assert) compiler.go:433: 122: goja.getPropCallee(sameValue) compiler.go:433: 123: goja.loadVal({abc}) compiler.go:433: 124: goja.getPropCallee(substr) compiler.go:433: 125: goja.loadVal({3}) compiler.go:433: 126: goja.loadVal({}) compiler.go:433: 127: goja.call(2) compiler.go:433: 128: goja.loadVal({}) compiler.go:433: 129: goja.loadVal({start: 3, length: ""}) compiler.go:433: 130: goja.call(3) compiler.go:433: 131: goja._pop({}) compiler.go:433: 132: goja.loadDynamic(assert) compiler.go:433: 133: goja.getPropCallee(sameValue) compiler.go:433: 134: goja.loadVal({abc}) compiler.go:433: 135: goja.getPropCallee(substr) compiler.go:433: 136: goja.loadVal({0}) compiler.go:433: 137: goja.loadVal({{}}) compiler.go:433: 138: goja.call(2) compiler.go:433: 139: goja.loadVal({}) compiler.go:433: 140: goja.loadVal({start: 0, length: null}) compiler.go:433: 141: goja.call(3) compiler.go:433: 142: goja._pop({}) compiler.go:433: 143: goja.loadDynamic(assert) compiler.go:433: 144: goja.getPropCallee(sameValue) compiler.go:433: 145: goja.loadVal({abc}) compiler.go:433: 146: goja.getPropCallee(substr) compiler.go:433: 147: goja.loadVal({1}) compiler.go:433: 148: goja.loadVal({{}}) compiler.go:433: 149: goja.call(2) compiler.go:433: 150: goja.loadVal({}) compiler.go:433: 151: goja.loadVal({start: 1, length: null}) compiler.go:433: 152: goja.call(3) compiler.go:433: 153: goja._pop({}) compiler.go:433: 154: goja.loadDynamic(assert) compiler.go:433: 155: goja.getPropCallee(sameValue) compiler.go:433: 156: goja.loadVal({abc}) compiler.go:433: 157: goja.getPropCallee(substr) compiler.go:433: 158: goja.loadVal({2}) compiler.go:433: 159: goja.loadVal({{}}) compiler.go:433: 160: goja.call(2) compiler.go:433: 161: goja.loadVal({}) compiler.go:433: 162: goja.loadVal({start: 2, length: null}) compiler.go:433: 163: goja.call(3) compiler.go:433: 164: goja._pop({}) compiler.go:433: 165: goja.loadDynamic(assert) compiler.go:433: 166: goja.getPropCallee(sameValue) compiler.go:433: 167: goja.loadVal({abc}) compiler.go:433: 168: goja.getPropCallee(substr) compiler.go:433: 169: goja.loadVal({3}) compiler.go:433: 170: goja.loadVal({{}}) compiler.go:433: 171: goja.call(2) compiler.go:433: 172: goja.loadVal({}) compiler.go:433: 173: goja.loadVal({start: 3, length: null}) compiler.go:433: 174: goja.call(3) compiler.go:433: 175: goja._pop({}) compiler.go:433: 176: goja.loadDynamic(assert) compiler.go:433: 177: goja.getPropCallee(sameValue) compiler.go:433: 178: goja.loadVal({abc}) compiler.go:433: 179: goja.getPropCallee(substr) compiler.go:433: 180: goja.loadVal({0}) compiler.go:433: 181: goja.loadVal({1}) compiler.go:433: 182: goja._neg({}) compiler.go:433: 183: goja.call(2) compiler.go:433: 184: goja.loadVal({}) compiler.go:433: 185: goja.loadVal({0, -1}) compiler.go:433: 186: goja.call(3) compiler.go:433: 187: goja._pop({}) compiler.go:433: 188: goja.loadDynamic(assert) compiler.go:433: 189: goja.getPropCallee(sameValue) compiler.go:433: 190: goja.loadVal({abc}) compiler.go:433: 191: goja.getPropCallee(substr) compiler.go:433: 192: goja.loadVal({0}) compiler.go:433: 193: goja.loadVal({2}) compiler.go:433: 194: goja._neg({}) compiler.go:433: 195: goja.call(2) compiler.go:433: 196: goja.loadVal({}) compiler.go:433: 197: goja.loadVal({0, -2}) compiler.go:433: 198: goja.call(3) compiler.go:433: 199: goja._pop({}) compiler.go:433: 200: goja.loadDynamic(assert) compiler.go:433: 201: goja.getPropCallee(sameValue) compiler.go:433: 202: goja.loadVal({abc}) compiler.go:433: 203: goja.getPropCallee(substr) compiler.go:433: 204: goja.loadVal({0}) compiler.go:433: 205: goja.loadVal({3}) compiler.go:433: 206: goja._neg({}) compiler.go:433: 207: goja.call(2) compiler.go:433: 208: goja.loadVal({}) compiler.go:433: 209: goja.loadVal({0, -3}) compiler.go:433: 210: goja.call(3) compiler.go:433: 211: goja._pop({}) compiler.go:433: 212: goja.loadDynamic(assert) compiler.go:433: 213: goja.getPropCallee(sameValue) compiler.go:433: 214: goja.loadVal({abc}) compiler.go:433: 215: goja.getPropCallee(substr) compiler.go:433: 216: goja.loadVal({0}) compiler.go:433: 217: goja.loadVal({4}) compiler.go:433: 218: goja._neg({}) compiler.go:433: 219: goja.call(2) compiler.go:433: 220: goja.loadVal({}) compiler.go:433: 221: goja.loadVal({0, -4}) compiler.go:433: 222: goja.call(3) compiler.go:433: 223: goja._pop({}) compiler.go:433: 224: goja.loadDynamic(assert) compiler.go:433: 225: goja.getPropCallee(sameValue) compiler.go:433: 226: goja.loadVal({abc}) compiler.go:433: 227: goja.getPropCallee(substr) compiler.go:433: 228: goja.loadVal({1}) compiler.go:433: 229: goja.loadVal({1}) compiler.go:433: 230: goja._neg({}) compiler.go:433: 231: goja.call(2) compiler.go:433: 232: goja.loadVal({}) compiler.go:433: 233: goja.loadVal({1, -1}) compiler.go:433: 234: goja.call(3) compiler.go:433: 235: goja._pop({}) compiler.go:433: 236: goja.loadDynamic(assert) compiler.go:433: 237: goja.getPropCallee(sameValue) compiler.go:433: 238: goja.loadVal({abc}) compiler.go:433: 239: goja.getPropCallee(substr) compiler.go:433: 240: goja.loadVal({1}) compiler.go:433: 241: goja.loadVal({2}) compiler.go:433: 242: goja._neg({}) compiler.go:433: 243: goja.call(2) compiler.go:433: 244: goja.loadVal({}) compiler.go:433: 245: goja.loadVal({1, -2}) compiler.go:433: 246: goja.call(3) compiler.go:433: 247: goja._pop({}) compiler.go:433: 248: goja.loadDynamic(assert) compiler.go:433: 249: goja.getPropCallee(sameValue) compiler.go:433: 250: goja.loadVal({abc}) compiler.go:433: 251: goja.getPropCallee(substr) compiler.go:433: 252: goja.loadVal({1}) compiler.go:433: 253: goja.loadVal({3}) compiler.go:433: 254: goja._neg({}) compiler.go:433: 255: goja.call(2) compiler.go:433: 256: goja.loadVal({}) compiler.go:433: 257: goja.loadVal({1, -3}) compiler.go:433: 258: goja.call(3) compiler.go:433: 259: goja._pop({}) compiler.go:433: 260: goja.loadDynamic(assert) compiler.go:433: 261: goja.getPropCallee(sameValue) compiler.go:433: 262: goja.loadVal({abc}) compiler.go:433: 263: goja.getPropCallee(substr) compiler.go:433: 264: goja.loadVal({1}) compiler.go:433: 265: goja.loadVal({4}) compiler.go:433: 266: goja._neg({}) compiler.go:433: 267: goja.call(2) compiler.go:433: 268: goja.loadVal({}) compiler.go:433: 269: goja.loadVal({1, -4}) compiler.go:433: 270: goja.call(3) compiler.go:433: 271: goja._pop({}) compiler.go:433: 272: goja.loadDynamic(assert) compiler.go:433: 273: goja.getPropCallee(sameValue) compiler.go:433: 274: goja.loadVal({abc}) compiler.go:433: 275: goja.getPropCallee(substr) compiler.go:433: 276: goja.loadVal({2}) compiler.go:433: 277: goja.loadVal({1}) compiler.go:433: 278: goja._neg({}) compiler.go:433: 279: goja.call(2) compiler.go:433: 280: goja.loadVal({}) compiler.go:433: 281: goja.loadVal({2, -1}) compiler.go:433: 282: goja.call(3) compiler.go:433: 283: goja._pop({}) compiler.go:433: 284: goja.loadDynamic(assert) compiler.go:433: 285: goja.getPropCallee(sameValue) compiler.go:433: 286: goja.loadVal({abc}) compiler.go:433: 287: goja.getPropCallee(substr) compiler.go:433: 288: goja.loadVal({2}) compiler.go:433: 289: goja.loadVal({2}) compiler.go:433: 290: goja._neg({}) compiler.go:433: 291: goja.call(2) compiler.go:433: 292: goja.loadVal({}) compiler.go:433: 293: goja.loadVal({2, -2}) compiler.go:433: 294: goja.call(3) compiler.go:433: 295: goja._pop({}) compiler.go:433: 296: goja.loadDynamic(assert) compiler.go:433: 297: goja.getPropCallee(sameValue) compiler.go:433: 298: goja.loadVal({abc}) compiler.go:433: 299: goja.getPropCallee(substr) compiler.go:433: 300: goja.loadVal({2}) compiler.go:433: 301: goja.loadVal({3}) compiler.go:433: 302: goja._neg({}) compiler.go:433: 303: goja.call(2) compiler.go:433: 304: goja.loadVal({}) compiler.go:433: 305: goja.loadVal({2, -3}) compiler.go:433: 306: goja.call(3) compiler.go:433: 307: goja._pop({}) compiler.go:433: 308: goja.loadDynamic(assert) compiler.go:433: 309: goja.getPropCallee(sameValue) compiler.go:433: 310: goja.loadVal({abc}) compiler.go:433: 311: goja.getPropCallee(substr) compiler.go:433: 312: goja.loadVal({2}) compiler.go:433: 313: goja.loadVal({4}) compiler.go:433: 314: goja._neg({}) compiler.go:433: 315: goja.call(2) compiler.go:433: 316: goja.loadVal({}) compiler.go:433: 317: goja.loadVal({2, -4}) compiler.go:433: 318: goja.call(3) compiler.go:433: 319: goja._pop({}) compiler.go:433: 320: goja.loadDynamic(assert) compiler.go:433: 321: goja.getPropCallee(sameValue) compiler.go:433: 322: goja.loadVal({abc}) compiler.go:433: 323: goja.getPropCallee(substr) compiler.go:433: 324: goja.loadVal({3}) compiler.go:433: 325: goja.loadVal({1}) compiler.go:433: 326: goja._neg({}) compiler.go:433: 327: goja.call(2) compiler.go:433: 328: goja.loadVal({}) compiler.go:433: 329: goja.loadVal({3, -1}) compiler.go:433: 330: goja.call(3) compiler.go:433: 331: goja._pop({}) compiler.go:433: 332: goja.loadDynamic(assert) compiler.go:433: 333: goja.getPropCallee(sameValue) compiler.go:433: 334: goja.loadVal({abc}) compiler.go:433: 335: goja.getPropCallee(substr) compiler.go:433: 336: goja.loadVal({3}) compiler.go:433: 337: goja.loadVal({2}) compiler.go:433: 338: goja._neg({}) compiler.go:433: 339: goja.call(2) compiler.go:433: 340: goja.loadVal({}) compiler.go:433: 341: goja.loadVal({3, -2}) compiler.go:433: 342: goja.call(3) compiler.go:433: 343: goja._pop({}) compiler.go:433: 344: goja.loadDynamic(assert) compiler.go:433: 345: goja.getPropCallee(sameValue) compiler.go:433: 346: goja.loadVal({abc}) compiler.go:433: 347: goja.getPropCallee(substr) compiler.go:433: 348: goja.loadVal({3}) compiler.go:433: 349: goja.loadVal({3}) compiler.go:433: 350: goja._neg({}) compiler.go:433: 351: goja.call(2) compiler.go:433: 352: goja.loadVal({}) compiler.go:433: 353: goja.loadVal({3, -3}) compiler.go:433: 354: goja.call(3) compiler.go:433: 355: goja._pop({}) compiler.go:433: 356: goja.loadDynamic(assert) compiler.go:433: 357: goja.getPropCallee(sameValue) compiler.go:433: 358: goja.loadVal({abc}) compiler.go:433: 359: goja.getPropCallee(substr) compiler.go:433: 360: goja.loadVal({3}) compiler.go:433: 361: goja.loadVal({4}) compiler.go:433: 362: goja._neg({}) compiler.go:433: 363: goja.call(2) compiler.go:433: 364: goja.loadVal({}) compiler.go:433: 365: goja.loadVal({3, -4}) compiler.go:433: 366: goja.call(3) compiler.go:433: 367: goja._pop({}) compiler.go:433: 368: goja.loadDynamic(assert) compiler.go:433: 369: goja.getPropCallee(sameValue) compiler.go:433: 370: goja.loadVal({abc}) compiler.go:433: 371: goja.getPropCallee(substr) compiler.go:433: 372: goja.loadVal({0}) compiler.go:433: 373: goja.loadVal({1}) compiler.go:433: 374: goja.call(2) compiler.go:433: 375: goja.loadVal({a}) compiler.go:433: 376: goja.loadVal({0, 1}) compiler.go:433: 377: goja.call(3) compiler.go:433: 378: goja._pop({}) compiler.go:433: 379: goja.loadDynamic(assert) compiler.go:433: 380: goja.getPropCallee(sameValue) compiler.go:433: 381: goja.loadVal({abc}) compiler.go:433: 382: goja.getPropCallee(substr) compiler.go:433: 383: goja.loadVal({0}) compiler.go:433: 384: goja.loadVal({2}) compiler.go:433: 385: goja.call(2) compiler.go:433: 386: goja.loadVal({ab}) compiler.go:433: 387: goja.loadVal({0, 1}) compiler.go:433: 388: goja.call(3) compiler.go:433: 389: goja._pop({}) compiler.go:433: 390: goja.loadDynamic(assert) compiler.go:433: 391: goja.getPropCallee(sameValue) compiler.go:433: 392: goja.loadVal({abc}) compiler.go:433: 393: goja.getPropCallee(substr) compiler.go:433: 394: goja.loadVal({0}) compiler.go:433: 395: goja.loadVal({3}) compiler.go:433: 396: goja.call(2) compiler.go:433: 397: goja.loadVal({abc}) compiler.go:433: 398: goja.loadVal({0, 1}) compiler.go:433: 399: goja.call(3) compiler.go:433: 400: goja._pop({}) compiler.go:433: 401: goja.loadDynamic(assert) compiler.go:433: 402: goja.getPropCallee(sameValue) compiler.go:433: 403: goja.loadVal({abc}) compiler.go:433: 404: goja.getPropCallee(substr) compiler.go:433: 405: goja.loadVal({0}) compiler.go:433: 406: goja.loadVal({4}) compiler.go:433: 407: goja.call(2) compiler.go:433: 408: goja.loadVal({abc}) compiler.go:433: 409: goja.loadVal({0, 1}) compiler.go:433: 410: goja.call(3) compiler.go:433: 411: goja._pop({}) compiler.go:433: 412: goja.loadDynamic(assert) compiler.go:433: 413: goja.getPropCallee(sameValue) compiler.go:433: 414: goja.loadVal({abc}) compiler.go:433: 415: goja.getPropCallee(substr) compiler.go:433: 416: goja.loadVal({1}) compiler.go:433: 417: goja.loadVal({1}) compiler.go:433: 418: goja.call(2) compiler.go:433: 419: goja.loadVal({b}) compiler.go:433: 420: goja.loadVal({1, 1}) compiler.go:433: 421: goja.call(3) compiler.go:433: 422: goja._pop({}) compiler.go:433: 423: goja.loadDynamic(assert) compiler.go:433: 424: goja.getPropCallee(sameValue) compiler.go:433: 425: goja.loadVal({abc}) compiler.go:433: 426: goja.getPropCallee(substr) compiler.go:433: 427: goja.loadVal({1}) compiler.go:433: 428: goja.loadVal({2}) compiler.go:433: 429: goja.call(2) compiler.go:433: 430: goja.loadVal({bc}) compiler.go:433: 431: goja.loadVal({1, 1}) compiler.go:433: 432: goja.call(3) compiler.go:433: 433: goja._pop({}) compiler.go:433: 434: goja.loadDynamic(assert) compiler.go:433: 435: goja.getPropCallee(sameValue) compiler.go:433: 436: goja.loadVal({abc}) compiler.go:433: 437: goja.getPropCallee(substr) compiler.go:433: 438: goja.loadVal({1}) compiler.go:433: 439: goja.loadVal({3}) compiler.go:433: 440: goja.call(2) compiler.go:433: 441: goja.loadVal({bc}) compiler.go:433: 442: goja.loadVal({1, 1}) compiler.go:433: 443: goja.call(3) compiler.go:433: 444: goja._pop({}) compiler.go:433: 445: goja.loadDynamic(assert) compiler.go:433: 446: goja.getPropCallee(sameValue) compiler.go:433: 447: goja.loadVal({abc}) compiler.go:433: 448: goja.getPropCallee(substr) compiler.go:433: 449: goja.loadVal({1}) compiler.go:433: 450: goja.loadVal({4}) compiler.go:433: 451: goja.call(2) compiler.go:433: 452: goja.loadVal({bc}) compiler.go:433: 453: goja.loadVal({1, 1}) compiler.go:433: 454: goja.call(3) compiler.go:433: 455: goja._pop({}) compiler.go:433: 456: goja.loadDynamic(assert) compiler.go:433: 457: goja.getPropCallee(sameValue) compiler.go:433: 458: goja.loadVal({abc}) compiler.go:433: 459: goja.getPropCallee(substr) compiler.go:433: 460: goja.loadVal({2}) compiler.go:433: 461: goja.loadVal({1}) compiler.go:433: 462: goja.call(2) compiler.go:433: 463: goja.loadVal({c}) compiler.go:433: 464: goja.loadVal({2, 1}) compiler.go:433: 465: goja.call(3) compiler.go:433: 466: goja._pop({}) compiler.go:433: 467: goja.loadDynamic(assert) compiler.go:433: 468: goja.getPropCallee(sameValue) compiler.go:433: 469: goja.loadVal({abc}) compiler.go:433: 470: goja.getPropCallee(substr) compiler.go:433: 471: goja.loadVal({2}) compiler.go:433: 472: goja.loadVal({2}) compiler.go:433: 473: goja.call(2) compiler.go:433: 474: goja.loadVal({c}) compiler.go:433: 475: goja.loadVal({2, 1}) compiler.go:433: 476: goja.call(3) compiler.go:433: 477: goja._pop({}) compiler.go:433: 478: goja.loadDynamic(assert) compiler.go:433: 479: goja.getPropCallee(sameValue) compiler.go:433: 480: goja.loadVal({abc}) compiler.go:433: 481: goja.getPropCallee(substr) compiler.go:433: 482: goja.loadVal({2}) compiler.go:433: 483: goja.loadVal({3}) compiler.go:433: 484: goja.call(2) compiler.go:433: 485: goja.loadVal({c}) compiler.go:433: 486: goja.loadVal({2, 1}) compiler.go:433: 487: goja.call(3) compiler.go:433: 488: goja._pop({}) compiler.go:433: 489: goja.loadDynamic(assert) compiler.go:433: 490: goja.getPropCallee(sameValue) compiler.go:433: 491: goja.loadVal({abc}) compiler.go:433: 492: goja.getPropCallee(substr) compiler.go:433: 493: goja.loadVal({2}) compiler.go:433: 494: goja.loadVal({4}) compiler.go:433: 495: goja.call(2) compiler.go:433: 496: goja.loadVal({c}) compiler.go:433: 497: goja.loadVal({2, 1}) compiler.go:433: 498: goja.call(3) compiler.go:433: 499: goja._pop({}) compiler.go:433: 500: goja.loadDynamic(assert) compiler.go:433: 501: goja.getPropCallee(sameValue) compiler.go:433: 502: goja.loadVal({abc}) compiler.go:433: 503: goja.getPropCallee(substr) compiler.go:433: 504: goja.loadVal({3}) compiler.go:433: 505: goja.loadVal({1}) compiler.go:433: 506: goja.call(2) compiler.go:433: 507: goja.loadVal({}) compiler.go:433: 508: goja.loadVal({3, 1}) compiler.go:433: 509: goja.call(3) compiler.go:433: 510: goja._pop({}) compiler.go:433: 511: goja.loadDynamic(assert) compiler.go:433: 512: goja.getPropCallee(sameValue) compiler.go:433: 513: goja.loadVal({abc}) compiler.go:433: 514: goja.getPropCallee(substr) compiler.go:433: 515: goja.loadVal({3}) compiler.go:433: 516: goja.loadVal({2}) compiler.go:433: 517: goja.call(2) compiler.go:433: 518: goja.loadVal({}) compiler.go:433: 519: goja.loadVal({3, 1}) compiler.go:433: 520: goja.call(3) compiler.go:433: 521: goja._pop({}) compiler.go:433: 522: goja.loadDynamic(assert) compiler.go:433: 523: goja.getPropCallee(sameValue) compiler.go:433: 524: goja.loadVal({abc}) compiler.go:433: 525: goja.getPropCallee(substr) compiler.go:433: 526: goja.loadVal({3}) compiler.go:433: 527: goja.loadVal({3}) compiler.go:433: 528: goja.call(2) compiler.go:433: 529: goja.loadVal({}) compiler.go:433: 530: goja.loadVal({3, 1}) compiler.go:433: 531: goja.call(3) compiler.go:433: 532: goja._pop({}) compiler.go:433: 533: goja.loadDynamic(assert) compiler.go:433: 534: goja.getPropCallee(sameValue) compiler.go:433: 535: goja.loadVal({abc}) compiler.go:433: 536: goja.getPropCallee(substr) compiler.go:433: 537: goja.loadVal({3}) compiler.go:433: 538: goja.loadVal({4}) compiler.go:433: 539: goja.call(2) compiler.go:433: 540: goja.loadVal({}) compiler.go:433: 541: goja.loadVal({3, 1}) compiler.go:433: 542: goja.call(3) compiler.go:433: 543: goja._pop({}) compiler.go:433: 544: goja.loadDynamic(assert) compiler.go:433: 545: goja.getPropCallee(sameValue) compiler.go:433: 546: goja.loadVal({abc}) compiler.go:433: 547: goja.getPropCallee(substr) compiler.go:433: 548: goja.loadVal({0}) compiler.go:433: 549: goja.call(1) compiler.go:433: 550: goja.loadVal({abc}) compiler.go:433: 551: goja.loadVal({start: 0, length: unspecified}) compiler.go:433: 552: goja.call(3) compiler.go:433: 553: goja._pop({}) compiler.go:433: 554: goja.loadDynamic(assert) compiler.go:433: 555: goja.getPropCallee(sameValue) compiler.go:433: 556: goja.loadVal({abc}) compiler.go:433: 557: goja.getPropCallee(substr) compiler.go:433: 558: goja.loadVal({1}) compiler.go:433: 559: goja.call(1) compiler.go:433: 560: goja.loadVal({bc}) compiler.go:433: 561: goja.loadVal({start: 1, length: unspecified}) compiler.go:433: 562: goja.call(3) compiler.go:433: 563: goja._pop({}) compiler.go:433: 564: goja.loadDynamic(assert) compiler.go:433: 565: goja.getPropCallee(sameValue) compiler.go:433: 566: goja.loadVal({abc}) compiler.go:433: 567: goja.getPropCallee(substr) compiler.go:433: 568: goja.loadVal({2}) compiler.go:433: 569: goja.call(1) compiler.go:433: 570: goja.loadVal({c}) compiler.go:433: 571: goja.loadVal({start: 2, length: unspecified}) compiler.go:433: 572: goja.call(3) compiler.go:433: 573: goja._pop({}) compiler.go:433: 574: goja.loadDynamic(assert) compiler.go:433: 575: goja.getPropCallee(sameValue) compiler.go:433: 576: goja.loadVal({abc}) compiler.go:433: 577: goja.getPropCallee(substr) compiler.go:433: 578: goja.loadVal({3}) compiler.go:433: 579: goja.call(1) compiler.go:433: 580: goja.loadVal({}) compiler.go:433: 581: goja.loadVal({start: 3, length: unspecified}) compiler.go:433: 582: goja.call(3) compiler.go:433: 583: goja._pop({}) compiler.go:433: 584: goja.loadDynamic(assert) compiler.go:433: 585: goja.getPropCallee(sameValue) compiler.go:433: 586: goja.loadVal({abc}) compiler.go:433: 587: goja.getPropCallee(substr) compiler.go:433: 588: goja.loadVal({0}) compiler.go:433: 589: goja.loadDynamic(undefined) compiler.go:433: 590: goja.call(2) compiler.go:433: 591: goja.loadVal({abc}) compiler.go:433: 592: goja.loadVal({start: 0, length: undefined}) compiler.go:433: 593: goja.call(3) compiler.go:433: 594: goja._pop({}) compiler.go:433: 595: goja.loadDynamic(assert) compiler.go:433: 596: goja.getPropCallee(sameValue) compiler.go:433: 597: goja.loadVal({abc}) compiler.go:433: 598: goja.getPropCallee(substr) compiler.go:433: 599: goja.loadVal({1}) compiler.go:433: 600: goja.loadDynamic(undefined) compiler.go:433: 601: goja.call(2) compiler.go:433: 602: goja.loadVal({bc}) compiler.go:433: 603: goja.loadVal({start: 1, length: undefined}) compiler.go:433: 604: goja.call(3) compiler.go:433: 605: goja._pop({}) compiler.go:433: 606: goja.loadDynamic(assert) compiler.go:433: 607: goja.getPropCallee(sameValue) compiler.go:433: 608: goja.loadVal({abc}) compiler.go:433: 609: goja.getPropCallee(substr) compiler.go:433: 610: goja.loadVal({2}) compiler.go:433: 611: goja.loadDynamic(undefined) compiler.go:433: 612: goja.call(2) compiler.go:433: 613: goja.loadVal({c}) compiler.go:433: 614: goja.loadVal({start: 2, length: undefined}) compiler.go:433: 615: goja.call(3) compiler.go:433: 616: goja._pop({}) compiler.go:433: 617: goja.loadDynamic(assert) compiler.go:433: 618: goja.getPropCallee(sameValue) compiler.go:433: 619: goja.loadVal({abc}) compiler.go:433: 620: goja.getPropCallee(substr) compiler.go:433: 621: goja.loadVal({3}) compiler.go:433: 622: goja.loadDynamic(undefined) compiler.go:433: 623: goja.call(2) compiler.go:433: 624: goja.loadVal({}) compiler.go:433: 625: goja.loadVal({start: 3, length: undefined}) compiler.go:433: 626: goja.call(3) compiler.go:433: 627: goja._pop({}) compiler.go:433: 628: goja.loadDynamic(assert) compiler.go:433: 629: goja.getPropCallee(sameValue) compiler.go:433: 630: goja.loadVal({[65279 65 8212]}) compiler.go:433: 631: goja.loadDynamic(String) compiler.go:433: 632: goja.getPropCallee(fromCharCode) compiler.go:433: 633: goja.loadVal({65}) compiler.go:433: 634: goja.loadVal({8212}) compiler.go:433: 635: goja.call(2) compiler.go:433: 636: goja.call(2) compiler.go:433: 637: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSubstr (0.01s) === RUN TestStringMatchSym compiler.go:433: 0: *goja.newFunc(&{0xc00036c280 Prefix function Prefix(p) { this.p = p; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.loadStackLex(-1) compiler.go:433: > 4: goja.setPropP(p) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[prefix1 prefix2] [Prefix] [] [] false}) compiler.go:433: 2: goja.loadDynamic(Prefix) compiler.go:433: 3: goja.getProp(prototype) compiler.go:433: 4: goja.loadDynamic(Symbol) compiler.go:433: 5: goja.getProp(match) compiler.go:433: 6: *goja.newFunc(&{0xc00036c2d0 function(s) { return s.substring(0, this.p.length) === this.p; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja.getPropCallee(substring) compiler.go:433: > 4: goja.loadVal({0}) compiler.go:433: > 5: goja.loadStack(0) compiler.go:433: > 6: goja.getProp(p) compiler.go:433: > 7: goja.getProp(length) compiler.go:433: > 8: goja.call(2) compiler.go:433: > 9: goja.loadStack(0) compiler.go:433: > 10: goja.getProp(p) compiler.go:433: > 11: goja._op_strict_eq({}) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 7: goja._setElemP({}) compiler.go:433: 8: goja.resolveVar1(prefix1) compiler.go:433: 9: goja.loadDynamic(Prefix) compiler.go:433: 10: goja.loadVal({abc}) compiler.go:433: 11: goja._new(1) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.resolveVar1(prefix2) compiler.go:433: 14: goja.loadDynamic(Prefix) compiler.go:433: 15: goja.loadVal({def}) compiler.go:433: 16: goja._new(1) compiler.go:433: 17: goja._initValueP({}) compiler.go:433: 18: goja.loadVal({abc123}) compiler.go:433: 19: goja.getPropCallee(match) compiler.go:433: 20: goja.loadDynamic(prefix1) compiler.go:433: 21: goja.call(1) compiler.go:433: 22: goja.loadVal({true}) compiler.go:433: 23: goja._op_strict_eq({}) compiler.go:433: 24: goja.jne(7) compiler.go:433: 25: goja.loadVal({abc123}) compiler.go:433: 26: goja.getPropCallee(match) compiler.go:433: 27: goja.loadDynamic(prefix2) compiler.go:433: 28: goja.call(1) compiler.go:433: 29: goja.loadVal({false}) compiler.go:433: 30: goja._op_strict_eq({}) compiler.go:433: 31: goja.jne(7) compiler.go:433: 32: goja.loadVal({def123}) compiler.go:433: 33: goja.getPropCallee(match) compiler.go:433: 34: goja.loadDynamic(prefix1) compiler.go:433: 35: goja.call(1) compiler.go:433: 36: goja.loadVal({false}) compiler.go:433: 37: goja._op_strict_eq({}) compiler.go:433: 38: goja.jne(7) compiler.go:433: 39: goja.loadVal({def123}) compiler.go:433: 40: goja.getPropCallee(match) compiler.go:433: 41: goja.loadDynamic(prefix2) compiler.go:433: 42: goja.call(1) compiler.go:433: 43: goja.loadVal({true}) compiler.go:433: 44: goja._op_strict_eq({}) compiler.go:433: 45: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestStringMatchSym (0.00s) === RUN TestStringMatchAllSym compiler.go:433: 0: *goja.newFunc(&{0xc00036c5a0 Prefix function Prefix(p) { this.p = p; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.loadStackLex(-1) compiler.go:433: > 4: goja.setPropP(p) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[prefix1 prefix2] [Prefix] [] [] false}) compiler.go:433: 2: goja.loadDynamic(Prefix) compiler.go:433: 3: goja.getProp(prototype) compiler.go:433: 4: goja.loadDynamic(Symbol) compiler.go:433: 5: goja.getProp(matchAll) compiler.go:433: 6: *goja.newFunc(&{0xc00036c5f0 function(s) { return s.substring(0, this.p.length) === this.p; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja.getPropCallee(substring) compiler.go:433: > 4: goja.loadVal({0}) compiler.go:433: > 5: goja.loadStack(0) compiler.go:433: > 6: goja.getProp(p) compiler.go:433: > 7: goja.getProp(length) compiler.go:433: > 8: goja.call(2) compiler.go:433: > 9: goja.loadStack(0) compiler.go:433: > 10: goja.getProp(p) compiler.go:433: > 11: goja._op_strict_eq({}) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 7: goja._setElemP({}) compiler.go:433: 8: goja.resolveVar1(prefix1) compiler.go:433: 9: goja.loadDynamic(Prefix) compiler.go:433: 10: goja.loadVal({abc}) compiler.go:433: 11: goja._new(1) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.resolveVar1(prefix2) compiler.go:433: 14: goja.loadDynamic(Prefix) compiler.go:433: 15: goja.loadVal({def}) compiler.go:433: 16: goja._new(1) compiler.go:433: 17: goja._initValueP({}) compiler.go:433: 18: goja.loadVal({abc123}) compiler.go:433: 19: goja.getPropCallee(matchAll) compiler.go:433: 20: goja.loadDynamic(prefix1) compiler.go:433: 21: goja.call(1) compiler.go:433: 22: goja.loadVal({true}) compiler.go:433: 23: goja._op_strict_eq({}) compiler.go:433: 24: goja.jne(7) compiler.go:433: 25: goja.loadVal({abc123}) compiler.go:433: 26: goja.getPropCallee(matchAll) compiler.go:433: 27: goja.loadDynamic(prefix2) compiler.go:433: 28: goja.call(1) compiler.go:433: 29: goja.loadVal({false}) compiler.go:433: 30: goja._op_strict_eq({}) compiler.go:433: 31: goja.jne(7) compiler.go:433: 32: goja.loadVal({def123}) compiler.go:433: 33: goja.getPropCallee(matchAll) compiler.go:433: 34: goja.loadDynamic(prefix1) compiler.go:433: 35: goja.call(1) compiler.go:433: 36: goja.loadVal({false}) compiler.go:433: 37: goja._op_strict_eq({}) compiler.go:433: 38: goja.jne(7) compiler.go:433: 39: goja.loadVal({def123}) compiler.go:433: 40: goja.getPropCallee(matchAll) compiler.go:433: 41: goja.loadDynamic(prefix2) compiler.go:433: 42: goja.call(1) compiler.go:433: 43: goja.loadVal({true}) compiler.go:433: 44: goja._op_strict_eq({}) compiler.go:433: 45: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestStringMatchAllSym (0.00s) === RUN TestGenericSplitter compiler.go:433: 0: *goja.newFunc(&{0xc00036caa0 MyRegexp function MyRegexp(pattern, flags) { if (pattern instanceof MyRegexp) { pattern = pattern.wrapped; } this.wrapped = new RegExp(pattern, flags); } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja.loadDynamic(MyRegexp) compiler.go:433: > 4: goja._op_instanceof({}) compiler.go:433: > 5: goja.jneP(4) compiler.go:433: > 6: goja.loadStackLex(-1) compiler.go:433: > 7: goja.getProp(wrapped) compiler.go:433: > 8: goja.storeStackLexP(-1) compiler.go:433: > 9: goja.loadStack(0) compiler.go:433: > 10: goja.loadDynamic(RegExp) compiler.go:433: > 11: goja.loadStackLex(-1) compiler.go:433: > 12: goja.loadStackLex(-2) compiler.go:433: > 13: goja._new(2) compiler.go:433: > 14: goja.setPropP(wrapped) compiler.go:433: > 15: goja._loadUndef({}) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[r res] [MyRegexp] [] [] false}) compiler.go:433: 2: goja.loadDynamic(MyRegexp) compiler.go:433: 3: goja.getProp(prototype) compiler.go:433: 4: *goja.newFunc(&{0xc00036caf0 function() { return this.wrapped.exec.apply(this.wrapped, arguments); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 0 1 0 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.createArgsMapped(0) compiler.go:433: > 3: goja.initStack1P(1) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: goja.getProp(wrapped) compiler.go:433: > 6: goja.getProp(exec) compiler.go:433: > 7: goja.getPropCallee(apply) compiler.go:433: > 8: goja.loadStack(0) compiler.go:433: > 9: goja.getProp(wrapped) compiler.go:433: > 10: goja.loadStack1(1) compiler.go:433: > 11: goja.call(2) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 5: goja.setPropP(exec) compiler.go:433: 6: goja.loadDynamic(Object) compiler.go:433: 7: goja.getPropCallee(defineProperty) compiler.go:433: 8: goja.loadDynamic(MyRegexp) compiler.go:433: 9: goja.getProp(prototype) compiler.go:433: 10: goja.loadVal({lastIndex}) compiler.go:433: 11: goja._newObject({}) compiler.go:433: 12: *goja.newFunc(&{0xc00036cb40 get function() { return this.wrapped.lastIndex; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.getProp(wrapped) compiler.go:433: > 4: goja.getProp(lastIndex) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 13: goja.putProp(get) compiler.go:433: 14: *goja.newFunc(&{0xc00036cb90 set function(v) { this.wrapped.lastIndex = v; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.getProp(wrapped) compiler.go:433: > 4: goja.loadStackLex(-1) compiler.go:433: > 5: goja.setPropP(lastIndex) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 15: goja.putProp(set) compiler.go:433: 16: goja.call(3) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.loadDynamic(Object) compiler.go:433: 19: goja.getPropCallee(defineProperty) compiler.go:433: 20: goja.loadDynamic(MyRegexp) compiler.go:433: 21: goja.getProp(prototype) compiler.go:433: 22: goja.loadVal({flags}) compiler.go:433: 23: goja._newObject({}) compiler.go:433: 24: *goja.newFunc(&{0xc00036cbe0 get function() { return this.wrapped.flags; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.getProp(wrapped) compiler.go:433: > 4: goja.getProp(flags) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 25: goja.putProp(get) compiler.go:433: 26: goja.call(3) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja.loadDynamic(MyRegexp) compiler.go:433: 29: goja.loadDynamic(Symbol) compiler.go:433: 30: goja.getProp(species) compiler.go:433: 31: goja.loadDynamic(MyRegexp) compiler.go:433: 32: goja._setElemP({}) compiler.go:433: 33: goja.loadDynamic(MyRegexp) compiler.go:433: 34: goja.getProp(prototype) compiler.go:433: 35: goja.loadDynamic(Symbol) compiler.go:433: 36: goja.getProp(split) compiler.go:433: 37: goja.loadDynamic(RegExp) compiler.go:433: 38: goja.getProp(prototype) compiler.go:433: 39: goja.loadDynamic(Symbol) compiler.go:433: 40: goja.getProp(split) compiler.go:433: 41: goja._getElem({}) compiler.go:433: 42: goja._setElemP({}) compiler.go:433: 43: goja.resolveVar1(r) compiler.go:433: 44: goja.loadDynamic(MyRegexp) compiler.go:433: 45: *goja.newRegexp(&{0xc0000b9170 }) compiler.go:433: 46: goja._new(1) compiler.go:433: 47: goja._initValueP({}) compiler.go:433: 48: goja.resolveVar1(res) compiler.go:433: 49: goja.loadVal({a b c}) compiler.go:433: 50: goja.getPropCallee(split) compiler.go:433: 51: goja.loadDynamic(r) compiler.go:433: 52: goja.call(1) compiler.go:433: 53: goja._initValueP({}) compiler.go:433: 54: goja.loadDynamic(res) compiler.go:433: 55: goja.getProp(length) compiler.go:433: 56: goja.loadVal({3}) compiler.go:433: 57: goja._op_strict_eq({}) compiler.go:433: 58: goja.jne(6) compiler.go:433: 59: goja.loadDynamic(res) compiler.go:433: 60: goja.loadVal({0}) compiler.go:433: 61: goja._getElem({}) compiler.go:433: 62: goja.loadVal({a}) compiler.go:433: 63: goja._op_strict_eq({}) compiler.go:433: 64: goja.jne(6) compiler.go:433: 65: goja.loadDynamic(res) compiler.go:433: 66: goja.loadVal({1}) compiler.go:433: 67: goja._getElem({}) compiler.go:433: 68: goja.loadVal({b}) compiler.go:433: 69: goja._op_strict_eq({}) compiler.go:433: 70: goja.jne(6) compiler.go:433: 71: goja.loadDynamic(res) compiler.go:433: 72: goja.loadVal({2}) compiler.go:433: 73: goja._getElem({}) compiler.go:433: 74: goja.loadVal({c}) compiler.go:433: 75: goja._op_strict_eq({}) compiler.go:433: 76: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 5 --- PASS: TestGenericSplitter (0.00s) === RUN TestStringIterSurrPair compiler.go:433: 0: *goja.bindGlobal(&{[lo hi pair string iterator result] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(lo) compiler.go:433: 2: goja.loadVal({[65279 55348]}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(hi) compiler.go:433: 5: goja.loadVal({[65279 57094]}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(pair) compiler.go:433: 8: goja.loadDynamic(lo) compiler.go:433: 9: goja.loadDynamic(hi) compiler.go:433: 10: goja._add({}) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.resolveVar1(string) compiler.go:433: 13: goja.loadVal({a}) compiler.go:433: 14: goja.loadDynamic(pair) compiler.go:433: 15: goja._add({}) compiler.go:433: 16: goja.loadVal({b}) compiler.go:433: 17: goja._add({}) compiler.go:433: 18: goja.loadDynamic(lo) compiler.go:433: 19: goja._add({}) compiler.go:433: 20: goja.loadDynamic(pair) compiler.go:433: 21: goja._add({}) compiler.go:433: 22: goja.loadDynamic(hi) compiler.go:433: 23: goja._add({}) compiler.go:433: 24: goja.loadDynamic(lo) compiler.go:433: 25: goja._add({}) compiler.go:433: 26: goja._initValueP({}) compiler.go:433: 27: goja.resolveVar1(iterator) compiler.go:433: 28: goja.loadDynamic(string) compiler.go:433: 29: goja.loadDynamic(Symbol) compiler.go:433: 30: goja.getProp(iterator) compiler.go:433: 31: goja._getElemCallee({}) compiler.go:433: 32: goja.call(0) compiler.go:433: 33: goja._initValueP({}) compiler.go:433: 34: goja.resolveVar1(result) compiler.go:433: 35: goja.loadDynamic(iterator) compiler.go:433: 36: goja.getPropCallee(next) compiler.go:433: 37: goja.call(0) compiler.go:433: 38: goja._putValueP({}) compiler.go:433: 39: goja.loadDynamic(result) compiler.go:433: 40: goja.getProp(value) compiler.go:433: 41: goja.loadVal({a}) compiler.go:433: 42: goja._op_strict_neq({}) compiler.go:433: 43: goja.jneP(8) compiler.go:433: 44: goja.loadDynamic(Error) compiler.go:433: 45: goja.loadVal({at 0: }) compiler.go:433: 46: goja.loadDynamic(result) compiler.go:433: 47: goja.getProp(value) compiler.go:433: 48: goja._add({}) compiler.go:433: 49: goja._new(1) compiler.go:433: 50: goja._throw({}) compiler.go:433: 51: goja.resolveVar1(result) compiler.go:433: 52: goja.loadDynamic(iterator) compiler.go:433: 53: goja.getPropCallee(next) compiler.go:433: 54: goja.call(0) compiler.go:433: 55: goja._putValueP({}) compiler.go:433: 56: goja._clearResult({}) compiler.go:433: 57: goja.loadDynamic(result) compiler.go:433: 58: goja.getProp(value) compiler.go:433: 59: goja.loadDynamic(pair) compiler.go:433: 60: goja._op_strict_neq({}) compiler.go:433: 61: goja.jneP(9) compiler.go:433: 62: goja.loadDynamic(Error) compiler.go:433: 63: goja.loadVal({at 1: }) compiler.go:433: 64: goja.loadDynamic(result) compiler.go:433: 65: goja.getProp(value) compiler.go:433: 66: goja._add({}) compiler.go:433: 67: goja._new(1) compiler.go:433: 68: goja._throw({}) compiler.go:433: 69: goja.jump(2) compiler.go:433: 70: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestStringIterSurrPair (0.00s) === RUN TestValueStringBuilder === RUN TestValueStringBuilder/substringASCII === PAUSE TestValueStringBuilder/substringASCII === RUN TestValueStringBuilder/substringASCIIPure === PAUSE TestValueStringBuilder/substringASCIIPure === RUN TestValueStringBuilder/substringUnicode === PAUSE TestValueStringBuilder/substringUnicode === RUN TestValueStringBuilder/substringASCIIUnicode === PAUSE TestValueStringBuilder/substringASCIIUnicode === RUN TestValueStringBuilder/substringUnicodeASCII === PAUSE TestValueStringBuilder/substringUnicodeASCII === RUN TestValueStringBuilder/concatSubstringUnicodeASCII === PAUSE TestValueStringBuilder/concatSubstringUnicodeASCII === RUN TestValueStringBuilder/concat_ASCII_importedASCII === PAUSE TestValueStringBuilder/concat_ASCII_importedASCII === RUN TestValueStringBuilder/concat_ASCII_importedUnicode === PAUSE TestValueStringBuilder/concat_ASCII_importedUnicode === CONT TestValueStringBuilder/substringASCII === CONT TestValueStringBuilder/substringASCIIUnicode === CONT TestValueStringBuilder/concatSubstringUnicodeASCII === CONT TestValueStringBuilder/substringASCIIPure === CONT TestValueStringBuilder/substringUnicodeASCII === CONT TestValueStringBuilder/concat_ASCII_importedUnicode === CONT TestValueStringBuilder/concat_ASCII_importedASCII === CONT TestValueStringBuilder/substringUnicode --- PASS: TestValueStringBuilder (0.00s) --- PASS: TestValueStringBuilder/substringASCII (0.00s) --- PASS: TestValueStringBuilder/substringASCIIUnicode (0.00s) --- PASS: TestValueStringBuilder/concatSubstringUnicodeASCII (0.00s) --- PASS: TestValueStringBuilder/substringASCIIPure (0.00s) --- PASS: TestValueStringBuilder/substringUnicodeASCII (0.00s) --- PASS: TestValueStringBuilder/concat_ASCII_importedUnicode (0.00s) --- PASS: TestValueStringBuilder/concat_ASCII_importedASCII (0.00s) --- PASS: TestValueStringBuilder/substringUnicode (0.00s) === RUN TestStringSplit compiler.go:433: 0: goja.loadDynamicCallee(assert) compiler.go:433: 1: goja.loadDynamicCallee(compareArray) compiler.go:433: 2: goja.loadVal({}) compiler.go:433: 3: goja.getPropCallee(split) compiler.go:433: 4: goja.loadVal({#}) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja.newArray(1) compiler.go:433: 8: goja.loadVal({}) compiler.go:433: 9: goja._pushArrayItem({}) compiler.go:433: 10: goja.call(2) compiler.go:433: 11: goja.call(1) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: goja.loadDynamicCallee(assert) compiler.go:433: 14: goja.loadDynamicCallee(compareArray) compiler.go:433: 15: goja.loadVal({}) compiler.go:433: 16: goja.getPropCallee(split) compiler.go:433: 17: goja.loadVal({#}) compiler.go:433: 18: goja.call(1) compiler.go:433: 19: goja.newArray(1) compiler.go:433: 20: goja.loadVal({}) compiler.go:433: 21: goja._pushArrayItem({}) compiler.go:433: 22: goja.call(2) compiler.go:433: 23: goja.call(1) compiler.go:433: 24: goja._pop({}) compiler.go:433: 25: goja.loadDynamicCallee(assert) compiler.go:433: 26: goja.loadDynamicCallee(compareArray) compiler.go:433: 27: goja.loadVal({}) compiler.go:433: 28: goja.getPropCallee(split) compiler.go:433: 29: goja.loadVal({}) compiler.go:433: 30: goja.loadVal({2}) compiler.go:433: 31: goja.call(2) compiler.go:433: 32: goja.newArray(0) compiler.go:433: 33: goja.call(2) compiler.go:433: 34: goja.call(1) compiler.go:433: 35: goja._pop({}) compiler.go:433: 36: goja.loadDynamicCallee(assert) compiler.go:433: 37: goja.loadDynamicCallee(compareArray) compiler.go:433: 38: goja.loadVal({}) compiler.go:433: 39: goja.getPropCallee(split) compiler.go:433: 40: goja.loadVal({}) compiler.go:433: 41: goja.call(1) compiler.go:433: 42: goja.newArray(0) compiler.go:433: 43: goja.call(2) compiler.go:433: 44: goja.call(1) compiler.go:433: 45: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestStringSplit (0.00s) === RUN TestArrayBufferSetUint32 --- PASS: TestArrayBufferSetUint32 (0.00s) === RUN TestArrayBufferSetInt32 --- PASS: TestArrayBufferSetInt32 (0.00s) === RUN TestNewUint8Array compiler.go:433: 0: *goja.bindGlobal(&{[a] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.loadDynamic(Uint8Array) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(a) compiler.go:433: 7: goja.loadVal({0}) compiler.go:433: 8: goja.loadVal({42}) compiler.go:433: 9: goja._setElemP({}) compiler.go:433: 10: goja.loadDynamic(a) compiler.go:433: 11: goja.getProp(byteLength) compiler.go:433: 12: goja.loadVal({1}) compiler.go:433: 13: goja._op_strict_eq({}) compiler.go:433: 14: goja.jne(5) compiler.go:433: 15: goja.loadDynamic(a) compiler.go:433: 16: goja.getProp(length) compiler.go:433: 17: goja.loadVal({1}) compiler.go:433: 18: goja._op_strict_eq({}) compiler.go:433: 19: goja.jne(6) compiler.go:433: 20: goja.loadDynamic(a) compiler.go:433: 21: goja.loadVal({0}) compiler.go:433: 22: goja._getElem({}) compiler.go:433: 23: goja.loadVal({42}) compiler.go:433: 24: goja._op_strict_eq({}) compiler.go:433: 25: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNewUint8Array (0.00s) === RUN TestNewUint16Array compiler.go:433: 0: *goja.bindGlobal(&{[a] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.loadDynamic(Uint16Array) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(a) compiler.go:433: 7: goja.loadVal({0}) compiler.go:433: 8: goja.loadVal({42}) compiler.go:433: 9: goja._setElemP({}) compiler.go:433: 10: goja.loadDynamic(a) compiler.go:433: 11: goja.getProp(byteLength) compiler.go:433: 12: goja.loadVal({2}) compiler.go:433: 13: goja._op_strict_eq({}) compiler.go:433: 14: goja.jne(5) compiler.go:433: 15: goja.loadDynamic(a) compiler.go:433: 16: goja.getProp(length) compiler.go:433: 17: goja.loadVal({1}) compiler.go:433: 18: goja._op_strict_eq({}) compiler.go:433: 19: goja.jne(6) compiler.go:433: 20: goja.loadDynamic(a) compiler.go:433: 21: goja.loadVal({0}) compiler.go:433: 22: goja._getElem({}) compiler.go:433: 23: goja.loadVal({42}) compiler.go:433: 24: goja._op_strict_eq({}) compiler.go:433: 25: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNewUint16Array (0.00s) === RUN TestTypedArraysSpeciesConstructor compiler.go:433: 0: *goja.newFunc(&{0xc00036db80 MyArray function MyArray() { var NewTarget = this.__proto__.constructor; return Reflect.construct(Uint16Array, arguments, NewTarget); } 0 true}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 0 2 0 1 true false}) compiler.go:433: > 1: goja.createArgsUnmapped(0) compiler.go:433: > 2: goja.initStack1P(2) compiler.go:433: > 3: goja.loadStack(0) compiler.go:433: > 4: goja.getProp(__proto__) compiler.go:433: > 5: goja.getProp(constructor) compiler.go:433: > 6: goja.initStack1P(1) compiler.go:433: > 7: goja.loadDynamic(Reflect) compiler.go:433: > 8: goja.getPropCallee(construct) compiler.go:433: > 9: goja.loadDynamic(Uint16Array) compiler.go:433: > 10: goja.loadStack1(2) compiler.go:433: > 11: goja.loadStack1(1) compiler.go:433: > 12: goja.call(3) compiler.go:433: > 13: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[a b] [MyArray] [] [] false}) compiler.go:433: 2: goja.loadDynamic(MyArray) compiler.go:433: 3: goja.loadDynamic(Object) compiler.go:433: 4: goja.getPropCallee(create) compiler.go:433: 5: goja.loadDynamic(Uint16Array) compiler.go:433: 6: goja.getProp(prototype) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja._newObject({}) compiler.go:433: 9: goja.loadDynamic(MyArray) compiler.go:433: 10: goja.putProp(value) compiler.go:433: 11: goja.loadVal({true}) compiler.go:433: 12: goja.putProp(writable) compiler.go:433: 13: goja.loadVal({true}) compiler.go:433: 14: goja.putProp(configurable) compiler.go:433: 15: goja.putProp(constructor) compiler.go:433: 16: goja.call(2) compiler.go:433: 17: goja.setPropStrictP(prototype) compiler.go:433: 18: goja.resolveVar1Strict(a) compiler.go:433: 19: goja.loadDynamic(MyArray) compiler.go:433: 20: goja.loadVal({1}) compiler.go:433: 21: goja._new(1) compiler.go:433: 22: goja._initValueP({}) compiler.go:433: 23: goja.loadDynamic(Object) compiler.go:433: 24: goja.getPropCallee(defineProperty) compiler.go:433: 25: goja.loadDynamic(MyArray) compiler.go:433: 26: goja.loadDynamic(Symbol) compiler.go:433: 27: goja.getProp(species) compiler.go:433: 28: goja._newObject({}) compiler.go:433: 29: goja.loadDynamic(Uint8Array) compiler.go:433: 30: goja.putProp(value) compiler.go:433: 31: goja.loadVal({true}) compiler.go:433: 32: goja.putProp(configurable) compiler.go:433: 33: goja.call(3) compiler.go:433: 34: goja._pop({}) compiler.go:433: 35: goja.loadDynamic(a) compiler.go:433: 36: goja.loadVal({0}) compiler.go:433: 37: goja.loadVal({32767}) compiler.go:433: 38: goja._setElemStrictP({}) compiler.go:433: 39: goja.resolveVar1Strict(b) compiler.go:433: 40: goja.loadDynamic(a) compiler.go:433: 41: goja.getPropCallee(filter) compiler.go:433: 42: *goja.newFunc(&{0xc00036dbd0 function() { return true; } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({true}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 43: goja.call(1) compiler.go:433: 44: goja._initValueP({}) compiler.go:433: 45: goja.loadDynamic(a) compiler.go:433: 46: goja.loadVal({0}) compiler.go:433: 47: goja._getElem({}) compiler.go:433: 48: goja.loadVal({32767}) compiler.go:433: 49: goja._op_strict_neq({}) compiler.go:433: 50: goja.jneP(9) compiler.go:433: 51: goja.loadDynamic(Error) compiler.go:433: 52: goja.loadVal({a[0]=}) compiler.go:433: 53: goja.loadDynamic(a) compiler.go:433: 54: goja.loadVal({0}) compiler.go:433: 55: goja._getElem({}) compiler.go:433: 56: goja._add({}) compiler.go:433: 57: goja._new(1) compiler.go:433: 58: goja._throw({}) compiler.go:433: 59: goja.loadDynamic(b) compiler.go:433: 60: goja.loadDynamic(Uint8Array) compiler.go:433: 61: goja._op_instanceof({}) compiler.go:433: 62: goja._not({}) compiler.go:433: 63: goja.jneP(5) compiler.go:433: 64: goja.loadDynamic(Error) compiler.go:433: 65: goja.loadVal({b instanceof Uint8Array}) compiler.go:433: 66: goja._new(1) compiler.go:433: 67: goja._throw({}) compiler.go:433: 68: goja._clearResult({}) compiler.go:433: 69: goja.loadDynamic(b) compiler.go:433: 70: goja.loadVal({0}) compiler.go:433: 71: goja._getElem({}) compiler.go:433: 72: goja.loadVal({255}) compiler.go:433: 73: goja._op_neq({}) compiler.go:433: 74: goja.jneP(10) compiler.go:433: 75: goja.loadDynamic(Error) compiler.go:433: 76: goja.loadVal({b[0]=}) compiler.go:433: 77: goja.loadDynamic(b) compiler.go:433: 78: goja.loadVal({0}) compiler.go:433: 79: goja._getElem({}) compiler.go:433: 80: goja._add({}) compiler.go:433: 81: goja._new(1) compiler.go:433: 82: goja._throw({}) compiler.go:433: 83: goja.jump(2) compiler.go:433: 84: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestTypedArraysSpeciesConstructor (0.00s) === RUN TestTypedArrayFromArrayBuffer compiler.go:433: 0: *goja.bindGlobal(&{[buf a16 a8] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(buf) compiler.go:433: 2: goja.loadDynamic(ArrayBuffer) compiler.go:433: 3: goja.loadVal({2}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(a16) compiler.go:433: 7: goja.loadDynamic(Uint16Array) compiler.go:433: 8: goja.loadDynamic(buf) compiler.go:433: 9: goja._new(1) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.loadDynamic(a16) compiler.go:433: 12: goja.loadDynamic(Uint16Array) compiler.go:433: 13: goja._op_instanceof({}) compiler.go:433: 14: goja._not({}) compiler.go:433: 15: goja.jneP(5) compiler.go:433: 16: goja.loadDynamic(Error) compiler.go:433: 17: goja.loadVal({a16 is not an instance}) compiler.go:433: 18: goja._new(1) compiler.go:433: 19: goja._throw({}) compiler.go:433: 20: goja.loadDynamic(a16) compiler.go:433: 21: goja.getProp(buffer) compiler.go:433: 22: goja.loadDynamic(buf) compiler.go:433: 23: goja._op_strict_neq({}) compiler.go:433: 24: goja.jneP(5) compiler.go:433: 25: goja.loadDynamic(Error) compiler.go:433: 26: goja.loadVal({a16.buffer !== buf}) compiler.go:433: 27: goja._new(1) compiler.go:433: 28: goja._throw({}) compiler.go:433: 29: goja.loadDynamic(a16) compiler.go:433: 30: goja.getProp(length) compiler.go:433: 31: goja.loadVal({1}) compiler.go:433: 32: goja._op_strict_neq({}) compiler.go:433: 33: goja.jneP(8) compiler.go:433: 34: goja.loadDynamic(Error) compiler.go:433: 35: goja.loadVal({a16.length=}) compiler.go:433: 36: goja.loadDynamic(a16) compiler.go:433: 37: goja.getProp(length) compiler.go:433: 38: goja._add({}) compiler.go:433: 39: goja._new(1) compiler.go:433: 40: goja._throw({}) compiler.go:433: 41: goja.resolveVar1(a8) compiler.go:433: 42: goja.loadDynamic(Uint8Array) compiler.go:433: 43: goja.loadDynamic(buf) compiler.go:433: 44: goja._new(1) compiler.go:433: 45: goja._initValueP({}) compiler.go:433: 46: goja.loadDynamic(a8) compiler.go:433: 47: goja.getPropCallee(fill) compiler.go:433: 48: goja.loadVal({170}) compiler.go:433: 49: goja.call(1) compiler.go:433: 50: goja._pop({}) compiler.go:433: 51: goja._clearResult({}) compiler.go:433: 52: goja.loadDynamic(a16) compiler.go:433: 53: goja.loadVal({0}) compiler.go:433: 54: goja._getElem({}) compiler.go:433: 55: goja.loadVal({43690}) compiler.go:433: 56: goja._op_strict_neq({}) compiler.go:433: 57: goja.jneP(10) compiler.go:433: 58: goja.loadDynamic(Error) compiler.go:433: 59: goja.loadVal({a16[0]=}) compiler.go:433: 60: goja.loadDynamic(a16) compiler.go:433: 61: goja.loadVal({0}) compiler.go:433: 62: goja._getElem({}) compiler.go:433: 63: goja._add({}) compiler.go:433: 64: goja._new(1) compiler.go:433: 65: goja._throw({}) compiler.go:433: 66: goja.jump(2) compiler.go:433: 67: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArrayFromArrayBuffer (0.00s) === RUN TestTypedArraySetOverlapDifSize compiler.go:433: 0: *goja.bindGlobal(&{[buf src dst] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(buf) compiler.go:433: 2: goja.loadDynamic(ArrayBuffer) compiler.go:433: 3: goja.loadVal({4}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(src) compiler.go:433: 7: goja.loadDynamic(Uint8Array) compiler.go:433: 8: goja.loadDynamic(buf) compiler.go:433: 9: goja.loadVal({1}) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja._new(3) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.loadDynamic(src) compiler.go:433: 14: goja.loadVal({0}) compiler.go:433: 15: goja.loadVal({1}) compiler.go:433: 16: goja._setElemP({}) compiler.go:433: 17: goja.loadDynamic(src) compiler.go:433: 18: goja.loadVal({1}) compiler.go:433: 19: goja.loadVal({2}) compiler.go:433: 20: goja._setElemP({}) compiler.go:433: 21: goja.resolveVar1(dst) compiler.go:433: 22: goja.loadDynamic(Uint16Array) compiler.go:433: 23: goja.loadDynamic(buf) compiler.go:433: 24: goja._new(1) compiler.go:433: 25: goja._initValueP({}) compiler.go:433: 26: goja.loadDynamic(dst) compiler.go:433: 27: goja.getPropCallee(set) compiler.go:433: 28: goja.loadDynamic(src) compiler.go:433: 29: goja.call(1) compiler.go:433: 30: goja._pop({}) compiler.go:433: 31: goja._clearResult({}) compiler.go:433: 32: goja.loadDynamic(dst) compiler.go:433: 33: goja.loadVal({0}) compiler.go:433: 34: goja._getElem({}) compiler.go:433: 35: goja.loadVal({1}) compiler.go:433: 36: goja._op_strict_neq({}) compiler.go:433: 37: goja.jeq(6) compiler.go:433: 38: goja.loadDynamic(dst) compiler.go:433: 39: goja.loadVal({1}) compiler.go:433: 40: goja._getElem({}) compiler.go:433: 41: goja.loadVal({2}) compiler.go:433: 42: goja._op_strict_neq({}) compiler.go:433: 43: goja.jneP(11) compiler.go:433: 44: goja.loadDynamic(Error) compiler.go:433: 45: goja.loadVal({dst: }) compiler.go:433: 46: goja.loadDynamic(dst) compiler.go:433: 47: goja.getPropCallee(join) compiler.go:433: 48: goja.loadVal({,}) compiler.go:433: 49: goja.call(1) compiler.go:433: 50: goja._add({}) compiler.go:433: 51: goja._new(1) compiler.go:433: 52: goja._throw({}) compiler.go:433: 53: goja.jump(2) compiler.go:433: 54: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArraySetOverlapDifSize (0.00s) === RUN TestTypedArraySetOverlapDifSize2 compiler.go:433: 0: *goja.bindGlobal(&{[buf src dst] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(buf) compiler.go:433: 2: goja.loadDynamic(ArrayBuffer) compiler.go:433: 3: goja.loadVal({4}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(src) compiler.go:433: 7: goja.loadDynamic(Uint8Array) compiler.go:433: 8: goja.loadDynamic(buf) compiler.go:433: 9: goja.loadVal({0}) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja._new(3) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.loadDynamic(src) compiler.go:433: 14: goja.loadVal({0}) compiler.go:433: 15: goja.loadVal({1}) compiler.go:433: 16: goja._setElemP({}) compiler.go:433: 17: goja.loadDynamic(src) compiler.go:433: 18: goja.loadVal({1}) compiler.go:433: 19: goja.loadVal({2}) compiler.go:433: 20: goja._setElemP({}) compiler.go:433: 21: goja.resolveVar1(dst) compiler.go:433: 22: goja.loadDynamic(Uint16Array) compiler.go:433: 23: goja.loadDynamic(buf) compiler.go:433: 24: goja._new(1) compiler.go:433: 25: goja._initValueP({}) compiler.go:433: 26: goja.loadDynamic(dst) compiler.go:433: 27: goja.getPropCallee(set) compiler.go:433: 28: goja.loadDynamic(src) compiler.go:433: 29: goja.call(1) compiler.go:433: 30: goja._pop({}) compiler.go:433: 31: goja._clearResult({}) compiler.go:433: 32: goja.loadDynamic(dst) compiler.go:433: 33: goja.loadVal({0}) compiler.go:433: 34: goja._getElem({}) compiler.go:433: 35: goja.loadVal({1}) compiler.go:433: 36: goja._op_strict_neq({}) compiler.go:433: 37: goja.jeq(6) compiler.go:433: 38: goja.loadDynamic(dst) compiler.go:433: 39: goja.loadVal({1}) compiler.go:433: 40: goja._getElem({}) compiler.go:433: 41: goja.loadVal({2}) compiler.go:433: 42: goja._op_strict_neq({}) compiler.go:433: 43: goja.jneP(11) compiler.go:433: 44: goja.loadDynamic(Error) compiler.go:433: 45: goja.loadVal({dst: }) compiler.go:433: 46: goja.loadDynamic(dst) compiler.go:433: 47: goja.getPropCallee(join) compiler.go:433: 48: goja.loadVal({,}) compiler.go:433: 49: goja.call(1) compiler.go:433: 50: goja._add({}) compiler.go:433: 51: goja._new(1) compiler.go:433: 52: goja._throw({}) compiler.go:433: 53: goja.jump(2) compiler.go:433: 54: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArraySetOverlapDifSize2 (0.00s) === RUN TestTypedArraySetOverlapDifSize3 compiler.go:433: 0: *goja.bindGlobal(&{[buf src dst] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(buf) compiler.go:433: 2: goja.loadDynamic(ArrayBuffer) compiler.go:433: 3: goja.loadVal({8}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(src) compiler.go:433: 7: goja.loadDynamic(Uint8Array) compiler.go:433: 8: goja.loadDynamic(buf) compiler.go:433: 9: goja.loadVal({2}) compiler.go:433: 10: goja.loadVal({4}) compiler.go:433: 11: goja._new(3) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.loadDynamic(src) compiler.go:433: 14: goja.loadVal({0}) compiler.go:433: 15: goja.loadVal({1}) compiler.go:433: 16: goja._setElemP({}) compiler.go:433: 17: goja.loadDynamic(src) compiler.go:433: 18: goja.loadVal({1}) compiler.go:433: 19: goja.loadVal({2}) compiler.go:433: 20: goja._setElemP({}) compiler.go:433: 21: goja.loadDynamic(src) compiler.go:433: 22: goja.loadVal({2}) compiler.go:433: 23: goja.loadVal({3}) compiler.go:433: 24: goja._setElemP({}) compiler.go:433: 25: goja.loadDynamic(src) compiler.go:433: 26: goja.loadVal({3}) compiler.go:433: 27: goja.loadVal({4}) compiler.go:433: 28: goja._setElemP({}) compiler.go:433: 29: goja.resolveVar1(dst) compiler.go:433: 30: goja.loadDynamic(Uint16Array) compiler.go:433: 31: goja.loadDynamic(buf) compiler.go:433: 32: goja._new(1) compiler.go:433: 33: goja._initValueP({}) compiler.go:433: 34: goja.loadDynamic(dst) compiler.go:433: 35: goja.getPropCallee(set) compiler.go:433: 36: goja.loadDynamic(src) compiler.go:433: 37: goja.call(1) compiler.go:433: 38: goja._pop({}) compiler.go:433: 39: goja._clearResult({}) compiler.go:433: 40: goja.loadDynamic(dst) compiler.go:433: 41: goja.loadVal({0}) compiler.go:433: 42: goja._getElem({}) compiler.go:433: 43: goja.loadVal({1}) compiler.go:433: 44: goja._op_strict_neq({}) compiler.go:433: 45: goja.jeq(6) compiler.go:433: 46: goja.loadDynamic(dst) compiler.go:433: 47: goja.loadVal({1}) compiler.go:433: 48: goja._getElem({}) compiler.go:433: 49: goja.loadVal({2}) compiler.go:433: 50: goja._op_strict_neq({}) compiler.go:433: 51: goja.jeq(6) compiler.go:433: 52: goja.loadDynamic(dst) compiler.go:433: 53: goja.loadVal({2}) compiler.go:433: 54: goja._getElem({}) compiler.go:433: 55: goja.loadVal({3}) compiler.go:433: 56: goja._op_strict_neq({}) compiler.go:433: 57: goja.jeq(6) compiler.go:433: 58: goja.loadDynamic(dst) compiler.go:433: 59: goja.loadVal({3}) compiler.go:433: 60: goja._getElem({}) compiler.go:433: 61: goja.loadVal({4}) compiler.go:433: 62: goja._op_strict_neq({}) compiler.go:433: 63: goja.jneP(11) compiler.go:433: 64: goja.loadDynamic(Error) compiler.go:433: 65: goja.loadVal({dst: }) compiler.go:433: 66: goja.loadDynamic(dst) compiler.go:433: 67: goja.getPropCallee(join) compiler.go:433: 68: goja.loadVal({,}) compiler.go:433: 69: goja.call(1) compiler.go:433: 70: goja._add({}) compiler.go:433: 71: goja._new(1) compiler.go:433: 72: goja._throw({}) compiler.go:433: 73: goja.jump(2) compiler.go:433: 74: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArraySetOverlapDifSize3 (0.00s) === RUN TestTypedArraySetOverlapDifSize4 compiler.go:433: 0: *goja.bindGlobal(&{[buf dst src] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(buf) compiler.go:433: 2: goja.loadDynamic(ArrayBuffer) compiler.go:433: 3: goja.loadVal({10}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(dst) compiler.go:433: 7: goja.loadDynamic(Uint8Array) compiler.go:433: 8: goja.loadDynamic(buf) compiler.go:433: 9: goja.loadVal({2}) compiler.go:433: 10: goja.loadVal({5}) compiler.go:433: 11: goja._new(3) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.resolveVar1(src) compiler.go:433: 14: goja.loadDynamic(Uint16Array) compiler.go:433: 15: goja.loadDynamic(buf) compiler.go:433: 16: goja._new(1) compiler.go:433: 17: goja._initValueP({}) compiler.go:433: 18: goja.loadDynamic(src) compiler.go:433: 19: goja.loadVal({0}) compiler.go:433: 20: goja.loadVal({1}) compiler.go:433: 21: goja._setElemP({}) compiler.go:433: 22: goja.loadDynamic(src) compiler.go:433: 23: goja.loadVal({1}) compiler.go:433: 24: goja.loadVal({2}) compiler.go:433: 25: goja._setElemP({}) compiler.go:433: 26: goja.loadDynamic(src) compiler.go:433: 27: goja.loadVal({2}) compiler.go:433: 28: goja.loadVal({3}) compiler.go:433: 29: goja._setElemP({}) compiler.go:433: 30: goja.loadDynamic(src) compiler.go:433: 31: goja.loadVal({3}) compiler.go:433: 32: goja.loadVal({4}) compiler.go:433: 33: goja._setElemP({}) compiler.go:433: 34: goja.loadDynamic(src) compiler.go:433: 35: goja.loadVal({4}) compiler.go:433: 36: goja.loadVal({5}) compiler.go:433: 37: goja._setElemP({}) compiler.go:433: 38: goja.loadDynamic(dst) compiler.go:433: 39: goja.getPropCallee(set) compiler.go:433: 40: goja.loadDynamic(src) compiler.go:433: 41: goja.call(1) compiler.go:433: 42: goja._pop({}) compiler.go:433: 43: goja._clearResult({}) compiler.go:433: 44: goja.loadDynamic(dst) compiler.go:433: 45: goja.loadVal({0}) compiler.go:433: 46: goja._getElem({}) compiler.go:433: 47: goja.loadVal({1}) compiler.go:433: 48: goja._op_strict_neq({}) compiler.go:433: 49: goja.jeq(6) compiler.go:433: 50: goja.loadDynamic(dst) compiler.go:433: 51: goja.loadVal({1}) compiler.go:433: 52: goja._getElem({}) compiler.go:433: 53: goja.loadVal({2}) compiler.go:433: 54: goja._op_strict_neq({}) compiler.go:433: 55: goja.jeq(6) compiler.go:433: 56: goja.loadDynamic(dst) compiler.go:433: 57: goja.loadVal({2}) compiler.go:433: 58: goja._getElem({}) compiler.go:433: 59: goja.loadVal({3}) compiler.go:433: 60: goja._op_strict_neq({}) compiler.go:433: 61: goja.jeq(6) compiler.go:433: 62: goja.loadDynamic(dst) compiler.go:433: 63: goja.loadVal({3}) compiler.go:433: 64: goja._getElem({}) compiler.go:433: 65: goja.loadVal({4}) compiler.go:433: 66: goja._op_strict_neq({}) compiler.go:433: 67: goja.jeq(6) compiler.go:433: 68: goja.loadDynamic(dst) compiler.go:433: 69: goja.loadVal({4}) compiler.go:433: 70: goja._getElem({}) compiler.go:433: 71: goja.loadVal({5}) compiler.go:433: 72: goja._op_strict_neq({}) compiler.go:433: 73: goja.jneP(11) compiler.go:433: 74: goja.loadDynamic(Error) compiler.go:433: 75: goja.loadVal({dst: }) compiler.go:433: 76: goja.loadDynamic(dst) compiler.go:433: 77: goja.getPropCallee(join) compiler.go:433: 78: goja.loadVal({,}) compiler.go:433: 79: goja.call(1) compiler.go:433: 80: goja._add({}) compiler.go:433: 81: goja._new(1) compiler.go:433: 82: goja._throw({}) compiler.go:433: 83: goja.jump(2) compiler.go:433: 84: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArraySetOverlapDifSize4 (0.00s) === RUN TestTypedArraySetNoOverlapDifSizeForward compiler.go:433: 0: *goja.bindGlobal(&{[buf dst src] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(buf) compiler.go:433: 2: goja.loadDynamic(ArrayBuffer) compiler.go:433: 3: goja.loadVal({10}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(dst) compiler.go:433: 7: goja.loadDynamic(Uint8Array) compiler.go:433: 8: goja.loadDynamic(buf) compiler.go:433: 9: goja.loadVal({7}) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja._new(3) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.resolveVar1(src) compiler.go:433: 14: goja.loadDynamic(Uint16Array) compiler.go:433: 15: goja.loadDynamic(buf) compiler.go:433: 16: goja.loadVal({0}) compiler.go:433: 17: goja.loadVal({2}) compiler.go:433: 18: goja._new(3) compiler.go:433: 19: goja._initValueP({}) compiler.go:433: 20: goja.loadDynamic(src) compiler.go:433: 21: goja.loadVal({0}) compiler.go:433: 22: goja.loadVal({1}) compiler.go:433: 23: goja._setElemP({}) compiler.go:433: 24: goja.loadDynamic(src) compiler.go:433: 25: goja.loadVal({1}) compiler.go:433: 26: goja.loadVal({2}) compiler.go:433: 27: goja._setElemP({}) compiler.go:433: 28: goja.loadDynamic(dst) compiler.go:433: 29: goja.getPropCallee(set) compiler.go:433: 30: goja.loadDynamic(src) compiler.go:433: 31: goja.call(1) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja._clearResult({}) compiler.go:433: 34: goja.loadDynamic(dst) compiler.go:433: 35: goja.loadVal({0}) compiler.go:433: 36: goja._getElem({}) compiler.go:433: 37: goja.loadVal({1}) compiler.go:433: 38: goja._op_strict_neq({}) compiler.go:433: 39: goja.jeq(6) compiler.go:433: 40: goja.loadDynamic(dst) compiler.go:433: 41: goja.loadVal({1}) compiler.go:433: 42: goja._getElem({}) compiler.go:433: 43: goja.loadVal({2}) compiler.go:433: 44: goja._op_strict_neq({}) compiler.go:433: 45: goja.jeq(6) compiler.go:433: 46: goja.loadDynamic(src) compiler.go:433: 47: goja.loadVal({0}) compiler.go:433: 48: goja._getElem({}) compiler.go:433: 49: goja.loadVal({1}) compiler.go:433: 50: goja._op_strict_neq({}) compiler.go:433: 51: goja.jeq(6) compiler.go:433: 52: goja.loadDynamic(src) compiler.go:433: 53: goja.loadVal({1}) compiler.go:433: 54: goja._getElem({}) compiler.go:433: 55: goja.loadVal({2}) compiler.go:433: 56: goja._op_strict_neq({}) compiler.go:433: 57: goja.jneP(11) compiler.go:433: 58: goja.loadDynamic(Error) compiler.go:433: 59: goja.loadVal({dst: }) compiler.go:433: 60: goja.loadDynamic(dst) compiler.go:433: 61: goja.getPropCallee(join) compiler.go:433: 62: goja.loadVal({,}) compiler.go:433: 63: goja.call(1) compiler.go:433: 64: goja._add({}) compiler.go:433: 65: goja._new(1) compiler.go:433: 66: goja._throw({}) compiler.go:433: 67: goja.jump(2) compiler.go:433: 68: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArraySetNoOverlapDifSizeForward (0.00s) === RUN TestTypedArraySetNoOverlapDifSizeBackward compiler.go:433: 0: *goja.bindGlobal(&{[buf dst src] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(buf) compiler.go:433: 2: goja.loadDynamic(ArrayBuffer) compiler.go:433: 3: goja.loadVal({10}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(dst) compiler.go:433: 7: goja.loadDynamic(Uint8Array) compiler.go:433: 8: goja.loadDynamic(buf) compiler.go:433: 9: goja.loadVal({0}) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja._new(3) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.resolveVar1(src) compiler.go:433: 14: goja.loadDynamic(Uint16Array) compiler.go:433: 15: goja.loadDynamic(buf) compiler.go:433: 16: goja.loadVal({6}) compiler.go:433: 17: goja.loadVal({2}) compiler.go:433: 18: goja._new(3) compiler.go:433: 19: goja._initValueP({}) compiler.go:433: 20: goja.loadDynamic(src) compiler.go:433: 21: goja.loadVal({0}) compiler.go:433: 22: goja.loadVal({1}) compiler.go:433: 23: goja._setElemP({}) compiler.go:433: 24: goja.loadDynamic(src) compiler.go:433: 25: goja.loadVal({1}) compiler.go:433: 26: goja.loadVal({2}) compiler.go:433: 27: goja._setElemP({}) compiler.go:433: 28: goja.loadDynamic(dst) compiler.go:433: 29: goja.getPropCallee(set) compiler.go:433: 30: goja.loadDynamic(src) compiler.go:433: 31: goja.call(1) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja._clearResult({}) compiler.go:433: 34: goja.loadDynamic(dst) compiler.go:433: 35: goja.loadVal({0}) compiler.go:433: 36: goja._getElem({}) compiler.go:433: 37: goja.loadVal({1}) compiler.go:433: 38: goja._op_strict_neq({}) compiler.go:433: 39: goja.jeq(6) compiler.go:433: 40: goja.loadDynamic(dst) compiler.go:433: 41: goja.loadVal({1}) compiler.go:433: 42: goja._getElem({}) compiler.go:433: 43: goja.loadVal({2}) compiler.go:433: 44: goja._op_strict_neq({}) compiler.go:433: 45: goja.jeq(6) compiler.go:433: 46: goja.loadDynamic(src) compiler.go:433: 47: goja.loadVal({0}) compiler.go:433: 48: goja._getElem({}) compiler.go:433: 49: goja.loadVal({1}) compiler.go:433: 50: goja._op_strict_neq({}) compiler.go:433: 51: goja.jeq(6) compiler.go:433: 52: goja.loadDynamic(src) compiler.go:433: 53: goja.loadVal({1}) compiler.go:433: 54: goja._getElem({}) compiler.go:433: 55: goja.loadVal({2}) compiler.go:433: 56: goja._op_strict_neq({}) compiler.go:433: 57: goja.jneP(11) compiler.go:433: 58: goja.loadDynamic(Error) compiler.go:433: 59: goja.loadVal({dst: }) compiler.go:433: 60: goja.loadDynamic(dst) compiler.go:433: 61: goja.getPropCallee(join) compiler.go:433: 62: goja.loadVal({,}) compiler.go:433: 63: goja.call(1) compiler.go:433: 64: goja._add({}) compiler.go:433: 65: goja._new(1) compiler.go:433: 66: goja._throw({}) compiler.go:433: 67: goja.jump(2) compiler.go:433: 68: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArraySetNoOverlapDifSizeBackward (0.00s) === RUN TestTypedArraySetNoOverlapDifSizeDifBuffers compiler.go:433: 0: *goja.bindGlobal(&{[dstBuf dst src] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(dstBuf) compiler.go:433: 2: goja.loadDynamic(ArrayBuffer) compiler.go:433: 3: goja.loadVal({1024}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(dst) compiler.go:433: 7: goja.loadDynamic(Uint8Array) compiler.go:433: 8: goja.loadDynamic(dstBuf) compiler.go:433: 9: goja.loadVal({0}) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja._new(3) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.resolveVar1(src) compiler.go:433: 14: goja.loadDynamic(Uint16Array) compiler.go:433: 15: goja.loadVal({2}) compiler.go:433: 16: goja._new(1) compiler.go:433: 17: goja._initValueP({}) compiler.go:433: 18: goja.loadDynamic(src) compiler.go:433: 19: goja.loadVal({0}) compiler.go:433: 20: goja.loadVal({1}) compiler.go:433: 21: goja._setElemP({}) compiler.go:433: 22: goja.loadDynamic(src) compiler.go:433: 23: goja.loadVal({1}) compiler.go:433: 24: goja.loadVal({2}) compiler.go:433: 25: goja._setElemP({}) compiler.go:433: 26: goja.loadDynamic(dst) compiler.go:433: 27: goja.getPropCallee(set) compiler.go:433: 28: goja.loadDynamic(src) compiler.go:433: 29: goja.call(1) compiler.go:433: 30: goja._pop({}) compiler.go:433: 31: goja._clearResult({}) compiler.go:433: 32: goja.loadDynamic(dst) compiler.go:433: 33: goja.loadVal({0}) compiler.go:433: 34: goja._getElem({}) compiler.go:433: 35: goja.loadVal({1}) compiler.go:433: 36: goja._op_strict_neq({}) compiler.go:433: 37: goja.jeq(6) compiler.go:433: 38: goja.loadDynamic(dst) compiler.go:433: 39: goja.loadVal({1}) compiler.go:433: 40: goja._getElem({}) compiler.go:433: 41: goja.loadVal({2}) compiler.go:433: 42: goja._op_strict_neq({}) compiler.go:433: 43: goja.jeq(6) compiler.go:433: 44: goja.loadDynamic(src) compiler.go:433: 45: goja.loadVal({0}) compiler.go:433: 46: goja._getElem({}) compiler.go:433: 47: goja.loadVal({1}) compiler.go:433: 48: goja._op_strict_neq({}) compiler.go:433: 49: goja.jeq(6) compiler.go:433: 50: goja.loadDynamic(src) compiler.go:433: 51: goja.loadVal({1}) compiler.go:433: 52: goja._getElem({}) compiler.go:433: 53: goja.loadVal({2}) compiler.go:433: 54: goja._op_strict_neq({}) compiler.go:433: 55: goja.jneP(11) compiler.go:433: 56: goja.loadDynamic(Error) compiler.go:433: 57: goja.loadVal({dst: }) compiler.go:433: 58: goja.loadDynamic(dst) compiler.go:433: 59: goja.getPropCallee(join) compiler.go:433: 60: goja.loadVal({,}) compiler.go:433: 61: goja.call(1) compiler.go:433: 62: goja._add({}) compiler.go:433: 63: goja._new(1) compiler.go:433: 64: goja._throw({}) compiler.go:433: 65: goja.jump(2) compiler.go:433: 66: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArraySetNoOverlapDifSizeDifBuffers (0.00s) === RUN TestTypedArraySliceSameType compiler.go:433: 0: *goja.bindGlobal(&{[src dst] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(src) compiler.go:433: 2: goja.loadDynamic(Uint8Array) compiler.go:433: 3: goja.getPropCallee(of) compiler.go:433: 4: goja.loadVal({1}) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja.loadVal({3}) compiler.go:433: 7: goja.loadVal({4}) compiler.go:433: 8: goja.call(4) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(dst) compiler.go:433: 11: goja.loadDynamic(src) compiler.go:433: 12: goja.getPropCallee(slice) compiler.go:433: 13: goja.loadVal({1}) compiler.go:433: 14: goja.loadVal({3}) compiler.go:433: 15: goja.call(2) compiler.go:433: 16: goja._initValueP({}) compiler.go:433: 17: goja._clearResult({}) compiler.go:433: 18: goja.loadDynamic(dst) compiler.go:433: 19: goja.getProp(length) compiler.go:433: 20: goja.loadVal({2}) compiler.go:433: 21: goja._op_strict_neq({}) compiler.go:433: 22: goja.jeq(6) compiler.go:433: 23: goja.loadDynamic(dst) compiler.go:433: 24: goja.loadVal({0}) compiler.go:433: 25: goja._getElem({}) compiler.go:433: 26: goja.loadVal({2}) compiler.go:433: 27: goja._op_strict_neq({}) compiler.go:433: 28: goja.jeq(6) compiler.go:433: 29: goja.loadDynamic(dst) compiler.go:433: 30: goja.loadVal({1}) compiler.go:433: 31: goja._getElem({}) compiler.go:433: 32: goja.loadVal({3}) compiler.go:433: 33: goja._op_strict_neq({}) compiler.go:433: 34: goja.jneP(11) compiler.go:433: 35: goja.loadDynamic(Error) compiler.go:433: 36: goja.loadVal({dst: }) compiler.go:433: 37: goja.loadDynamic(dst) compiler.go:433: 38: goja.getPropCallee(join) compiler.go:433: 39: goja.loadVal({,}) compiler.go:433: 40: goja.call(1) compiler.go:433: 41: goja._add({}) compiler.go:433: 42: goja._new(1) compiler.go:433: 43: goja._throw({}) compiler.go:433: 44: goja.jump(2) compiler.go:433: 45: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArraySliceSameType (0.00s) === RUN TestTypedArraySliceDifType compiler.go:433: 0: *goja.bindGlobal(&{[src dst] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(src) compiler.go:433: 2: goja.loadDynamic(Uint8Array) compiler.go:433: 3: goja.getPropCallee(of) compiler.go:433: 4: goja.loadVal({1}) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja.loadVal({3}) compiler.go:433: 7: goja.loadVal({4}) compiler.go:433: 8: goja.call(4) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(Object) compiler.go:433: 11: goja.getPropCallee(defineProperty) compiler.go:433: 12: goja.loadDynamic(Uint8Array) compiler.go:433: 13: goja.loadDynamic(Symbol) compiler.go:433: 14: goja.getProp(species) compiler.go:433: 15: goja._newObject({}) compiler.go:433: 16: goja.loadDynamic(Uint16Array) compiler.go:433: 17: goja.putProp(value) compiler.go:433: 18: goja.loadVal({true}) compiler.go:433: 19: goja.putProp(configurable) compiler.go:433: 20: goja.call(3) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.resolveVar1(dst) compiler.go:433: 23: goja.loadDynamic(src) compiler.go:433: 24: goja.getPropCallee(slice) compiler.go:433: 25: goja.loadVal({1}) compiler.go:433: 26: goja.loadVal({3}) compiler.go:433: 27: goja.call(2) compiler.go:433: 28: goja._initValueP({}) compiler.go:433: 29: goja.loadDynamic(dst) compiler.go:433: 30: goja.loadDynamic(Uint16Array) compiler.go:433: 31: goja._op_instanceof({}) compiler.go:433: 32: goja._not({}) compiler.go:433: 33: goja.jneP(7) compiler.go:433: 34: goja.loadDynamic(Error) compiler.go:433: 35: goja.loadVal({wrong dst type: }) compiler.go:433: 36: goja.loadDynamic(dst) compiler.go:433: 37: goja._add({}) compiler.go:433: 38: goja._new(1) compiler.go:433: 39: goja._throw({}) compiler.go:433: 40: goja._clearResult({}) compiler.go:433: 41: goja.loadDynamic(dst) compiler.go:433: 42: goja.getProp(length) compiler.go:433: 43: goja.loadVal({2}) compiler.go:433: 44: goja._op_strict_neq({}) compiler.go:433: 45: goja.jeq(6) compiler.go:433: 46: goja.loadDynamic(dst) compiler.go:433: 47: goja.loadVal({0}) compiler.go:433: 48: goja._getElem({}) compiler.go:433: 49: goja.loadVal({2}) compiler.go:433: 50: goja._op_strict_neq({}) compiler.go:433: 51: goja.jeq(6) compiler.go:433: 52: goja.loadDynamic(dst) compiler.go:433: 53: goja.loadVal({1}) compiler.go:433: 54: goja._getElem({}) compiler.go:433: 55: goja.loadVal({3}) compiler.go:433: 56: goja._op_strict_neq({}) compiler.go:433: 57: goja.jneP(11) compiler.go:433: 58: goja.loadDynamic(Error) compiler.go:433: 59: goja.loadVal({dst: }) compiler.go:433: 60: goja.loadDynamic(dst) compiler.go:433: 61: goja.getPropCallee(join) compiler.go:433: 62: goja.loadVal({,}) compiler.go:433: 63: goja.call(1) compiler.go:433: 64: goja._add({}) compiler.go:433: 65: goja._new(1) compiler.go:433: 66: goja._throw({}) compiler.go:433: 67: goja.jump(2) compiler.go:433: 68: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArraySliceDifType (0.00s) === RUN TestTypedArraySortComparatorReturnValueFloats compiler.go:433: 0: *goja.bindGlobal(&{[a i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.loadDynamic(Float64Array) compiler.go:433: 3: goja.getPropCallee(of) compiler.go:433: 4: goja.loadVal({5.97}) compiler.go:433: 5: goja.loadVal({9.91}) compiler.go:433: 6: goja.loadVal({4.13}) compiler.go:433: 7: goja.loadVal({9.28}) compiler.go:433: 8: goja.loadVal({3.29}) compiler.go:433: 9: goja.call(5) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.loadDynamic(a) compiler.go:433: 12: goja.getPropCallee(sort) compiler.go:433: 13: *goja.newFunc(&{0xc000360cd0 function(a, b) { return a - b; } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.loadStackLex(-2) compiler.go:433: > 3: goja._sub({}) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 14: goja.call(1) compiler.go:433: 15: goja._pop({}) compiler.go:433: 16: goja.resolveVar1(i) compiler.go:433: 17: goja.loadVal({1}) compiler.go:433: 18: goja._initValueP({}) compiler.go:433: 19: goja._clearResult({}) compiler.go:433: 20: goja.loadDynamic(i) compiler.go:433: 21: goja.loadDynamic(a) compiler.go:433: 22: goja.getProp(length) compiler.go:433: 23: goja._op_lt({}) compiler.go:433: 24: goja.jneP(26) compiler.go:433: 25: goja._clearResult({}) compiler.go:433: 26: goja._clearResult({}) compiler.go:433: 27: goja.loadDynamic(a) compiler.go:433: 28: goja.loadDynamic(i) compiler.go:433: 29: goja._getElem({}) compiler.go:433: 30: goja.loadDynamic(a) compiler.go:433: 31: goja.loadDynamic(i) compiler.go:433: 32: goja.loadVal({1}) compiler.go:433: 33: goja._sub({}) compiler.go:433: 34: goja._getElem({}) compiler.go:433: 35: goja._op_lt({}) compiler.go:433: 36: goja.jneP(8) compiler.go:433: 37: goja.loadDynamic(Error) compiler.go:433: 38: goja.loadVal({Array is not sorted: }) compiler.go:433: 39: goja.loadDynamic(a) compiler.go:433: 40: goja._add({}) compiler.go:433: 41: goja._new(1) compiler.go:433: 42: goja._throw({}) compiler.go:433: 43: goja.jump(2) compiler.go:433: 44: goja._clearResult({}) compiler.go:433: 45: goja.resolveVar1(i) compiler.go:433: 46: goja._getValue({}) compiler.go:433: 47: goja._inc({}) compiler.go:433: 48: goja._putValueP({}) compiler.go:433: 49: goja.jump(-29) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArraySortComparatorReturnValueFloats (0.00s) === RUN TestTypedArraySortComparatorReturnValueNegZero compiler.go:433: 0: *goja.bindGlobal(&{[a i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.loadDynamic(Uint8Array) compiler.go:433: 3: goja.newArray(2) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja._pushArrayItem({}) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja._new(1) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(a) compiler.go:433: 11: goja.getPropCallee(sort) compiler.go:433: 12: *goja.newFunc(&{0xc000360fa0 function(a, b) { return a > b ? 0 : -0; } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.loadStackLex(-2) compiler.go:433: > 3: goja._op_gt({}) compiler.go:433: > 4: goja.jneP(3) compiler.go:433: > 5: goja.loadVal({0}) compiler.go:433: > 6: goja.jump(3) compiler.go:433: > 7: goja.loadVal({0}) compiler.go:433: > 8: goja._neg({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 13: goja.call(1) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja.resolveVar1(i) compiler.go:433: 16: goja.loadVal({1}) compiler.go:433: 17: goja._initValueP({}) compiler.go:433: 18: goja._clearResult({}) compiler.go:433: 19: goja.loadDynamic(i) compiler.go:433: 20: goja.loadDynamic(a) compiler.go:433: 21: goja.getProp(length) compiler.go:433: 22: goja._op_lt({}) compiler.go:433: 23: goja.jneP(26) compiler.go:433: 24: goja._clearResult({}) compiler.go:433: 25: goja._clearResult({}) compiler.go:433: 26: goja.loadDynamic(a) compiler.go:433: 27: goja.loadDynamic(i) compiler.go:433: 28: goja._getElem({}) compiler.go:433: 29: goja.loadDynamic(a) compiler.go:433: 30: goja.loadDynamic(i) compiler.go:433: 31: goja.loadVal({1}) compiler.go:433: 32: goja._sub({}) compiler.go:433: 33: goja._getElem({}) compiler.go:433: 34: goja._op_lt({}) compiler.go:433: 35: goja.jneP(8) compiler.go:433: 36: goja.loadDynamic(Error) compiler.go:433: 37: goja.loadVal({Array is not sorted: }) compiler.go:433: 38: goja.loadDynamic(a) compiler.go:433: 39: goja._add({}) compiler.go:433: 40: goja._new(1) compiler.go:433: 41: goja._throw({}) compiler.go:433: 42: goja.jump(2) compiler.go:433: 43: goja._clearResult({}) compiler.go:433: 44: goja.resolveVar1(i) compiler.go:433: 45: goja._getValue({}) compiler.go:433: 46: goja._inc({}) compiler.go:433: 47: goja._putValueP({}) compiler.go:433: 48: goja.jump(-29) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArraySortComparatorReturnValueNegZero (0.00s) === RUN TestInt32ArrayNegativeIndex compiler.go:433: 0: goja.loadDynamic(Int32Array) compiler.go:433: 1: goja._new(0) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja._neg({}) compiler.go:433: 4: goja._getElem({}) compiler.go:433: 5: goja.loadDynamic(undefined) compiler.go:433: 6: goja._op_strict_eq({}) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestInt32ArrayNegativeIndex (0.00s) === RUN TestTypedArrayDeleteUnconfigurable compiler.go:433: 0: goja.try({7 0}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja._loadUndef({}) compiler.go:433: 3: *goja.newFunc(&{0xc000361360 function() { 'use strict'; delete Uint8Array.prototype.BYTES_PER_ELEMENT; } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Uint8Array) compiler.go:433: > 2: goja.getProp(prototype) compiler.go:433: > 3: goja.deletePropStrict(BYTES_PER_ELEMENT) compiler.go:433: > 4: goja._pop({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._saveResult({}) compiler.go:433: 6: goja.jump(22) compiler.go:433: 7: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 8: goja.loadStackLex(1) compiler.go:433: 9: goja.loadDynamic(TypeError) compiler.go:433: 10: goja._op_instanceof({}) compiler.go:433: 11: goja._not({}) compiler.go:433: 12: goja.jneP(3) compiler.go:433: 13: goja.loadStackLex(1) compiler.go:433: 14: goja._throw({}) compiler.go:433: 15: goja._clearResult({}) compiler.go:433: 16: goja.loadStackLex(1) compiler.go:433: 17: goja.getProp(message) compiler.go:433: 18: goja.getPropCallee(startsWith) compiler.go:433: 19: goja.loadVal({Cannot delete property}) compiler.go:433: 20: goja.call(1) compiler.go:433: 21: goja._not({}) compiler.go:433: 22: goja.jneP(4) compiler.go:433: 23: goja.loadStackLex(1) compiler.go:433: 24: goja._throw({}) compiler.go:433: 25: goja.jump(2) compiler.go:433: 26: goja._clearResult({}) compiler.go:433: 27: *goja.leaveBlock(&{1 false}) compiler.go:433: 28: goja.leaveTry({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArrayDeleteUnconfigurable (0.00s) === RUN TestWeakMap --- PASS: TestWeakMap (0.00s) === RUN TestWeakMapGetAdderGetIteratorOrder compiler.go:433: 0: *goja.bindGlobal(&{[] [] [getterCalled M getIteratorCalled iterable thrown] [] false}) compiler.go:433: 1: goja.loadVal({0}) compiler.go:433: 2: goja.initGlobalP(getterCalled) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: goja.loadDynamic(WeakMap) compiler.go:433: 5: *goja.newDerivedClass(&{{ M class M extends WeakMap { get set() { getterCalled++; return null; } } [] [] 0 0 0 false}}) compiler.go:433: 6: goja.dupN(1) compiler.go:433: 7: *goja.newMethod(&{{0xc0003617c0 set get set() { getterCalled++; return null; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1Strict(getterCalled) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja._inc({}) compiler.go:433: > 4: goja._putValueP({}) compiler.go:433: > 5: goja.loadVal({{}}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 8: *goja.defineGetterKeyed(&{set false}) compiler.go:433: 9: goja._pop({}) compiler.go:433: 10: goja._endVariadic({}) compiler.go:433: 11: goja.initGlobalP(M) compiler.go:433: 12: goja.loadVal({0}) compiler.go:433: 13: goja.initGlobalP(getIteratorCalled) compiler.go:433: 14: goja._newObject({}) compiler.go:433: 15: goja.initGlobalP(iterable) compiler.go:433: 16: goja.loadDynamic(iterable) compiler.go:433: 17: goja.loadDynamic(Symbol) compiler.go:433: 18: goja.getProp(iterator) compiler.go:433: 19: *goja.newArrowFunc(&{{0xc000361810 () => { getIteratorCalled++ return { next: 1 }; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(getIteratorCalled) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja._inc({}) compiler.go:433: > 4: goja._putValueP({}) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadVal({1}) compiler.go:433: > 7: goja.putProp(next) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 20: goja._setElemP({}) compiler.go:433: 21: goja.loadVal({false}) compiler.go:433: 22: goja.initGlobalP(thrown) compiler.go:433: 23: goja.try({6 0}) compiler.go:433: 24: goja.loadDynamic(M) compiler.go:433: 25: goja.loadDynamic(iterable) compiler.go:433: 26: goja._new(1) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja.jump(13) compiler.go:433: 29: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 30: goja.loadStackLex(1) compiler.go:433: 31: goja.loadDynamic(TypeError) compiler.go:433: 32: goja._op_instanceof({}) compiler.go:433: 33: goja.jneP(5) compiler.go:433: 34: goja.resolveVar1(thrown) compiler.go:433: 35: goja.loadVal({true}) compiler.go:433: 36: goja._putValueP({}) compiler.go:433: 37: goja.jump(3) compiler.go:433: 38: goja.loadStackLex(1) compiler.go:433: 39: goja._throw({}) compiler.go:433: 40: *goja.leaveBlock(&{1 false}) compiler.go:433: 41: goja.leaveTry({}) compiler.go:433: 42: goja.loadDynamic(thrown) compiler.go:433: 43: goja.jne(4) compiler.go:433: 44: goja.loadDynamic(getterCalled) compiler.go:433: 45: goja.loadVal({1}) compiler.go:433: 46: goja._op_strict_eq({}) compiler.go:433: 47: goja.jne(4) compiler.go:433: 48: goja.loadDynamic(getIteratorCalled) compiler.go:433: 49: goja.loadVal({0}) compiler.go:433: 50: goja._op_strict_eq({}) compiler.go:433: 51: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestWeakMapGetAdderGetIteratorOrder (0.00s) === RUN TestWeakSetBasic compiler.go:433: 0: *goja.bindGlobal(&{[s o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(s) compiler.go:433: 2: goja.loadDynamic(WeakSet) compiler.go:433: 3: goja._new(0) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.resolveVar1(o) compiler.go:433: 6: goja._newObject({}) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.loadDynamic(s) compiler.go:433: 9: goja.getPropCallee(add) compiler.go:433: 10: goja.loadDynamic(o) compiler.go:433: 11: goja.call(1) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: goja.loadDynamic(s) compiler.go:433: 14: goja.getPropCallee(has) compiler.go:433: 15: goja.loadDynamic(o) compiler.go:433: 16: goja.call(1) compiler.go:433: 17: goja._not({}) compiler.go:433: 18: goja.jneP(5) compiler.go:433: 19: goja.loadDynamic(Error) compiler.go:433: 20: goja.loadVal({has}) compiler.go:433: 21: goja._new(1) compiler.go:433: 22: goja._throw({}) compiler.go:433: 23: goja.loadDynamic(s) compiler.go:433: 24: goja.getPropCallee(delete) compiler.go:433: 25: goja.loadDynamic(o) compiler.go:433: 26: goja.call(1) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja._clearResult({}) compiler.go:433: 29: goja.loadDynamic(s) compiler.go:433: 30: goja.getPropCallee(has) compiler.go:433: 31: goja.loadDynamic(o) compiler.go:433: 32: goja.call(1) compiler.go:433: 33: goja.jneP(6) compiler.go:433: 34: goja.loadDynamic(Error) compiler.go:433: 35: goja.loadVal({still has}) compiler.go:433: 36: goja._new(1) compiler.go:433: 37: goja._throw({}) compiler.go:433: 38: goja.jump(2) compiler.go:433: 39: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestWeakSetBasic (0.00s) === RUN TestWeakSetArraySimple compiler.go:433: 0: *goja.bindGlobal(&{[o1 o2 o3 s] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o1) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(o2) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(o3) compiler.go:433: 8: goja._newObject({}) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(s) compiler.go:433: 11: goja.loadDynamic(WeakSet) compiler.go:433: 12: goja.newArray(3) compiler.go:433: 13: goja.loadDynamic(o1) compiler.go:433: 14: goja._pushArrayItem({}) compiler.go:433: 15: goja.loadDynamic(o2) compiler.go:433: 16: goja._pushArrayItem({}) compiler.go:433: 17: goja.loadDynamic(o3) compiler.go:433: 18: goja._pushArrayItem({}) compiler.go:433: 19: goja._new(1) compiler.go:433: 20: goja._initValueP({}) compiler.go:433: 21: goja.loadDynamic(s) compiler.go:433: 22: goja.getPropCallee(has) compiler.go:433: 23: goja.loadDynamic(o1) compiler.go:433: 24: goja.call(1) compiler.go:433: 25: goja.jne(5) compiler.go:433: 26: goja.loadDynamic(s) compiler.go:433: 27: goja.getPropCallee(has) compiler.go:433: 28: goja.loadDynamic(o2) compiler.go:433: 29: goja.call(1) compiler.go:433: 30: goja.jne(5) compiler.go:433: 31: goja.loadDynamic(s) compiler.go:433: 32: goja.getPropCallee(has) compiler.go:433: 33: goja.loadDynamic(o3) compiler.go:433: 34: goja.call(1) compiler.go:433: 35: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestWeakSetArraySimple (0.00s) === RUN TestWeakSetArrayGeneric compiler.go:433: 0: *goja.bindGlobal(&{[o1 o2 o3 a s thrown] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o1) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(o2) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(o3) compiler.go:433: 8: goja._newObject({}) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(a) compiler.go:433: 11: goja.loadDynamic(Array) compiler.go:433: 12: goja._new(0) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.resolveVar1(thrown) compiler.go:433: 15: goja.loadVal({false}) compiler.go:433: 16: goja._initValueP({}) compiler.go:433: 17: goja.loadDynamic(a) compiler.go:433: 18: goja.loadVal({1}) compiler.go:433: 19: goja.loadDynamic(o2) compiler.go:433: 20: goja._setElemP({}) compiler.go:433: 21: goja.try({7 0}) compiler.go:433: 22: goja.resolveVar1(s) compiler.go:433: 23: goja.loadDynamic(WeakSet) compiler.go:433: 24: goja.loadDynamic(a) compiler.go:433: 25: goja._new(1) compiler.go:433: 26: goja._putValueP({}) compiler.go:433: 27: goja.jump(10) compiler.go:433: 28: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 29: goja.loadStackLex(1) compiler.go:433: 30: goja.loadDynamic(TypeError) compiler.go:433: 31: goja._op_instanceof({}) compiler.go:433: 32: goja.jneP(4) compiler.go:433: 33: goja.resolveVar1(thrown) compiler.go:433: 34: goja.loadVal({true}) compiler.go:433: 35: goja._putValueP({}) compiler.go:433: 36: *goja.leaveBlock(&{1 false}) compiler.go:433: 37: goja.leaveTry({}) compiler.go:433: 38: goja.loadDynamic(thrown) compiler.go:433: 39: goja._not({}) compiler.go:433: 40: goja.jneP(5) compiler.go:433: 41: goja.loadDynamic(Error) compiler.go:433: 42: goja.loadVal({Case 1 does not throw}) compiler.go:433: 43: goja._new(1) compiler.go:433: 44: goja._throw({}) compiler.go:433: 45: goja.loadDynamic(Object) compiler.go:433: 46: goja.getPropCallee(defineProperty) compiler.go:433: 47: goja.loadDynamic(a) compiler.go:433: 48: goja.getProp(__proto__) compiler.go:433: 49: goja.loadVal({0}) compiler.go:433: 50: goja._newObject({}) compiler.go:433: 51: goja.loadDynamic(o1) compiler.go:433: 52: goja.putProp(value) compiler.go:433: 53: goja.loadVal({true}) compiler.go:433: 54: goja.putProp(writable) compiler.go:433: 55: goja.loadVal({true}) compiler.go:433: 56: goja.putProp(enumerable) compiler.go:433: 57: goja.loadVal({true}) compiler.go:433: 58: goja.putProp(configurable) compiler.go:433: 59: goja.call(3) compiler.go:433: 60: goja._pop({}) compiler.go:433: 61: goja.resolveVar1(s) compiler.go:433: 62: goja.loadDynamic(WeakSet) compiler.go:433: 63: goja.loadDynamic(a) compiler.go:433: 64: goja._new(1) compiler.go:433: 65: goja._putValueP({}) compiler.go:433: 66: goja.loadDynamic(s) compiler.go:433: 67: goja.getPropCallee(has) compiler.go:433: 68: goja.loadDynamic(o1) compiler.go:433: 69: goja.call(1) compiler.go:433: 70: goja.jne(5) compiler.go:433: 71: goja.loadDynamic(s) compiler.go:433: 72: goja.getPropCallee(has) compiler.go:433: 73: goja.loadDynamic(o2) compiler.go:433: 74: goja.call(1) compiler.go:433: 75: goja.jne(6) compiler.go:433: 76: goja.loadDynamic(s) compiler.go:433: 77: goja.getPropCallee(has) compiler.go:433: 78: goja.loadDynamic(o3) compiler.go:433: 79: goja.call(1) compiler.go:433: 80: goja._not({}) compiler.go:433: 81: goja._not({}) compiler.go:433: 82: goja.jneP(5) compiler.go:433: 83: goja.loadDynamic(Error) compiler.go:433: 84: goja.loadVal({Case 2 failed}) compiler.go:433: 85: goja._new(1) compiler.go:433: 86: goja._throw({}) compiler.go:433: 87: goja.loadDynamic(Object) compiler.go:433: 88: goja.getPropCallee(defineProperty) compiler.go:433: 89: goja.loadDynamic(a) compiler.go:433: 90: goja.loadVal({2}) compiler.go:433: 91: goja._newObject({}) compiler.go:433: 92: goja.loadDynamic(o3) compiler.go:433: 93: goja.putProp(value) compiler.go:433: 94: goja.loadVal({true}) compiler.go:433: 95: goja.putProp(configurable) compiler.go:433: 96: goja.call(3) compiler.go:433: 97: goja._pop({}) compiler.go:433: 98: goja.resolveVar1(s) compiler.go:433: 99: goja.loadDynamic(WeakSet) compiler.go:433: 100: goja.loadDynamic(a) compiler.go:433: 101: goja._new(1) compiler.go:433: 102: goja._putValueP({}) compiler.go:433: 103: goja.loadDynamic(s) compiler.go:433: 104: goja.getPropCallee(has) compiler.go:433: 105: goja.loadDynamic(o1) compiler.go:433: 106: goja.call(1) compiler.go:433: 107: goja.jne(5) compiler.go:433: 108: goja.loadDynamic(s) compiler.go:433: 109: goja.getPropCallee(has) compiler.go:433: 110: goja.loadDynamic(o2) compiler.go:433: 111: goja.call(1) compiler.go:433: 112: goja.jne(5) compiler.go:433: 113: goja.loadDynamic(s) compiler.go:433: 114: goja.getPropCallee(has) compiler.go:433: 115: goja.loadDynamic(o3) compiler.go:433: 116: goja.call(1) compiler.go:433: 117: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestWeakSetArrayGeneric (0.00s) === RUN TestWeakSetGetAdderGetIteratorOrder compiler.go:433: 0: *goja.bindGlobal(&{[] [] [getterCalled S getIteratorCalled iterable thrown] [] false}) compiler.go:433: 1: goja.loadVal({0}) compiler.go:433: 2: goja.initGlobalP(getterCalled) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: goja.loadDynamic(WeakSet) compiler.go:433: 5: *goja.newDerivedClass(&{{ S class S extends WeakSet { get add() { getterCalled++; return null; } } [] [] 0 0 0 false}}) compiler.go:433: 6: goja.dupN(1) compiler.go:433: 7: *goja.newMethod(&{{0xc0003604b0 add get add() { getterCalled++; return null; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1Strict(getterCalled) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja._inc({}) compiler.go:433: > 4: goja._putValueP({}) compiler.go:433: > 5: goja.loadVal({{}}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 8: *goja.defineGetterKeyed(&{add false}) compiler.go:433: 9: goja._pop({}) compiler.go:433: 10: goja._endVariadic({}) compiler.go:433: 11: goja.initGlobalP(S) compiler.go:433: 12: goja.loadVal({0}) compiler.go:433: 13: goja.initGlobalP(getIteratorCalled) compiler.go:433: 14: goja._newObject({}) compiler.go:433: 15: goja.initGlobalP(iterable) compiler.go:433: 16: goja.loadDynamic(iterable) compiler.go:433: 17: goja.loadDynamic(Symbol) compiler.go:433: 18: goja.getProp(iterator) compiler.go:433: 19: *goja.newArrowFunc(&{{0xc000360500 () => { getIteratorCalled++ return { next: 1 }; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(getIteratorCalled) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja._inc({}) compiler.go:433: > 4: goja._putValueP({}) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadVal({1}) compiler.go:433: > 7: goja.putProp(next) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 20: goja._setElemP({}) compiler.go:433: 21: goja.loadVal({false}) compiler.go:433: 22: goja.initGlobalP(thrown) compiler.go:433: 23: goja.try({6 0}) compiler.go:433: 24: goja.loadDynamic(S) compiler.go:433: 25: goja.loadDynamic(iterable) compiler.go:433: 26: goja._new(1) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja.jump(13) compiler.go:433: 29: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 30: goja.loadStackLex(1) compiler.go:433: 31: goja.loadDynamic(TypeError) compiler.go:433: 32: goja._op_instanceof({}) compiler.go:433: 33: goja.jneP(5) compiler.go:433: 34: goja.resolveVar1(thrown) compiler.go:433: 35: goja.loadVal({true}) compiler.go:433: 36: goja._putValueP({}) compiler.go:433: 37: goja.jump(3) compiler.go:433: 38: goja.loadStackLex(1) compiler.go:433: 39: goja._throw({}) compiler.go:433: 40: *goja.leaveBlock(&{1 false}) compiler.go:433: 41: goja.leaveTry({}) compiler.go:433: 42: goja.loadDynamic(thrown) compiler.go:433: 43: goja.jne(4) compiler.go:433: 44: goja.loadDynamic(getterCalled) compiler.go:433: 45: goja.loadVal({1}) compiler.go:433: 46: goja._op_strict_eq({}) compiler.go:433: 47: goja.jne(4) compiler.go:433: 48: goja.loadDynamic(getIteratorCalled) compiler.go:433: 49: goja.loadVal({0}) compiler.go:433: 50: goja._op_strict_eq({}) compiler.go:433: 51: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestWeakSetGetAdderGetIteratorOrder (0.00s) === RUN TestEmptyProgram compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEmptyProgram (0.00s) === RUN TestResultEmptyBlock compiler.go:433: 0: goja.loadDynamic(undefined) compiler.go:433: 1: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestResultEmptyBlock (0.00s) === RUN TestResultVarDecl compiler.go:433: 0: *goja.bindGlobal(&{[x] [] [] [] false}) compiler.go:433: 1: goja.loadVal({7}) compiler.go:433: 2: goja._saveResult({}) compiler.go:433: 3: goja.resolveVar1(x) compiler.go:433: 4: goja.loadVal({1}) compiler.go:433: 5: goja._initValueP({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestResultVarDecl (0.00s) === RUN TestResultLexDecl compiler.go:433: 0: goja.loadVal({7}) compiler.go:433: 1: goja._saveResult({}) compiler.go:433: 2: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.initStackP(1) compiler.go:433: 5: *goja.leaveBlock(&{1 false}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestResultLexDecl (0.00s) === RUN TestResultLexDeclBreak compiler.go:433: 0: goja.loadVal({7}) compiler.go:433: 1: goja._saveResult({}) compiler.go:433: 2: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.initStackP(1) compiler.go:433: 5: *goja.leaveBlock(&{1 false}) compiler.go:433: 6: goja.jump(2) compiler.go:433: 7: *goja.leaveBlock(&{1 false}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestResultLexDeclBreak (0.00s) === RUN TestResultLexDeclNested compiler.go:433: 0: goja.loadVal({7}) compiler.go:433: 1: goja._saveResult({}) compiler.go:433: 2: *goja.enterBlock(&{map[x:0] 1 0}) compiler.go:433: 3: goja._loadUndef({}) compiler.go:433: 4: *goja.newFunc(&{0xc000360dc0 function() { return eval("8; {let y = 9}")} 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: goja.loadDynamicCallee(eval) compiler.go:433: > 6: goja.loadVal({8; {let y = 9}}) compiler.go:433: > 7: goja.callEval(1) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 5: goja.call(0) compiler.go:433: 6: goja.initStashP(0) compiler.go:433: 7: *goja.leaveBlock(&{0 true}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestResultLexDeclNested (0.00s) === RUN TestErrorProto compiler.go:433: 0: *goja.bindGlobal(&{[e] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(e) compiler.go:433: 2: goja.loadDynamic(TypeError) compiler.go:433: 3: goja._new(0) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.loadDynamic(e) compiler.go:433: 6: goja.getProp(name) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestErrorProto (0.00s) === RUN TestThis1 compiler.go:433: 0: *goja.newFunc(&{0xc000361270 independent function independent() { return this.prop; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.getProp(prop) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[o] [independent] [] [] false}) compiler.go:433: 2: goja.resolveVar1(o) compiler.go:433: 3: goja._newObject({}) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.loadDynamic(o) compiler.go:433: 6: goja._newObject({}) compiler.go:433: 7: goja.loadDynamic(independent) compiler.go:433: 8: goja.putProp(g) compiler.go:433: 9: goja.loadVal({42}) compiler.go:433: 10: goja.putProp(prop) compiler.go:433: 11: goja.setPropP(b) compiler.go:433: 12: goja.loadDynamic(o) compiler.go:433: 13: goja.getProp(b) compiler.go:433: 14: goja.getPropCallee(g) compiler.go:433: 15: goja.call(0) compiler.go:433: 16: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestThis1 (0.00s) === RUN TestThis2 compiler.go:433: 0: *goja.bindGlobal(&{[o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({37}) compiler.go:433: 4: goja.putProp(prop) compiler.go:433: 5: *goja.newFunc(&{0xc0003614f0 f function() { return this.prop; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.getProp(prop) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 6: goja.putProp(f) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.loadDynamic(o) compiler.go:433: 9: goja.getPropCallee(f) compiler.go:433: 10: goja.call(0) compiler.go:433: 11: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestThis2 (0.00s) === RUN TestThisStrict compiler.go:433: 0: goja.loadDynamic(Object) compiler.go:433: 1: goja.getPropCallee(defineProperty) compiler.go:433: 2: goja.loadDynamic(Object) compiler.go:433: 3: goja.getProp(prototype) compiler.go:433: 4: goja.loadVal({x}) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: *goja.newFunc(&{0xc000361770 get function () { return this; } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 7: goja.putProp(get) compiler.go:433: 8: goja.call(3) compiler.go:433: 9: goja._pop({}) compiler.go:433: 10: goja.loadVal({5}) compiler.go:433: 11: goja.getProp(x) compiler.go:433: 12: goja.loadVal({5}) compiler.go:433: 13: goja._op_strict_eq({}) compiler.go:433: 14: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestThisStrict (0.00s) === RUN TestThisNoStrict compiler.go:433: 0: goja.loadDynamic(Object) compiler.go:433: 1: goja.getPropCallee(defineProperty) compiler.go:433: 2: goja.loadDynamic(Object) compiler.go:433: 3: goja.getProp(prototype) compiler.go:433: 4: goja.loadVal({x}) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: *goja.newFunc(&{0xc0003619a0 get function () { return this; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja._ret({}) compiler.go:433: 7: goja.putProp(get) compiler.go:433: 8: goja.call(3) compiler.go:433: 9: goja._pop({}) compiler.go:433: 10: goja.loadVal({5}) compiler.go:433: 11: goja.getProp(x) compiler.go:433: 12: goja.loadVal({5}) compiler.go:433: 13: goja._op_eq({}) compiler.go:433: 14: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestThisNoStrict (0.00s) === RUN TestNestedFuncVarResolution compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc000361d10 outer function outer() { var v = 42; function inner() { return v; } return inner(); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 2 0 1 false false}) compiler.go:433: > 1: goja._loadCallee({}) compiler.go:433: > 2: goja.initStackP(2) compiler.go:433: > 3: goja._loadCallee({}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: *goja.newFunc(&{0xc000361d60 inner function inner() { return v; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 6: goja.initStackP(1) compiler.go:433: > 7: goja.loadVal({42}) compiler.go:433: > 8: goja.initStashP(0) compiler.go:433: > 9: goja._loadUndef({}) compiler.go:433: > 10: goja.loadStackLex(1) compiler.go:433: > 11: goja.call(0) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestNestedFuncVarResolution (0.00s) === RUN TestNestedFuncVarResolution1 compiler.go:433: 0: *goja.newFunc(&{0xc00036c190 outer function outer(argOuter) { var called = 0; var inner = function(argInner) { if (arguments.length !== 1) { throw new Error(); } called++; if (argOuter !== 1) { throw new Error("argOuter"); } if (argInner !== 2) { throw new Error("argInner"); } }; inner(2); } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 2 1 1 1 true false}) compiler.go:433: > 1: goja.loadVal({0}) compiler.go:433: > 2: goja.initStashP(1) compiler.go:433: > 3: *goja.newFunc(&{0xc00036c1e0 inner function(argInner) { if (arguments.length !== 1) { throw new Error(); } called++; if (argOuter !== 1) { throw new Error("argOuter"); } if (argInner !== 2) { throw new Error("argInner"); } } 1 false}) compiler.go:433: >> 0: *goja.enterFunc(&{map[] 1 1 1 1 true false}) compiler.go:433: >> 1: goja.createArgsMapped(1) compiler.go:433: >> 2: goja.initStack1P(1) compiler.go:433: >> 3: goja.loadStack1(1) compiler.go:433: >> 4: goja.getProp(length) compiler.go:433: >> 5: goja.loadVal({1}) compiler.go:433: >> 6: goja._op_strict_neq({}) compiler.go:433: >> 7: goja.jneP(4) compiler.go:433: >> 8: goja.loadDynamic(Error) compiler.go:433: >> 9: goja._new(0) compiler.go:433: >> 10: goja._throw({}) compiler.go:433: >> 11: goja.loadStash(16777217) compiler.go:433: >> 12: goja._inc({}) compiler.go:433: >> 13: goja.storeStashP(16777217) compiler.go:433: >> 14: goja.loadStashLex(16777216) compiler.go:433: >> 15: goja.loadVal({1}) compiler.go:433: >> 16: goja._op_strict_neq({}) compiler.go:433: >> 17: goja.jneP(5) compiler.go:433: >> 18: goja.loadDynamic(Error) compiler.go:433: >> 19: goja.loadVal({argOuter}) compiler.go:433: >> 20: goja._new(1) compiler.go:433: >> 21: goja._throw({}) compiler.go:433: >> 22: goja.loadStashLex(0) compiler.go:433: >> 23: goja.loadVal({2}) compiler.go:433: >> 24: goja._op_strict_neq({}) compiler.go:433: >> 25: goja.jneP(5) compiler.go:433: >> 26: goja.loadDynamic(Error) compiler.go:433: >> 27: goja.loadVal({argInner}) compiler.go:433: >> 28: goja._new(1) compiler.go:433: >> 29: goja._throw({}) compiler.go:433: >> 30: goja._loadUndef({}) compiler.go:433: >> 31: goja._ret({}) compiler.go:433: > 4: goja.initStack1P(1) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja.loadStack1(1) compiler.go:433: > 7: goja.loadVal({2}) compiler.go:433: > 8: goja.call(1) compiler.go:433: > 9: goja._pop({}) compiler.go:433: > 10: goja._loadUndef({}) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [outer] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(outer) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestNestedFuncVarResolution1 (0.00s) === RUN TestCallFewerArgs compiler.go:433: 0: *goja.newFunc(&{0xc00036c4b0 A function A(a, b, c) { return String(a) + " " + String(b) + " " + String(c); } 3 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 3}) compiler.go:433: > 1: goja.loadDynamicCallee(String) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja.call(1) compiler.go:433: > 4: goja.loadVal({ }) compiler.go:433: > 5: goja._add({}) compiler.go:433: > 6: goja.loadDynamicCallee(String) compiler.go:433: > 7: goja.loadStackLex(-2) compiler.go:433: > 8: goja.call(1) compiler.go:433: > 9: goja._add({}) compiler.go:433: > 10: goja.loadVal({ }) compiler.go:433: > 11: goja._add({}) compiler.go:433: > 12: goja.loadDynamicCallee(String) compiler.go:433: > 13: goja.loadStackLex(-3) compiler.go:433: > 14: goja.call(1) compiler.go:433: > 15: goja._add({}) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestCallFewerArgs (0.00s) === RUN TestCallFewerArgsClosureNoArgs compiler.go:433: 0: *goja.newFunc(&{0xc00036c780 A function A(a, b, c) { var y = a; x = function() { return " " + y }; return String(a) + " " + String(b) + " " + String(c); } 3 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 3 1 false false}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: goja.resolveVar1(x) compiler.go:433: > 4: *goja.newFunc(&{0xc00036c7d0 x function() { return " " + y } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadVal({ }) compiler.go:433: >> 2: goja.loadStash(0) compiler.go:433: >> 3: goja._add({}) compiler.go:433: >> 4: goja._ret({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamicCallee(String) compiler.go:433: > 7: goja.loadStackLex(-1) compiler.go:433: > 8: goja.call(1) compiler.go:433: > 9: goja.loadVal({ }) compiler.go:433: > 10: goja._add({}) compiler.go:433: > 11: goja.loadDynamicCallee(String) compiler.go:433: > 12: goja.loadStackLex(-2) compiler.go:433: > 13: goja.call(1) compiler.go:433: > 14: goja._add({}) compiler.go:433: > 15: goja.loadVal({ }) compiler.go:433: > 16: goja._add({}) compiler.go:433: > 17: goja.loadDynamicCallee(String) compiler.go:433: > 18: goja.loadStackLex(-3) compiler.go:433: > 19: goja.call(1) compiler.go:433: > 20: goja._add({}) compiler.go:433: > 21: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[x] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja.loadDynamicCallee(x) compiler.go:433: 7: goja.call(0) compiler.go:433: 8: goja._add({}) compiler.go:433: 9: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestCallFewerArgsClosureNoArgs (0.00s) === RUN TestCallFewerArgsClosureArgs compiler.go:433: 0: *goja.newFunc(&{0xc00036cb90 A function A(a, b, c) { var y = b; x = function() { return " " + a + " " + y }; return String(a) + " " + String(b) + " " + String(c); } 3 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 4 0 3 1 true false}) compiler.go:433: > 1: goja.loadStashLex(1) compiler.go:433: > 2: goja.initStashP(3) compiler.go:433: > 3: goja.resolveVar1(x) compiler.go:433: > 4: *goja.newFunc(&{0xc00036cbe0 x function() { return " " + a + " " + y } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadVal({ }) compiler.go:433: >> 2: goja.loadStashLex(0) compiler.go:433: >> 3: goja._add({}) compiler.go:433: >> 4: goja.loadVal({ }) compiler.go:433: >> 5: goja._add({}) compiler.go:433: >> 6: goja.loadStash(3) compiler.go:433: >> 7: goja._add({}) compiler.go:433: >> 8: goja._ret({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamicCallee(String) compiler.go:433: > 7: goja.loadStashLex(0) compiler.go:433: > 8: goja.call(1) compiler.go:433: > 9: goja.loadVal({ }) compiler.go:433: > 10: goja._add({}) compiler.go:433: > 11: goja.loadDynamicCallee(String) compiler.go:433: > 12: goja.loadStashLex(1) compiler.go:433: > 13: goja.call(1) compiler.go:433: > 14: goja._add({}) compiler.go:433: > 15: goja.loadVal({ }) compiler.go:433: > 16: goja._add({}) compiler.go:433: > 17: goja.loadDynamicCallee(String) compiler.go:433: > 18: goja.loadStashLex(2) compiler.go:433: > 19: goja.call(1) compiler.go:433: > 20: goja._add({}) compiler.go:433: > 21: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[x] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja.loadDynamicCallee(x) compiler.go:433: 7: goja.call(0) compiler.go:433: 8: goja._add({}) compiler.go:433: 9: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestCallFewerArgsClosureArgs (0.00s) === RUN TestCallMoreArgs compiler.go:433: 0: *goja.newFunc(&{0xc00036ceb0 A function A(a, b) { var c = 4; return a - b + c; } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 2}) compiler.go:433: > 1: goja.loadVal({4}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadStackLex(-1) compiler.go:433: > 4: goja.loadStackLex(-2) compiler.go:433: > 5: goja._sub({}) compiler.go:433: > 6: goja.loadStack(1) compiler.go:433: > 7: goja._add({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.loadVal({3}) compiler.go:433: 6: goja.call(3) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestCallMoreArgs (0.00s) === RUN TestCallMoreArgsDynamic compiler.go:433: 0: *goja.newFunc(&{0xc00036d0e0 A function A(a, b) { var c = 4; if (false) { eval(""); } return a - b + c; } 2 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741826 a:1073741824 arguments:1073741828 b:1073741825 c:1073741827] 5 0 2 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(2) compiler.go:433: > 3: goja.createArgsMapped(2) compiler.go:433: > 4: goja.initStashP(4) compiler.go:433: > 5: goja.loadVal({4}) compiler.go:433: > 6: goja.initStashP(3) compiler.go:433: > 7: goja.loadStashLex(0) compiler.go:433: > 8: goja.loadStashLex(1) compiler.go:433: > 9: goja._sub({}) compiler.go:433: > 10: goja.loadStash(3) compiler.go:433: > 11: goja._add({}) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.loadVal({3}) compiler.go:433: 6: goja.call(3) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestCallMoreArgsDynamic (0.00s) === RUN TestCallLessArgsDynamic compiler.go:433: 0: *goja.newFunc(&{0xc00036d4a0 A function A(a, b, c) { // Make it stashful function B() { return a; } return String(a) + " " + String(b) + " " + String(c); } 3 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 3 1 3 1 true false}) compiler.go:433: > 1: *goja.newFunc(&{0xc00036d4f0 B function B() { return a; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStashLex(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 2: goja.initStack1P(1) compiler.go:433: > 3: goja.loadDynamicCallee(String) compiler.go:433: > 4: goja.loadStashLex(0) compiler.go:433: > 5: goja.call(1) compiler.go:433: > 6: goja.loadVal({ }) compiler.go:433: > 7: goja._add({}) compiler.go:433: > 8: goja.loadDynamicCallee(String) compiler.go:433: > 9: goja.loadStashLex(1) compiler.go:433: > 10: goja.call(1) compiler.go:433: > 11: goja._add({}) compiler.go:433: > 12: goja.loadVal({ }) compiler.go:433: > 13: goja._add({}) compiler.go:433: > 14: goja.loadDynamicCallee(String) compiler.go:433: > 15: goja.loadStashLex(2) compiler.go:433: > 16: goja.call(1) compiler.go:433: > 17: goja._add({}) compiler.go:433: > 18: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestCallLessArgsDynamic (0.00s) === RUN TestCallLessArgsDynamicLocalVar compiler.go:433: 0: *goja.newFunc(&{0xc00036d770 f function f(param) { var a = 42; if (false) { eval(""); } return a; } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741825 a:1073741826 arguments:1073741827 param:1073741824] 4 0 1 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(1) compiler.go:433: > 3: goja.createArgsMapped(1) compiler.go:433: > 4: goja.initStashP(3) compiler.go:433: > 5: goja.loadVal({42}) compiler.go:433: > 6: goja.initStashP(2) compiler.go:433: > 7: goja.loadStash(2) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestCallLessArgsDynamicLocalVar (0.00s) === RUN TestNativeCall compiler.go:433: 0: *goja.bindGlobal(&{[o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja.loadDynamicCallee(Object) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(Object) compiler.go:433: 7: goja.getPropCallee(defineProperty) compiler.go:433: 8: goja.loadDynamic(o) compiler.go:433: 9: goja.loadVal({test}) compiler.go:433: 10: goja._newObject({}) compiler.go:433: 11: goja.loadVal({42}) compiler.go:433: 12: goja.putProp(value) compiler.go:433: 13: goja.call(3) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja.loadDynamic(o) compiler.go:433: 16: goja.getProp(test) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNativeCall (0.00s) === RUN TestJSCall compiler.go:433: 0: *goja.newFunc(&{0xc00036dbd0 getter function getter() { return this.x; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.getProp(x) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[o] [getter] [] [] false}) compiler.go:433: 2: goja.resolveVar1(o) compiler.go:433: 3: goja.loadDynamicCallee(Object) compiler.go:433: 4: goja.loadVal({1}) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(o) compiler.go:433: 8: goja.loadVal({42}) compiler.go:433: 9: goja.setPropP(x) compiler.go:433: 10: goja.loadDynamic(Object) compiler.go:433: 11: goja.getPropCallee(defineProperty) compiler.go:433: 12: goja.loadDynamic(o) compiler.go:433: 13: goja.loadVal({test}) compiler.go:433: 14: goja._newObject({}) compiler.go:433: 15: goja.loadDynamic(getter) compiler.go:433: 16: goja.putProp(get) compiler.go:433: 17: goja.call(3) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamic(o) compiler.go:433: 20: goja.getProp(test) compiler.go:433: 21: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestJSCall (0.00s) === RUN TestLoop1 compiler.go:433: 0: *goja.newFunc(&{0xc00036dea0 A function A() { var x = 1; for (var i = 0; i < 1; i++) { var x = 2; } return x; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{2 0}) compiler.go:433: > 1: goja.loadVal({1}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadVal({0}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: goja.loadStack(2) compiler.go:433: > 6: goja.loadVal({1}) compiler.go:433: > 7: goja._op_lt({}) compiler.go:433: > 8: goja.jneP(7) compiler.go:433: > 9: goja.loadVal({2}) compiler.go:433: > 10: goja.initStackP(1) compiler.go:433: > 11: goja.loadStack(2) compiler.go:433: > 12: goja._inc({}) compiler.go:433: > 13: goja.storeStackP(2) compiler.go:433: > 14: goja.jump(-9) compiler.go:433: > 15: goja.loadStack(1) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestLoop1 (0.00s) === RUN TestLoopBreak compiler.go:433: 0: *goja.newFunc(&{0xc000484280 A function A() { var x = 1; for (var i = 0; i < 1; i++) { break; var x = 2; } return x; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{2 0}) compiler.go:433: > 1: goja.loadVal({1}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadVal({0}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: goja.loadStack(2) compiler.go:433: > 6: goja.loadVal({1}) compiler.go:433: > 7: goja._op_lt({}) compiler.go:433: > 8: goja.jneP(8) compiler.go:433: > 9: goja.jump(7) compiler.go:433: > 10: goja.loadVal({2}) compiler.go:433: > 11: goja.initStackP(1) compiler.go:433: > 12: goja.loadStack(2) compiler.go:433: > 13: goja._inc({}) compiler.go:433: > 14: goja.storeStackP(2) compiler.go:433: > 15: goja.jump(-10) compiler.go:433: > 16: goja.loadStack(1) compiler.go:433: > 17: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestLoopBreak (0.00s) === RUN TestForLoopOptionalExpr compiler.go:433: 0: *goja.newFunc(&{0xc000484500 A function A() { var x = 1; for (;;) { break; var x = 2; } return x; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.loadVal({1}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.jump(4) compiler.go:433: > 4: goja.loadVal({2}) compiler.go:433: > 5: goja.initStackP(1) compiler.go:433: > 6: goja.jump(-3) compiler.go:433: > 7: goja.loadStack(1) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForLoopOptionalExpr (0.00s) === RUN TestBlockBreak compiler.go:433: 0: *goja.bindGlobal(&{[rv] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(rv) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(rv) compiler.go:433: 5: goja.loadVal({1}) compiler.go:433: 6: goja._putValueP({}) compiler.go:433: 7: goja.resolveVar1(rv) compiler.go:433: 8: goja.loadVal({2}) compiler.go:433: 9: goja._putValueP({}) compiler.go:433: 10: goja.jump(4) compiler.go:433: 11: goja.resolveVar1(rv) compiler.go:433: 12: goja.loadVal({3}) compiler.go:433: 13: goja._putValueP({}) compiler.go:433: 14: goja.loadDynamic(rv) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestBlockBreak (0.00s) === RUN TestTry compiler.go:433: 0: *goja.newFunc(&{0xc000484870 A function A() { var x = 1; try { x = 2; } catch(e) { x = 3; } finally { x = 4; } return x; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.loadVal({1}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.try({4 9}) compiler.go:433: > 4: goja.loadVal({2}) compiler.go:433: > 5: goja.storeStackP(1) compiler.go:433: > 6: goja.jump(5) compiler.go:433: > 7: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 8: goja.loadVal({3}) compiler.go:433: > 9: goja.storeStackP(1) compiler.go:433: > 10: *goja.leaveBlock(&{1 false}) compiler.go:433: > 11: goja.enterFinally({}) compiler.go:433: > 12: goja.loadVal({4}) compiler.go:433: > 13: goja.storeStackP(1) compiler.go:433: > 14: goja.leaveFinally({}) compiler.go:433: > 15: goja.loadStack(1) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTry (0.00s) === RUN TestTryOptionalCatchBinding compiler.go:433: 0: goja.try({5 0}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja.loadVal({{}}) compiler.go:433: 3: goja._throw({}) compiler.go:433: 4: goja.jump(2) compiler.go:433: 5: goja._pop({}) compiler.go:433: 6: goja.leaveTry({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryOptionalCatchBinding (0.00s) === RUN TestTryCatch compiler.go:433: 0: *goja.newFunc(&{0xc000484be0 A function A() { var x; try { throw 4; } catch(e) { x = e; } return x; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.try({4 0}) compiler.go:433: > 2: goja.loadVal({4}) compiler.go:433: > 3: goja._throw({}) compiler.go:433: > 4: goja.jump(5) compiler.go:433: > 5: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 6: goja.loadStackLex(2) compiler.go:433: > 7: goja.storeStackP(1) compiler.go:433: > 8: *goja.leaveBlock(&{1 false}) compiler.go:433: > 9: goja.leaveTry({}) compiler.go:433: > 10: goja.loadStack(1) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryCatch (0.00s) === RUN TestTryCatchDirectEval compiler.go:433: 0: *goja.newFunc(&{0xc000484f50 A function A() { var x; try { throw 4; } catch(e) { eval("x = e"); } return x; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741826 x:1073741825] 3 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(2) compiler.go:433: > 5: goja.try({4 0}) compiler.go:433: > 6: goja.loadVal({4}) compiler.go:433: > 7: goja._throw({}) compiler.go:433: > 8: goja.jump(7) compiler.go:433: > 9: *goja.enterCatchBlock(&{map[e:0] 1 0}) compiler.go:433: > 10: goja.loadDynamicCallee(eval) compiler.go:433: > 11: goja.loadVal({x = e}) compiler.go:433: > 12: goja.callEval(1) compiler.go:433: > 13: goja._pop({}) compiler.go:433: > 14: *goja.leaveBlock(&{0 true}) compiler.go:433: > 15: goja.leaveTry({}) compiler.go:433: > 16: goja.loadStash(1) compiler.go:433: > 17: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestTryCatchDirectEval (0.00s) === RUN TestTryExceptionInCatch compiler.go:433: 0: *goja.newFunc(&{0xc0004852c0 A function A() { var x; try { throw 4; } catch(e) { throw 5; } return x; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.try({4 0}) compiler.go:433: > 2: goja.loadVal({4}) compiler.go:433: > 3: goja._throw({}) compiler.go:433: > 4: goja.jump(5) compiler.go:433: > 5: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 6: goja.loadVal({5}) compiler.go:433: > 7: goja._throw({}) compiler.go:433: > 8: *goja.leaveBlock(&{1 false}) compiler.go:433: > 9: goja.leaveTry({}) compiler.go:433: > 10: goja.loadStack(1) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[rv] [A] [] [] false}) compiler.go:433: 2: goja.try({5 0}) compiler.go:433: 3: goja.loadDynamicCallee(A) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._pop({}) compiler.go:433: 6: goja.jump(6) compiler.go:433: 7: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 8: goja.resolveVar1(rv) compiler.go:433: 9: goja.loadStackLex(1) compiler.go:433: 10: goja._putValueP({}) compiler.go:433: 11: *goja.leaveBlock(&{1 false}) compiler.go:433: 12: goja.leaveTry({}) compiler.go:433: 13: goja.loadDynamic(rv) compiler.go:433: 14: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryExceptionInCatch (0.00s) === RUN TestTryContinueInCatch compiler.go:433: 0: *goja.bindGlobal(&{[c3 fin3] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(c3) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(fin3) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(c3) compiler.go:433: 8: goja.loadVal({2}) compiler.go:433: 9: goja._op_lt({}) compiler.go:433: 10: goja.jneP(24) compiler.go:433: 11: goja.try({4 15}) compiler.go:433: 12: goja.loadVal({ex1}) compiler.go:433: 13: goja._throw({}) compiler.go:433: 14: goja.jump(11) compiler.go:433: 15: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 16: goja.resolveVar1(c3) compiler.go:433: 17: goja._getValue({}) compiler.go:433: 18: goja.loadVal({1}) compiler.go:433: 19: goja._add({}) compiler.go:433: 20: goja._putValueP({}) compiler.go:433: 21: *goja.leaveBlock(&{1 false}) compiler.go:433: 22: goja.leaveTry({}) compiler.go:433: 23: goja.jump(-16) compiler.go:433: 24: *goja.leaveBlock(&{1 false}) compiler.go:433: 25: goja.enterFinally({}) compiler.go:433: 26: goja.resolveVar1(fin3) compiler.go:433: 27: goja.loadVal({1}) compiler.go:433: 28: goja._putValueP({}) compiler.go:433: 29: goja.leaveFinally({}) compiler.go:433: 30: goja.resolveVar1(fin3) compiler.go:433: 31: goja.loadVal({0}) compiler.go:433: 32: goja._putValueP({}) compiler.go:433: 33: goja.jump(-26) compiler.go:433: 34: goja.loadDynamic(fin3) compiler.go:433: 35: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryContinueInCatch (0.00s) === RUN TestContinueInWith compiler.go:433: 0: *goja.bindGlobal(&{[x o i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja.putProp(x) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(i) compiler.go:433: 7: goja.loadVal({0}) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja.loadDynamic(i) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja._op_lt({}) compiler.go:433: 12: goja.jneP(19) compiler.go:433: 13: goja.loadDynamic(o) compiler.go:433: 14: goja._enterWith({}) compiler.go:433: 15: goja.resolveVar1(x) compiler.go:433: 16: goja.loadDynamic(i) compiler.go:433: 17: goja._putValueP({}) compiler.go:433: 18: goja.loadDynamic(i) compiler.go:433: 19: goja.loadVal({0}) compiler.go:433: 20: goja._op_strict_eq({}) compiler.go:433: 21: goja.jneP(3) compiler.go:433: 22: goja._leaveWith({}) compiler.go:433: 23: goja.jump(3) compiler.go:433: 24: goja._leaveWith({}) compiler.go:433: 25: goja.jump(6) compiler.go:433: 26: goja.resolveVar1(i) compiler.go:433: 27: goja._getValue({}) compiler.go:433: 28: goja._inc({}) compiler.go:433: 29: goja._putValueP({}) compiler.go:433: 30: goja.jump(-21) compiler.go:433: 31: goja.loadDynamic(x) compiler.go:433: 32: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestContinueInWith (0.00s) === RUN TestTryContinueInFinally compiler.go:433: 0: *goja.bindGlobal(&{[c3 fin3] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(c3) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(fin3) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(c3) compiler.go:433: 8: goja.loadVal({2}) compiler.go:433: 9: goja._op_lt({}) compiler.go:433: 10: goja.jneP(23) compiler.go:433: 11: goja.try({4 12}) compiler.go:433: 12: goja.loadVal({ex1}) compiler.go:433: 13: goja._throw({}) compiler.go:433: 14: goja.jump(8) compiler.go:433: 15: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 16: goja.resolveVar1(c3) compiler.go:433: 17: goja._getValue({}) compiler.go:433: 18: goja.loadVal({1}) compiler.go:433: 19: goja._add({}) compiler.go:433: 20: goja._putValueP({}) compiler.go:433: 21: *goja.leaveBlock(&{1 false}) compiler.go:433: 22: goja.enterFinally({}) compiler.go:433: 23: goja.resolveVar1(fin3) compiler.go:433: 24: goja.loadVal({1}) compiler.go:433: 25: goja._putValueP({}) compiler.go:433: 26: goja.leaveTry({}) compiler.go:433: 27: goja.jump(-20) compiler.go:433: 28: goja.leaveFinally({}) compiler.go:433: 29: goja.resolveVar1(fin3) compiler.go:433: 30: goja.loadVal({0}) compiler.go:433: 31: goja._putValueP({}) compiler.go:433: 32: goja.jump(-25) compiler.go:433: 33: goja.loadDynamic(fin3) compiler.go:433: 34: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryContinueInFinally (0.00s) === RUN TestTryBreakFinallyContinue compiler.go:433: 0: *goja.bindGlobal(&{[i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(i) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.loadDynamic(i) compiler.go:433: 6: goja.loadVal({3}) compiler.go:433: 7: goja._op_lt({}) compiler.go:433: 8: goja.jneP(16) compiler.go:433: 9: goja._clearResult({}) compiler.go:433: 10: goja.try({0 5}) compiler.go:433: 11: goja._clearResult({}) compiler.go:433: 12: goja.leaveTry({}) compiler.go:433: 13: goja.jump(11) compiler.go:433: 14: goja.enterFinally({}) compiler.go:433: 15: goja._clearResult({}) compiler.go:433: 16: goja.leaveTry({}) compiler.go:433: 17: goja.jump(2) compiler.go:433: 18: goja.leaveFinally({}) compiler.go:433: 19: goja.resolveVar1(i) compiler.go:433: 20: goja._getValue({}) compiler.go:433: 21: goja._inc({}) compiler.go:433: 22: goja._putValueP({}) compiler.go:433: 23: goja.jump(-18) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryBreakFinallyContinue (0.00s) === RUN TestTryBreakFinallyContinueWithResult compiler.go:433: 0: *goja.bindGlobal(&{[i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(i) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.loadDynamic(i) compiler.go:433: 6: goja.loadVal({3}) compiler.go:433: 7: goja._op_lt({}) compiler.go:433: 8: goja.jneP(18) compiler.go:433: 9: goja._clearResult({}) compiler.go:433: 10: goja.try({0 7}) compiler.go:433: 11: goja._clearResult({}) compiler.go:433: 12: goja.loadVal({true}) compiler.go:433: 13: goja._saveResult({}) compiler.go:433: 14: goja.leaveTry({}) compiler.go:433: 15: goja.jump(11) compiler.go:433: 16: goja.enterFinally({}) compiler.go:433: 17: goja._clearResult({}) compiler.go:433: 18: goja.leaveTry({}) compiler.go:433: 19: goja.jump(2) compiler.go:433: 20: goja.leaveFinally({}) compiler.go:433: 21: goja.resolveVar1(i) compiler.go:433: 22: goja._getValue({}) compiler.go:433: 23: goja._inc({}) compiler.go:433: 24: goja._putValueP({}) compiler.go:433: 25: goja.jump(-20) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryBreakFinallyContinueWithResult (0.00s) === RUN TestTryBreakFinallyContinueWithResult1 compiler.go:433: 0: *goja.bindGlobal(&{[i x] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(i) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.loadDynamic(i) compiler.go:433: 6: goja.loadVal({3}) compiler.go:433: 7: goja._op_lt({}) compiler.go:433: 8: goja.jneP(21) compiler.go:433: 9: goja._clearResult({}) compiler.go:433: 10: goja.try({0 7}) compiler.go:433: 11: goja._clearResult({}) compiler.go:433: 12: goja.loadVal({true}) compiler.go:433: 13: goja._saveResult({}) compiler.go:433: 14: goja.leaveTry({}) compiler.go:433: 15: goja.jump(14) compiler.go:433: 16: goja.enterFinally({}) compiler.go:433: 17: goja._clearResult({}) compiler.go:433: 18: goja.resolveVar1(x) compiler.go:433: 19: goja.loadVal({1}) compiler.go:433: 20: goja._initValueP({}) compiler.go:433: 21: goja.leaveTry({}) compiler.go:433: 22: goja.jump(2) compiler.go:433: 23: goja.leaveFinally({}) compiler.go:433: 24: goja.resolveVar1(i) compiler.go:433: 25: goja._getValue({}) compiler.go:433: 26: goja._inc({}) compiler.go:433: 27: goja._putValueP({}) compiler.go:433: 28: goja.jump(-23) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryBreakFinallyContinueWithResult1 (0.00s) === RUN TestTryBreakFinallyContinueWithResultNested compiler.go:433: 0: *goja.bindGlobal(&{[i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(i) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.loadDynamic(i) compiler.go:433: 6: goja.loadVal({3}) compiler.go:433: 7: goja._op_lt({}) compiler.go:433: 8: goja.jneP(20) compiler.go:433: 9: goja._clearResult({}) compiler.go:433: 10: goja.try({0 8}) compiler.go:433: 11: goja._clearResult({}) compiler.go:433: 12: goja._clearResult({}) compiler.go:433: 13: goja.loadVal({false}) compiler.go:433: 14: goja._saveResult({}) compiler.go:433: 15: goja.leaveTry({}) compiler.go:433: 16: goja.jump(12) compiler.go:433: 17: goja.enterFinally({}) compiler.go:433: 18: goja.loadVal({true}) compiler.go:433: 19: goja._saveResult({}) compiler.go:433: 20: goja.leaveTry({}) compiler.go:433: 21: goja.jump(2) compiler.go:433: 22: goja.leaveFinally({}) compiler.go:433: 23: goja.resolveVar1(i) compiler.go:433: 24: goja._getValue({}) compiler.go:433: 25: goja._inc({}) compiler.go:433: 26: goja._putValueP({}) compiler.go:433: 27: goja.jump(-22) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryBreakFinallyContinueWithResultNested (0.00s) === RUN TestTryBreakOuterFinallyContinue compiler.go:433: 0: *goja.bindGlobal(&{[] [] [iCount jCount] [] false}) compiler.go:433: 1: goja.loadVal({0}) compiler.go:433: 2: goja.initGlobalP(iCount) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja.initGlobalP(jCount) compiler.go:433: 5: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 6: goja.loadVal({0}) compiler.go:433: 7: goja.initStackP(1) compiler.go:433: 8: goja.jump(1) compiler.go:433: 9: goja.loadStackLex(1) compiler.go:433: 10: goja.loadVal({1}) compiler.go:433: 11: goja._op_lt({}) compiler.go:433: 12: goja.jneP(36) compiler.go:433: 13: goja.resolveVar1(iCount) compiler.go:433: 14: goja._getValue({}) compiler.go:433: 15: goja._inc({}) compiler.go:433: 16: goja._putValueP({}) compiler.go:433: 17: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 18: goja.loadVal({0}) compiler.go:433: 19: goja.initStackP(2) compiler.go:433: 20: goja.jump(1) compiler.go:433: 21: goja.loadStackLex(2) compiler.go:433: 22: goja.loadVal({2}) compiler.go:433: 23: goja._op_lt({}) compiler.go:433: 24: goja.jneP(18) compiler.go:433: 25: goja.resolveVar1(jCount) compiler.go:433: 26: goja._getValue({}) compiler.go:433: 27: goja._inc({}) compiler.go:433: 28: goja._putValueP({}) compiler.go:433: 29: goja.try({0 5}) compiler.go:433: 30: goja.leaveTry({}) compiler.go:433: 31: *goja.leaveBlock(&{1 false}) compiler.go:433: 32: goja.jump(11) compiler.go:433: 33: goja.enterFinally({}) compiler.go:433: 34: goja.leaveTry({}) compiler.go:433: 35: goja.jump(3) compiler.go:433: 36: goja.leaveFinally({}) compiler.go:433: 37: goja.jump(1) compiler.go:433: 38: goja.loadStackLex(2) compiler.go:433: 39: goja._inc({}) compiler.go:433: 40: goja.storeStackLexP(2) compiler.go:433: 41: goja.jump(-20) compiler.go:433: 42: *goja.leaveBlock(&{1 false}) compiler.go:433: 43: goja.jump(1) compiler.go:433: 44: goja.loadStackLex(1) compiler.go:433: 45: goja._inc({}) compiler.go:433: 46: goja.storeStackLexP(1) compiler.go:433: 47: goja.jump(-38) compiler.go:433: 48: *goja.leaveBlock(&{1 false}) compiler.go:433: 49: goja.loadVal({}) compiler.go:433: 50: goja.loadDynamic(iCount) compiler.go:433: 51: goja._add({}) compiler.go:433: 52: goja.loadDynamic(jCount) compiler.go:433: 53: goja._add({}) compiler.go:433: 54: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryBreakOuterFinallyContinue (0.00s) === RUN TestTryIllegalContinueWithFinallyOverride --- PASS: TestTryIllegalContinueWithFinallyOverride (0.00s) === RUN TestTryIllegalContinueWithFinallyOverrideNoLabel --- PASS: TestTryIllegalContinueWithFinallyOverrideNoLabel (0.00s) === RUN TestTryIllegalContinueWithFinallyOverrideDummy --- PASS: TestTryIllegalContinueWithFinallyOverrideDummy (0.00s) === RUN TestTryNoResult compiler.go:433: 0: goja.try({0 5}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja.leaveTry({}) compiler.go:433: 3: goja.jump(3) compiler.go:433: 4: goja.enterFinally({}) compiler.go:433: 5: goja.leaveFinally({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryNoResult (0.00s) === RUN TestCatchLexicalEnv compiler.go:433: 0: *goja.newFunc(&{0xc000021a90 F function F() { try { throw 1; } catch (e) { var x = e; } return x; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.try({4 0}) compiler.go:433: > 2: goja.loadVal({1}) compiler.go:433: > 3: goja._throw({}) compiler.go:433: > 4: goja.jump(5) compiler.go:433: > 5: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 6: goja.loadStackLex(2) compiler.go:433: > 7: goja.initStackP(1) compiler.go:433: > 8: *goja.leaveBlock(&{1 false}) compiler.go:433: > 9: goja.leaveTry({}) compiler.go:433: > 10: goja.loadStack(1) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [F] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(F) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestCatchLexicalEnv (0.00s) === RUN TestThrowType compiler.go:433: 0: *goja.newFunc(&{0xc000021d60 Exception function Exception(message) { this.message = message; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.loadStackLex(-1) compiler.go:433: > 4: goja.setPropP(message) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc000021db0 A function A() { try { throw new Exception("boo!"); } catch(e) { return e; } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.try({6 0}) compiler.go:433: > 2: goja.loadDynamic(Exception) compiler.go:433: > 3: goja.loadVal({boo!}) compiler.go:433: > 4: goja._new(1) compiler.go:433: > 5: goja._throw({}) compiler.go:433: > 6: goja.jump(8) compiler.go:433: > 7: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 8: goja.loadStackLex(1) compiler.go:433: > 9: goja._saveResult({}) compiler.go:433: > 10: goja.leaveTry({}) compiler.go:433: > 11: goja._loadResult({}) compiler.go:433: > 12: goja._ret({}) compiler.go:433: > 13: *goja.leaveBlock(&{1 false}) compiler.go:433: > 14: goja.leaveTry({}) compiler.go:433: > 15: goja._loadUndef({}) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[thrown] [Exception A] [] [] false}) compiler.go:433: 3: goja.resolveVar1(thrown) compiler.go:433: 4: goja.loadDynamicCallee(A) compiler.go:433: 5: goja.call(0) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(thrown) compiler.go:433: 8: goja.loadVal({{}}) compiler.go:433: 9: goja._op_strict_neq({}) compiler.go:433: 10: goja.jne(5) compiler.go:433: 11: goja.loadDynamicRef(thrown) compiler.go:433: 12: goja._typeof({}) compiler.go:433: 13: goja.loadVal({object}) compiler.go:433: 14: goja._op_strict_eq({}) compiler.go:433: 15: goja.jne(5) compiler.go:433: 16: goja.loadDynamic(thrown) compiler.go:433: 17: goja.getProp(constructor) compiler.go:433: 18: goja.loadDynamic(Exception) compiler.go:433: 19: goja._op_strict_eq({}) compiler.go:433: 20: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestThrowType (0.00s) === RUN TestThrowConstructorName compiler.go:433: 0: *goja.newFunc(&{0xc00037e140 Exception function Exception(message) { this.message = message; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.loadStackLex(-1) compiler.go:433: > 4: goja.setPropP(message) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc00037e190 A function A() { try { throw new Exception("boo!"); } catch(e) { return e; } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.try({6 0}) compiler.go:433: > 2: goja.loadDynamic(Exception) compiler.go:433: > 3: goja.loadVal({boo!}) compiler.go:433: > 4: goja._new(1) compiler.go:433: > 5: goja._throw({}) compiler.go:433: > 6: goja.jump(8) compiler.go:433: > 7: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 8: goja.loadStackLex(1) compiler.go:433: > 9: goja._saveResult({}) compiler.go:433: > 10: goja.leaveTry({}) compiler.go:433: > 11: goja._loadResult({}) compiler.go:433: > 12: goja._ret({}) compiler.go:433: > 13: *goja.leaveBlock(&{1 false}) compiler.go:433: > 14: goja.leaveTry({}) compiler.go:433: > 15: goja._loadUndef({}) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[] [Exception A] [] [] false}) compiler.go:433: 3: goja.loadDynamicCallee(A) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja.getProp(constructor) compiler.go:433: 6: goja.getProp(name) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestThrowConstructorName (0.00s) === RUN TestThrowNativeConstructorName compiler.go:433: 0: *goja.newFunc(&{0xc00037e6e0 A function A() { try { throw new TypeError(); } catch(e) { return e; } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.try({5 0}) compiler.go:433: > 2: goja.loadDynamic(TypeError) compiler.go:433: > 3: goja._new(0) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja.jump(8) compiler.go:433: > 6: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 7: goja.loadStackLex(1) compiler.go:433: > 8: goja._saveResult({}) compiler.go:433: > 9: goja.leaveTry({}) compiler.go:433: > 10: goja._loadResult({}) compiler.go:433: > 11: goja._ret({}) compiler.go:433: > 12: *goja.leaveBlock(&{1 false}) compiler.go:433: > 13: goja.leaveTry({}) compiler.go:433: > 14: goja._loadUndef({}) compiler.go:433: > 15: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja.getProp(constructor) compiler.go:433: 5: goja.getProp(name) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestThrowNativeConstructorName (0.00s) === RUN TestEmptyTryNoCatch compiler.go:433: 0: *goja.bindGlobal(&{[called] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(called) compiler.go:433: 2: goja.loadVal({false}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.try({0 2}) compiler.go:433: 5: goja.enterFinally({}) compiler.go:433: 6: goja.resolveVar1(called) compiler.go:433: 7: goja.loadVal({true}) compiler.go:433: 8: goja._putValueP({}) compiler.go:433: 9: goja.leaveFinally({}) compiler.go:433: 10: goja.loadDynamic(called) compiler.go:433: 11: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEmptyTryNoCatch (0.00s) === RUN TestTryReturnFromCatch compiler.go:433: 0: *goja.newFunc(&{0xc00037ec80 f function f(o) { var x = 42; function innerf(o) { try { throw o; } catch (e) { return x; } } return innerf(o); } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 1 1 1 false false}) compiler.go:433: > 1: *goja.newFunc(&{0xc00037edc0 innerf function innerf(o) { try { throw o; } catch (e) { return x; } } 1 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: >> 1: goja.try({4 0}) compiler.go:433: >> 2: goja.loadStackLex(-1) compiler.go:433: >> 3: goja._throw({}) compiler.go:433: >> 4: goja.jump(8) compiler.go:433: >> 5: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: >> 6: goja.loadStash(0) compiler.go:433: >> 7: goja._saveResult({}) compiler.go:433: >> 8: goja.leaveTry({}) compiler.go:433: >> 9: goja._loadResult({}) compiler.go:433: >> 10: goja._ret({}) compiler.go:433: >> 11: *goja.leaveBlock(&{1 false}) compiler.go:433: >> 12: goja.leaveTry({}) compiler.go:433: >> 13: goja._loadUndef({}) compiler.go:433: >> 14: goja._ret({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadVal({42}) compiler.go:433: > 4: goja.initStashP(0) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja.loadStackLex(1) compiler.go:433: > 7: goja.loadStackLex(-1) compiler.go:433: > 8: goja.call(1) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja._newObject({}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestTryReturnFromCatch (0.00s) === RUN TestTryCompletionResult compiler.go:433: 0: goja.try({5 10}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja.loadVal({39}) compiler.go:433: 3: goja._saveResult({}) compiler.go:433: 4: goja.jump(5) compiler.go:433: 5: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 6: goja.loadVal({-1}) compiler.go:433: 7: goja._saveResult({}) compiler.go:433: 8: *goja.leaveBlock(&{1 false}) compiler.go:433: 9: goja.enterFinally({}) compiler.go:433: 10: goja._clearResult({}) compiler.go:433: 11: goja.leaveTry({}) compiler.go:433: 12: goja.jump(4) compiler.go:433: 13: goja.leaveFinally({}) compiler.go:433: 14: goja.loadVal({false}) compiler.go:433: 15: goja.jeqP(-15) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryCompletionResult (0.00s) === RUN TestIfElse compiler.go:433: 0: *goja.bindGlobal(&{[rv] [] [] [] false}) compiler.go:433: 1: goja.loadDynamic(rv) compiler.go:433: 2: goja.loadDynamic(undefined) compiler.go:433: 3: goja._op_strict_eq({}) compiler.go:433: 4: goja.jneP(5) compiler.go:433: 5: goja.resolveVar1(rv) compiler.go:433: 6: goja.loadVal({passed}) compiler.go:433: 7: goja._putValueP({}) compiler.go:433: 8: goja.jump(4) compiler.go:433: 9: goja.resolveVar1(rv) compiler.go:433: 10: goja.loadVal({failed}) compiler.go:433: 11: goja._putValueP({}) compiler.go:433: 12: goja.loadDynamic(rv) compiler.go:433: 13: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestIfElse (0.00s) === RUN TestIfElseRetVal compiler.go:433: 0: *goja.bindGlobal(&{[x] [] [] [] false}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja.loadDynamic(x) compiler.go:433: 3: goja.loadDynamic(undefined) compiler.go:433: 4: goja._op_strict_eq({}) compiler.go:433: 5: goja.jneP(4) compiler.go:433: 6: goja.loadVal({passed}) compiler.go:433: 7: goja._saveResult({}) compiler.go:433: 8: goja.jump(3) compiler.go:433: 9: goja.loadVal({failed}) compiler.go:433: 10: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestIfElseRetVal (0.00s) === RUN TestWhileReturnValue compiler.go:433: 0: *goja.bindGlobal(&{[x] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(x) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja._clearResult({}) compiler.go:433: 6: goja.resolveVar1(x) compiler.go:433: 7: goja.loadVal({1}) compiler.go:433: 8: goja._putValue({}) compiler.go:433: 9: goja._saveResult({}) compiler.go:433: 10: goja.jump(2) compiler.go:433: 11: goja.jump(-6) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestWhileReturnValue (0.00s) === RUN TestIfElseLabel compiler.go:433: 0: *goja.bindGlobal(&{[x] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(x) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.resolveVar1(x) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja._putValue({}) compiler.go:433: 8: goja._saveResult({}) compiler.go:433: 9: goja.jump(1) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestIfElseLabel (0.00s) === RUN TestIfMultipleLabels compiler.go:433: 0: *goja.bindGlobal(&{[x] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(x) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.jump(1) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestIfMultipleLabels (0.00s) === RUN TestBreakOutOfTry compiler.go:433: 0: *goja.newFunc(&{0xc000294000 A function A() { var x = 1; B: { try { x = 2; } catch(e) { x = 3; } finally { break B; x = 4; } } return x; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.loadVal({1}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.try({4 9}) compiler.go:433: > 4: goja.loadVal({2}) compiler.go:433: > 5: goja.storeStackP(1) compiler.go:433: > 6: goja.jump(5) compiler.go:433: > 7: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 8: goja.loadVal({3}) compiler.go:433: > 9: goja.storeStackP(1) compiler.go:433: > 10: *goja.leaveBlock(&{1 false}) compiler.go:433: > 11: goja.enterFinally({}) compiler.go:433: > 12: goja.leaveTry({}) compiler.go:433: > 13: goja.jump(4) compiler.go:433: > 14: goja.loadVal({4}) compiler.go:433: > 15: goja.storeStackP(1) compiler.go:433: > 16: goja.leaveFinally({}) compiler.go:433: > 17: goja.loadStack(1) compiler.go:433: > 18: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestBreakOutOfTry (0.00s) === RUN TestReturnOutOfTryNested compiler.go:433: 0: *goja.newFunc(&{0xc0002942d0 A function A() { function nested() { try { return 1; } catch(e) { return 2; } } return nested(); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: *goja.newFunc(&{0xc000294320 nested function nested() { try { return 1; } catch(e) { return 2; } } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.try({7 0}) compiler.go:433: >> 2: goja.loadVal({1}) compiler.go:433: >> 3: goja._saveResult({}) compiler.go:433: >> 4: goja.leaveTry({}) compiler.go:433: >> 5: goja._loadResult({}) compiler.go:433: >> 6: goja._ret({}) compiler.go:433: >> 7: goja.jump(8) compiler.go:433: >> 8: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: >> 9: goja.loadVal({2}) compiler.go:433: >> 10: goja._saveResult({}) compiler.go:433: >> 11: goja.leaveTry({}) compiler.go:433: >> 12: goja._loadResult({}) compiler.go:433: >> 13: goja._ret({}) compiler.go:433: >> 14: *goja.leaveBlock(&{1 false}) compiler.go:433: >> 15: goja.leaveTry({}) compiler.go:433: >> 16: goja._loadUndef({}) compiler.go:433: >> 17: goja._ret({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja._loadUndef({}) compiler.go:433: > 4: goja.loadStackLex(1) compiler.go:433: > 5: goja.call(0) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestReturnOutOfTryNested (0.00s) === RUN TestReturnOutOfTryWithFinally compiler.go:433: 0: *goja.newFunc(&{0xc000294550 test function test() { try { return 'Hello, world!'; } finally { const dummy = 'unexpected'; } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.try({0 7}) compiler.go:433: > 2: goja.loadVal({Hello, world!}) compiler.go:433: > 3: goja._saveResult({}) compiler.go:433: > 4: goja.leaveTry({}) compiler.go:433: > 5: goja._loadResult({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: > 7: goja.enterFinally({}) compiler.go:433: > 8: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: > 9: goja.loadVal({unexpected}) compiler.go:433: > 10: goja.initStackP(1) compiler.go:433: > 11: *goja.leaveBlock(&{1 false}) compiler.go:433: > 12: goja.leaveFinally({}) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [test] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(test) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestReturnOutOfTryWithFinally (0.00s) === RUN TestContinueLoop compiler.go:433: 0: *goja.newFunc(&{0xc0002947d0 A function A() { var r = 0; for (var i = 0; i < 5; i++) { if (i > 1) { continue; } r++; } return r; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{2 0}) compiler.go:433: > 1: goja.loadVal({0}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadVal({0}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: goja.loadStack(2) compiler.go:433: > 6: goja.loadVal({5}) compiler.go:433: > 7: goja._op_lt({}) compiler.go:433: > 8: goja.jneP(13) compiler.go:433: > 9: goja.loadStack(2) compiler.go:433: > 10: goja.loadVal({1}) compiler.go:433: > 11: goja._op_gt({}) compiler.go:433: > 12: goja.jneP(2) compiler.go:433: > 13: goja.jump(4) compiler.go:433: > 14: goja.loadStack(1) compiler.go:433: > 15: goja._inc({}) compiler.go:433: > 16: goja.storeStackP(1) compiler.go:433: > 17: goja.loadStack(2) compiler.go:433: > 18: goja._inc({}) compiler.go:433: > 19: goja.storeStackP(2) compiler.go:433: > 20: goja.jump(-15) compiler.go:433: > 21: goja.loadStack(1) compiler.go:433: > 22: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestContinueLoop (0.00s) === RUN TestContinueOutOfTry compiler.go:433: 0: *goja.newFunc(&{0xc000294a50 A function A() { var r = 0; for (var i = 0; i < 5; i++) { try { if (i > 1) { continue; } } catch(e) { return 99; } r++; } return r; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{2 0}) compiler.go:433: > 1: goja.loadVal({0}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadVal({0}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: goja.loadStack(2) compiler.go:433: > 6: goja.loadVal({5}) compiler.go:433: > 7: goja._op_lt({}) compiler.go:433: > 8: goja.jneP(24) compiler.go:433: > 9: goja.try({8 0}) compiler.go:433: > 10: goja.loadStack(2) compiler.go:433: > 11: goja.loadVal({1}) compiler.go:433: > 12: goja._op_gt({}) compiler.go:433: > 13: goja.jneP(3) compiler.go:433: > 14: goja.leaveTry({}) compiler.go:433: > 15: goja.jump(13) compiler.go:433: > 16: goja.jump(8) compiler.go:433: > 17: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 18: goja.loadVal({99}) compiler.go:433: > 19: goja._saveResult({}) compiler.go:433: > 20: goja.leaveTry({}) compiler.go:433: > 21: goja._loadResult({}) compiler.go:433: > 22: goja._ret({}) compiler.go:433: > 23: *goja.leaveBlock(&{1 false}) compiler.go:433: > 24: goja.leaveTry({}) compiler.go:433: > 25: goja.loadStack(1) compiler.go:433: > 26: goja._inc({}) compiler.go:433: > 27: goja.storeStackP(1) compiler.go:433: > 28: goja.loadStack(2) compiler.go:433: > 29: goja._inc({}) compiler.go:433: > 30: goja.storeStackP(2) compiler.go:433: > 31: goja.jump(-26) compiler.go:433: > 32: goja.loadStack(1) compiler.go:433: > 33: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [A] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(A) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestContinueOutOfTry (0.00s) === RUN TestThisInCatch compiler.go:433: 0: *goja.newFunc(&{0xc000294d20 O function O() { try { f(); } catch (e) { this.value = e.toString(); } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.try({5 0}) compiler.go:433: > 3: goja.loadDynamicCallee(f) compiler.go:433: > 4: goja.call(0) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja.jump(8) compiler.go:433: > 7: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 8: goja.loadStack(0) compiler.go:433: > 9: goja.loadStackLex(1) compiler.go:433: > 10: goja.getPropCallee(toString) compiler.go:433: > 11: goja.call(0) compiler.go:433: > 12: goja.setPropP(value) compiler.go:433: > 13: *goja.leaveBlock(&{1 false}) compiler.go:433: > 14: goja.leaveTry({}) compiler.go:433: > 15: goja._loadUndef({}) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc000294d70 f function f() { throw "ex"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({ex}) compiler.go:433: > 2: goja._throw({}) compiler.go:433: > 3: goja._loadUndef({}) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[o] [O f] [] [] false}) compiler.go:433: 3: goja.resolveVar1(o) compiler.go:433: 4: goja.loadDynamic(O) compiler.go:433: 5: goja._new(0) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(o) compiler.go:433: 8: goja.getProp(value) compiler.go:433: 9: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestThisInCatch (0.00s) === RUN TestNestedTry compiler.go:433: 0: *goja.bindGlobal(&{[ex] [] [] [] false}) compiler.go:433: 1: goja.try({4 0}) compiler.go:433: 2: goja.loadVal({ex1}) compiler.go:433: 3: goja._throw({}) compiler.go:433: 4: goja.jump(13) compiler.go:433: 5: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 6: goja.try({4 0}) compiler.go:433: 7: goja.loadVal({ex2}) compiler.go:433: 8: goja._throw({}) compiler.go:433: 9: goja.jump(6) compiler.go:433: 10: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 11: goja.resolveVar1(ex) compiler.go:433: 12: goja.loadStackLex(2) compiler.go:433: 13: goja._putValueP({}) compiler.go:433: 14: *goja.leaveBlock(&{1 false}) compiler.go:433: 15: goja.leaveTry({}) compiler.go:433: 16: *goja.leaveBlock(&{1 false}) compiler.go:433: 17: goja.leaveTry({}) compiler.go:433: 18: goja.loadDynamic(ex) compiler.go:433: 19: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNestedTry (0.00s) === RUN TestNestedTryInStashlessFunc compiler.go:433: 0: *goja.newFunc(&{0xc000295130 f function f() { var ex1, ex2; try { throw "ex1"; } catch (er1) { try { throw "ex2"; } catch (er1) { ex2 = er1; } ex1 = er1; } return ex1 == "ex1" && ex2 == "ex2"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{2 0}) compiler.go:433: > 1: goja.try({4 0}) compiler.go:433: > 2: goja.loadVal({ex1}) compiler.go:433: > 3: goja._throw({}) compiler.go:433: > 4: goja.jump(14) compiler.go:433: > 5: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 6: goja.try({4 0}) compiler.go:433: > 7: goja.loadVal({ex2}) compiler.go:433: > 8: goja._throw({}) compiler.go:433: > 9: goja.jump(5) compiler.go:433: > 10: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 11: goja.loadStackLex(4) compiler.go:433: > 12: goja.storeStackP(2) compiler.go:433: > 13: *goja.leaveBlock(&{1 false}) compiler.go:433: > 14: goja.leaveTry({}) compiler.go:433: > 15: goja.loadStackLex(3) compiler.go:433: > 16: goja.storeStackP(1) compiler.go:433: > 17: *goja.leaveBlock(&{1 false}) compiler.go:433: > 18: goja.leaveTry({}) compiler.go:433: > 19: goja.loadStack(1) compiler.go:433: > 20: goja.loadVal({ex1}) compiler.go:433: > 21: goja._op_eq({}) compiler.go:433: > 22: goja.jne(4) compiler.go:433: > 23: goja.loadStack(2) compiler.go:433: > 24: goja.loadVal({ex2}) compiler.go:433: > 25: goja._op_eq({}) compiler.go:433: > 26: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNestedTryInStashlessFunc (0.00s) === RUN TestEvalLexicalDecl compiler.go:433: 0: goja.loadDynamicCallee(eval) compiler.go:433: 1: goja.loadVal({let x = true; x;}) compiler.go:433: 2: goja.callEval(1) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEvalLexicalDecl (0.00s) === RUN TestEvalInCatchInStashlessFunc compiler.go:433: 0: *goja.newFunc(&{0xc000295540 f function f() { var ex; try { throw "ex1"; } catch (er1) { eval("ex = er1"); } return ex; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741826 ex:1073741825] 3 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(2) compiler.go:433: > 5: goja.try({4 0}) compiler.go:433: > 6: goja.loadVal({ex1}) compiler.go:433: > 7: goja._throw({}) compiler.go:433: > 8: goja.jump(7) compiler.go:433: > 9: *goja.enterCatchBlock(&{map[er1:0] 1 0}) compiler.go:433: > 10: goja.loadDynamicCallee(eval) compiler.go:433: > 11: goja.loadVal({ex = er1}) compiler.go:433: > 12: goja.callEval(1) compiler.go:433: > 13: goja._pop({}) compiler.go:433: > 14: *goja.leaveBlock(&{0 true}) compiler.go:433: > 15: goja.leaveTry({}) compiler.go:433: > 16: goja.loadStash(1) compiler.go:433: > 17: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestEvalInCatchInStashlessFunc (0.00s) === RUN TestCatchClosureInStashlessFunc compiler.go:433: 0: *goja.newFunc(&{0xc000295950 f function f() { var ex; try { throw "ex1"; } catch (er1) { return function() { return er1; } } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.try({4 0}) compiler.go:433: > 2: goja.loadVal({ex1}) compiler.go:433: > 3: goja._throw({}) compiler.go:433: > 4: goja.jump(8) compiler.go:433: > 5: *goja.enterCatchBlock(&{map[] 1 0}) compiler.go:433: > 6: *goja.newFunc(&{0xc0002959a0 function() { return er1; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStashLex(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 7: goja._saveResult({}) compiler.go:433: > 8: goja.leaveTry({}) compiler.go:433: > 9: goja._loadResult({}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: > 11: *goja.leaveBlock(&{0 true}) compiler.go:433: > 12: goja.leaveTry({}) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja._loadUndef({}) compiler.go:433: 3: goja.loadDynamicCallee(f) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja.call(0) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestCatchClosureInStashlessFunc (0.00s) === RUN TestCatchVarNotUsedInStashlessFunc compiler.go:433: 0: *goja.newFunc(&{0xc000295c20 f function f() { var ex; try { throw "ex1"; } catch (er1) { ex = "ok"; } return ex; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.try({4 0}) compiler.go:433: > 2: goja.loadVal({ex1}) compiler.go:433: > 3: goja._throw({}) compiler.go:433: > 4: goja.jump(5) compiler.go:433: > 5: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 6: goja.loadVal({ok}) compiler.go:433: > 7: goja.storeStackP(1) compiler.go:433: > 8: *goja.leaveBlock(&{1 false}) compiler.go:433: > 9: goja.leaveTry({}) compiler.go:433: > 10: goja.loadStack(1) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestCatchVarNotUsedInStashlessFunc (0.00s) === RUN TestNew compiler.go:433: 0: *goja.newFunc(&{0xc000295e50 O function O() { this.x = 42; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.loadVal({42}) compiler.go:433: > 4: goja.setPropP(x) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [O] [] [] false}) compiler.go:433: 2: goja.loadDynamic(O) compiler.go:433: 3: goja._new(0) compiler.go:433: 4: goja.getProp(x) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNew (0.00s) === RUN TestStringConstructor compiler.go:433: 0: *goja.newFunc(&{0xc000326140 F function F() { return String(33) + " " + String("cows"); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamicCallee(String) compiler.go:433: > 2: goja.loadVal({33}) compiler.go:433: > 3: goja.call(1) compiler.go:433: > 4: goja.loadVal({ }) compiler.go:433: > 5: goja._add({}) compiler.go:433: > 6: goja.loadDynamicCallee(String) compiler.go:433: > 7: goja.loadVal({cows}) compiler.go:433: > 8: goja.call(1) compiler.go:433: > 9: goja._add({}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [F] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(F) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestStringConstructor (0.00s) === RUN TestError compiler.go:433: 0: *goja.newFunc(&{0xc000326370 F function F() { return new Error("test"); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Error) compiler.go:433: > 2: goja.loadVal({test}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[e] [F] [] [] false}) compiler.go:433: 2: goja.resolveVar1(e) compiler.go:433: 3: goja.loadDynamicCallee(F) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(e) compiler.go:433: 7: goja.getProp(message) compiler.go:433: 8: goja.loadVal({test}) compiler.go:433: 9: goja._op_eq({}) compiler.go:433: 10: goja.jne(5) compiler.go:433: 11: goja.loadDynamic(e) compiler.go:433: 12: goja.getProp(name) compiler.go:433: 13: goja.loadVal({Error}) compiler.go:433: 14: goja._op_eq({}) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestError (0.00s) === RUN TestTypeError compiler.go:433: 0: *goja.newFunc(&{0xc0003265f0 F function F() { return new TypeError("test"); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(TypeError) compiler.go:433: > 2: goja.loadVal({test}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[e] [F] [] [] false}) compiler.go:433: 2: goja.resolveVar1(e) compiler.go:433: 3: goja.loadDynamicCallee(F) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(e) compiler.go:433: 7: goja.getProp(message) compiler.go:433: 8: goja.loadVal({test}) compiler.go:433: 9: goja._op_eq({}) compiler.go:433: 10: goja.jne(5) compiler.go:433: 11: goja.loadDynamic(e) compiler.go:433: 12: goja.getProp(name) compiler.go:433: 13: goja.loadVal({TypeError}) compiler.go:433: 14: goja._op_eq({}) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypeError (0.00s) === RUN TestToString compiler.go:433: 0: *goja.bindGlobal(&{[o o1] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({42}) compiler.go:433: 4: goja.putProp(x) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(o) compiler.go:433: 7: *goja.newFunc(&{0xc000326870 function() { return String(this.x); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadDynamicCallee(String) compiler.go:433: > 3: goja.loadStack(0) compiler.go:433: > 4: goja.getProp(x) compiler.go:433: > 5: goja.call(1) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 8: goja.setPropP(toString) compiler.go:433: 9: goja.resolveVar1(o1) compiler.go:433: 10: goja._newObject({}) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(o) compiler.go:433: 13: goja.getPropCallee(toString) compiler.go:433: 14: goja.call(0) compiler.go:433: 15: goja.loadVal({ ### }) compiler.go:433: 16: goja._add({}) compiler.go:433: 17: goja.loadDynamic(o1) compiler.go:433: 18: goja.getPropCallee(toString) compiler.go:433: 19: goja.call(0) compiler.go:433: 20: goja._add({}) compiler.go:433: 21: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestToString (0.00s) === RUN TestEvalOrder compiler.go:433: 0: *goja.newFunc(&{0xc000326c80 F1 function F1() { trace += "First!"; return o; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({First!}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamic(o) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc000326cd0 F2 function F2() { trace += "Second!"; return "f"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({Second!}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadVal({f}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 2: *goja.newFunc(&{0xc000326d20 F3 function F3() { trace += "Third!"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({Third!}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 3: *goja.bindGlobal(&{[o trace rv] [F1 F2 F3] [] [] false}) compiler.go:433: 4: goja.resolveVar1(o) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: *goja.newFunc(&{0xc000326d70 f function() {return 42} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({42}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 7: goja.putProp(f) compiler.go:433: 8: goja.loadVal({0}) compiler.go:433: 9: goja.putProp(x) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.resolveVar1(trace) compiler.go:433: 12: goja.loadVal({}) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.resolveVar1(rv) compiler.go:433: 15: goja.loadDynamicCallee(F1) compiler.go:433: 16: goja.call(0) compiler.go:433: 17: goja.loadDynamicCallee(F2) compiler.go:433: 18: goja.call(0) compiler.go:433: 19: goja._getElemCallee({}) compiler.go:433: 20: goja.loadDynamicCallee(F3) compiler.go:433: 21: goja.call(0) compiler.go:433: 22: goja.call(1) compiler.go:433: 23: goja._initValueP({}) compiler.go:433: 24: goja.resolveVar1(rv) compiler.go:433: 25: goja._getValue({}) compiler.go:433: 26: goja.loadDynamic(trace) compiler.go:433: 27: goja._add({}) compiler.go:433: 28: goja._putValueP({}) compiler.go:433: 29: goja.loadDynamic(rv) compiler.go:433: 30: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEvalOrder (0.00s) === RUN TestPostfixIncBracket compiler.go:433: 0: *goja.newFunc(&{0xc000327040 F1 function F1() { trace += "First!"; return o; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({First!}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamic(o) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc000327090 F2 function F2() { trace += "Second!"; return "x"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({Second!}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadVal({x}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[o trace rv] [F1 F2] [] [] false}) compiler.go:433: 3: goja.resolveVar1(o) compiler.go:433: 4: goja._newObject({}) compiler.go:433: 5: goja.loadVal({42}) compiler.go:433: 6: goja.putProp(x) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.resolveVar1(trace) compiler.go:433: 9: goja.loadVal({}) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.resolveVar1(rv) compiler.go:433: 12: goja._loadUndef({}) compiler.go:433: 13: goja.loadDynamicCallee(F1) compiler.go:433: 14: goja.call(0) compiler.go:433: 15: goja.loadDynamicCallee(F2) compiler.go:433: 16: goja.call(0) compiler.go:433: 17: goja.dupLast(2) compiler.go:433: 18: goja._getElem({}) compiler.go:433: 19: goja._toNumber({}) compiler.go:433: 20: goja.rdupN(3) compiler.go:433: 21: goja._inc({}) compiler.go:433: 22: goja._setElem({}) compiler.go:433: 23: goja._pop({}) compiler.go:433: 24: goja._initValueP({}) compiler.go:433: 25: goja.loadDynamic(rv) compiler.go:433: 26: goja.loadDynamic(trace) compiler.go:433: 27: goja._add({}) compiler.go:433: 28: goja.loadDynamic(o) compiler.go:433: 29: goja.getProp(x) compiler.go:433: 30: goja._add({}) compiler.go:433: 31: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestPostfixIncBracket (0.00s) === RUN TestPostfixIncDot compiler.go:433: 0: *goja.newFunc(&{0xc000484280 F1 function F1() { trace += "First!"; return o; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({First!}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamic(o) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[o trace rv] [F1] [] [] false}) compiler.go:433: 2: goja.resolveVar1(o) compiler.go:433: 3: goja._newObject({}) compiler.go:433: 4: goja.loadVal({42}) compiler.go:433: 5: goja.putProp(x) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(trace) compiler.go:433: 8: goja.loadVal({}) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(rv) compiler.go:433: 11: goja._loadUndef({}) compiler.go:433: 12: goja.loadDynamicCallee(F1) compiler.go:433: 13: goja.call(0) compiler.go:433: 14: goja._dup({}) compiler.go:433: 15: goja.getProp(x) compiler.go:433: 16: goja._toNumber({}) compiler.go:433: 17: goja.rdupN(2) compiler.go:433: 18: goja._inc({}) compiler.go:433: 19: goja.setPropP(x) compiler.go:433: 20: goja._initValueP({}) compiler.go:433: 21: goja.loadDynamic(rv) compiler.go:433: 22: goja.loadDynamic(trace) compiler.go:433: 23: goja._add({}) compiler.go:433: 24: goja.loadDynamic(o) compiler.go:433: 25: goja.getProp(x) compiler.go:433: 26: goja._add({}) compiler.go:433: 27: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestPostfixIncDot (0.00s) === RUN TestPrefixIncBracket compiler.go:433: 0: *goja.newFunc(&{0xc000484550 F1 function F1() { trace += "First!"; return o; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({First!}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamic(o) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc0004845a0 F2 function F2() { trace += "Second!"; return "x"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({Second!}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadVal({x}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[o trace rv] [F1 F2] [] [] false}) compiler.go:433: 3: goja.resolveVar1(o) compiler.go:433: 4: goja._newObject({}) compiler.go:433: 5: goja.loadVal({42}) compiler.go:433: 6: goja.putProp(x) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.resolveVar1(trace) compiler.go:433: 9: goja.loadVal({}) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.resolveVar1(rv) compiler.go:433: 12: goja.loadDynamicCallee(F1) compiler.go:433: 13: goja.call(0) compiler.go:433: 14: goja.loadDynamicCallee(F2) compiler.go:433: 15: goja.call(0) compiler.go:433: 16: goja.dupLast(2) compiler.go:433: 17: goja._getElem({}) compiler.go:433: 18: goja._toNumber({}) compiler.go:433: 19: goja._inc({}) compiler.go:433: 20: goja._setElem({}) compiler.go:433: 21: goja._initValueP({}) compiler.go:433: 22: goja.loadDynamic(rv) compiler.go:433: 23: goja.loadDynamic(trace) compiler.go:433: 24: goja._add({}) compiler.go:433: 25: goja.loadDynamic(o) compiler.go:433: 26: goja.getProp(x) compiler.go:433: 27: goja._add({}) compiler.go:433: 28: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestPrefixIncBracket (0.00s) === RUN TestPrefixIncDot compiler.go:433: 0: *goja.newFunc(&{0xc000484820 F1 function F1() { trace += "First!"; return o; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({First!}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamic(o) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[o trace rv] [F1] [] [] false}) compiler.go:433: 2: goja.resolveVar1(o) compiler.go:433: 3: goja._newObject({}) compiler.go:433: 4: goja.loadVal({42}) compiler.go:433: 5: goja.putProp(x) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(trace) compiler.go:433: 8: goja.loadVal({}) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(rv) compiler.go:433: 11: goja.loadDynamicCallee(F1) compiler.go:433: 12: goja.call(0) compiler.go:433: 13: goja._dup({}) compiler.go:433: 14: goja.getProp(x) compiler.go:433: 15: goja._toNumber({}) compiler.go:433: 16: goja._inc({}) compiler.go:433: 17: goja.setProp(x) compiler.go:433: 18: goja._initValueP({}) compiler.go:433: 19: goja.loadDynamic(rv) compiler.go:433: 20: goja.loadDynamic(trace) compiler.go:433: 21: goja._add({}) compiler.go:433: 22: goja.loadDynamic(o) compiler.go:433: 23: goja.getProp(x) compiler.go:433: 24: goja._add({}) compiler.go:433: 25: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestPrefixIncDot (0.00s) === RUN TestPostDecObj compiler.go:433: 0: *goja.bindGlobal(&{[object y ok] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(object) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: *goja.newFunc(&{0xc000484a50 valueOf function() {return 1} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({1}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 4: goja.putProp(valueOf) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(y) compiler.go:433: 7: goja.resolveVar1(object) compiler.go:433: 8: goja._loadUndef({}) compiler.go:433: 9: goja._getValue({}) compiler.go:433: 10: goja._toNumber({}) compiler.go:433: 11: goja.rdupN(1) compiler.go:433: 12: goja._dec({}) compiler.go:433: 13: goja._putValue({}) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja._initValueP({}) compiler.go:433: 16: goja.resolveVar1(ok) compiler.go:433: 17: goja.loadVal({false}) compiler.go:433: 18: goja._initValueP({}) compiler.go:433: 19: goja.loadDynamic(y) compiler.go:433: 20: goja.loadVal({1}) compiler.go:433: 21: goja._op_strict_eq({}) compiler.go:433: 22: goja.jneP(4) compiler.go:433: 23: goja.resolveVar1(ok) compiler.go:433: 24: goja.loadVal({true}) compiler.go:433: 25: goja._putValueP({}) compiler.go:433: 26: goja.loadDynamic(ok) compiler.go:433: 27: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestPostDecObj (0.00s) === RUN TestPropAcc1 compiler.go:433: 0: goja.loadVal({1}) compiler.go:433: 1: goja.getPropCallee(toString) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestPropAcc1 (0.00s) === RUN TestEvalDirect compiler.go:433: 0: *goja.newFunc(&{0xc000484fa0 foo function foo(){ rv = true; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(rv) compiler.go:433: > 2: goja.loadVal({true}) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc000484ff0 f function f() { try { eval("o.bar( foo() );"); } catch (e) { } } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: goja.try({6 0}) compiler.go:433: > 6: goja.loadDynamicCallee(eval) compiler.go:433: > 7: goja.loadVal({o.bar( foo() );}) compiler.go:433: > 8: goja.callEval(1) compiler.go:433: > 9: goja._pop({}) compiler.go:433: > 10: goja.jump(3) compiler.go:433: > 11: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 12: *goja.leaveBlock(&{1 false}) compiler.go:433: > 13: goja.leaveTry({}) compiler.go:433: > 14: goja._loadUndef({}) compiler.go:433: > 15: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[rv o] [foo f] [] [] false}) compiler.go:433: 3: goja.resolveVar1(rv) compiler.go:433: 4: goja.loadVal({false}) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(o) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja.loadDynamicCallee(f) compiler.go:433: 10: goja.call(0) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.loadDynamic(rv) compiler.go:433: 13: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestEvalDirect (0.00s) === RUN TestEvalRet compiler.go:433: 0: goja.loadDynamicCallee(eval) compiler.go:433: 1: goja.loadVal({for (var i = 0; i < 3; i++) {i}}) compiler.go:433: 2: goja.callEval(1) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEvalRet (0.00s) === RUN TestEvalFunctionDecl compiler.go:433: 0: goja.loadDynamicCallee(eval) compiler.go:433: 1: goja.loadVal({function F() {}}) compiler.go:433: 2: goja.callEval(1) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEvalFunctionDecl (0.00s) === RUN TestEvalFunctionExpr compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: goja.loadDynamicCallee(eval) compiler.go:433: 2: goja.loadVal({(function F() {return 42;})}) compiler.go:433: 3: goja.callEval(1) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEvalFunctionExpr (0.00s) === RUN TestEvalDirectScope compiler.go:433: 0: *goja.newFunc(&{0xc000485ae0 testcase function testcase() { var __10_4_2_1_3 = "str1"; try { throw "error"; } catch (e) { var __10_4_2_1_3 = "str2"; return eval("__10_4_2_1_3"); } } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 __10_4_2_1_3:1073741825 arguments:1073741826] 3 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(2) compiler.go:433: > 5: goja.loadVal({str1}) compiler.go:433: > 6: goja.initStashP(1) compiler.go:433: > 7: goja.try({4 0}) compiler.go:433: > 8: goja.loadVal({error}) compiler.go:433: > 9: goja._throw({}) compiler.go:433: > 10: goja.jump(12) compiler.go:433: > 11: *goja.enterCatchBlock(&{map[e:0] 1 0}) compiler.go:433: > 12: goja.loadVal({str2}) compiler.go:433: > 13: goja.initStashP(16777217) compiler.go:433: > 14: goja.loadDynamicCallee(eval) compiler.go:433: > 15: goja.loadVal({__10_4_2_1_3}) compiler.go:433: > 16: goja.callEval(1) compiler.go:433: > 17: goja._saveResult({}) compiler.go:433: > 18: goja.leaveTry({}) compiler.go:433: > 19: goja._loadResult({}) compiler.go:433: > 20: goja._ret({}) compiler.go:433: > 21: *goja.leaveBlock(&{0 true}) compiler.go:433: > 22: goja.leaveTry({}) compiler.go:433: > 23: goja._loadUndef({}) compiler.go:433: > 24: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[__10_4_2_1_3] [testcase] [] [] false}) compiler.go:433: 2: goja.resolveVar1(__10_4_2_1_3) compiler.go:433: 3: goja.loadVal({str}) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.loadDynamicCallee(testcase) compiler.go:433: 6: goja.call(0) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestEvalDirectScope (0.00s) === RUN TestEvalDirectScope1 compiler.go:433: 0: *goja.newFunc(&{0xc000485e50 testcase function testcase() { var __10_4_2_1_5 = "str1"; var r = eval("\ var __10_4_2_1_5 = \'str2\'; \ eval(\"\'str2\' === __10_4_2_1_5\")\ "); return r; } 0 true}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 __10_4_2_1_5:1073741825 arguments:2147483651 r:1073741826] 4 0 0 1 true false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.createArgsUnmapped(0) compiler.go:433: > 3: goja.initStashP(3) compiler.go:433: > 4: goja.loadVal({str1}) compiler.go:433: > 5: goja.initStashP(1) compiler.go:433: > 6: goja.loadDynamicCallee(eval) compiler.go:433: > 7: goja.loadVal({ var __10_4_2_1_5 = 'str2'; eval("'str2' === __10_4_2_1_5") }) compiler.go:433: > 8: goja.callEvalStrict(1) compiler.go:433: > 9: goja.initStashP(2) compiler.go:433: > 10: goja.loadStash(2) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[__10_4_2_1_5] [testcase] [] [] false}) compiler.go:433: 2: goja.resolveVar1Strict(__10_4_2_1_5) compiler.go:433: 3: goja.loadVal({str}) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.loadDynamicCallee(testcase) compiler.go:433: 6: goja.call(0) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestEvalDirectScope1 (0.00s) === RUN TestEvalDirectCreateBinding compiler.go:433: 0: *goja.newFunc(&{0xc000326320 f function f() { eval("var x = true"); return x; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: goja.loadDynamicCallee(eval) compiler.go:433: > 6: goja.loadVal({var x = true}) compiler.go:433: > 7: goja.callEval(1) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja.loadDynamic(x) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[res thrown] [f] [] [] false}) compiler.go:433: 2: goja.resolveVar1(res) compiler.go:433: 3: goja.loadDynamicCallee(f) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(thrown) compiler.go:433: 7: goja.loadVal({false}) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja.try({4 0}) compiler.go:433: 10: goja.loadDynamic(x) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.jump(13) compiler.go:433: 13: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 14: goja.loadStackLex(1) compiler.go:433: 15: goja.loadDynamic(ReferenceError) compiler.go:433: 16: goja._op_instanceof({}) compiler.go:433: 17: goja.jneP(5) compiler.go:433: 18: goja.resolveVar1(thrown) compiler.go:433: 19: goja.loadVal({true}) compiler.go:433: 20: goja._putValueP({}) compiler.go:433: 21: goja.jump(3) compiler.go:433: 22: goja.loadStackLex(1) compiler.go:433: 23: goja._throw({}) compiler.go:433: 24: *goja.leaveBlock(&{1 false}) compiler.go:433: 25: goja.leaveTry({}) compiler.go:433: 26: goja.loadDynamic(res) compiler.go:433: 27: goja.jne(2) compiler.go:433: 28: goja.loadDynamic(thrown) compiler.go:433: 29: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestEvalDirectCreateBinding (0.00s) === RUN TestEvalDirectCreateBinding1 compiler.go:433: 0: *goja.newFunc(&{0xc000326730 f function f() { eval("let x = 1; var y = 2; function f1() {return x};"); assert.throws(ReferenceError, function() { x }); return ""+y+f1(); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: goja.loadDynamicCallee(eval) compiler.go:433: > 6: goja.loadVal({let x = 1; var y = 2; function f1() {return x};}) compiler.go:433: > 7: goja.callEval(1) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja.loadDynamic(assert) compiler.go:433: > 10: goja.getPropCallee(throws) compiler.go:433: > 11: goja.loadDynamic(ReferenceError) compiler.go:433: > 12: *goja.newFunc(&{0xc000326780 function() { x } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(x) compiler.go:433: >> 2: goja._pop({}) compiler.go:433: >> 3: goja._loadUndef({}) compiler.go:433: >> 4: goja._ret({}) compiler.go:433: > 13: goja.call(2) compiler.go:433: > 14: goja._pop({}) compiler.go:433: > 15: goja.loadVal({}) compiler.go:433: > 16: goja.loadDynamic(y) compiler.go:433: > 17: goja._add({}) compiler.go:433: > 18: goja.loadDynamicCallee(f1) compiler.go:433: > 19: goja.call(0) compiler.go:433: > 20: goja._add({}) compiler.go:433: > 21: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestEvalDirectCreateBinding1 (0.00s) === RUN TestEvalDirectCreateBinding3 compiler.go:433: 0: *goja.newFunc(&{0xc000326c80 f function f() { let x; try { eval("var y=1, x=2"); } catch(e) {} return y; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741826 x:1] 3 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(2) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja.initStashP(1) compiler.go:433: > 7: goja.try({6 0}) compiler.go:433: > 8: goja.loadDynamicCallee(eval) compiler.go:433: > 9: goja.loadVal({var y=1, x=2}) compiler.go:433: > 10: goja.callEval(1) compiler.go:433: > 11: goja._pop({}) compiler.go:433: > 12: goja.jump(3) compiler.go:433: > 13: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 14: *goja.leaveBlock(&{1 false}) compiler.go:433: > 15: goja.leaveTry({}) compiler.go:433: > 16: goja.loadDynamic(y) compiler.go:433: > 17: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamic(assert) compiler.go:433: 3: goja.getPropCallee(throws) compiler.go:433: 4: goja.loadDynamic(ReferenceError) compiler.go:433: 5: goja.loadDynamic(f) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestEvalDirectCreateBinding3 (0.00s) === RUN TestEvalGlobalStrict compiler.go:433: 0: *goja.bindGlobal(&{[evalStr] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1Strict(evalStr) compiler.go:433: 2: goja.loadVal({for (var x in this) { if ( x === 'Math' ) { } } }) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamicCallee(eval) compiler.go:433: 5: goja.loadDynamic(evalStr) compiler.go:433: 6: goja.callEvalStrict(1) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEvalGlobalStrict (0.00s) === RUN TestEvalEmptyStrict compiler.go:433: 0: goja.loadDynamicCallee(eval) compiler.go:433: 1: goja.loadVal({}) compiler.go:433: 2: goja.callEvalStrict(1) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEvalEmptyStrict (0.00s) === RUN TestEvalFuncDecl compiler.go:433: 0: *goja.bindGlobal(&{[funcA] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1Strict(funcA) compiler.go:433: 2: goja.loadDynamicCallee(eval) compiler.go:433: 3: goja.loadVal({function __funcA(__arg){return __arg;}; __funcA}) compiler.go:433: 4: goja.callEvalStrict(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamicRef(funcA) compiler.go:433: 7: goja._typeof({}) compiler.go:433: 8: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEvalFuncDecl (0.00s) === RUN TestGetAfterSet compiler.go:433: 0: *goja.newFunc(&{0xc000327900 f function f() { var x = 1; return x; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.loadVal({1}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadStack(1) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGetAfterSet (0.00s) === RUN TestForLoopRet compiler.go:433: 0: *goja.bindGlobal(&{[i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(i) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.loadDynamic(i) compiler.go:433: 6: goja.loadVal({20}) compiler.go:433: 7: goja._op_lt({}) compiler.go:433: 8: goja.jneP(16) compiler.go:433: 9: goja._clearResult({}) compiler.go:433: 10: goja._clearResult({}) compiler.go:433: 11: goja.loadDynamic(i) compiler.go:433: 12: goja.loadVal({2}) compiler.go:433: 13: goja._op_gt({}) compiler.go:433: 14: goja.jneP(3) compiler.go:433: 15: goja.jump(9) compiler.go:433: 16: goja.jump(3) compiler.go:433: 17: goja.loadDynamic(i) compiler.go:433: 18: goja._saveResult({}) compiler.go:433: 19: goja.resolveVar1(i) compiler.go:433: 20: goja._getValue({}) compiler.go:433: 21: goja._inc({}) compiler.go:433: 22: goja._putValueP({}) compiler.go:433: 23: goja.jump(-18) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForLoopRet (0.00s) === RUN TestForLoopRet1 compiler.go:433: 0: *goja.bindGlobal(&{[i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(i) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.loadDynamic(i) compiler.go:433: 6: goja.loadVal({20}) compiler.go:433: 7: goja._op_lt({}) compiler.go:433: 8: goja.jneP(18) compiler.go:433: 9: goja._clearResult({}) compiler.go:433: 10: goja._clearResult({}) compiler.go:433: 11: goja.loadDynamic(i) compiler.go:433: 12: goja.loadVal({2}) compiler.go:433: 13: goja._op_gt({}) compiler.go:433: 14: goja.jneP(5) compiler.go:433: 15: goja.loadVal({42}) compiler.go:433: 16: goja._saveResult({}) compiler.go:433: 17: goja.jump(9) compiler.go:433: 18: goja.jump(3) compiler.go:433: 19: goja.loadDynamic(i) compiler.go:433: 20: goja._saveResult({}) compiler.go:433: 21: goja.resolveVar1(i) compiler.go:433: 22: goja._getValue({}) compiler.go:433: 23: goja._inc({}) compiler.go:433: 24: goja._putValueP({}) compiler.go:433: 25: goja.jump(-20) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForLoopRet1 (0.00s) === RUN TestForInLoopRet compiler.go:433: 0: *goja.bindGlobal(&{[o i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja.newArray(4) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja.loadVal({3}) compiler.go:433: 8: goja._pushArrayItem({}) compiler.go:433: 9: goja.loadVal({4}) compiler.go:433: 10: goja._pushArrayItem({}) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(o) compiler.go:433: 13: goja._enumerate({}) compiler.go:433: 14: goja._clearResult({}) compiler.go:433: 15: goja.enumNext(15) compiler.go:433: 16: goja.resolveVar1(i) compiler.go:433: 17: goja._enumGet({}) compiler.go:433: 18: goja._putValueP({}) compiler.go:433: 19: goja._clearResult({}) compiler.go:433: 20: goja._clearResult({}) compiler.go:433: 21: goja.loadDynamic(i) compiler.go:433: 22: goja.loadVal({2}) compiler.go:433: 23: goja._op_gt({}) compiler.go:433: 24: goja.jneP(3) compiler.go:433: 25: goja.jump(7) compiler.go:433: 26: goja.jump(3) compiler.go:433: 27: goja.loadDynamic(i) compiler.go:433: 28: goja._saveResult({}) compiler.go:433: 29: goja.jump(-14) compiler.go:433: 30: goja._enumPop({}) compiler.go:433: 31: goja.jump(2) compiler.go:433: 32: goja._enumPopClose({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForInLoopRet (0.00s) === RUN TestForInLoopRet1 compiler.go:433: 0: *goja.bindGlobal(&{[o i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(o) compiler.go:433: 5: goja.loadVal({1}) compiler.go:433: 6: goja.setPropP(x) compiler.go:433: 7: goja.loadDynamic(o) compiler.go:433: 8: goja.loadVal({2}) compiler.go:433: 9: goja.setPropP(y) compiler.go:433: 10: goja.loadDynamic(o) compiler.go:433: 11: goja._enumerate({}) compiler.go:433: 12: goja._clearResult({}) compiler.go:433: 13: goja.enumNext(8) compiler.go:433: 14: goja.resolveVar1(i) compiler.go:433: 15: goja._enumGet({}) compiler.go:433: 16: goja._putValueP({}) compiler.go:433: 17: goja._clearResult({}) compiler.go:433: 18: goja.loadVal({true}) compiler.go:433: 19: goja._saveResult({}) compiler.go:433: 20: goja.jump(-7) compiler.go:433: 21: goja._enumPop({}) compiler.go:433: 22: goja.jump(2) compiler.go:433: 23: goja._enumPopClose({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForInLoopRet1 (0.00s) === RUN TestDoWhileLoopRet compiler.go:433: 0: *goja.bindGlobal(&{[i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(i) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.loadDynamic(i) compiler.go:433: 6: goja.loadVal({2}) compiler.go:433: 7: goja._op_gt({}) compiler.go:433: 8: goja.jneP(3) compiler.go:433: 9: goja.jump(15) compiler.go:433: 10: goja.jump(3) compiler.go:433: 11: goja.loadDynamic(i) compiler.go:433: 12: goja._saveResult({}) compiler.go:433: 13: goja.resolveVar1(i) compiler.go:433: 14: goja._loadUndef({}) compiler.go:433: 15: goja._getValue({}) compiler.go:433: 16: goja._toNumber({}) compiler.go:433: 17: goja.rdupN(1) compiler.go:433: 18: goja._inc({}) compiler.go:433: 19: goja._putValue({}) compiler.go:433: 20: goja._pop({}) compiler.go:433: 21: goja.loadVal({20}) compiler.go:433: 22: goja._op_lt({}) compiler.go:433: 23: goja.jeqP(-19) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDoWhileLoopRet (0.00s) === RUN TestDoWhileContinueRet compiler.go:433: 0: *goja.bindGlobal(&{[i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(i) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.loadDynamic(i) compiler.go:433: 6: goja.loadVal({2}) compiler.go:433: 7: goja._op_gt({}) compiler.go:433: 8: goja.jneP(5) compiler.go:433: 9: goja.loadVal({true}) compiler.go:433: 10: goja._saveResult({}) compiler.go:433: 11: goja.jump(4) compiler.go:433: 12: goja.jump(3) compiler.go:433: 13: goja.loadDynamic(i) compiler.go:433: 14: goja._saveResult({}) compiler.go:433: 15: goja.resolveVar1(i) compiler.go:433: 16: goja._loadUndef({}) compiler.go:433: 17: goja._getValue({}) compiler.go:433: 18: goja._toNumber({}) compiler.go:433: 19: goja.rdupN(1) compiler.go:433: 20: goja._inc({}) compiler.go:433: 21: goja._putValue({}) compiler.go:433: 22: goja._pop({}) compiler.go:433: 23: goja.loadVal({20}) compiler.go:433: 24: goja._op_lt({}) compiler.go:433: 25: goja.jeqP(-21) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDoWhileContinueRet (0.00s) === RUN TestWhileLoopRet compiler.go:433: 0: *goja.bindGlobal(&{[i] [] [] [] false}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja.loadDynamic(i) compiler.go:433: 3: goja.loadVal({20}) compiler.go:433: 4: goja._op_lt({}) compiler.go:433: 5: goja.jneP(19) compiler.go:433: 6: goja._clearResult({}) compiler.go:433: 7: goja._clearResult({}) compiler.go:433: 8: goja.loadDynamic(i) compiler.go:433: 9: goja.loadVal({2}) compiler.go:433: 10: goja._op_gt({}) compiler.go:433: 11: goja.jneP(3) compiler.go:433: 12: goja.jump(12) compiler.go:433: 13: goja.jump(10) compiler.go:433: 14: goja.resolveVar1(i) compiler.go:433: 15: goja._loadUndef({}) compiler.go:433: 16: goja._getValue({}) compiler.go:433: 17: goja._toNumber({}) compiler.go:433: 18: goja.rdupN(1) compiler.go:433: 19: goja._inc({}) compiler.go:433: 20: goja._putValue({}) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja._saveResult({}) compiler.go:433: 23: goja.jump(-21) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestWhileLoopRet (0.00s) === RUN TestLoopRet1 compiler.go:433: 0: *goja.bindGlobal(&{[i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(i) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.loadDynamic(i) compiler.go:433: 6: goja.loadVal({20}) compiler.go:433: 7: goja._op_lt({}) compiler.go:433: 8: goja.jneP(7) compiler.go:433: 9: goja._clearResult({}) compiler.go:433: 10: goja.resolveVar1(i) compiler.go:433: 11: goja._getValue({}) compiler.go:433: 12: goja._inc({}) compiler.go:433: 13: goja._putValueP({}) compiler.go:433: 14: goja.jump(-9) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestLoopRet1 (0.00s) === RUN TestInstanceof compiler.go:433: 0: *goja.bindGlobal(&{[rv] [] [] [] false}) compiler.go:433: 1: goja.try({6 0}) compiler.go:433: 2: goja._loadUndef({}) compiler.go:433: 3: goja.loadVal({true}) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._pop({}) compiler.go:433: 6: goja.jump(8) compiler.go:433: 7: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 8: goja.resolveVar1(rv) compiler.go:433: 9: goja.loadStackLex(1) compiler.go:433: 10: goja.loadDynamic(TypeError) compiler.go:433: 11: goja._op_instanceof({}) compiler.go:433: 12: goja._putValueP({}) compiler.go:433: 13: *goja.leaveBlock(&{1 false}) compiler.go:433: 14: goja.leaveTry({}) compiler.go:433: 15: goja.loadDynamic(rv) compiler.go:433: 16: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestInstanceof (0.00s) === RUN TestStrictAssign compiler.go:433: 0: *goja.newFunc(&{0xc000360af0 F function F() { called = true; return 1; } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1Strict(called) compiler.go:433: > 2: goja.loadVal({true}) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja.loadVal({1}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[rv called] [F] [] [] false}) compiler.go:433: 2: goja.resolveVar1Strict(called) compiler.go:433: 3: goja.loadVal({false}) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.try({6 0}) compiler.go:433: 6: goja.resolveVar1Strict(x) compiler.go:433: 7: goja.loadDynamicCallee(F) compiler.go:433: 8: goja.call(0) compiler.go:433: 9: goja._putValueP({}) compiler.go:433: 10: goja.jump(8) compiler.go:433: 11: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 12: goja.resolveVar1Strict(rv) compiler.go:433: 13: goja.loadStackLex(1) compiler.go:433: 14: goja.loadDynamic(ReferenceError) compiler.go:433: 15: goja._op_instanceof({}) compiler.go:433: 16: goja._putValueP({}) compiler.go:433: 17: *goja.leaveBlock(&{1 false}) compiler.go:433: 18: goja.leaveTry({}) compiler.go:433: 19: goja.loadDynamic(rv) compiler.go:433: 20: goja.loadVal({ }) compiler.go:433: 21: goja._add({}) compiler.go:433: 22: goja.loadDynamic(called) compiler.go:433: 23: goja._add({}) compiler.go:433: 24: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestStrictAssign (0.00s) === RUN TestStrictScope compiler.go:433: 0: *goja.newFunc(&{0xc000360d20 F function F() { 'use strict'; x = 1; } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1Strict(x) compiler.go:433: > 2: goja.loadVal({1}) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[rv called] [F] [] [] false}) compiler.go:433: 2: goja.resolveVar1(called) compiler.go:433: 3: goja.loadVal({false}) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.try({5 0}) compiler.go:433: 6: goja.loadDynamicCallee(F) compiler.go:433: 7: goja.call(0) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja.jump(8) compiler.go:433: 10: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 11: goja.resolveVar1(rv) compiler.go:433: 12: goja.loadStackLex(1) compiler.go:433: 13: goja.loadDynamic(ReferenceError) compiler.go:433: 14: goja._op_instanceof({}) compiler.go:433: 15: goja._putValueP({}) compiler.go:433: 16: *goja.leaveBlock(&{1 false}) compiler.go:433: 17: goja.leaveTry({}) compiler.go:433: 18: goja.resolveVar1(x) compiler.go:433: 19: goja.loadVal({1}) compiler.go:433: 20: goja._putValueP({}) compiler.go:433: 21: goja.loadDynamic(rv) compiler.go:433: 22: goja.loadVal({ }) compiler.go:433: 23: goja._add({}) compiler.go:433: 24: goja.loadDynamic(x) compiler.go:433: 25: goja._add({}) compiler.go:433: 26: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestStrictScope (0.00s) === RUN TestStringObj compiler.go:433: 0: *goja.bindGlobal(&{[s] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(s) compiler.go:433: 2: goja.loadDynamic(String) compiler.go:433: 3: goja.loadVal({test}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(s) compiler.go:433: 7: goja.loadVal({0}) compiler.go:433: 8: goja._getElem({}) compiler.go:433: 9: goja.loadDynamic(s) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja._getElem({}) compiler.go:433: 12: goja._add({}) compiler.go:433: 13: goja.loadDynamic(s) compiler.go:433: 14: goja.loadVal({1}) compiler.go:433: 15: goja._getElem({}) compiler.go:433: 16: goja._add({}) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestStringObj (0.00s) === RUN TestStringPrimitive compiler.go:433: 0: *goja.bindGlobal(&{[s] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(s) compiler.go:433: 2: goja.loadVal({test}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(s) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja._getElem({}) compiler.go:433: 7: goja.loadDynamic(s) compiler.go:433: 8: goja.loadVal({2}) compiler.go:433: 9: goja._getElem({}) compiler.go:433: 10: goja._add({}) compiler.go:433: 11: goja.loadDynamic(s) compiler.go:433: 12: goja.loadVal({1}) compiler.go:433: 13: goja._getElem({}) compiler.go:433: 14: goja._add({}) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestStringPrimitive (0.00s) === RUN TestCallGlobalObject compiler.go:433: 0: *goja.bindGlobal(&{[rv] [] [] [] false}) compiler.go:433: 1: goja.try({6 0}) compiler.go:433: 2: goja._loadUndef({}) compiler.go:433: 3: goja._loadGlobalObject({}) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._pop({}) compiler.go:433: 6: goja.jump(8) compiler.go:433: 7: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 8: goja.resolveVar1(rv) compiler.go:433: 9: goja.loadStackLex(1) compiler.go:433: 10: goja.loadDynamic(TypeError) compiler.go:433: 11: goja._op_instanceof({}) compiler.go:433: 12: goja._putValueP({}) compiler.go:433: 13: *goja.leaveBlock(&{1 false}) compiler.go:433: 14: goja.leaveTry({}) compiler.go:433: 15: goja.loadDynamic(rv) compiler.go:433: 16: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestCallGlobalObject (0.00s) === RUN TestFuncLength compiler.go:433: 0: *goja.newFunc(&{0xc000361310 F function F(x, y) { } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [F] [] [] false}) compiler.go:433: 2: goja.loadDynamic(F) compiler.go:433: 3: goja.getProp(length) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFuncLength (0.00s) === RUN TestNativeFuncLength compiler.go:433: 0: goja.loadDynamic(eval) compiler.go:433: 1: goja.getProp(length) compiler.go:433: 2: goja.loadDynamic(Object) compiler.go:433: 3: goja.getProp(defineProperty) compiler.go:433: 4: goja.getProp(length) compiler.go:433: 5: goja._add({}) compiler.go:433: 6: goja.loadDynamic(String) compiler.go:433: 7: goja.getProp(length) compiler.go:433: 8: goja._add({}) compiler.go:433: 9: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNativeFuncLength (0.00s) === RUN TestArguments compiler.go:433: 0: *goja.newFunc(&{0xc000361680 F function F() { return arguments.length + " " + arguments[1]; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 0 1 0 1 true false}) compiler.go:433: > 1: goja.createArgsMapped(0) compiler.go:433: > 2: goja.initStack1P(1) compiler.go:433: > 3: goja.loadStack1(1) compiler.go:433: > 4: goja.getProp(length) compiler.go:433: > 5: goja.loadVal({ }) compiler.go:433: > 6: goja._add({}) compiler.go:433: > 7: goja.loadStack1(1) compiler.go:433: > 8: goja.loadVal({1}) compiler.go:433: > 9: goja._getElem({}) compiler.go:433: > 10: goja._add({}) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [F] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(F) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.loadVal({3}) compiler.go:433: 6: goja.call(3) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArguments (0.00s) === RUN TestArgumentsPut compiler.go:433: 0: *goja.newFunc(&{0xc000361900 F function F(x, y) { arguments[0] -= arguments[1]; return x; } 2 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 2 1 2 1 true false}) compiler.go:433: > 1: goja.createArgsMapped(2) compiler.go:433: > 2: goja.initStack1P(1) compiler.go:433: > 3: goja.loadStack1(1) compiler.go:433: > 4: goja.loadVal({0}) compiler.go:433: > 5: goja.dupLast(2) compiler.go:433: > 6: goja._getElem({}) compiler.go:433: > 7: goja.loadStack1(1) compiler.go:433: > 8: goja.loadVal({1}) compiler.go:433: > 9: goja._getElem({}) compiler.go:433: > 10: goja._sub({}) compiler.go:433: > 11: goja._setElem({}) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja.loadStashLex(0) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [F] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(F) compiler.go:433: 3: goja.loadVal({5}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArgumentsPut (0.00s) === RUN TestArgumentsPutStrict compiler.go:433: 0: *goja.newFunc(&{0xc000361b80 F function F(x, y) { 'use strict'; arguments[0] -= arguments[1]; return x; } 2 true}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 2 1 2 1 true false}) compiler.go:433: > 1: goja.createArgsUnmapped(2) compiler.go:433: > 2: goja.initStack1P(1) compiler.go:433: > 3: goja.loadStack1(1) compiler.go:433: > 4: goja.loadVal({0}) compiler.go:433: > 5: goja.dupLast(2) compiler.go:433: > 6: goja._getElem({}) compiler.go:433: > 7: goja.loadStack1(1) compiler.go:433: > 8: goja.loadVal({1}) compiler.go:433: > 9: goja._getElem({}) compiler.go:433: > 10: goja._sub({}) compiler.go:433: > 11: goja._setElemStrict({}) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja.loadStashLex(0) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [F] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(F) compiler.go:433: 3: goja.loadVal({5}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArgumentsPutStrict (0.00s) === RUN TestArgumentsExtra compiler.go:433: 0: *goja.newFunc(&{0xc000361e50 F function F(x, y) { return arguments[2]; } 2 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 2 1 2 1 true false}) compiler.go:433: > 1: goja.createArgsMapped(2) compiler.go:433: > 2: goja.initStack1P(1) compiler.go:433: > 3: goja.loadStack1(1) compiler.go:433: > 4: goja.loadVal({2}) compiler.go:433: > 5: goja._getElem({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [F] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(F) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.loadVal({42}) compiler.go:433: 6: goja.call(3) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArgumentsExtra (0.00s) === RUN TestArgumentsExist compiler.go:433: 0: *goja.newFunc(&{0xc00036c1e0 F function F(x, arguments) { return arguments; } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadStackLex(-2) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [F] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(F) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({42}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArgumentsExist (0.00s) === RUN TestArgumentsDelete compiler.go:433: 0: *goja.newFunc(&{0xc00036c410 f function f(x) { delete arguments[0]; arguments[0] = 42; return x; } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 1 1 1 true false}) compiler.go:433: > 1: goja.createArgsMapped(1) compiler.go:433: > 2: goja.initStack1P(1) compiler.go:433: > 3: goja.loadStack1(1) compiler.go:433: > 4: goja.loadVal({0}) compiler.go:433: > 5: goja._deleteElem({}) compiler.go:433: > 6: goja._pop({}) compiler.go:433: > 7: goja.loadStack1(1) compiler.go:433: > 8: goja.loadVal({0}) compiler.go:433: > 9: goja.loadVal({42}) compiler.go:433: > 10: goja._setElemP({}) compiler.go:433: > 11: goja.loadStashLex(0) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArgumentsDelete (0.00s) === RUN TestArgumentsInEval compiler.go:433: 0: *goja.newFunc(&{0xc00036c6e0 f function f() { return eval("arguments"); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: goja.loadDynamicCallee(eval) compiler.go:433: > 6: goja.loadVal({arguments}) compiler.go:433: > 7: goja.callEval(1) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja._getElem({}) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArgumentsInEval (0.00s) === RUN TestArgumentsRedeclareInEval compiler.go:433: 0: *goja.newFunc(&{0xc00036ca50 f function f(p = eval("var arguments = 'param'"), arguments) {} 0 false}) compiler.go:433: > 0: *goja.enterFunc1(&{map[ this:1073741826 arguments:1 p:0] 3 2 0 1 true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.initStashP(2) compiler.go:433: > 4: goja.loadStackLex(-1) compiler.go:433: > 5: goja.jdefP(5) compiler.go:433: > 6: goja.loadDynamicCallee(eval) compiler.go:433: > 7: goja.loadVal({var arguments = 'param'}) compiler.go:433: > 8: goja.callEval(1) compiler.go:433: > 9: goja.initStashP(0) compiler.go:433: > 10: goja.loadStackLex(-2) compiler.go:433: > 11: goja.initStashP(1) compiler.go:433: > 12: *goja.enterFuncBody(&{{map[] 0 0} 1 false true}) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamic(assert) compiler.go:433: 3: goja.getPropCallee(sameValue) compiler.go:433: 4: goja.loadVal({arguments}) compiler.go:433: 5: goja._loadGlobalObject({}) compiler.go:433: 6: goja._op_in({}) compiler.go:433: 7: goja.loadVal({false}) compiler.go:433: 8: goja.loadVal({No global 'arguments' binding}) compiler.go:433: 9: goja.call(3) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.loadDynamic(assert) compiler.go:433: 12: goja.getPropCallee(throws) compiler.go:433: 13: goja.loadDynamic(SyntaxError) compiler.go:433: 14: goja.loadDynamic(f) compiler.go:433: 15: goja.call(2) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadDynamic(assert) compiler.go:433: 18: goja.getPropCallee(sameValue) compiler.go:433: 19: goja.loadVal({arguments}) compiler.go:433: 20: goja._loadGlobalObject({}) compiler.go:433: 21: goja._op_in({}) compiler.go:433: 22: goja.loadVal({false}) compiler.go:433: 23: goja.loadVal({No global 'arguments' binding}) compiler.go:433: 24: goja.call(3) compiler.go:433: 25: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArgumentsRedeclareInEval (0.00s) === RUN TestArgumentsRedeclareArrow compiler.go:433: 0: *goja.bindGlobal(&{[] [] [count] [oldArguments f] false}) compiler.go:433: 1: goja.loadDynamic(globalThis) compiler.go:433: 2: goja.getProp(arguments) compiler.go:433: 3: goja.initGlobalP(oldArguments) compiler.go:433: 4: goja.loadVal({0}) compiler.go:433: 5: goja.initGlobalP(count) compiler.go:433: 6: *goja.newArrowFunc(&{{0xc00036cdc0 f (p = eval("var arguments = 'param'"), q = () => arguments) => { var arguments = "local"; assert.sameValue(arguments, "local", "arguments"); assert.sameValue(q(), "param", "q"); count++; } 0 false}}) compiler.go:433: > 0: *goja.enterFunc1(&{map[p:0 q:1] 2 2 0 2 true}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.jdefP(5) compiler.go:433: > 3: goja.loadDynamicCallee(eval) compiler.go:433: > 4: goja.loadVal({var arguments = 'param'}) compiler.go:433: > 5: goja.callEval(1) compiler.go:433: > 6: goja.initStashP(0) compiler.go:433: > 7: goja.loadStackLex(-2) compiler.go:433: > 8: goja.jdefP(3) compiler.go:433: > 9: *goja.newArrowFunc(&{{0xc00036ce10 () => arguments 0 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(arguments) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 10: goja.initStashP(1) compiler.go:433: > 11: *goja.enterFuncBody(&{{map[] 0 1} 2 false true}) compiler.go:433: > 12: goja.loadVal({local}) compiler.go:433: > 13: goja.initStack1P(1) compiler.go:433: > 14: goja.loadDynamic(assert) compiler.go:433: > 15: goja.getPropCallee(sameValue) compiler.go:433: > 16: goja.loadStack1(1) compiler.go:433: > 17: goja.loadVal({local}) compiler.go:433: > 18: goja.loadVal({arguments}) compiler.go:433: > 19: goja.call(3) compiler.go:433: > 20: goja._pop({}) compiler.go:433: > 21: goja.loadDynamic(assert) compiler.go:433: > 22: goja.getPropCallee(sameValue) compiler.go:433: > 23: goja._loadUndef({}) compiler.go:433: > 24: goja.loadStashLex(1) compiler.go:433: > 25: goja.call(0) compiler.go:433: > 26: goja.loadVal({param}) compiler.go:433: > 27: goja.loadVal({q}) compiler.go:433: > 28: goja.call(3) compiler.go:433: > 29: goja._pop({}) compiler.go:433: > 30: goja.resolveVar1(count) compiler.go:433: > 31: goja._getValue({}) compiler.go:433: > 32: goja._inc({}) compiler.go:433: > 33: goja._putValueP({}) compiler.go:433: > 34: goja._loadUndef({}) compiler.go:433: > 35: goja._ret({}) compiler.go:433: 7: goja.initGlobalP(f) compiler.go:433: 8: goja.loadDynamicCallee(f) compiler.go:433: 9: goja.call(0) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.loadDynamic(assert) compiler.go:433: 12: goja.getPropCallee(sameValue) compiler.go:433: 13: goja.loadDynamic(count) compiler.go:433: 14: goja.loadVal({1}) compiler.go:433: 15: goja.call(2) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadDynamic(assert) compiler.go:433: 18: goja.getPropCallee(sameValue) compiler.go:433: 19: goja.loadDynamic(globalThis) compiler.go:433: 20: goja.getProp(arguments) compiler.go:433: 21: goja.loadDynamic(oldArguments) compiler.go:433: 22: goja.loadVal({globalThis.arguments unchanged}) compiler.go:433: 23: goja.call(3) compiler.go:433: 24: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArgumentsRedeclareArrow (0.00s) === RUN TestEvalParamWithDef compiler.go:433: 0: *goja.newFunc(&{0xc00036d0e0 f function f(param = 0) { eval("var param = 1"); return param; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741825 arguments:2 param:0] 3 0 1 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(1) compiler.go:433: > 3: goja.createArgsUnmapped(1) compiler.go:433: > 4: goja.initStashP(2) compiler.go:433: > 5: goja.loadStashLex(0) compiler.go:433: > 6: goja.jdefP(3) compiler.go:433: > 7: goja.loadVal({0}) compiler.go:433: > 8: goja.initStashP(0) compiler.go:433: > 9: *goja.enterFuncBody(&{{map[] 0 0} 1 true false}) compiler.go:433: > 10: goja.loadDynamicCallee(eval) compiler.go:433: > 11: goja.loadVal({var param = 1}) compiler.go:433: > 12: goja.callEval(1) compiler.go:433: > 13: goja._pop({}) compiler.go:433: > 14: *goja.loadMixedLex(&{param 16777216 false}) compiler.go:433: > 15: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestEvalParamWithDef (0.00s) === RUN TestArgumentsRedefinedAsLetDyn compiler.go:433: 0: *goja.newFunc(&{0xc00036d450 f function f() { let arguments; eval(""); // force dynamic scope return arguments; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1] 2 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja._loadUndef({}) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: goja.loadDynamicCallee(eval) compiler.go:433: > 6: goja.loadVal({}) compiler.go:433: > 7: goja.callEval(1) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja.loadStashLex(1) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArgumentsRedefinedAsLetDyn (0.00s) === RUN TestWith compiler.go:433: 0: *goja.bindGlobal(&{[b o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(b) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(o) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja.loadVal({41}) compiler.go:433: 7: goja.putProp(a) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja.loadDynamic(o) compiler.go:433: 10: goja._enterWith({}) compiler.go:433: 11: goja.resolveVar1(a) compiler.go:433: 12: goja._getValue({}) compiler.go:433: 13: goja.loadDynamic(b) compiler.go:433: 14: goja._add({}) compiler.go:433: 15: goja._putValueP({}) compiler.go:433: 16: goja._leaveWith({}) compiler.go:433: 17: goja.loadDynamic(o) compiler.go:433: 18: goja.getProp(a) compiler.go:433: 19: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestWith (0.00s) === RUN TestWithInFunc compiler.go:433: 0: *goja.newFunc(&{0xc00036d9a0 F function F() { var b = 1; var c = 0; var o = {a: 40, c: 1}; with(o) { a += b + c; } return o.a; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{3 0}) compiler.go:433: > 1: goja.loadVal({1}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadVal({0}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadVal({40}) compiler.go:433: > 7: goja.putProp(a) compiler.go:433: > 8: goja.loadVal({1}) compiler.go:433: > 9: goja.putProp(c) compiler.go:433: > 10: goja.initStackP(3) compiler.go:433: > 11: goja.loadStack(3) compiler.go:433: > 12: goja._enterWith({}) compiler.go:433: > 13: goja.resolveVar1(a) compiler.go:433: > 14: goja._getValue({}) compiler.go:433: > 15: *goja.loadMixedStack(&{b 1 1 false}) compiler.go:433: > 16: *goja.loadMixedStack(&{c 2 1 false}) compiler.go:433: > 17: goja._add({}) compiler.go:433: > 18: goja._add({}) compiler.go:433: > 19: goja._putValueP({}) compiler.go:433: > 20: goja._leaveWith({}) compiler.go:433: > 21: goja.loadStack(3) compiler.go:433: > 22: goja.getProp(a) compiler.go:433: > 23: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [F] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(F) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestWithInFunc (0.00s) === RUN TestAssignNonExtendable compiler.go:433: 0: *goja.newFunc(&{0xc00036dc20 F function F() { this.x = 1; } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.loadVal({1}) compiler.go:433: > 3: goja.setPropStrictP(x) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[o] [F] [] [] false}) compiler.go:433: 2: goja.resolveVar1Strict(o) compiler.go:433: 3: goja.loadDynamic(F) compiler.go:433: 4: goja._new(0) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(Object) compiler.go:433: 7: goja.getPropCallee(preventExtensions) compiler.go:433: 8: goja.loadDynamic(o) compiler.go:433: 9: goja.call(1) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.loadDynamic(o) compiler.go:433: 12: goja.loadVal({42}) compiler.go:433: 13: goja.setPropStrictP(x) compiler.go:433: 14: goja.loadDynamic(o) compiler.go:433: 15: goja.getProp(x) compiler.go:433: 16: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestAssignNonExtendable (0.00s) === RUN TestAssignNonExtendable1 compiler.go:433: 0: *goja.newFunc(&{0xc00036de50 F function F() { } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[o rv] [F] [] [] false}) compiler.go:433: 2: goja.resolveVar1Strict(o) compiler.go:433: 3: goja.loadDynamic(F) compiler.go:433: 4: goja._new(0) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(Object) compiler.go:433: 7: goja.getPropCallee(preventExtensions) compiler.go:433: 8: goja.loadDynamic(o) compiler.go:433: 9: goja.call(1) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.try({5 0}) compiler.go:433: 12: goja.loadDynamic(o) compiler.go:433: 13: goja.loadVal({42}) compiler.go:433: 14: goja.setPropStrictP(x) compiler.go:433: 15: goja.jump(9) compiler.go:433: 16: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 17: goja.resolveVar1Strict(rv) compiler.go:433: 18: goja.loadStackLex(1) compiler.go:433: 19: goja.getProp(constructor) compiler.go:433: 20: goja.loadDynamic(TypeError) compiler.go:433: 21: goja._op_strict_eq({}) compiler.go:433: 22: goja._putValueP({}) compiler.go:433: 23: *goja.leaveBlock(&{1 false}) compiler.go:433: 24: goja.leaveTry({}) compiler.go:433: 25: goja.resolveVar1Strict(rv) compiler.go:433: 26: goja._getValue({}) compiler.go:433: 27: goja.loadVal({ }) compiler.go:433: 28: goja.loadDynamic(o) compiler.go:433: 29: goja.getProp(x) compiler.go:433: 30: goja._add({}) compiler.go:433: 31: goja._add({}) compiler.go:433: 32: goja._putValueP({}) compiler.go:433: 33: goja.loadDynamic(rv) compiler.go:433: 34: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestAssignNonExtendable1 (0.00s) === RUN TestAssignStrict compiler.go:433: 0: *goja.bindGlobal(&{[rv] [] [] [] false}) compiler.go:433: 1: goja.try({6 0}) compiler.go:433: 2: goja.loadDynamicCallee(eval) compiler.go:433: 3: goja.loadVal({eval = 42}) compiler.go:433: 4: goja.callEvalStrict(1) compiler.go:433: 5: goja._pop({}) compiler.go:433: 6: goja.jump(8) compiler.go:433: 7: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 8: goja.resolveVar1Strict(rv) compiler.go:433: 9: goja.loadStackLex(1) compiler.go:433: 10: goja.loadDynamic(SyntaxError) compiler.go:433: 11: goja._op_instanceof({}) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: *goja.leaveBlock(&{1 false}) compiler.go:433: 14: goja.leaveTry({}) compiler.go:433: 15: goja.loadDynamic(rv) compiler.go:433: 16: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestAssignStrict (0.00s) === RUN TestIllegalArgmentName compiler.go:433: 0: *goja.bindGlobal(&{[rv] [] [] [] false}) compiler.go:433: 1: goja.try({6 0}) compiler.go:433: 2: goja.loadDynamicCallee(eval) compiler.go:433: 3: goja.loadVal({function F(eval) {}}) compiler.go:433: 4: goja.callEvalStrict(1) compiler.go:433: 5: goja._pop({}) compiler.go:433: 6: goja.jump(8) compiler.go:433: 7: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 8: goja.resolveVar1Strict(rv) compiler.go:433: 9: goja.loadStackLex(1) compiler.go:433: 10: goja.loadDynamic(SyntaxError) compiler.go:433: 11: goja._op_instanceof({}) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: *goja.leaveBlock(&{1 false}) compiler.go:433: 14: goja.leaveTry({}) compiler.go:433: 15: goja.loadDynamic(rv) compiler.go:433: 16: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestIllegalArgmentName (0.00s) === RUN TestFunction compiler.go:433: 0: *goja.bindGlobal(&{[f0 f1 f2] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(f0) compiler.go:433: 2: goja.loadDynamicCallee(Function) compiler.go:433: 3: goja.loadVal({}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(f1) compiler.go:433: 7: goja.loadDynamicCallee(Function) compiler.go:433: 8: goja.loadVal({return ' one'}) compiler.go:433: 9: goja.call(1) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.resolveVar1(f2) compiler.go:433: 12: goja.loadDynamicCallee(Function) compiler.go:433: 13: goja.loadVal({arg}) compiler.go:433: 14: goja.loadVal({return ' ' + arg}) compiler.go:433: 15: goja.call(2) compiler.go:433: 16: goja._initValueP({}) compiler.go:433: 17: goja.loadDynamicCallee(f0) compiler.go:433: 18: goja.call(0) compiler.go:433: 19: goja.loadDynamicCallee(f1) compiler.go:433: 20: goja.call(0) compiler.go:433: 21: goja._add({}) compiler.go:433: 22: goja.loadDynamicCallee(f2) compiler.go:433: 23: goja.loadVal({two}) compiler.go:433: 24: goja.call(1) compiler.go:433: 25: goja._add({}) compiler.go:433: 26: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFunction (0.00s) === RUN TestFunction1 compiler.go:433: 0: *goja.bindGlobal(&{[f] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(f) compiler.go:433: 2: *goja.newFunc(&{0xc000021540 f1 function f1(count) { if (count == 0) { return true; } return f1(count-1); } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 1}) compiler.go:433: > 1: goja._loadCallee({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja._loadCallee({}) compiler.go:433: > 4: goja.initStackP(1) compiler.go:433: > 5: goja.loadStackLex(-1) compiler.go:433: > 6: goja.loadVal({0}) compiler.go:433: > 7: goja._op_eq({}) compiler.go:433: > 8: goja.jneP(3) compiler.go:433: > 9: goja.loadVal({true}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: > 11: goja._loadUndef({}) compiler.go:433: > 12: goja.loadStackLex(1) compiler.go:433: > 13: goja.loadStackLex(-1) compiler.go:433: > 14: goja.loadVal({1}) compiler.go:433: > 15: goja._sub({}) compiler.go:433: > 16: goja.call(1) compiler.go:433: > 17: goja._ret({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamicCallee(f) compiler.go:433: 5: goja.loadVal({1}) compiler.go:433: 6: goja.call(1) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFunction1 (0.00s) === RUN TestFunction2 compiler.go:433: 0: *goja.newFunc(&{0xc000021860 f function f(count) { trace += "f("+count+")"; if (count == 0) { return; } return f(count-1); } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({f(}) compiler.go:433: > 4: goja.loadStackLex(-1) compiler.go:433: > 5: goja._add({}) compiler.go:433: > 6: goja.loadVal({)}) compiler.go:433: > 7: goja._add({}) compiler.go:433: > 8: goja._add({}) compiler.go:433: > 9: goja._putValueP({}) compiler.go:433: > 10: goja.loadStackLex(-1) compiler.go:433: > 11: goja.loadVal({0}) compiler.go:433: > 12: goja._op_eq({}) compiler.go:433: > 13: goja.jneP(3) compiler.go:433: > 14: goja._loadUndef({}) compiler.go:433: > 15: goja._ret({}) compiler.go:433: > 16: goja.loadDynamicCallee(f) compiler.go:433: > 17: goja.loadStackLex(-1) compiler.go:433: > 18: goja.loadVal({1}) compiler.go:433: > 19: goja._sub({}) compiler.go:433: > 20: goja.call(1) compiler.go:433: > 21: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc0000218b0 f1 function f1() { trace += "f1"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({f1}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[trace f2] [f f1] [] [] false}) compiler.go:433: 3: goja.resolveVar1(trace) compiler.go:433: 4: goja.loadVal({}) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(f2) compiler.go:433: 7: goja.loadDynamic(f) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja.resolveVar1(f) compiler.go:433: 10: goja.loadDynamic(f1) compiler.go:433: 11: goja._putValueP({}) compiler.go:433: 12: goja.loadDynamicCallee(f2) compiler.go:433: 13: goja.loadVal({1}) compiler.go:433: 14: goja.call(1) compiler.go:433: 15: goja._pop({}) compiler.go:433: 16: goja.loadDynamic(trace) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFunction2 (0.00s) === RUN TestFunctionToString compiler.go:433: 0: goja.loadDynamicCallee(Function) compiler.go:433: 1: goja.loadVal({arg1}) compiler.go:433: 2: goja.loadVal({arg2}) compiler.go:433: 3: goja.loadVal({return 42}) compiler.go:433: 4: goja.call(3) compiler.go:433: 5: goja.getPropCallee(toString) compiler.go:433: 6: goja.call(0) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFunctionToString (0.00s) === RUN TestObjectLiteral compiler.go:433: 0: *goja.bindGlobal(&{[getterCalled setterCalled o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(getterCalled) compiler.go:433: 2: goja.loadVal({false}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(setterCalled) compiler.go:433: 5: goja.loadVal({false}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(o) compiler.go:433: 8: goja._newObject({}) compiler.go:433: 9: *goja.newMethod(&{{0xc000021e50 x get x() {getterCalled = true} 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(getterCalled) compiler.go:433: > 2: goja.loadVal({true}) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 10: *goja.defineGetterKeyed(&{x true}) compiler.go:433: 11: *goja.newMethod(&{{0xc000021ea0 x set x(_) {setterCalled = true} 1 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.resolveVar1(setterCalled) compiler.go:433: > 2: goja.loadVal({true}) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 12: *goja.defineSetterKeyed(&{x true}) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.loadDynamic(o) compiler.go:433: 15: goja.getProp(x) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadDynamic(o) compiler.go:433: 18: goja.loadVal({42}) compiler.go:433: 19: goja.setPropP(x) compiler.go:433: 20: goja.loadDynamic(getterCalled) compiler.go:433: 21: goja.jne(2) compiler.go:433: 22: goja.loadDynamic(setterCalled) compiler.go:433: 23: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectLiteral (0.00s) === RUN TestConst compiler.go:433: 0: *goja.bindGlobal(&{[v1 v2 v3 v4] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(v1) compiler.go:433: 2: goja.loadVal({true}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(v2) compiler.go:433: 5: goja.loadVal({-Inf}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(v3) compiler.go:433: 8: goja.loadDynamic(v1) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(v4) compiler.go:433: 11: goja.loadVal({false}) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.loadDynamic(v1) compiler.go:433: 14: goja.loadVal({true}) compiler.go:433: 15: goja._op_strict_eq({}) compiler.go:433: 16: goja.jne(5) compiler.go:433: 17: goja.loadDynamic(v2) compiler.go:433: 18: goja.loadDynamic(Infinity) compiler.go:433: 19: goja._neg({}) compiler.go:433: 20: goja._op_strict_eq({}) compiler.go:433: 21: goja.jne(4) compiler.go:433: 22: goja.loadDynamic(v3) compiler.go:433: 23: goja.loadDynamic(v1) compiler.go:433: 24: goja._op_strict_eq({}) compiler.go:433: 25: goja.jne(4) compiler.go:433: 26: goja.loadDynamic(v4) compiler.go:433: 27: goja.loadVal({false}) compiler.go:433: 28: goja._op_strict_eq({}) compiler.go:433: 29: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestConst (0.00s) === RUN TestConstWhile compiler.go:433: 0: *goja.bindGlobal(&{[c] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(c) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(c) compiler.go:433: 5: goja._loadUndef({}) compiler.go:433: 6: goja._getValue({}) compiler.go:433: 7: goja._toNumber({}) compiler.go:433: 8: goja._inc({}) compiler.go:433: 9: goja.rdupN(1) compiler.go:433: 10: goja._putValue({}) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.loadVal({9}) compiler.go:433: 13: goja._op_gt({}) compiler.go:433: 14: goja.jneP(2) compiler.go:433: 15: goja.jump(2) compiler.go:433: 16: goja.jump(-12) compiler.go:433: 17: goja.loadDynamic(c) compiler.go:433: 18: goja.loadVal({10}) compiler.go:433: 19: goja._op_strict_eq({}) compiler.go:433: 20: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestConstWhile (0.00s) === RUN TestConstWhileThrow compiler.go:433: 0: *goja.bindGlobal(&{[thrown] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(thrown) compiler.go:433: 2: goja.loadVal({false}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.try({6 0}) compiler.go:433: 5: goja.loadDynamic(TypeError) compiler.go:433: 6: goja.loadVal({Value is not an object: true}) compiler.go:433: 7: goja._new(1) compiler.go:433: 8: goja._throw({}) compiler.go:433: 9: goja.jump(8) compiler.go:433: 10: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 11: goja.resolveVar1(thrown) compiler.go:433: 12: goja.loadStackLex(1) compiler.go:433: 13: goja.loadDynamic(TypeError) compiler.go:433: 14: goja._op_instanceof({}) compiler.go:433: 15: goja._putValueP({}) compiler.go:433: 16: *goja.leaveBlock(&{1 false}) compiler.go:433: 17: goja.leaveTry({}) compiler.go:433: 18: goja.loadDynamic(thrown) compiler.go:433: 19: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestConstWhileThrow (0.00s) === RUN TestDupParams compiler.go:433: 0: *goja.newFunc(&{0xc00037eaa0 F function F(x, y, x) { return x; } 3 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 3}) compiler.go:433: > 1: goja.loadStackLex(-3) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [F] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(F) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDupParams (0.00s) === RUN TestUseUnsuppliedParam compiler.go:433: 0: *goja.newFunc(&{0xc00037f220 getMessage function getMessage(message) { if (message === undefined) { message = ''; } message += " 123 456"; return message; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.loadDynamic(undefined) compiler.go:433: > 3: goja._op_strict_eq({}) compiler.go:433: > 4: goja.jneP(3) compiler.go:433: > 5: goja.loadVal({}) compiler.go:433: > 6: goja.storeStackLexP(-1) compiler.go:433: > 7: goja.loadStackLex(-1) compiler.go:433: > 8: goja.loadVal({ 123 456}) compiler.go:433: > 9: goja._add({}) compiler.go:433: > 10: goja.storeStackLexP(-1) compiler.go:433: > 11: goja.loadStackLex(-1) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [getMessage] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(getMessage) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestUseUnsuppliedParam (0.00s) === RUN TestForInLetWithInitializer --- PASS: TestForInLetWithInitializer (0.00s) === RUN TestForInLoop compiler.go:433: 0: *goja.newFunc(&{0xc00037f5e0 Proto function Proto() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[o hasX hasY i] [Proto] [] [] false}) compiler.go:433: 2: goja.loadDynamic(Proto) compiler.go:433: 3: goja.getProp(prototype) compiler.go:433: 4: goja.loadVal({42}) compiler.go:433: 5: goja.setPropP(x) compiler.go:433: 6: goja.resolveVar1(o) compiler.go:433: 7: goja.loadDynamic(Proto) compiler.go:433: 8: goja._new(0) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(o) compiler.go:433: 11: goja.loadVal({44}) compiler.go:433: 12: goja.setPropP(y) compiler.go:433: 13: goja.loadDynamic(o) compiler.go:433: 14: goja.loadVal({45}) compiler.go:433: 15: goja.setPropP(x) compiler.go:433: 16: goja.resolveVar1(hasX) compiler.go:433: 17: goja.loadVal({false}) compiler.go:433: 18: goja._initValueP({}) compiler.go:433: 19: goja.resolveVar1(hasY) compiler.go:433: 20: goja.loadVal({false}) compiler.go:433: 21: goja._initValueP({}) compiler.go:433: 22: goja.loadDynamic(o) compiler.go:433: 23: goja._enumerate({}) compiler.go:433: 24: goja.enumNext(40) compiler.go:433: 25: goja.resolveVar1(i) compiler.go:433: 26: goja._enumGet({}) compiler.go:433: 27: goja._putValueP({}) compiler.go:433: 28: goja.loadDynamic(i) compiler.go:433: 29: goja._dup({}) compiler.go:433: 30: goja.loadVal({x}) compiler.go:433: 31: goja._op_strict_eq({}) compiler.go:433: 32: goja.jneP(3) compiler.go:433: 33: goja._pop({}) compiler.go:433: 34: goja.jump(9) compiler.go:433: 35: goja._dup({}) compiler.go:433: 36: goja.loadVal({y}) compiler.go:433: 37: goja._op_strict_eq({}) compiler.go:433: 38: goja.jneP(3) compiler.go:433: 39: goja._pop({}) compiler.go:433: 40: goja.jump(13) compiler.go:433: 41: goja._pop({}) compiler.go:433: 42: goja.jump(21) compiler.go:433: 43: goja.loadDynamic(hasX) compiler.go:433: 44: goja.jneP(5) compiler.go:433: 45: goja.loadDynamic(Error) compiler.go:433: 46: goja.loadVal({Already has X}) compiler.go:433: 47: goja._new(1) compiler.go:433: 48: goja._throw({}) compiler.go:433: 49: goja.resolveVar1(hasX) compiler.go:433: 50: goja.loadVal({true}) compiler.go:433: 51: goja._putValueP({}) compiler.go:433: 52: goja.jump(11) compiler.go:433: 53: goja.loadDynamic(hasY) compiler.go:433: 54: goja.jneP(5) compiler.go:433: 55: goja.loadDynamic(Error) compiler.go:433: 56: goja.loadVal({Already has Y}) compiler.go:433: 57: goja._new(1) compiler.go:433: 58: goja._throw({}) compiler.go:433: 59: goja.resolveVar1(hasY) compiler.go:433: 60: goja.loadVal({true}) compiler.go:433: 61: goja._putValueP({}) compiler.go:433: 62: goja.jump(1) compiler.go:433: 63: goja.jump(-39) compiler.go:433: 64: goja._enumPop({}) compiler.go:433: 65: goja.jump(2) compiler.go:433: 66: goja._enumPopClose({}) compiler.go:433: 67: goja.loadDynamic(hasX) compiler.go:433: 68: goja.jne(2) compiler.go:433: 69: goja.loadDynamic(hasY) compiler.go:433: 70: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForInLoop (0.00s) === RUN TestWhileLoopResult compiler.go:433: 0: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestWhileLoopResult (0.00s) === RUN TestEmptySwitch compiler.go:433: 0: goja.loadVal({1}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja._pop({}) compiler.go:433: 3: goja.jump(1) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEmptySwitch (0.00s) === RUN TestEmptyDoWhile compiler.go:433: 0: goja.loadVal({false}) compiler.go:433: 1: goja.jeqP(-1) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEmptyDoWhile (0.00s) === RUN TestSwitch compiler.go:433: 0: *goja.newFunc(&{0xc00037fd60 F function F(x) { var i = 0; switch (x) { case 0: i++; case 1: i++; default: i++; case 2: i++; break; case 3: i++; } return i; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 1}) compiler.go:433: > 1: goja.loadVal({0}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadStackLex(-1) compiler.go:433: > 4: goja._dup({}) compiler.go:433: > 5: goja.loadVal({0}) compiler.go:433: > 6: goja._op_strict_eq({}) compiler.go:433: > 7: goja.jneP(3) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja.jump(21) compiler.go:433: > 10: goja._dup({}) compiler.go:433: > 11: goja.loadVal({1}) compiler.go:433: > 12: goja._op_strict_eq({}) compiler.go:433: > 13: goja.jneP(3) compiler.go:433: > 14: goja._pop({}) compiler.go:433: > 15: goja.jump(18) compiler.go:433: > 16: goja._dup({}) compiler.go:433: > 17: goja.loadVal({2}) compiler.go:433: > 18: goja._op_strict_eq({}) compiler.go:433: > 19: goja.jneP(3) compiler.go:433: > 20: goja._pop({}) compiler.go:433: > 21: goja.jump(18) compiler.go:433: > 22: goja._dup({}) compiler.go:433: > 23: goja.loadVal({3}) compiler.go:433: > 24: goja._op_strict_eq({}) compiler.go:433: > 25: goja.jneP(3) compiler.go:433: > 26: goja._pop({}) compiler.go:433: > 27: goja.jump(16) compiler.go:433: > 28: goja._pop({}) compiler.go:433: > 29: goja.jump(7) compiler.go:433: > 30: goja.loadStack(1) compiler.go:433: > 31: goja._inc({}) compiler.go:433: > 32: goja.storeStackP(1) compiler.go:433: > 33: goja.loadStack(1) compiler.go:433: > 34: goja._inc({}) compiler.go:433: > 35: goja.storeStackP(1) compiler.go:433: > 36: goja.loadStack(1) compiler.go:433: > 37: goja._inc({}) compiler.go:433: > 38: goja.storeStackP(1) compiler.go:433: > 39: goja.loadStack(1) compiler.go:433: > 40: goja._inc({}) compiler.go:433: > 41: goja.storeStackP(1) compiler.go:433: > 42: goja.jump(4) compiler.go:433: > 43: goja.loadStack(1) compiler.go:433: > 44: goja._inc({}) compiler.go:433: > 45: goja.storeStackP(1) compiler.go:433: > 46: goja.loadStack(1) compiler.go:433: > 47: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [F] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(F) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja.loadDynamicCallee(F) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja.call(1) compiler.go:433: 8: goja._add({}) compiler.go:433: 9: goja.loadDynamicCallee(F) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja.call(1) compiler.go:433: 12: goja._add({}) compiler.go:433: 13: goja.loadDynamicCallee(F) compiler.go:433: 14: goja.loadVal({4}) compiler.go:433: 15: goja.call(1) compiler.go:433: 16: goja._add({}) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitch (0.00s) === RUN TestSwitchDefFirst compiler.go:433: 0: *goja.newFunc(&{0xc0003f40f0 F function F(x) { var i = 0; switch (x) { default: i++; case 0: i++; case 1: i++; case 2: i++; break; case 3: i++; } return i; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 1}) compiler.go:433: > 1: goja.loadVal({0}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadStackLex(-1) compiler.go:433: > 4: goja._dup({}) compiler.go:433: > 5: goja.loadVal({0}) compiler.go:433: > 6: goja._op_strict_eq({}) compiler.go:433: > 7: goja.jneP(3) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja.jump(23) compiler.go:433: > 10: goja._dup({}) compiler.go:433: > 11: goja.loadVal({1}) compiler.go:433: > 12: goja._op_strict_eq({}) compiler.go:433: > 13: goja.jneP(3) compiler.go:433: > 14: goja._pop({}) compiler.go:433: > 15: goja.jump(20) compiler.go:433: > 16: goja._dup({}) compiler.go:433: > 17: goja.loadVal({2}) compiler.go:433: > 18: goja._op_strict_eq({}) compiler.go:433: > 19: goja.jneP(3) compiler.go:433: > 20: goja._pop({}) compiler.go:433: > 21: goja.jump(17) compiler.go:433: > 22: goja._dup({}) compiler.go:433: > 23: goja.loadVal({3}) compiler.go:433: > 24: goja._op_strict_eq({}) compiler.go:433: > 25: goja.jneP(3) compiler.go:433: > 26: goja._pop({}) compiler.go:433: > 27: goja.jump(15) compiler.go:433: > 28: goja._pop({}) compiler.go:433: > 29: goja.loadStack(1) compiler.go:433: > 30: goja._inc({}) compiler.go:433: > 31: goja.storeStackP(1) compiler.go:433: > 32: goja.loadStack(1) compiler.go:433: > 33: goja._inc({}) compiler.go:433: > 34: goja.storeStackP(1) compiler.go:433: > 35: goja.loadStack(1) compiler.go:433: > 36: goja._inc({}) compiler.go:433: > 37: goja.storeStackP(1) compiler.go:433: > 38: goja.loadStack(1) compiler.go:433: > 39: goja._inc({}) compiler.go:433: > 40: goja.storeStackP(1) compiler.go:433: > 41: goja.jump(4) compiler.go:433: > 42: goja.loadStack(1) compiler.go:433: > 43: goja._inc({}) compiler.go:433: > 44: goja.storeStackP(1) compiler.go:433: > 45: goja.loadStack(1) compiler.go:433: > 46: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [F] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(F) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja.loadDynamicCallee(F) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja.call(1) compiler.go:433: 8: goja._add({}) compiler.go:433: 9: goja.loadDynamicCallee(F) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja.call(1) compiler.go:433: 12: goja._add({}) compiler.go:433: 13: goja.loadDynamicCallee(F) compiler.go:433: 14: goja.loadVal({4}) compiler.go:433: 15: goja.call(1) compiler.go:433: 16: goja._add({}) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitchDefFirst (0.00s) === RUN TestSwitchResult compiler.go:433: 0: *goja.bindGlobal(&{[x] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(x) compiler.go:433: 2: goja.loadVal({2}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(x) compiler.go:433: 5: goja._clearResult({}) compiler.go:433: 6: goja._dup({}) compiler.go:433: 7: goja.loadVal({0}) compiler.go:433: 8: goja._op_strict_eq({}) compiler.go:433: 9: goja.jneP(3) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.jump(21) compiler.go:433: 12: goja._dup({}) compiler.go:433: 13: goja.loadVal({1}) compiler.go:433: 14: goja._op_strict_eq({}) compiler.go:433: 15: goja.jneP(3) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.jump(17) compiler.go:433: 18: goja._dup({}) compiler.go:433: 19: goja.loadVal({2}) compiler.go:433: 20: goja._op_strict_eq({}) compiler.go:433: 21: goja.jneP(3) compiler.go:433: 22: goja._pop({}) compiler.go:433: 23: goja.jump(13) compiler.go:433: 24: goja._dup({}) compiler.go:433: 25: goja.loadVal({3}) compiler.go:433: 26: goja._op_strict_eq({}) compiler.go:433: 27: goja.jneP(3) compiler.go:433: 28: goja._pop({}) compiler.go:433: 29: goja.jump(10) compiler.go:433: 30: goja._pop({}) compiler.go:433: 31: goja.jump(10) compiler.go:433: 32: goja.loadVal({zero}) compiler.go:433: 33: goja._saveResult({}) compiler.go:433: 34: goja.loadVal({one}) compiler.go:433: 35: goja._saveResult({}) compiler.go:433: 36: goja.loadVal({two}) compiler.go:433: 37: goja._saveResult({}) compiler.go:433: 38: goja.jump(5) compiler.go:433: 39: goja.loadVal({three}) compiler.go:433: 40: goja._saveResult({}) compiler.go:433: 41: goja.loadVal({default}) compiler.go:433: 42: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitchResult (0.00s) === RUN TestSwitchResult1 compiler.go:433: 0: *goja.bindGlobal(&{[x] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(x) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(x) compiler.go:433: 5: goja._clearResult({}) compiler.go:433: 6: goja._dup({}) compiler.go:433: 7: goja.loadVal({0}) compiler.go:433: 8: goja._op_strict_eq({}) compiler.go:433: 9: goja.jneP(3) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.jump(9) compiler.go:433: 12: goja._dup({}) compiler.go:433: 13: goja.loadVal({1}) compiler.go:433: 14: goja._op_strict_eq({}) compiler.go:433: 15: goja.jneP(3) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.jump(5) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.jump(4) compiler.go:433: 20: goja.loadVal({two}) compiler.go:433: 21: goja._saveResult({}) compiler.go:433: 22: goja.jump(1) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitchResult1 (0.00s) === RUN TestSwitchResult2 compiler.go:433: 0: goja.loadVal({a}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja._dup({}) compiler.go:433: 3: goja.loadVal({a}) compiler.go:433: 4: goja._op_strict_eq({}) compiler.go:433: 5: goja.jneP(3) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja.jump(9) compiler.go:433: 8: goja._dup({}) compiler.go:433: 9: goja.loadVal({b}) compiler.go:433: 10: goja._op_strict_eq({}) compiler.go:433: 11: goja.jneP(3) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: goja.jump(5) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja.jump(3) compiler.go:433: 16: goja.loadVal({7}) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitchResult2 (0.00s) === RUN TestSwitchResultJumpIntoEmptyEval compiler.go:433: 0: *goja.newFunc(&{0xc0003f4780 t function t(x) { return eval("switch(x) { case 1: 2; break; case 2: let x = 1; case 3: x+2; break; case 4: default: 9}"); } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741825 arguments:1073741826 x:1073741824] 3 0 1 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(1) compiler.go:433: > 3: goja.createArgsMapped(1) compiler.go:433: > 4: goja.initStashP(2) compiler.go:433: > 5: goja.loadDynamicCallee(eval) compiler.go:433: > 6: goja.loadVal({switch(x) { case 1: 2; break; case 2: let x = 1; case 3: x+2; break; case 4: default: 9}}) compiler.go:433: > 7: goja.callEval(1) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [t] [] [] false}) compiler.go:433: 2: goja.loadVal({}) compiler.go:433: 3: goja.loadDynamicCallee(t) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja._add({}) compiler.go:433: 7: goja.loadDynamicCallee(t) compiler.go:433: 8: goja.call(0) compiler.go:433: 9: goja._add({}) compiler.go:433: 10: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestSwitchResultJumpIntoEmptyEval (0.00s) === RUN TestSwitchResultJumpIntoEmpty compiler.go:433: 0: goja.loadVal({2}) compiler.go:433: 1: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 2: goja._clearResult({}) compiler.go:433: 3: goja.loadStackLex(1) compiler.go:433: 4: goja.loadVal({1}) compiler.go:433: 5: goja._op_strict_eq({}) compiler.go:433: 6: goja.jneP(2) compiler.go:433: 7: goja.jump(17) compiler.go:433: 8: goja.loadStackLex(1) compiler.go:433: 9: goja.loadVal({2}) compiler.go:433: 10: goja._op_strict_eq({}) compiler.go:433: 11: goja.jneP(2) compiler.go:433: 12: goja.jump(16) compiler.go:433: 13: goja.loadStackLex(1) compiler.go:433: 14: goja.loadVal({3}) compiler.go:433: 15: goja._op_strict_eq({}) compiler.go:433: 16: goja.jneP(2) compiler.go:433: 17: goja.jump(13) compiler.go:433: 18: goja.loadStackLex(1) compiler.go:433: 19: goja.loadVal({4}) compiler.go:433: 20: goja._op_strict_eq({}) compiler.go:433: 21: goja.jneP(2) compiler.go:433: 22: goja.jump(12) compiler.go:433: 23: goja.jump(17) compiler.go:433: 24: goja.loadVal({2}) compiler.go:433: 25: goja._saveResult({}) compiler.go:433: 26: *goja.leaveBlock(&{2 false}) compiler.go:433: 27: goja.jump(16) compiler.go:433: 28: goja.loadVal({1}) compiler.go:433: 29: goja.initStackP(2) compiler.go:433: 30: goja.loadStackLex(2) compiler.go:433: 31: goja.loadVal({2}) compiler.go:433: 32: goja._add({}) compiler.go:433: 33: goja._saveResult({}) compiler.go:433: 34: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 35: goja.loadVal({2}) compiler.go:433: 36: goja.initStackP(3) compiler.go:433: 37: *goja.leaveBlock(&{1 false}) compiler.go:433: 38: *goja.leaveBlock(&{2 false}) compiler.go:433: 39: goja.jump(4) compiler.go:433: 40: goja.loadVal({9}) compiler.go:433: 41: goja._saveResult({}) compiler.go:433: 42: *goja.leaveBlock(&{2 false}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitchResultJumpIntoEmpty (0.00s) === RUN TestSwitchLexical compiler.go:433: 0: goja.loadVal({true}) compiler.go:433: 1: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 2: goja._clearResult({}) compiler.go:433: 3: goja.loadStackLex(1) compiler.go:433: 4: goja.loadVal({true}) compiler.go:433: 5: goja._op_strict_eq({}) compiler.go:433: 6: goja.jneP(2) compiler.go:433: 7: goja.jump(2) compiler.go:433: 8: goja.jump(3) compiler.go:433: 9: goja.loadVal({1}) compiler.go:433: 10: goja.initStackP(2) compiler.go:433: 11: *goja.leaveBlock(&{2 false}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitchLexical (0.00s) === RUN TestSwitchBreakOuter compiler.go:433: 0: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 1: goja.loadVal({0}) compiler.go:433: 2: goja.initStackP(1) compiler.go:433: 3: goja._clearResult({}) compiler.go:433: 4: goja.jump(1) compiler.go:433: 5: goja.loadStackLex(1) compiler.go:433: 6: goja.loadVal({10}) compiler.go:433: 7: goja._op_lt({}) compiler.go:433: 8: goja.jneP(54) compiler.go:433: 9: goja._clearResult({}) compiler.go:433: 10: goja.loadStackLex(1) compiler.go:433: 11: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 12: goja._clearResult({}) compiler.go:433: 13: goja.loadStackLex(2) compiler.go:433: 14: goja.loadVal({0}) compiler.go:433: 15: goja._op_strict_eq({}) compiler.go:433: 16: goja.jneP(2) compiler.go:433: 17: goja.jump(12) compiler.go:433: 18: goja.loadStackLex(2) compiler.go:433: 19: goja.loadVal({1}) compiler.go:433: 20: goja._op_strict_eq({}) compiler.go:433: 21: goja.jneP(2) compiler.go:433: 22: goja.jump(9) compiler.go:433: 23: goja.loadStackLex(2) compiler.go:433: 24: goja.loadVal({2}) compiler.go:433: 25: goja._op_strict_eq({}) compiler.go:433: 26: goja.jneP(2) compiler.go:433: 27: goja.jump(8) compiler.go:433: 28: goja.jump(28) compiler.go:433: 29: *goja.leaveBlock(&{2 false}) compiler.go:433: 30: goja.jump(28) compiler.go:433: 31: goja.loadVal({1}) compiler.go:433: 32: goja.initStackP(3) compiler.go:433: 33: *goja.leaveBlock(&{2 false}) compiler.go:433: 34: goja.jump(24) compiler.go:433: 35: goja.try({5 0}) compiler.go:433: 36: goja.loadStackLex(3) compiler.go:433: 37: goja._inc({}) compiler.go:433: 38: goja.storeStackLexP(3) compiler.go:433: 39: goja.jump(12) compiler.go:433: 40: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 41: goja.loadStackLex(4) compiler.go:433: 42: goja.loadDynamic(ReferenceError) compiler.go:433: 43: goja._op_instanceof({}) compiler.go:433: 44: goja.jneP(6) compiler.go:433: 45: *goja.leaveBlock(&{1 false}) compiler.go:433: 46: goja.leaveTry({}) compiler.go:433: 47: *goja.leaveBlock(&{2 false}) compiler.go:433: 48: *goja.leaveBlock(&{1 false}) compiler.go:433: 49: goja.jump(14) compiler.go:433: 50: *goja.leaveBlock(&{1 false}) compiler.go:433: 51: goja.leaveTry({}) compiler.go:433: 52: goja.loadDynamic(Error) compiler.go:433: 53: goja.loadVal({Exception was not thrown}) compiler.go:433: 54: goja._new(1) compiler.go:433: 55: goja._throw({}) compiler.go:433: 56: *goja.leaveBlock(&{2 false}) compiler.go:433: 57: goja.jump(1) compiler.go:433: 58: goja.loadStackLex(1) compiler.go:433: 59: goja._inc({}) compiler.go:433: 60: goja.storeStackLexP(1) compiler.go:433: 61: goja.jump(-56) compiler.go:433: 62: *goja.leaveBlock(&{1 false}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitchBreakOuter (0.00s) === RUN TestIfBreakResult compiler.go:433: 0: goja._clearResult({}) compiler.go:433: 1: goja.loadVal({42}) compiler.go:433: 2: goja._saveResult({}) compiler.go:433: 3: goja.jump(1) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestIfBreakResult (0.00s) === RUN TestSwitchNoMatch compiler.go:433: 0: *goja.bindGlobal(&{[result x] [] [] [] false}) compiler.go:433: 1: goja.loadDynamic(x) compiler.go:433: 2: goja._dup({}) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja._op_strict_eq({}) compiler.go:433: 5: goja.jneP(3) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja.jump(3) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja.jump(5) compiler.go:433: 10: goja.resolveVar1(result) compiler.go:433: 11: goja.loadVal({2}) compiler.go:433: 12: goja._putValueP({}) compiler.go:433: 13: goja.jump(1) compiler.go:433: 14: goja.loadDynamic(result) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitchNoMatch (0.00s) === RUN TestSwitchNoMatchNoDefault compiler.go:433: 0: goja.loadVal({1}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja._dup({}) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja._op_strict_eq({}) compiler.go:433: 5: goja.jneP(3) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja.jump(3) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja.jump(1) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitchNoMatchNoDefault (0.00s) === RUN TestSwitchNoMatchNoDefaultNoResult compiler.go:433: 0: goja.loadVal({1}) compiler.go:433: 1: goja._dup({}) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._op_strict_eq({}) compiler.go:433: 4: goja.jneP(3) compiler.go:433: 5: goja._pop({}) compiler.go:433: 6: goja.jump(3) compiler.go:433: 7: goja._pop({}) compiler.go:433: 8: goja.jump(1) compiler.go:433: 9: goja.loadVal({42}) compiler.go:433: 10: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitchNoMatchNoDefaultNoResult (0.00s) === RUN TestSwitchNoMatchNoDefaultNoResultMatch compiler.go:433: 0: goja.loadVal({1}) compiler.go:433: 1: goja._dup({}) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja._op_strict_eq({}) compiler.go:433: 4: goja.jneP(3) compiler.go:433: 5: goja._pop({}) compiler.go:433: 6: goja.jump(3) compiler.go:433: 7: goja._pop({}) compiler.go:433: 8: goja.jump(1) compiler.go:433: 9: goja.loadVal({42}) compiler.go:433: 10: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitchNoMatchNoDefaultNoResultMatch (0.00s) === RUN TestEmptySwitchNoResult compiler.go:433: 0: goja.loadVal({1}) compiler.go:433: 1: goja._pop({}) compiler.go:433: 2: goja.jump(1) compiler.go:433: 3: goja.loadVal({42}) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEmptySwitchNoResult (0.00s) === RUN TestGetOwnPropertyNames compiler.go:433: 0: *goja.bindGlobal(&{[o hasProp1 hasProp2 names i p] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({42}) compiler.go:433: 4: goja.putProp(prop1) compiler.go:433: 5: goja.loadVal({test}) compiler.go:433: 6: goja.putProp(prop2) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.resolveVar1(hasProp1) compiler.go:433: 9: goja.loadVal({false}) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.resolveVar1(hasProp2) compiler.go:433: 12: goja.loadVal({false}) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.resolveVar1(names) compiler.go:433: 15: goja.loadDynamic(Object) compiler.go:433: 16: goja.getPropCallee(getOwnPropertyNames) compiler.go:433: 17: goja.loadDynamic(o) compiler.go:433: 18: goja.call(1) compiler.go:433: 19: goja._initValueP({}) compiler.go:433: 20: goja.loadDynamic(names) compiler.go:433: 21: goja._enumerate({}) compiler.go:433: 22: goja.enumNext(33) compiler.go:433: 23: goja.resolveVar1(i) compiler.go:433: 24: goja._enumGet({}) compiler.go:433: 25: goja._putValueP({}) compiler.go:433: 26: goja.resolveVar1(p) compiler.go:433: 27: goja.loadDynamic(names) compiler.go:433: 28: goja.loadDynamic(i) compiler.go:433: 29: goja._getElem({}) compiler.go:433: 30: goja._initValueP({}) compiler.go:433: 31: goja.loadDynamic(p) compiler.go:433: 32: goja._dup({}) compiler.go:433: 33: goja.loadVal({prop1}) compiler.go:433: 34: goja._op_strict_eq({}) compiler.go:433: 35: goja.jneP(3) compiler.go:433: 36: goja._pop({}) compiler.go:433: 37: goja.jump(9) compiler.go:433: 38: goja._dup({}) compiler.go:433: 39: goja.loadVal({prop2}) compiler.go:433: 40: goja._op_strict_eq({}) compiler.go:433: 41: goja.jneP(3) compiler.go:433: 42: goja._pop({}) compiler.go:433: 43: goja.jump(7) compiler.go:433: 44: goja._pop({}) compiler.go:433: 45: goja.jump(9) compiler.go:433: 46: goja.resolveVar1(hasProp1) compiler.go:433: 47: goja.loadVal({true}) compiler.go:433: 48: goja._putValueP({}) compiler.go:433: 49: goja.jump(5) compiler.go:433: 50: goja.resolveVar1(hasProp2) compiler.go:433: 51: goja.loadVal({true}) compiler.go:433: 52: goja._putValueP({}) compiler.go:433: 53: goja.jump(1) compiler.go:433: 54: goja.jump(-32) compiler.go:433: 55: goja._enumPop({}) compiler.go:433: 56: goja.jump(2) compiler.go:433: 57: goja._enumPopClose({}) compiler.go:433: 58: goja.loadDynamic(hasProp1) compiler.go:433: 59: goja.jne(2) compiler.go:433: 60: goja.loadDynamic(hasProp2) compiler.go:433: 61: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGetOwnPropertyNames (0.00s) === RUN TestArrayLiteral compiler.go:433: 0: *goja.newFunc(&{0xc0003f4c30 F1 function F1() { f1Called = true; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(f1Called) compiler.go:433: > 2: goja.loadVal({true}) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc0003f4c80 F2 function F2() { f2Called = true; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(f2Called) compiler.go:433: > 2: goja.loadVal({true}) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 2: *goja.newFunc(&{0xc0003f4cd0 F3 function F3() { f3Called = true; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(f3Called) compiler.go:433: > 2: goja.loadVal({true}) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 3: *goja.bindGlobal(&{[f1Called f2Called f3Called errorThrown a] [F1 F2 F3] [] [] false}) compiler.go:433: 4: goja.resolveVar1(f1Called) compiler.go:433: 5: goja.loadVal({false}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(f2Called) compiler.go:433: 8: goja.loadVal({false}) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(f3Called) compiler.go:433: 11: goja.loadVal({false}) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.resolveVar1(errorThrown) compiler.go:433: 14: goja.loadVal({false}) compiler.go:433: 15: goja._initValueP({}) compiler.go:433: 16: goja.try({16 0}) compiler.go:433: 17: goja.resolveVar1(a) compiler.go:433: 18: goja.newArray(3) compiler.go:433: 19: goja.loadDynamicCallee(F1) compiler.go:433: 20: goja.call(0) compiler.go:433: 21: goja._pushArrayItem({}) compiler.go:433: 22: goja.loadDynamicCallee(x) compiler.go:433: 23: goja.loadDynamicCallee(F3) compiler.go:433: 24: goja.call(0) compiler.go:433: 25: goja.call(1) compiler.go:433: 26: goja._pushArrayItem({}) compiler.go:433: 27: goja.loadDynamicCallee(F2) compiler.go:433: 28: goja.call(0) compiler.go:433: 29: goja._pushArrayItem({}) compiler.go:433: 30: goja._initValueP({}) compiler.go:433: 31: goja.jump(13) compiler.go:433: 32: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 33: goja.loadStackLex(1) compiler.go:433: 34: goja.loadDynamic(ReferenceError) compiler.go:433: 35: goja._op_instanceof({}) compiler.go:433: 36: goja.jneP(5) compiler.go:433: 37: goja.resolveVar1(errorThrown) compiler.go:433: 38: goja.loadVal({true}) compiler.go:433: 39: goja._putValueP({}) compiler.go:433: 40: goja.jump(3) compiler.go:433: 41: goja.loadStackLex(1) compiler.go:433: 42: goja._throw({}) compiler.go:433: 43: *goja.leaveBlock(&{1 false}) compiler.go:433: 44: goja.leaveTry({}) compiler.go:433: 45: goja.loadDynamic(f1Called) compiler.go:433: 46: goja.jne(3) compiler.go:433: 47: goja.loadDynamic(f2Called) compiler.go:433: 48: goja._not({}) compiler.go:433: 49: goja.jne(2) compiler.go:433: 50: goja.loadDynamic(f3Called) compiler.go:433: 51: goja.jne(2) compiler.go:433: 52: goja.loadDynamic(errorThrown) compiler.go:433: 53: goja.jne(4) compiler.go:433: 54: goja.loadDynamic(a) compiler.go:433: 55: goja.loadDynamic(undefined) compiler.go:433: 56: goja._op_strict_eq({}) compiler.go:433: 57: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayLiteral (0.00s) === RUN TestJumpOutOfReturn compiler.go:433: 0: *goja.newFunc(&{0xc0003f4fa0 f function f() { var a; if (a == 0) { return true; } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.loadStack(1) compiler.go:433: > 2: goja.loadVal({0}) compiler.go:433: > 3: goja._op_eq({}) compiler.go:433: > 4: goja.jneP(3) compiler.go:433: > 5: goja.loadVal({true}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestJumpOutOfReturn (0.00s) === RUN TestSwitchJumpOutOfReturn compiler.go:433: 0: *goja.newFunc(&{0xc0003f51d0 f function f(x) { switch(x) { case 0: break; default: return x; } } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja._dup({}) compiler.go:433: > 3: goja.loadVal({0}) compiler.go:433: > 4: goja._op_strict_eq({}) compiler.go:433: > 5: goja.jneP(3) compiler.go:433: > 6: goja._pop({}) compiler.go:433: > 7: goja.jump(3) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja.jump(2) compiler.go:433: > 10: goja.jump(3) compiler.go:433: > 11: goja.loadStackLex(-1) compiler.go:433: > 12: goja._ret({}) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSwitchJumpOutOfReturn (0.00s) === RUN TestSetToReadOnlyPropertyStrictBracket compiler.go:433: 0: *goja.bindGlobal(&{[o thrown] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1Strict(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1Strict(thrown) compiler.go:433: 5: goja.loadVal({false}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(Object) compiler.go:433: 8: goja.getPropCallee(defineProperty) compiler.go:433: 9: goja.loadDynamic(o) compiler.go:433: 10: goja.loadVal({test}) compiler.go:433: 11: goja._newObject({}) compiler.go:433: 12: goja.loadVal({42}) compiler.go:433: 13: goja.putProp(value) compiler.go:433: 14: goja.loadVal({true}) compiler.go:433: 15: goja.putProp(configurable) compiler.go:433: 16: goja.call(3) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.try({5 0}) compiler.go:433: 19: goja.loadDynamic(o) compiler.go:433: 20: goja.loadVal({43}) compiler.go:433: 21: goja.setPropStrictP(test) compiler.go:433: 22: goja.jump(8) compiler.go:433: 23: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 24: goja.resolveVar1Strict(thrown) compiler.go:433: 25: goja.loadStackLex(1) compiler.go:433: 26: goja.loadDynamic(TypeError) compiler.go:433: 27: goja._op_instanceof({}) compiler.go:433: 28: goja._putValueP({}) compiler.go:433: 29: *goja.leaveBlock(&{1 false}) compiler.go:433: 30: goja.leaveTry({}) compiler.go:433: 31: goja.loadDynamic(thrown) compiler.go:433: 32: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSetToReadOnlyPropertyStrictBracket (0.00s) === RUN TestSetToReadOnlyPropertyStrictDot compiler.go:433: 0: *goja.bindGlobal(&{[o thrown] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1Strict(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1Strict(thrown) compiler.go:433: 5: goja.loadVal({false}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(Object) compiler.go:433: 8: goja.getPropCallee(defineProperty) compiler.go:433: 9: goja.loadDynamic(o) compiler.go:433: 10: goja.loadVal({test}) compiler.go:433: 11: goja._newObject({}) compiler.go:433: 12: goja.loadVal({42}) compiler.go:433: 13: goja.putProp(value) compiler.go:433: 14: goja.loadVal({true}) compiler.go:433: 15: goja.putProp(configurable) compiler.go:433: 16: goja.call(3) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.try({5 0}) compiler.go:433: 19: goja.loadDynamic(o) compiler.go:433: 20: goja.loadVal({43}) compiler.go:433: 21: goja.setPropStrictP(test) compiler.go:433: 22: goja.jump(8) compiler.go:433: 23: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 24: goja.resolveVar1Strict(thrown) compiler.go:433: 25: goja.loadStackLex(1) compiler.go:433: 26: goja.loadDynamic(TypeError) compiler.go:433: 27: goja._op_instanceof({}) compiler.go:433: 28: goja._putValueP({}) compiler.go:433: 29: *goja.leaveBlock(&{1 false}) compiler.go:433: 30: goja.leaveTry({}) compiler.go:433: 31: goja.loadDynamic(thrown) compiler.go:433: 32: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSetToReadOnlyPropertyStrictDot (0.00s) === RUN TestDeleteNonConfigurablePropertyStrictBracket compiler.go:433: 0: *goja.bindGlobal(&{[o thrown] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1Strict(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1Strict(thrown) compiler.go:433: 5: goja.loadVal({false}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(Object) compiler.go:433: 8: goja.getPropCallee(defineProperty) compiler.go:433: 9: goja.loadDynamic(o) compiler.go:433: 10: goja.loadVal({test}) compiler.go:433: 11: goja._newObject({}) compiler.go:433: 12: goja.loadVal({42}) compiler.go:433: 13: goja.putProp(value) compiler.go:433: 14: goja.call(3) compiler.go:433: 15: goja._pop({}) compiler.go:433: 16: goja.try({5 0}) compiler.go:433: 17: goja.loadDynamic(o) compiler.go:433: 18: goja.deletePropStrict(test) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.jump(8) compiler.go:433: 21: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 22: goja.resolveVar1Strict(thrown) compiler.go:433: 23: goja.loadStackLex(1) compiler.go:433: 24: goja.loadDynamic(TypeError) compiler.go:433: 25: goja._op_instanceof({}) compiler.go:433: 26: goja._putValueP({}) compiler.go:433: 27: *goja.leaveBlock(&{1 false}) compiler.go:433: 28: goja.leaveTry({}) compiler.go:433: 29: goja.loadDynamic(thrown) compiler.go:433: 30: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDeleteNonConfigurablePropertyStrictBracket (0.00s) === RUN TestDeleteNonConfigurablePropertyStrictDot compiler.go:433: 0: *goja.bindGlobal(&{[o thrown] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1Strict(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1Strict(thrown) compiler.go:433: 5: goja.loadVal({false}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(Object) compiler.go:433: 8: goja.getPropCallee(defineProperty) compiler.go:433: 9: goja.loadDynamic(o) compiler.go:433: 10: goja.loadVal({test}) compiler.go:433: 11: goja._newObject({}) compiler.go:433: 12: goja.loadVal({42}) compiler.go:433: 13: goja.putProp(value) compiler.go:433: 14: goja.call(3) compiler.go:433: 15: goja._pop({}) compiler.go:433: 16: goja.try({5 0}) compiler.go:433: 17: goja.loadDynamic(o) compiler.go:433: 18: goja.deletePropStrict(test) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.jump(8) compiler.go:433: 21: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 22: goja.resolveVar1Strict(thrown) compiler.go:433: 23: goja.loadStackLex(1) compiler.go:433: 24: goja.loadDynamic(TypeError) compiler.go:433: 25: goja._op_instanceof({}) compiler.go:433: 26: goja._putValueP({}) compiler.go:433: 27: *goja.leaveBlock(&{1 false}) compiler.go:433: 28: goja.leaveTry({}) compiler.go:433: 29: goja.loadDynamic(thrown) compiler.go:433: 30: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDeleteNonConfigurablePropertyStrictDot (0.00s) === RUN TestCompound1 compiler.go:433: 0: *goja.bindGlobal(&{[x scope f] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(x) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(scope) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja.putProp(x) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja.loadDynamic(scope) compiler.go:433: 10: goja._enterWith({}) compiler.go:433: 11: goja.resolveVar1(f) compiler.go:433: 12: *goja.newFunc(&{0xc0003f5900 f function() { x *= (delete scope.x, 2); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(x) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadDynamic(scope) compiler.go:433: > 4: goja.deleteProp(x) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja.loadVal({2}) compiler.go:433: > 7: goja._mul({}) compiler.go:433: > 8: goja._putValueP({}) compiler.go:433: > 9: goja._loadUndef({}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 13: goja._putValueP({}) compiler.go:433: 14: goja._leaveWith({}) compiler.go:433: 15: goja.loadDynamicCallee(f) compiler.go:433: 16: goja.call(0) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.loadDynamic(scope) compiler.go:433: 19: goja.getProp(x) compiler.go:433: 20: goja.loadVal({2}) compiler.go:433: 21: goja._op_strict_eq({}) compiler.go:433: 22: goja.jne(4) compiler.go:433: 23: goja.loadDynamic(x) compiler.go:433: 24: goja.loadVal({0}) compiler.go:433: 25: goja._op_strict_eq({}) compiler.go:433: 26: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestCompound1 (0.00s) === RUN TestCompound2 compiler.go:433: 0: *goja.bindGlobal(&{[x] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(x) compiler.go:433: 2: goja.loadVal({x}) compiler.go:433: 3: goja._putValueP({}) compiler.go:433: 4: goja.resolveVar1(x) compiler.go:433: 5: goja._loadUndef({}) compiler.go:433: 6: goja._getValue({}) compiler.go:433: 7: goja.loadVal({1}) compiler.go:433: 8: goja._xor({}) compiler.go:433: 9: goja.rdupN(1) compiler.go:433: 10: goja._putValue({}) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestCompound2 (0.00s) === RUN TestDeleteArguments --- PASS: TestDeleteArguments (0.00s) === RUN TestReturnUndefined compiler.go:433: 0: *goja.newFunc(&{0xc0003f5ea0 f function f() { return x; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(x) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[thrown] [f] [] [] false}) compiler.go:433: 2: goja.resolveVar1(thrown) compiler.go:433: 3: goja.loadVal({false}) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.try({5 0}) compiler.go:433: 6: goja.loadDynamicCallee(f) compiler.go:433: 7: goja.call(0) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja.jump(8) compiler.go:433: 10: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 11: goja.resolveVar1(thrown) compiler.go:433: 12: goja.loadStackLex(1) compiler.go:433: 13: goja.loadDynamic(ReferenceError) compiler.go:433: 14: goja._op_instanceof({}) compiler.go:433: 15: goja._putValueP({}) compiler.go:433: 16: *goja.leaveBlock(&{1 false}) compiler.go:433: 17: goja.leaveTry({}) compiler.go:433: 18: goja.loadDynamic(thrown) compiler.go:433: 19: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestReturnUndefined (0.00s) === RUN TestForBreak compiler.go:433: 0: *goja.bindGlobal(&{[supreme count __evaluated] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(supreme) compiler.go:433: 2: goja.loadVal({5}) compiler.go:433: 3: goja._putValueP({}) compiler.go:433: 4: goja.resolveVar1(__evaluated) compiler.go:433: 5: goja.loadDynamicCallee(eval) compiler.go:433: 6: goja.loadVal({for(count=0;;) {if (count===supreme)break;else count++; }}) compiler.go:433: 7: goja.callEval(1) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja._clearResult({}) compiler.go:433: 10: goja.loadDynamic(__evaluated) compiler.go:433: 11: goja.loadVal({{{}}}) compiler.go:433: 12: goja._op_strict_neq({}) compiler.go:433: 13: goja.jneP(8) compiler.go:433: 14: goja.loadDynamic(Error) compiler.go:433: 15: goja.loadVal({#1: __evaluated === 4. Actual: __evaluated ===}) compiler.go:433: 16: goja.loadDynamic(__evaluated) compiler.go:433: 17: goja._add({}) compiler.go:433: 18: goja._new(1) compiler.go:433: 19: goja._throw({}) compiler.go:433: 20: goja.jump(2) compiler.go:433: 21: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForBreak (0.00s) === RUN TestLargeNumberLiteral compiler.go:433: 0: *goja.bindGlobal(&{[x] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(x) compiler.go:433: 2: goja.loadVal({9.671406556917033e+24}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(x) compiler.go:433: 5: goja.getPropCallee(toString) compiler.go:433: 6: goja.call(0) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestLargeNumberLiteral (0.00s) === RUN TestIncDelete compiler.go:433: 0: *goja.bindGlobal(&{[o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.putProp(x) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(o) compiler.go:433: 7: goja._dup({}) compiler.go:433: 8: goja.getProp(x) compiler.go:433: 9: goja.loadDynamic(o) compiler.go:433: 10: goja.deleteProp(x) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.loadVal({1}) compiler.go:433: 13: goja._add({}) compiler.go:433: 14: goja.setPropP(x) compiler.go:433: 15: goja.loadDynamic(o) compiler.go:433: 16: goja.getProp(x) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestIncDelete (0.00s) === RUN TestCompoundAssignRefError compiler.go:433: 0: *goja.bindGlobal(&{[thrown] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(thrown) compiler.go:433: 2: goja.loadVal({false}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.try({7 0}) compiler.go:433: 5: goja.resolveVar1(a) compiler.go:433: 6: goja._getValue({}) compiler.go:433: 7: goja.loadVal({1}) compiler.go:433: 8: goja._mul({}) compiler.go:433: 9: goja._putValueP({}) compiler.go:433: 10: goja.jump(13) compiler.go:433: 11: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 12: goja.loadStackLex(1) compiler.go:433: 13: goja.loadDynamic(ReferenceError) compiler.go:433: 14: goja._op_instanceof({}) compiler.go:433: 15: goja.jneP(5) compiler.go:433: 16: goja.resolveVar1(thrown) compiler.go:433: 17: goja.loadVal({true}) compiler.go:433: 18: goja._putValueP({}) compiler.go:433: 19: goja.jump(3) compiler.go:433: 20: goja.loadStackLex(1) compiler.go:433: 21: goja._throw({}) compiler.go:433: 22: *goja.leaveBlock(&{1 false}) compiler.go:433: 23: goja.leaveTry({}) compiler.go:433: 24: goja.loadDynamic(thrown) compiler.go:433: 25: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestCompoundAssignRefError (0.00s) === RUN TestObjectLiteral__Proto__ compiler.go:433: 0: *goja.bindGlobal(&{[o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({{}}) compiler.go:433: 4: goja._setProto({}) compiler.go:433: 5: goja.loadVal({42}) compiler.go:433: 6: goja.putProp(test) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.loadDynamic(Object) compiler.go:433: 9: goja.getPropCallee(getPrototypeOf) compiler.go:433: 10: goja.loadDynamic(o) compiler.go:433: 11: goja.call(1) compiler.go:433: 12: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectLiteral__Proto__ (0.00s) === RUN TestEmptyCodeError --- PASS: TestEmptyCodeError (0.00s) === RUN TestForOfArray compiler.go:433: 0: *goja.bindGlobal(&{[array i value] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(array) compiler.go:433: 2: goja.newArray(8) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.loadVal({a}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja.loadVal({true}) compiler.go:433: 8: goja._pushArrayItem({}) compiler.go:433: 9: goja.loadVal({false}) compiler.go:433: 10: goja._pushArrayItem({}) compiler.go:433: 11: goja.loadVal({{}}) compiler.go:433: 12: goja._pushArrayItem({}) compiler.go:433: 13: goja._loadNil({}) compiler.go:433: 14: goja._pushArrayItem({}) compiler.go:433: 15: goja.loadDynamic(undefined) compiler.go:433: 16: goja._pushArrayItem({}) compiler.go:433: 17: goja.loadDynamic(NaN) compiler.go:433: 18: goja._pushArrayItem({}) compiler.go:433: 19: goja._initValueP({}) compiler.go:433: 20: goja.resolveVar1(i) compiler.go:433: 21: goja.loadVal({0}) compiler.go:433: 22: goja._initValueP({}) compiler.go:433: 23: goja.loadDynamic(array) compiler.go:433: 24: goja._iterateP({}) compiler.go:433: 25: goja.iterNext(20) compiler.go:433: 26: goja.resolveVar1(value) compiler.go:433: 27: goja._enumGet({}) compiler.go:433: 28: goja._putValueP({}) compiler.go:433: 29: goja.loadDynamic(assert) compiler.go:433: 30: goja.getPropCallee(sameValue) compiler.go:433: 31: goja.loadDynamic(value) compiler.go:433: 32: goja.loadDynamic(array) compiler.go:433: 33: goja.loadDynamic(i) compiler.go:433: 34: goja._getElem({}) compiler.go:433: 35: goja.loadVal({element at index }) compiler.go:433: 36: goja.loadDynamic(i) compiler.go:433: 37: goja._add({}) compiler.go:433: 38: goja.call(3) compiler.go:433: 39: goja._pop({}) compiler.go:433: 40: goja.resolveVar1(i) compiler.go:433: 41: goja._getValue({}) compiler.go:433: 42: goja._inc({}) compiler.go:433: 43: goja._putValueP({}) compiler.go:433: 44: goja.jump(-19) compiler.go:433: 45: goja._enumPop({}) compiler.go:433: 46: goja.jump(2) compiler.go:433: 47: goja._enumPopClose({}) compiler.go:433: 48: goja.loadDynamic(assert) compiler.go:433: 49: goja.getPropCallee(sameValue) compiler.go:433: 50: goja.loadDynamic(i) compiler.go:433: 51: goja.loadVal({8}) compiler.go:433: 52: goja.loadVal({Visits all elements}) compiler.go:433: 53: goja.call(3) compiler.go:433: 54: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForOfArray (0.00s) === RUN TestForOfReturn compiler.go:433: 0: *goja.bindGlobal(&{[callCount iterationCount iterable x] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(callCount) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(iterationCount) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(iterable) compiler.go:433: 8: goja._newObject({}) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(x) compiler.go:433: 11: goja._newObject({}) compiler.go:433: 12: *goja.newMethod(&{{0xc000485040 attr set attr(_) { throw new Test262Error(); } 1 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadDynamic(Test262Error) compiler.go:433: > 2: goja._new(0) compiler.go:433: > 3: goja._throw({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 13: *goja.defineSetterKeyed(&{attr true}) compiler.go:433: 14: goja._initValueP({}) compiler.go:433: 15: goja.loadDynamic(iterable) compiler.go:433: 16: goja.loadDynamic(Symbol) compiler.go:433: 17: goja.getProp(iterator) compiler.go:433: 18: *goja.newFunc(&{0xc000485090 function() { return { next: function() { return { done: false, value: 0 }; }, return: function() { callCount += 1; } } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: *goja.newFunc(&{0xc0004850e0 next function() { return { done: false, value: 0 }; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._newObject({}) compiler.go:433: >> 2: goja.loadVal({false}) compiler.go:433: >> 3: goja.putProp(done) compiler.go:433: >> 4: goja.loadVal({0}) compiler.go:433: >> 5: goja.putProp(value) compiler.go:433: >> 6: goja._ret({}) compiler.go:433: > 3: goja.putProp(next) compiler.go:433: > 4: *goja.newFunc(&{0xc000485130 return function() { callCount += 1; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.resolveVar1(callCount) compiler.go:433: >> 2: goja._getValue({}) compiler.go:433: >> 3: goja.loadVal({1}) compiler.go:433: >> 4: goja._add({}) compiler.go:433: >> 5: goja._putValueP({}) compiler.go:433: >> 6: goja._loadUndef({}) compiler.go:433: >> 7: goja._ret({}) compiler.go:433: > 5: goja.putProp(return) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 19: goja._setElemP({}) compiler.go:433: 20: goja.loadDynamic(assert) compiler.go:433: 21: goja.getPropCallee(throws) compiler.go:433: 22: goja.loadDynamic(Test262Error) compiler.go:433: 23: *goja.newFunc(&{0xc000485180 function() { for (x.attr of iterable) { iterationCount += 1; } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(iterable) compiler.go:433: > 2: goja._iterateP({}) compiler.go:433: > 3: goja.iterNext(10) compiler.go:433: > 4: goja.loadDynamic(x) compiler.go:433: > 5: goja._enumGet({}) compiler.go:433: > 6: goja.setPropP(attr) compiler.go:433: > 7: goja.resolveVar1(iterationCount) compiler.go:433: > 8: goja._getValue({}) compiler.go:433: > 9: goja.loadVal({1}) compiler.go:433: > 10: goja._add({}) compiler.go:433: > 11: goja._putValueP({}) compiler.go:433: > 12: goja.jump(-9) compiler.go:433: > 13: goja._enumPop({}) compiler.go:433: > 14: goja.jump(2) compiler.go:433: > 15: goja._enumPopClose({}) compiler.go:433: > 16: goja._loadUndef({}) compiler.go:433: > 17: goja._ret({}) compiler.go:433: 24: goja.call(2) compiler.go:433: 25: goja._pop({}) compiler.go:433: 26: goja.loadDynamic(assert) compiler.go:433: 27: goja.getPropCallee(sameValue) compiler.go:433: 28: goja.loadDynamic(iterationCount) compiler.go:433: 29: goja.loadVal({0}) compiler.go:433: 30: goja.loadVal({The loop body is not evaluated}) compiler.go:433: 31: goja.call(3) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja.loadDynamic(assert) compiler.go:433: 34: goja.getPropCallee(sameValue) compiler.go:433: 35: goja.loadDynamic(callCount) compiler.go:433: 36: goja.loadVal({1}) compiler.go:433: 37: goja.loadVal({Iterator is closed}) compiler.go:433: 38: goja.call(3) compiler.go:433: 39: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForOfReturn (0.00s) === RUN TestForOfReturn1 compiler.go:433: 0: *goja.bindGlobal(&{[iterable iterationCount] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(iterable) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(iterationCount) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(iterable) compiler.go:433: 8: goja.loadDynamic(Symbol) compiler.go:433: 9: goja.getProp(iterator) compiler.go:433: 10: *goja.newFunc(&{0xc0004855e0 function() { return { next: function() { return { done: false, value: null }; }, get return() { throw new Test262Error(); } }; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: *goja.newFunc(&{0xc000485630 next function() { return { done: false, value: null }; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._newObject({}) compiler.go:433: >> 2: goja.loadVal({false}) compiler.go:433: >> 3: goja.putProp(done) compiler.go:433: >> 4: goja.loadVal({{}}) compiler.go:433: >> 5: goja.putProp(value) compiler.go:433: >> 6: goja._ret({}) compiler.go:433: > 3: goja.putProp(next) compiler.go:433: > 4: *goja.newMethod(&{{0xc000485680 return get return() { throw new Test262Error(); } 0 false} 1}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(Test262Error) compiler.go:433: >> 2: goja._new(0) compiler.go:433: >> 3: goja._throw({}) compiler.go:433: >> 4: goja._loadUndef({}) compiler.go:433: >> 5: goja._ret({}) compiler.go:433: > 5: *goja.defineGetterKeyed(&{return true}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 11: goja._setElemP({}) compiler.go:433: 12: goja.loadDynamic(assert) compiler.go:433: 13: goja.getPropCallee(throws) compiler.go:433: 14: goja.loadDynamic(Test262Error) compiler.go:433: 15: *goja.newFunc(&{0xc0004856d0 function() { for (var x of iterable) { iterationCount += 1; break; } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.loadDynamic(iterable) compiler.go:433: > 2: goja._iterateP({}) compiler.go:433: > 3: goja.iterNext(10) compiler.go:433: > 4: goja._enumGet({}) compiler.go:433: > 5: goja.storeStackP(1) compiler.go:433: > 6: goja.resolveVar1(iterationCount) compiler.go:433: > 7: goja._getValue({}) compiler.go:433: > 8: goja.loadVal({1}) compiler.go:433: > 9: goja._add({}) compiler.go:433: > 10: goja._putValueP({}) compiler.go:433: > 11: goja.jump(4) compiler.go:433: > 12: goja.jump(-9) compiler.go:433: > 13: goja._enumPop({}) compiler.go:433: > 14: goja.jump(2) compiler.go:433: > 15: goja._enumPopClose({}) compiler.go:433: > 16: goja._loadUndef({}) compiler.go:433: > 17: goja._ret({}) compiler.go:433: 16: goja.call(2) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.loadDynamic(assert) compiler.go:433: 19: goja.getPropCallee(sameValue) compiler.go:433: 20: goja.loadDynamic(iterationCount) compiler.go:433: 21: goja.loadVal({1}) compiler.go:433: 22: goja.loadVal({The loop body is evaluated}) compiler.go:433: 23: goja.call(3) compiler.go:433: 24: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForOfReturn1 (0.00s) === RUN TestForOfLet compiler.go:433: 0: *goja.newFunc(&{0xc0004858b0 f function f() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[iterCount let] [f] [] [] false}) compiler.go:433: 2: goja.resolveVar1(iterCount) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.newArray(1) compiler.go:433: 6: goja.loadVal({23}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja._iterateP({}) compiler.go:433: 9: goja.iterNext(22) compiler.go:433: 10: goja.resolveVar1(let) compiler.go:433: 11: goja._enumGet({}) compiler.go:433: 12: goja._putValueP({}) compiler.go:433: 13: goja.loadDynamicCallee(f) compiler.go:433: 14: goja.loadDynamic(let) compiler.go:433: 15: goja.call(1) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadDynamic(let) compiler.go:433: 18: goja.loadVal({23}) compiler.go:433: 19: goja._op_neq({}) compiler.go:433: 20: goja.jneP(5) compiler.go:433: 21: goja.loadDynamic(Error) compiler.go:433: 22: goja.loadVal({}) compiler.go:433: 23: goja._new(1) compiler.go:433: 24: goja._throw({}) compiler.go:433: 25: goja.resolveVar1(iterCount) compiler.go:433: 26: goja._getValue({}) compiler.go:433: 27: goja.loadVal({1}) compiler.go:433: 28: goja._add({}) compiler.go:433: 29: goja._putValueP({}) compiler.go:433: 30: goja.jump(-21) compiler.go:433: 31: goja._enumPop({}) compiler.go:433: 32: goja.jump(2) compiler.go:433: 33: goja._enumPopClose({}) compiler.go:433: 34: goja.loadDynamic(iterCount) compiler.go:433: 35: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForOfLet (0.00s) === RUN TestForOfLetLet --- PASS: TestForOfLetLet (0.00s) === RUN TestForHeadLet compiler.go:433: 0: goja.resolveVar1(let) compiler.go:433: 1: goja.loadVal({0}) compiler.go:433: 2: goja._putValueP({}) compiler.go:433: 3: goja._clearResult({}) compiler.go:433: 4: goja.loadDynamic(let) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja._op_lt({}) compiler.go:433: 7: goja.jneP(8) compiler.go:433: 8: goja._clearResult({}) compiler.go:433: 9: goja._clearResult({}) compiler.go:433: 10: goja.resolveVar1(let) compiler.go:433: 11: goja._getValue({}) compiler.go:433: 12: goja._inc({}) compiler.go:433: 13: goja._putValueP({}) compiler.go:433: 14: goja.jump(-10) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForHeadLet (0.00s) === RUN TestLhsLet compiler.go:433: 0: goja.resolveVar1(let) compiler.go:433: 1: goja.loadVal({1}) compiler.go:433: 2: goja._putValueP({}) compiler.go:433: 3: goja.loadDynamic(let) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestLhsLet (0.00s) === RUN TestLetPostfixASI --- PASS: TestLetPostfixASI (0.00s) === RUN TestIteratorReturnNormal compiler.go:433: 0: *goja.bindGlobal(&{[iterable iterationCount x] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(iterable) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(iterationCount) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(iterable) compiler.go:433: 8: goja.loadDynamic(Symbol) compiler.go:433: 9: goja.getProp(iterator) compiler.go:433: 10: *goja.newFunc(&{0xc000326190 function() { return { next: function() { return { done: ++iterationCount > 2, value: null }; }, get return() { throw new Test262Error(); } }; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: *goja.newFunc(&{0xc0003261e0 next function() { return { done: ++iterationCount > 2, value: null }; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._newObject({}) compiler.go:433: >> 2: goja.resolveVar1(iterationCount) compiler.go:433: >> 3: goja._loadUndef({}) compiler.go:433: >> 4: goja._getValue({}) compiler.go:433: >> 5: goja._toNumber({}) compiler.go:433: >> 6: goja._inc({}) compiler.go:433: >> 7: goja.rdupN(1) compiler.go:433: >> 8: goja._putValue({}) compiler.go:433: >> 9: goja._pop({}) compiler.go:433: >> 10: goja.loadVal({2}) compiler.go:433: >> 11: goja._op_gt({}) compiler.go:433: >> 12: goja.putProp(done) compiler.go:433: >> 13: goja.loadVal({{}}) compiler.go:433: >> 14: goja.putProp(value) compiler.go:433: >> 15: goja._ret({}) compiler.go:433: > 3: goja.putProp(next) compiler.go:433: > 4: *goja.newMethod(&{{0xc000326230 return get return() { throw new Test262Error(); } 0 false} 1}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(Test262Error) compiler.go:433: >> 2: goja._new(0) compiler.go:433: >> 3: goja._throw({}) compiler.go:433: >> 4: goja._loadUndef({}) compiler.go:433: >> 5: goja._ret({}) compiler.go:433: > 5: *goja.defineGetterKeyed(&{return true}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 11: goja._setElemP({}) compiler.go:433: 12: goja.loadDynamic(iterable) compiler.go:433: 13: goja._iterateP({}) compiler.go:433: 14: goja._clearResult({}) compiler.go:433: 15: goja.iterNext(6) compiler.go:433: 16: goja.resolveVar1(x) compiler.go:433: 17: goja._enumGet({}) compiler.go:433: 18: goja._putValueP({}) compiler.go:433: 19: goja._clearResult({}) compiler.go:433: 20: goja.jump(-5) compiler.go:433: 21: goja._enumPop({}) compiler.go:433: 22: goja.jump(2) compiler.go:433: 23: goja._enumPopClose({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestIteratorReturnNormal (0.00s) === RUN TestIteratorReturnErrorNested compiler.go:433: 0: *goja.newFunc(&{0xc0003265f0 iter function iter(id) { return function() { var count = 0; return { next: function () { return { value: null, done: ++count > 2 }; }, return: function () { returnCalled[id] = true; throw new Error(id); } }; } } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 1 1 true false}) compiler.go:433: > 1: *goja.newFunc(&{0xc000326640 function() { var count = 0; return { next: function () { return { value: null, done: ++count > 2 }; }, return: function () { returnCalled[id] = true; throw new Error(id); } }; } 0 false}) compiler.go:433: >> 0: *goja.enterFunc(&{map[] 1 0 0 1 false false}) compiler.go:433: >> 1: goja.loadVal({0}) compiler.go:433: >> 2: goja.initStashP(0) compiler.go:433: >> 3: goja._newObject({}) compiler.go:433: >> 4: *goja.newFunc(&{0xc000326690 next function () { return { value: null, done: ++count > 2 }; } 0 false}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >>> 1: goja._newObject({}) compiler.go:433: >>> 2: goja.loadVal({{}}) compiler.go:433: >>> 3: goja.putProp(value) compiler.go:433: >>> 4: goja._loadUndef({}) compiler.go:433: >>> 5: goja.loadStash(0) compiler.go:433: >>> 6: goja._toNumber({}) compiler.go:433: >>> 7: goja._inc({}) compiler.go:433: >>> 8: goja.rdupN(1) compiler.go:433: >>> 9: goja.storeStash(0) compiler.go:433: >>> 10: goja._pop({}) compiler.go:433: >>> 11: goja.loadVal({2}) compiler.go:433: >>> 12: goja._op_gt({}) compiler.go:433: >>> 13: goja.putProp(done) compiler.go:433: >>> 14: goja._ret({}) compiler.go:433: >> 5: goja.putProp(next) compiler.go:433: >> 6: *goja.newFunc(&{0xc0003266e0 return function () { returnCalled[id] = true; throw new Error(id); } 0 false}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >>> 1: goja.loadDynamic(returnCalled) compiler.go:433: >>> 2: goja.loadStashLex(16777216) compiler.go:433: >>> 3: goja.loadVal({true}) compiler.go:433: >>> 4: goja._setElemP({}) compiler.go:433: >>> 5: goja.loadDynamic(Error) compiler.go:433: >>> 6: goja.loadStashLex(16777216) compiler.go:433: >>> 7: goja._new(1) compiler.go:433: >>> 8: goja._throw({}) compiler.go:433: >>> 9: goja._loadUndef({}) compiler.go:433: >>> 10: goja._ret({}) compiler.go:433: >> 7: goja.putProp(return) compiler.go:433: >> 8: goja._ret({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[returnCalled iterable1 iterable2 i j] [iter] [] [] false}) compiler.go:433: 2: goja.resolveVar1(returnCalled) compiler.go:433: 3: goja._newObject({}) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.resolveVar1(iterable1) compiler.go:433: 6: goja._newObject({}) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.loadDynamic(iterable1) compiler.go:433: 9: goja.loadDynamic(Symbol) compiler.go:433: 10: goja.getProp(iterator) compiler.go:433: 11: goja.loadDynamicCallee(iter) compiler.go:433: 12: goja.loadVal({1}) compiler.go:433: 13: goja.call(1) compiler.go:433: 14: goja._setElemP({}) compiler.go:433: 15: goja.resolveVar1(iterable2) compiler.go:433: 16: goja._newObject({}) compiler.go:433: 17: goja._initValueP({}) compiler.go:433: 18: goja.loadDynamic(iterable2) compiler.go:433: 19: goja.loadDynamic(Symbol) compiler.go:433: 20: goja.getProp(iterator) compiler.go:433: 21: goja.loadDynamicCallee(iter) compiler.go:433: 22: goja.loadVal({2}) compiler.go:433: 23: goja.call(1) compiler.go:433: 24: goja._setElemP({}) compiler.go:433: 25: goja.try({27 0}) compiler.go:433: 26: goja.loadDynamic(iterable1) compiler.go:433: 27: goja._iterateP({}) compiler.go:433: 28: goja.iterNext(16) compiler.go:433: 29: goja.resolveVar1(i) compiler.go:433: 30: goja._enumGet({}) compiler.go:433: 31: goja._putValueP({}) compiler.go:433: 32: goja.loadDynamic(iterable2) compiler.go:433: 33: goja._iterateP({}) compiler.go:433: 34: goja.iterNext(6) compiler.go:433: 35: goja.resolveVar1(j) compiler.go:433: 36: goja._enumGet({}) compiler.go:433: 37: goja._putValueP({}) compiler.go:433: 38: goja.jump(4) compiler.go:433: 39: goja.jump(-5) compiler.go:433: 40: goja._enumPop({}) compiler.go:433: 41: goja.jump(2) compiler.go:433: 42: goja._enumPopClose({}) compiler.go:433: 43: goja.jump(-15) compiler.go:433: 44: goja._enumPop({}) compiler.go:433: 45: goja.jump(2) compiler.go:433: 46: goja._enumPopClose({}) compiler.go:433: 47: goja.loadDynamic(Error) compiler.go:433: 48: goja.loadVal({no exception was thrown}) compiler.go:433: 49: goja._new(1) compiler.go:433: 50: goja._throw({}) compiler.go:433: 51: goja.jump(10) compiler.go:433: 52: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 53: goja.loadStackLex(1) compiler.go:433: 54: goja.getProp(message) compiler.go:433: 55: goja.loadVal({2}) compiler.go:433: 56: goja._op_strict_neq({}) compiler.go:433: 57: goja.jneP(3) compiler.go:433: 58: goja.loadStackLex(1) compiler.go:433: 59: goja._throw({}) compiler.go:433: 60: *goja.leaveBlock(&{1 false}) compiler.go:433: 61: goja.leaveTry({}) compiler.go:433: 62: goja.loadDynamic(returnCalled) compiler.go:433: 63: goja.getProp(1) compiler.go:433: 64: goja._not({}) compiler.go:433: 65: goja.jneP(5) compiler.go:433: 66: goja.loadDynamic(Error) compiler.go:433: 67: goja.loadVal({no return 1}) compiler.go:433: 68: goja._new(1) compiler.go:433: 69: goja._throw({}) compiler.go:433: 70: goja._clearResult({}) compiler.go:433: 71: goja.loadDynamic(returnCalled) compiler.go:433: 72: goja.getProp(2) compiler.go:433: 73: goja._not({}) compiler.go:433: 74: goja.jneP(6) compiler.go:433: 75: goja.loadDynamic(Error) compiler.go:433: 76: goja.loadVal({no return 2}) compiler.go:433: 77: goja._new(1) compiler.go:433: 78: goja._throw({}) compiler.go:433: 79: goja.jump(2) compiler.go:433: 80: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 4 --- PASS: TestIteratorReturnErrorNested (0.00s) === RUN TestReturnFromForInLoop compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc000326a50 f function f() { for (var i in {a: 1}) { return true; } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{2 0}) compiler.go:433: > 1: goja._loadCallee({}) compiler.go:433: > 2: goja.initStackP(2) compiler.go:433: > 3: goja._loadCallee({}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadVal({1}) compiler.go:433: > 7: goja.putProp(a) compiler.go:433: > 8: goja._enumerate({}) compiler.go:433: > 9: goja.enumNext(7) compiler.go:433: > 10: goja._enumGet({}) compiler.go:433: > 11: goja.storeStackP(1) compiler.go:433: > 12: goja.loadVal({true}) compiler.go:433: > 13: goja._enumPopClose({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: > 15: goja.jump(-6) compiler.go:433: > 16: goja._enumPop({}) compiler.go:433: > 17: goja.jump(2) compiler.go:433: > 18: goja._enumPopClose({}) compiler.go:433: > 19: goja._loadUndef({}) compiler.go:433: > 20: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestReturnFromForInLoop (0.00s) === RUN TestReturnFromForOfLoop compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc000326cd0 f function f() { for (var i of [1]) { return true; } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{2 0}) compiler.go:433: > 1: goja._loadCallee({}) compiler.go:433: > 2: goja.initStackP(2) compiler.go:433: > 3: goja._loadCallee({}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: goja.newArray(1) compiler.go:433: > 6: goja.loadVal({1}) compiler.go:433: > 7: goja._pushArrayItem({}) compiler.go:433: > 8: goja._iterateP({}) compiler.go:433: > 9: goja.iterNext(7) compiler.go:433: > 10: goja._enumGet({}) compiler.go:433: > 11: goja.storeStackP(1) compiler.go:433: > 12: goja.loadVal({true}) compiler.go:433: > 13: goja._enumPopClose({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: > 15: goja.jump(-6) compiler.go:433: > 16: goja._enumPop({}) compiler.go:433: > 17: goja.jump(2) compiler.go:433: > 18: goja._enumPopClose({}) compiler.go:433: > 19: goja._loadUndef({}) compiler.go:433: > 20: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestReturnFromForOfLoop (0.00s) === RUN TestIfStackLeaks compiler.go:433: 0: *goja.bindGlobal(&{[t] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(t) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.loadDynamic(t) compiler.go:433: 6: goja.loadVal({0}) compiler.go:433: 7: goja._op_strict_eq({}) compiler.go:433: 8: goja.jneP(4) compiler.go:433: 9: goja.loadDynamic(t) compiler.go:433: 10: goja._saveResult({}) compiler.go:433: 11: goja.jump(2) compiler.go:433: 12: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestIfStackLeaks (0.00s) === RUN TestWithCallee compiler.go:433: 0: *goja.newFunc(&{0xc000327130 O function O() { var that = this; this.m = function() { return this === that; } } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 0 1 false false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.initStashP(0) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: *goja.newFunc(&{0xc000327180 function() { return this === that; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._boxThis({}) compiler.go:433: >> 2: goja.loadStack(0) compiler.go:433: >> 3: goja.loadStash(0) compiler.go:433: >> 4: goja._op_strict_eq({}) compiler.go:433: >> 5: goja._ret({}) compiler.go:433: > 6: goja.setPropP(m) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [O] [] [] false}) compiler.go:433: 2: goja.loadDynamic(O) compiler.go:433: 3: goja._new(0) compiler.go:433: 4: goja._enterWith({}) compiler.go:433: 5: goja.loadDynamicCallee(m) compiler.go:433: 6: goja.call(0) compiler.go:433: 7: goja._saveResult({}) compiler.go:433: 8: goja._leaveWith({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestWithCallee (0.00s) === RUN TestWithScope compiler.go:433: 0: *goja.newFunc(&{0xc0003275e0 f function f(o) { var x = 42; function innerf(o) { with (o) { return x; } } return innerf(o); } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 1 1 1 false false}) compiler.go:433: > 1: *goja.newFunc(&{0xc000327630 innerf function innerf(o) { with (o) { return x; } } 1 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: >> 1: goja.loadStackLex(-1) compiler.go:433: >> 2: goja._enterWith({}) compiler.go:433: >> 3: *goja.loadMixed(&{x 16777216 false}) compiler.go:433: >> 4: goja._ret({}) compiler.go:433: >> 5: goja._leaveWith({}) compiler.go:433: >> 6: goja._loadUndef({}) compiler.go:433: >> 7: goja._ret({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadVal({42}) compiler.go:433: > 4: goja.initStashP(0) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja.loadStackLex(1) compiler.go:433: > 7: goja.loadStackLex(-1) compiler.go:433: > 8: goja.call(1) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja._newObject({}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestWithScope (0.00s) === RUN TestEvalCallee compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc0003279f0 function () { 'use strict'; var v = function() { return this === undefined; }; return eval('v()'); } 0 true}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:2147483650 v:1073741825] 3 0 0 1 true false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.createArgsUnmapped(0) compiler.go:433: > 3: goja.initStashP(2) compiler.go:433: > 4: *goja.newFunc(&{0xc000327a40 v function() { return this === undefined; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStack(0) compiler.go:433: >> 2: goja.loadDynamic(undefined) compiler.go:433: >> 3: goja._op_strict_eq({}) compiler.go:433: >> 4: goja._ret({}) compiler.go:433: > 5: goja.initStashP(1) compiler.go:433: > 6: goja.loadDynamicCallee(eval) compiler.go:433: > 7: goja.loadVal({v()}) compiler.go:433: > 8: goja.callEvalStrict(1) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestEvalCallee (0.00s) === RUN TestEvalBindingDeleteVar compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc000327db0 function () { eval("var x = 1"); return x === 1 && delete x; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: goja.loadDynamicCallee(eval) compiler.go:433: > 6: goja.loadVal({var x = 1}) compiler.go:433: > 7: goja.callEval(1) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja.loadDynamic(x) compiler.go:433: > 10: goja.loadVal({1}) compiler.go:433: > 11: goja._op_strict_eq({}) compiler.go:433: > 12: goja.jne(2) compiler.go:433: > 13: goja.deleteVar(x) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestEvalBindingDeleteVar (0.00s) === RUN TestEvalBindingDeleteFunc compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc000360190 function () { eval("function x(){}"); return typeof x === "function" && delete x; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: goja.loadDynamicCallee(eval) compiler.go:433: > 6: goja.loadVal({function x(){}}) compiler.go:433: > 7: goja.callEval(1) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja.loadDynamicRef(x) compiler.go:433: > 10: goja._typeof({}) compiler.go:433: > 11: goja.loadVal({function}) compiler.go:433: > 12: goja._op_strict_eq({}) compiler.go:433: > 13: goja.jne(2) compiler.go:433: > 14: goja.deleteVar(x) compiler.go:433: > 15: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestEvalBindingDeleteFunc (0.00s) === RUN TestDeleteGlobalLexical compiler.go:433: 0: *goja.bindGlobal(&{[] [] [x] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(x) compiler.go:433: 3: goja.deleteVar(x) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDeleteGlobalLexical (0.00s) === RUN TestDeleteGlobalEval compiler.go:433: 0: goja.loadDynamicCallee(eval) compiler.go:433: 1: goja.loadVal({var x}) compiler.go:433: 2: goja.callEval(1) compiler.go:433: 3: goja._pop({}) compiler.go:433: 4: goja.deleteVar(x) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDeleteGlobalEval (0.00s) === RUN TestTryResultEmpty compiler.go:433: 0: goja.try({0 3}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja.enterFinally({}) compiler.go:433: 3: goja.leaveFinally({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryResultEmpty (0.00s) === RUN TestTryResultEmptyCatch compiler.go:433: 0: goja.try({5 0}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja.loadVal({{}}) compiler.go:433: 3: goja._throw({}) compiler.go:433: 4: goja.jump(3) compiler.go:433: 5: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 6: *goja.leaveBlock(&{1 false}) compiler.go:433: 7: goja.leaveTry({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryResultEmptyCatch (0.00s) === RUN TestTryResultEmptyContinueLoop compiler.go:433: 0: *goja.bindGlobal(&{[i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(i) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja._clearResult({}) compiler.go:433: 5: goja.loadDynamic(i) compiler.go:433: 6: goja.loadVal({2}) compiler.go:433: 7: goja._op_lt({}) compiler.go:433: 8: goja.jneP(19) compiler.go:433: 9: goja._clearResult({}) compiler.go:433: 10: goja.try({4 0}) compiler.go:433: 11: goja.loadVal({{}}) compiler.go:433: 12: goja._throw({}) compiler.go:433: 13: goja.jump(6) compiler.go:433: 14: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 15: *goja.leaveBlock(&{1 false}) compiler.go:433: 16: goja.leaveTry({}) compiler.go:433: 17: goja.jump(5) compiler.go:433: 18: *goja.leaveBlock(&{1 false}) compiler.go:433: 19: goja.leaveTry({}) compiler.go:433: 20: goja.loadVal({bad}) compiler.go:433: 21: goja._saveResult({}) compiler.go:433: 22: goja.resolveVar1(i) compiler.go:433: 23: goja._getValue({}) compiler.go:433: 24: goja._inc({}) compiler.go:433: 25: goja._putValueP({}) compiler.go:433: 26: goja.jump(-21) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryResultEmptyContinueLoop (0.00s) === RUN TestTryEmptyCatchStackLeak compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc000360e60 function() { var f; // Make sure the outer function is not stashless. (function() { f++; })(); try { throw new Error(); } catch(e) {} } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 0 1 false false}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: *goja.newFunc(&{0xc000360eb0 function() { f++; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(0) compiler.go:433: >> 2: goja._inc({}) compiler.go:433: >> 3: goja.storeStashP(0) compiler.go:433: >> 4: goja._loadUndef({}) compiler.go:433: >> 5: goja._ret({}) compiler.go:433: > 3: goja.call(0) compiler.go:433: > 4: goja._pop({}) compiler.go:433: > 5: goja.try({5 0}) compiler.go:433: > 6: goja.loadDynamic(Error) compiler.go:433: > 7: goja._new(0) compiler.go:433: > 8: goja._throw({}) compiler.go:433: > 9: goja.jump(3) compiler.go:433: > 10: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 11: *goja.leaveBlock(&{1 false}) compiler.go:433: > 12: goja.leaveTry({}) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestTryEmptyCatchStackLeak (0.00s) === RUN TestTryThrowEmptyCatch compiler.go:433: 0: goja.try({6 0}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja.loadDynamic(Error) compiler.go:433: 3: goja._new(0) compiler.go:433: 4: goja._throw({}) compiler.go:433: 5: goja.jump(3) compiler.go:433: 6: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 7: *goja.leaveBlock(&{1 false}) compiler.go:433: 8: goja.leaveTry({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTryThrowEmptyCatch (0.00s) === RUN TestFalsyLoopBreak --- PASS: TestFalsyLoopBreak (0.00s) === RUN TestFalsyLoopBreakWithResult compiler.go:433: 0: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFalsyLoopBreakWithResult (0.00s) === RUN TestDummyCompile --- PASS: TestDummyCompile (0.00s) === RUN TestDummyCompileForUpdate --- PASS: TestDummyCompileForUpdate (0.00s) === RUN TestObjectLiteralWithNumericKeys compiler.go:433: 0: *goja.bindGlobal(&{[o keys o1 keys1 o2 keys2] [] [o3] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({true}) compiler.go:433: 4: goja.putProp(1000) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(keys) compiler.go:433: 7: goja.loadDynamic(Object) compiler.go:433: 8: goja.getPropCallee(keys) compiler.go:433: 9: goja.loadDynamic(o) compiler.go:433: 10: goja.call(1) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.resolveVar1(o1) compiler.go:433: 13: goja._newObject({}) compiler.go:433: 14: *goja.newMethod(&{{0xc0003619a0 1000 get 1e3() {return true;} 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({true}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 15: *goja.defineGetterKeyed(&{1000 true}) compiler.go:433: 16: goja._initValueP({}) compiler.go:433: 17: goja.resolveVar1(keys1) compiler.go:433: 18: goja.loadDynamic(Object) compiler.go:433: 19: goja.getPropCallee(keys) compiler.go:433: 20: goja.loadDynamic(o1) compiler.go:433: 21: goja.call(1) compiler.go:433: 22: goja._initValueP({}) compiler.go:433: 23: goja.resolveVar1(o2) compiler.go:433: 24: goja._newObject({}) compiler.go:433: 25: goja.loadVal({true}) compiler.go:433: 26: goja.putProp(1e+21) compiler.go:433: 27: goja._initValueP({}) compiler.go:433: 28: goja.resolveVar1(keys2) compiler.go:433: 29: goja.loadDynamic(Object) compiler.go:433: 30: goja.getPropCallee(keys) compiler.go:433: 31: goja.loadDynamic(o2) compiler.go:433: 32: goja.call(1) compiler.go:433: 33: goja._initValueP({}) compiler.go:433: 34: goja._newObject({}) compiler.go:433: 35: *goja.newMethod(&{{0xc0003619f0 0 0(){return true} 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({true}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 36: *goja.defineMethodKeyed(&{0 true}) compiler.go:433: 37: goja.initGlobalP(o3) compiler.go:433: 38: goja.loadDynamic(keys) compiler.go:433: 39: goja.getProp(length) compiler.go:433: 40: goja.loadVal({1}) compiler.go:433: 41: goja._op_strict_eq({}) compiler.go:433: 42: goja.jne(6) compiler.go:433: 43: goja.loadDynamic(keys) compiler.go:433: 44: goja.loadVal({0}) compiler.go:433: 45: goja._getElem({}) compiler.go:433: 46: goja.loadVal({1000}) compiler.go:433: 47: goja._op_strict_eq({}) compiler.go:433: 48: goja.jne(5) compiler.go:433: 49: goja.loadDynamic(keys1) compiler.go:433: 50: goja.getProp(length) compiler.go:433: 51: goja.loadVal({1}) compiler.go:433: 52: goja._op_strict_eq({}) compiler.go:433: 53: goja.jne(6) compiler.go:433: 54: goja.loadDynamic(keys1) compiler.go:433: 55: goja.loadVal({0}) compiler.go:433: 56: goja._getElem({}) compiler.go:433: 57: goja.loadVal({1000}) compiler.go:433: 58: goja._op_strict_eq({}) compiler.go:433: 59: goja.jne(6) compiler.go:433: 60: goja.loadDynamic(o1) compiler.go:433: 61: goja.loadVal({1000}) compiler.go:433: 62: goja._getElem({}) compiler.go:433: 63: goja.loadVal({true}) compiler.go:433: 64: goja._op_strict_eq({}) compiler.go:433: 65: goja.jne(5) compiler.go:433: 66: goja.loadDynamic(keys2) compiler.go:433: 67: goja.getProp(length) compiler.go:433: 68: goja.loadVal({1}) compiler.go:433: 69: goja._op_strict_eq({}) compiler.go:433: 70: goja.jne(6) compiler.go:433: 71: goja.loadDynamic(keys2) compiler.go:433: 72: goja.loadVal({0}) compiler.go:433: 73: goja._getElem({}) compiler.go:433: 74: goja.loadVal({1e+21}) compiler.go:433: 75: goja._op_strict_eq({}) compiler.go:433: 76: goja.jne(5) compiler.go:433: 77: goja.loadDynamic(o3) compiler.go:433: 78: goja.loadVal({0}) compiler.go:433: 79: goja._getElemCallee({}) compiler.go:433: 80: goja.call(0) compiler.go:433: 81: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectLiteralWithNumericKeys (0.00s) === RUN TestEscapedObjectPropertyKeys --- PASS: TestEscapedObjectPropertyKeys (0.00s) === RUN TestEscapedKeywords --- PASS: TestEscapedKeywords (0.00s) === RUN TestEscapedLet --- PASS: TestEscapedLet (0.00s) === RUN TestObjectLiteralFuncProps compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc00036c2d0 function() { 'use strict'; var o = { eval: function() {return 1;}, arguments() {return 2;}, test: function test1() {} } assert.sameValue(o.eval.name, "eval"); assert.sameValue(o.arguments.name, "arguments"); assert.sameValue(o.eval(), 1); assert.sameValue(o.arguments(), 2); assert.sameValue(o.test.name, "test1"); } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: *goja.newFunc(&{0xc00036c320 eval function() {return 1;} 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadVal({1}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 3: goja.putProp(eval) compiler.go:433: > 4: *goja.newMethod(&{{0xc00036c370 arguments arguments() {return 2;} 0 true} 1}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadVal({2}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 5: *goja.defineMethodKeyed(&{arguments true}) compiler.go:433: > 6: *goja.newFunc(&{0xc00036c3c0 test1 function test1() {} 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: >> 1: goja._loadCallee({}) compiler.go:433: >> 2: goja.initStackP(1) compiler.go:433: >> 3: goja._loadCallee({}) compiler.go:433: >> 4: goja.initStackP(1) compiler.go:433: >> 5: goja._loadUndef({}) compiler.go:433: >> 6: goja._ret({}) compiler.go:433: > 7: goja.putProp(test) compiler.go:433: > 8: goja.initStackP(1) compiler.go:433: > 9: goja.loadDynamic(assert) compiler.go:433: > 10: goja.getPropCallee(sameValue) compiler.go:433: > 11: goja.loadStack(1) compiler.go:433: > 12: goja.getProp(eval) compiler.go:433: > 13: goja.getProp(name) compiler.go:433: > 14: goja.loadVal({eval}) compiler.go:433: > 15: goja.call(2) compiler.go:433: > 16: goja._pop({}) compiler.go:433: > 17: goja.loadDynamic(assert) compiler.go:433: > 18: goja.getPropCallee(sameValue) compiler.go:433: > 19: goja.loadStack(1) compiler.go:433: > 20: goja.getProp(arguments) compiler.go:433: > 21: goja.getProp(name) compiler.go:433: > 22: goja.loadVal({arguments}) compiler.go:433: > 23: goja.call(2) compiler.go:433: > 24: goja._pop({}) compiler.go:433: > 25: goja.loadDynamic(assert) compiler.go:433: > 26: goja.getPropCallee(sameValue) compiler.go:433: > 27: goja.loadStack(1) compiler.go:433: > 28: goja.getPropCallee(eval) compiler.go:433: > 29: goja.call(0) compiler.go:433: > 30: goja.loadVal({1}) compiler.go:433: > 31: goja.call(2) compiler.go:433: > 32: goja._pop({}) compiler.go:433: > 33: goja.loadDynamic(assert) compiler.go:433: > 34: goja.getPropCallee(sameValue) compiler.go:433: > 35: goja.loadStack(1) compiler.go:433: > 36: goja.getPropCallee(arguments) compiler.go:433: > 37: goja.call(0) compiler.go:433: > 38: goja.loadVal({2}) compiler.go:433: > 39: goja.call(2) compiler.go:433: > 40: goja._pop({}) compiler.go:433: > 41: goja.loadDynamic(assert) compiler.go:433: > 42: goja.getPropCallee(sameValue) compiler.go:433: > 43: goja.loadStack(1) compiler.go:433: > 44: goja.getProp(test) compiler.go:433: > 45: goja.getProp(name) compiler.go:433: > 46: goja.loadVal({test1}) compiler.go:433: > 47: goja.call(2) compiler.go:433: > 48: goja._pop({}) compiler.go:433: > 49: goja._loadUndef({}) compiler.go:433: > 50: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectLiteralFuncProps (0.00s) === RUN TestFuncName compiler.go:433: 0: *goja.bindGlobal(&{[method o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(method) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(o) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: *goja.newFunc(&{0xc00036c640 method function() { return method; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(method) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 7: goja.putProp(method) compiler.go:433: 8: *goja.newFunc(&{0xc00036c690 method function method() { return method; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja._loadCallee({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja._loadCallee({}) compiler.go:433: > 4: goja.initStackP(1) compiler.go:433: > 5: goja.loadStackLex(1) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 9: goja.putProp(method1) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.loadDynamic(o) compiler.go:433: 12: goja.getPropCallee(method) compiler.go:433: 13: goja.call(0) compiler.go:433: 14: goja.loadVal({1}) compiler.go:433: 15: goja._op_strict_eq({}) compiler.go:433: 16: goja.jne(7) compiler.go:433: 17: goja.loadDynamic(o) compiler.go:433: 18: goja.getPropCallee(method1) compiler.go:433: 19: goja.call(0) compiler.go:433: 20: goja.loadDynamic(o) compiler.go:433: 21: goja.getProp(method1) compiler.go:433: 22: goja._op_strict_eq({}) compiler.go:433: 23: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFuncName (0.00s) === RUN TestFuncNameAssign compiler.go:433: 0: *goja.bindGlobal(&{[f f1] [] [f2] [] false}) compiler.go:433: 1: goja.resolveVar1(f) compiler.go:433: 2: *goja.newFunc(&{0xc00036ca00 f function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(f1) compiler.go:433: 5: *goja.newFunc(&{0xc00036ca50 f1 function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 6: goja._putValueP({}) compiler.go:433: 7: *goja.newFunc(&{0xc00036caa0 f2 function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 8: goja.initGlobalP(f2) compiler.go:433: 9: goja.loadDynamic(f) compiler.go:433: 10: goja.getProp(name) compiler.go:433: 11: goja.loadVal({f}) compiler.go:433: 12: goja._op_strict_eq({}) compiler.go:433: 13: goja.jne(5) compiler.go:433: 14: goja.loadDynamic(f1) compiler.go:433: 15: goja.getProp(name) compiler.go:433: 16: goja.loadVal({f1}) compiler.go:433: 17: goja._op_strict_eq({}) compiler.go:433: 18: goja.jne(5) compiler.go:433: 19: goja.loadDynamic(f2) compiler.go:433: 20: goja.getProp(name) compiler.go:433: 21: goja.loadVal({f2}) compiler.go:433: 22: goja._op_strict_eq({}) compiler.go:433: 23: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFuncNameAssign (0.00s) === RUN TestLexicalDeclGlobal compiler.go:433: 0: *goja.bindGlobal(&{[] [] [thrown] [] false}) compiler.go:433: 1: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 2: goja.loadVal({be}) compiler.go:433: 3: goja.initStackP(1) compiler.go:433: 4: goja.loadStackLex(1) compiler.go:433: 5: goja.loadVal({be}) compiler.go:433: 6: goja._op_strict_neq({}) compiler.go:433: 7: goja.jneP(5) compiler.go:433: 8: goja.loadDynamic(Error) compiler.go:433: 9: goja.loadStackLex(1) compiler.go:433: 10: goja._new(1) compiler.go:433: 11: goja._throw({}) compiler.go:433: 12: *goja.leaveBlock(&{1 false}) compiler.go:433: 13: goja.loadVal({false}) compiler.go:433: 14: goja.initGlobalP(thrown) compiler.go:433: 15: goja.try({4 0}) compiler.go:433: 16: goja.loadDynamic(it) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.jump(10) compiler.go:433: 19: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 20: goja.loadStackLex(1) compiler.go:433: 21: goja.loadDynamic(ReferenceError) compiler.go:433: 22: goja._op_instanceof({}) compiler.go:433: 23: goja.jneP(4) compiler.go:433: 24: goja.resolveVar1(thrown) compiler.go:433: 25: goja.loadVal({true}) compiler.go:433: 26: goja._putValueP({}) compiler.go:433: 27: *goja.leaveBlock(&{1 false}) compiler.go:433: 28: goja.leaveTry({}) compiler.go:433: 29: goja.loadDynamic(thrown) compiler.go:433: 30: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestLexicalDeclGlobal (0.00s) === RUN TestLexicalDeclFunction compiler.go:433: 0: *goja.newFunc(&{0xc00036ce10 f function f() { if (true) { let it = "be"; if (it !== "be") { throw new Error(it); } } let thrown = false; try { it; } catch(e) { if (e instanceof ReferenceError) { thrown = true; } } return thrown; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: > 2: goja.loadVal({be}) compiler.go:433: > 3: goja.initStackP(2) compiler.go:433: > 4: goja.loadStackLex(2) compiler.go:433: > 5: goja.loadVal({be}) compiler.go:433: > 6: goja._op_strict_neq({}) compiler.go:433: > 7: goja.jneP(5) compiler.go:433: > 8: goja.loadDynamic(Error) compiler.go:433: > 9: goja.loadStackLex(2) compiler.go:433: > 10: goja._new(1) compiler.go:433: > 11: goja._throw({}) compiler.go:433: > 12: *goja.leaveBlock(&{1 false}) compiler.go:433: > 13: goja.loadVal({false}) compiler.go:433: > 14: goja.initStackP(1) compiler.go:433: > 15: goja.try({4 0}) compiler.go:433: > 16: goja.loadDynamic(it) compiler.go:433: > 17: goja._pop({}) compiler.go:433: > 18: goja.jump(9) compiler.go:433: > 19: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 20: goja.loadStackLex(2) compiler.go:433: > 21: goja.loadDynamic(ReferenceError) compiler.go:433: > 22: goja._op_instanceof({}) compiler.go:433: > 23: goja.jneP(3) compiler.go:433: > 24: goja.loadVal({true}) compiler.go:433: > 25: goja.storeStackLexP(1) compiler.go:433: > 26: *goja.leaveBlock(&{1 false}) compiler.go:433: > 27: goja.leaveTry({}) compiler.go:433: > 28: goja.loadStackLex(1) compiler.go:433: > 29: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestLexicalDeclFunction (0.00s) === RUN TestLexicalDynamicScope compiler.go:433: 0: *goja.newFunc(&{0xc00036d400 f function f() { const func = global + 1; function inner() { function assertThrows(fn) { let thrown = false; try { fn(); } catch (e) { if (e instanceof TypeError) { thrown = true; } else { throw e; } } if (!thrown) { throw new Error("Did not throw"); } } assertThrows(function() { func++; }); assertThrows(function() { global++; }); assertThrows(function() { eval("func++"); }); assertThrows(function() { eval("global++"); }); return eval("func + 1"); } return inner(); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741827 func:2684354562 inner:1] 4 0 0 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(3) compiler.go:433: > 5: *goja.newFunc(&{0xc00036d450 inner function inner() { function assertThrows(fn) { let thrown = false; try { fn(); } catch (e) { if (e instanceof TypeError) { thrown = true; } else { throw e; } } if (!thrown) { throw new Error("Did not throw"); } } assertThrows(function() { func++; }); assertThrows(function() { global++; }); assertThrows(function() { eval("func++"); }); assertThrows(function() { eval("global++"); }); return eval("func + 1"); } 0 false}) compiler.go:433: >> 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741826 assertThrows:1] 3 0 0 1 true true}) compiler.go:433: >> 1: goja._boxThis({}) compiler.go:433: >> 2: goja.initStash(0) compiler.go:433: >> 3: goja.createArgsMapped(0) compiler.go:433: >> 4: goja.initStashP(2) compiler.go:433: >> 5: *goja.newFunc(&{0xc00036d4a0 assertThrows function assertThrows(fn) { let thrown = false; try { fn(); } catch (e) { if (e instanceof TypeError) { thrown = true; } else { throw e; } } if (!thrown) { throw new Error("Did not throw"); } } 1 false}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{1 1}) compiler.go:433: >>> 1: goja.loadVal({false}) compiler.go:433: >>> 2: goja.initStackP(1) compiler.go:433: >>> 3: goja.try({6 0}) compiler.go:433: >>> 4: goja._loadUndef({}) compiler.go:433: >>> 5: goja.loadStackLex(-1) compiler.go:433: >>> 6: goja.call(0) compiler.go:433: >>> 7: goja._pop({}) compiler.go:433: >>> 8: goja.jump(12) compiler.go:433: >>> 9: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: >>> 10: goja.loadStackLex(2) compiler.go:433: >>> 11: goja.loadDynamic(TypeError) compiler.go:433: >>> 12: goja._op_instanceof({}) compiler.go:433: >>> 13: goja.jneP(4) compiler.go:433: >>> 14: goja.loadVal({true}) compiler.go:433: >>> 15: goja.storeStackLexP(1) compiler.go:433: >>> 16: goja.jump(3) compiler.go:433: >>> 17: goja.loadStackLex(2) compiler.go:433: >>> 18: goja._throw({}) compiler.go:433: >>> 19: *goja.leaveBlock(&{1 false}) compiler.go:433: >>> 20: goja.leaveTry({}) compiler.go:433: >>> 21: goja.loadStackLex(1) compiler.go:433: >>> 22: goja._not({}) compiler.go:433: >>> 23: goja.jneP(5) compiler.go:433: >>> 24: goja.loadDynamic(Error) compiler.go:433: >>> 25: goja.loadVal({Did not throw}) compiler.go:433: >>> 26: goja._new(1) compiler.go:433: >>> 27: goja._throw({}) compiler.go:433: >>> 28: goja._loadUndef({}) compiler.go:433: >>> 29: goja._ret({}) compiler.go:433: >> 6: goja.initStashP(1) compiler.go:433: >> 7: goja._loadUndef({}) compiler.go:433: >> 8: goja.loadStashLex(1) compiler.go:433: >> 9: *goja.newFunc(&{0xc00036d4f0 function() { func++; } 0 false}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >>> 1: goja.loadStashLex(16777218) compiler.go:433: >>> 2: goja._inc({}) compiler.go:433: >>> 3: goja._throwAssignToConst({}) compiler.go:433: >>> 4: goja._loadUndef({}) compiler.go:433: >>> 5: goja._ret({}) compiler.go:433: >> 10: goja.call(1) compiler.go:433: >> 11: goja._pop({}) compiler.go:433: >> 12: goja._loadUndef({}) compiler.go:433: >> 13: goja.loadStashLex(1) compiler.go:433: >> 14: *goja.newFunc(&{0xc00036d540 function() { global++; } 0 false}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >>> 1: goja.resolveVar1(global) compiler.go:433: >>> 2: goja._getValue({}) compiler.go:433: >>> 3: goja._inc({}) compiler.go:433: >>> 4: goja._putValueP({}) compiler.go:433: >>> 5: goja._loadUndef({}) compiler.go:433: >>> 6: goja._ret({}) compiler.go:433: >> 15: goja.call(1) compiler.go:433: >> 16: goja._pop({}) compiler.go:433: >> 17: goja._loadUndef({}) compiler.go:433: >> 18: goja.loadStashLex(1) compiler.go:433: >> 19: *goja.newFunc(&{0xc00036d590 function() { eval("func++"); } 0 false}) compiler.go:433: >>> 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: >>> 1: goja._boxThis({}) compiler.go:433: >>> 2: goja.initStash(0) compiler.go:433: >>> 3: goja.createArgsMapped(0) compiler.go:433: >>> 4: goja.initStashP(1) compiler.go:433: >>> 5: goja.loadDynamicCallee(eval) compiler.go:433: >>> 6: goja.loadVal({func++}) compiler.go:433: >>> 7: goja.callEval(1) compiler.go:433: >>> 8: goja._pop({}) compiler.go:433: >>> 9: goja._loadUndef({}) compiler.go:433: >>> 10: goja._ret({}) compiler.go:433: >> 20: goja.call(1) compiler.go:433: >> 21: goja._pop({}) compiler.go:433: >> 22: goja._loadUndef({}) compiler.go:433: >> 23: goja.loadStashLex(1) compiler.go:433: >> 24: *goja.newFunc(&{0xc00036d5e0 function() { eval("global++"); } 0 false}) compiler.go:433: >>> 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: >>> 1: goja._boxThis({}) compiler.go:433: >>> 2: goja.initStash(0) compiler.go:433: >>> 3: goja.createArgsMapped(0) compiler.go:433: >>> 4: goja.initStashP(1) compiler.go:433: >>> 5: goja.loadDynamicCallee(eval) compiler.go:433: >>> 6: goja.loadVal({global++}) compiler.go:433: >>> 7: goja.callEval(1) compiler.go:433: >>> 8: goja._pop({}) compiler.go:433: >>> 9: goja._loadUndef({}) compiler.go:433: >>> 10: goja._ret({}) compiler.go:433: >> 25: goja.call(1) compiler.go:433: >> 26: goja._pop({}) compiler.go:433: >> 27: goja.loadDynamicCallee(eval) compiler.go:433: >> 28: goja.loadVal({func + 1}) compiler.go:433: >> 29: goja.callEval(1) compiler.go:433: >> 30: goja._ret({}) compiler.go:433: > 6: goja.initStashP(1) compiler.go:433: > 7: goja.loadDynamic(global) compiler.go:433: > 8: goja.loadVal({1}) compiler.go:433: > 9: goja._add({}) compiler.go:433: > 10: goja.initStashP(2) compiler.go:433: > 11: goja._loadUndef({}) compiler.go:433: > 12: goja.loadStashLex(1) compiler.go:433: > 13: goja.call(0) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [global] false}) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja.initGlobalP(global) compiler.go:433: 4: goja.loadDynamicCallee(f) compiler.go:433: 5: goja.call(0) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 4 --- PASS: TestLexicalDynamicScope (0.00s) === RUN TestLexicalDynamicScope1 compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc00036dc20 function() { const x = 1 * 4; return (function() { eval(""); return x; })(); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741826 x:2684354561] 3 0 0 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(2) compiler.go:433: > 5: goja.loadVal({4}) compiler.go:433: > 6: goja.initStashP(1) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: *goja.newFunc(&{0xc00036dcc0 function() { eval(""); return x; } 0 false}) compiler.go:433: >> 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: >> 1: goja._boxThis({}) compiler.go:433: >> 2: goja.initStash(0) compiler.go:433: >> 3: goja.createArgsMapped(0) compiler.go:433: >> 4: goja.initStashP(1) compiler.go:433: >> 5: goja.loadDynamicCallee(eval) compiler.go:433: >> 6: goja.loadVal({}) compiler.go:433: >> 7: goja.callEval(1) compiler.go:433: >> 8: goja._pop({}) compiler.go:433: >> 9: *goja.loadMixedLex(&{x 16777217 false}) compiler.go:433: >> 10: goja._ret({}) compiler.go:433: > 9: goja.call(0) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestLexicalDynamicScope1 (0.00s) === RUN TestLexicalDynamicScope2 compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc000020730 function() { const x = 1 + 3; var y = 2 * 2; eval(""); return x; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741827 x:2684354562 y:1073741825] 4 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(3) compiler.go:433: > 5: goja.loadVal({4}) compiler.go:433: > 6: goja.initStashP(2) compiler.go:433: > 7: goja.loadVal({4}) compiler.go:433: > 8: goja.initStashP(1) compiler.go:433: > 9: goja.loadDynamicCallee(eval) compiler.go:433: > 10: goja.loadVal({}) compiler.go:433: > 11: goja.callEval(1) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja.loadStashLex(2) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestLexicalDynamicScope2 (0.00s) === RUN TestNonStrictLet compiler.go:433: 0: *goja.bindGlobal(&{[let] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(let) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja._initValueP({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNonStrictLet (0.00s) === RUN TestStrictLet --- PASS: TestStrictLet (0.00s) === RUN TestLetLet --- PASS: TestLetLet (0.00s) === RUN TestLetASI --- PASS: TestLetASI (0.00s) === RUN TestLetASI1 --- PASS: TestLetASI1 (0.00s) === RUN TestLetNoASI --- PASS: TestLetNoASI (0.00s) === RUN TestLetNoASI1 --- PASS: TestLetNoASI1 (0.00s) === RUN TestLetArrayWithNewline --- PASS: TestLetArrayWithNewline (0.00s) === RUN TestDynamicUninitedVarAccess compiler.go:433: 0: *goja.newFunc(&{0xc0000216d0 f function f() { var x; return eval("x"); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741826 x:1073741825] 3 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(2) compiler.go:433: > 5: goja.loadDynamicCallee(eval) compiler.go:433: > 6: goja.loadVal({x}) compiler.go:433: > 7: goja.callEval(1) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestDynamicUninitedVarAccess (0.00s) === RUN TestLexicalForLoopNoClosure compiler.go:433: 0: *goja.bindGlobal(&{[] [] [sum] [] false}) compiler.go:433: 1: goja.loadVal({0}) compiler.go:433: 2: goja.initGlobalP(sum) compiler.go:433: 3: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 4: goja.loadVal({0}) compiler.go:433: 5: goja.initStackP(1) compiler.go:433: 6: goja.jump(1) compiler.go:433: 7: goja.loadStackLex(1) compiler.go:433: 8: goja.loadVal({3}) compiler.go:433: 9: goja._op_lt({}) compiler.go:433: 10: goja.jneP(11) compiler.go:433: 11: goja.resolveVar1(sum) compiler.go:433: 12: goja._getValue({}) compiler.go:433: 13: goja.loadStackLex(1) compiler.go:433: 14: goja._add({}) compiler.go:433: 15: goja._putValueP({}) compiler.go:433: 16: goja.jump(1) compiler.go:433: 17: goja.loadStackLex(1) compiler.go:433: 18: goja._inc({}) compiler.go:433: 19: goja.storeStackLexP(1) compiler.go:433: 20: goja.jump(-13) compiler.go:433: 21: *goja.leaveBlock(&{1 false}) compiler.go:433: 22: goja.loadDynamic(sum) compiler.go:433: 23: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestLexicalForLoopNoClosure (0.00s) === RUN TestLexicalForLoopClosure compiler.go:433: 0: *goja.bindGlobal(&{[f] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(f) compiler.go:433: 2: goja.newArray(0) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: *goja.enterBlock(&{map[] 1 0}) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja.initStashP(0) compiler.go:433: 7: goja.copyStash({}) compiler.go:433: 8: goja.loadStashLex(0) compiler.go:433: 9: goja.loadVal({3}) compiler.go:433: 10: goja._op_lt({}) compiler.go:433: 11: goja.jneP(11) compiler.go:433: 12: goja.loadDynamic(f) compiler.go:433: 13: goja.getPropCallee(push) compiler.go:433: 14: *goja.newFunc(&{0xc000021c20 function() { return i; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStashLex(0) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 15: goja.call(1) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.copyStash({}) compiler.go:433: 18: goja.loadStashLex(0) compiler.go:433: 19: goja._inc({}) compiler.go:433: 20: goja.storeStashLexP(0) compiler.go:433: 21: goja.jump(-13) compiler.go:433: 22: *goja.leaveBlock(&{0 true}) compiler.go:433: 23: goja.loadDynamic(f) compiler.go:433: 24: goja.getProp(length) compiler.go:433: 25: goja.loadVal({3}) compiler.go:433: 26: goja._op_strict_eq({}) compiler.go:433: 27: goja.jne(7) compiler.go:433: 28: goja.loadDynamic(f) compiler.go:433: 29: goja.loadVal({0}) compiler.go:433: 30: goja._getElemCallee({}) compiler.go:433: 31: goja.call(0) compiler.go:433: 32: goja.loadVal({0}) compiler.go:433: 33: goja._op_strict_eq({}) compiler.go:433: 34: goja.jne(7) compiler.go:433: 35: goja.loadDynamic(f) compiler.go:433: 36: goja.loadVal({1}) compiler.go:433: 37: goja._getElemCallee({}) compiler.go:433: 38: goja.call(0) compiler.go:433: 39: goja.loadVal({1}) compiler.go:433: 40: goja._op_strict_eq({}) compiler.go:433: 41: goja.jne(7) compiler.go:433: 42: goja.loadDynamic(f) compiler.go:433: 43: goja.loadVal({2}) compiler.go:433: 44: goja._getElemCallee({}) compiler.go:433: 45: goja.call(0) compiler.go:433: 46: goja.loadVal({2}) compiler.go:433: 47: goja._op_strict_eq({}) compiler.go:433: 48: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 5 --- PASS: TestLexicalForLoopClosure (0.00s) === RUN TestLexicalForLoopClosureInNext compiler.go:433: 0: *goja.bindGlobal(&{[] [] [res] [a] false}) compiler.go:433: 1: goja.newArray(0) compiler.go:433: 2: goja.initGlobalP(a) compiler.go:433: 3: *goja.enterBlock(&{map[] 1 0}) compiler.go:433: 4: goja.loadVal({0}) compiler.go:433: 5: goja.initStashP(0) compiler.go:433: 6: goja.copyStash({}) compiler.go:433: 7: goja.loadStashLex(0) compiler.go:433: 8: goja.loadVal({5}) compiler.go:433: 9: goja._op_lt({}) compiler.go:433: 10: goja.jneP(11) compiler.go:433: 11: goja.copyStash({}) compiler.go:433: 12: goja.loadDynamic(a) compiler.go:433: 13: goja.getPropCallee(push) compiler.go:433: 14: *goja.newFunc(&{0xc00037e140 function () { return i; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStashLex(0) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 15: goja.call(1) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadStashLex(0) compiler.go:433: 18: goja._inc({}) compiler.go:433: 19: goja.storeStashLexP(0) compiler.go:433: 20: goja.jump(-13) compiler.go:433: 21: *goja.leaveBlock(&{0 true}) compiler.go:433: 22: goja.loadVal({}) compiler.go:433: 23: goja.initGlobalP(res) compiler.go:433: 24: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 25: goja.loadVal({0}) compiler.go:433: 26: goja.initStackP(1) compiler.go:433: 27: goja.jump(1) compiler.go:433: 28: goja.loadStackLex(1) compiler.go:433: 29: goja.loadVal({5}) compiler.go:433: 30: goja._op_lt({}) compiler.go:433: 31: goja.jneP(16) compiler.go:433: 32: goja.resolveVar1(res) compiler.go:433: 33: goja._getValue({}) compiler.go:433: 34: goja.loadVal({}) compiler.go:433: 35: goja.loadDynamic(a) compiler.go:433: 36: goja.loadStackLex(1) compiler.go:433: 37: goja._getElemCallee({}) compiler.go:433: 38: goja.call(0) compiler.go:433: 39: goja._add({}) compiler.go:433: 40: goja._add({}) compiler.go:433: 41: goja._putValueP({}) compiler.go:433: 42: goja.jump(1) compiler.go:433: 43: goja.loadStackLex(1) compiler.go:433: 44: goja._inc({}) compiler.go:433: 45: goja.storeStackLexP(1) compiler.go:433: 46: goja.jump(-18) compiler.go:433: 47: *goja.leaveBlock(&{1 false}) compiler.go:433: 48: goja.loadDynamic(res) compiler.go:433: 49: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 7 --- PASS: TestLexicalForLoopClosureInNext (0.00s) === RUN TestVarForLoop compiler.go:433: 0: *goja.bindGlobal(&{[f i j] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(f) compiler.go:433: 2: goja.newArray(0) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(i) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(j) compiler.go:433: 8: goja.loadVal({0}) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(i) compiler.go:433: 11: goja.loadVal({3}) compiler.go:433: 12: goja._op_lt({}) compiler.go:433: 13: goja.jneP(11) compiler.go:433: 14: goja.loadDynamic(f) compiler.go:433: 15: goja.getPropCallee(push) compiler.go:433: 16: *goja.newFunc(&{0xc00037e910 function() { return i; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(i) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 17: goja.call(1) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.resolveVar1(i) compiler.go:433: 20: goja._getValue({}) compiler.go:433: 21: goja._inc({}) compiler.go:433: 22: goja._putValueP({}) compiler.go:433: 23: goja.jump(-13) compiler.go:433: 24: goja.loadDynamic(f) compiler.go:433: 25: goja.getProp(length) compiler.go:433: 26: goja.loadVal({3}) compiler.go:433: 27: goja._op_strict_eq({}) compiler.go:433: 28: goja.jne(7) compiler.go:433: 29: goja.loadDynamic(f) compiler.go:433: 30: goja.loadVal({0}) compiler.go:433: 31: goja._getElemCallee({}) compiler.go:433: 32: goja.call(0) compiler.go:433: 33: goja.loadVal({3}) compiler.go:433: 34: goja._op_strict_eq({}) compiler.go:433: 35: goja.jne(7) compiler.go:433: 36: goja.loadDynamic(f) compiler.go:433: 37: goja.loadVal({1}) compiler.go:433: 38: goja._getElemCallee({}) compiler.go:433: 39: goja.call(0) compiler.go:433: 40: goja.loadVal({3}) compiler.go:433: 41: goja._op_strict_eq({}) compiler.go:433: 42: goja.jne(7) compiler.go:433: 43: goja.loadDynamic(f) compiler.go:433: 44: goja.loadVal({2}) compiler.go:433: 45: goja._getElemCallee({}) compiler.go:433: 46: goja.call(0) compiler.go:433: 47: goja.loadVal({3}) compiler.go:433: 48: goja._op_strict_eq({}) compiler.go:433: 49: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestVarForLoop (0.00s) === RUN TestLexicalForOfLoop compiler.go:433: 0: *goja.bindGlobal(&{[f] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(f) compiler.go:433: 2: goja.newArray(0) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.jump(1) compiler.go:433: 5: goja.newArray(3) compiler.go:433: 6: goja.loadVal({0}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja.loadVal({1}) compiler.go:433: 9: goja._pushArrayItem({}) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja._pushArrayItem({}) compiler.go:433: 12: goja._iterateP({}) compiler.go:433: 13: goja.iterNext(11) compiler.go:433: 14: *goja.enterBlock(&{map[] 1 0}) compiler.go:433: 15: goja._enumGet({}) compiler.go:433: 16: goja.initStashP(0) compiler.go:433: 17: goja.loadDynamic(f) compiler.go:433: 18: goja.getPropCallee(push) compiler.go:433: 19: *goja.newFunc(&{0xc00037e1e0 function() { return i; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStashLex(0) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 20: goja.call(1) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: *goja.leaveBlock(&{0 true}) compiler.go:433: 23: goja.jump(-10) compiler.go:433: 24: goja._enumPop({}) compiler.go:433: 25: goja.jump(2) compiler.go:433: 26: goja._enumPopClose({}) compiler.go:433: 27: goja.loadDynamic(f) compiler.go:433: 28: goja.getProp(length) compiler.go:433: 29: goja.loadVal({3}) compiler.go:433: 30: goja._op_strict_eq({}) compiler.go:433: 31: goja.jne(7) compiler.go:433: 32: goja.loadDynamic(f) compiler.go:433: 33: goja.loadVal({0}) compiler.go:433: 34: goja._getElemCallee({}) compiler.go:433: 35: goja.call(0) compiler.go:433: 36: goja.loadVal({0}) compiler.go:433: 37: goja._op_strict_eq({}) compiler.go:433: 38: goja.jne(7) compiler.go:433: 39: goja.loadDynamic(f) compiler.go:433: 40: goja.loadVal({1}) compiler.go:433: 41: goja._getElemCallee({}) compiler.go:433: 42: goja.call(0) compiler.go:433: 43: goja.loadVal({1}) compiler.go:433: 44: goja._op_strict_eq({}) compiler.go:433: 45: goja.jne(7) compiler.go:433: 46: goja.loadDynamic(f) compiler.go:433: 47: goja.loadVal({2}) compiler.go:433: 48: goja._getElemCallee({}) compiler.go:433: 49: goja.call(0) compiler.go:433: 50: goja.loadVal({2}) compiler.go:433: 51: goja._op_strict_eq({}) compiler.go:433: 52: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 3 --- PASS: TestLexicalForOfLoop (0.00s) === RUN TestLexicalForOfLoopContBreak compiler.go:433: 0: *goja.bindGlobal(&{[] [] [res] [f] false}) compiler.go:433: 1: goja.newArray(0) compiler.go:433: 2: goja.initGlobalP(f) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: goja.newArray(6) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja.loadVal({1}) compiler.go:433: 8: goja._pushArrayItem({}) compiler.go:433: 9: goja.loadVal({2}) compiler.go:433: 10: goja._pushArrayItem({}) compiler.go:433: 11: goja.loadVal({3}) compiler.go:433: 12: goja._pushArrayItem({}) compiler.go:433: 13: goja.loadVal({4}) compiler.go:433: 14: goja._pushArrayItem({}) compiler.go:433: 15: goja.loadVal({5}) compiler.go:433: 16: goja._pushArrayItem({}) compiler.go:433: 17: goja._iterateP({}) compiler.go:433: 18: goja.iterNext(23) compiler.go:433: 19: *goja.enterBlock(&{map[] 1 0}) compiler.go:433: 20: goja._enumGet({}) compiler.go:433: 21: goja.initStashP(0) compiler.go:433: 22: goja.loadStashLex(0) compiler.go:433: 23: goja.loadVal({2}) compiler.go:433: 24: goja._mod({}) compiler.go:433: 25: goja.jneP(3) compiler.go:433: 26: *goja.leaveBlock(&{0 true}) compiler.go:433: 27: goja.jump(-9) compiler.go:433: 28: goja.loadDynamic(f) compiler.go:433: 29: goja.getPropCallee(push) compiler.go:433: 30: *goja.newFunc(&{0xc00037e9b0 function() { return i; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStashLex(0) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 31: goja.call(1) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja.loadStashLex(0) compiler.go:433: 34: goja.loadVal({2}) compiler.go:433: 35: goja._op_gt({}) compiler.go:433: 36: goja.jneP(3) compiler.go:433: 37: *goja.leaveBlock(&{0 true}) compiler.go:433: 38: goja.jump(5) compiler.go:433: 39: *goja.leaveBlock(&{0 true}) compiler.go:433: 40: goja.jump(-22) compiler.go:433: 41: goja._enumPop({}) compiler.go:433: 42: goja.jump(2) compiler.go:433: 43: goja._enumPopClose({}) compiler.go:433: 44: goja.loadVal({}) compiler.go:433: 45: goja.initGlobalP(res) compiler.go:433: 46: goja.loadDynamic(f) compiler.go:433: 47: goja.getPropCallee(forEach) compiler.go:433: 48: *goja.newFunc(&{0xc00037ea00 function(item) {res += item()} 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.resolveVar1(res) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja._loadUndef({}) compiler.go:433: > 4: goja.loadStackLex(-1) compiler.go:433: > 5: goja.call(0) compiler.go:433: > 6: goja._add({}) compiler.go:433: > 7: goja._putValueP({}) compiler.go:433: > 8: goja._loadUndef({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 49: goja.call(1) compiler.go:433: 50: goja._pop({}) compiler.go:433: 51: goja.loadDynamic(f) compiler.go:433: 52: goja.getProp(length) compiler.go:433: 53: goja.loadVal({3}) compiler.go:433: 54: goja._op_strict_eq({}) compiler.go:433: 55: goja.jne(4) compiler.go:433: 56: goja.loadDynamic(res) compiler.go:433: 57: goja.loadVal({024}) compiler.go:433: 58: goja._op_strict_eq({}) compiler.go:433: 59: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 5 --- PASS: TestLexicalForOfLoopContBreak (0.00s) === RUN TestVarBlockConflict --- PASS: TestVarBlockConflict (0.00s) === RUN TestVarBlockConflictEval compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(throws) compiler.go:433: 2: goja.loadDynamic(SyntaxError) compiler.go:433: 3: *goja.newFunc(&{0xc00037f4f0 function() { let x; { if (true) { eval("var x"); } } } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741826 x:1] 3 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(2) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja.initStashP(1) compiler.go:433: > 7: goja.loadDynamicCallee(eval) compiler.go:433: > 8: goja.loadVal({var x}) compiler.go:433: > 9: goja.callEval(1) compiler.go:433: > 10: goja._pop({}) compiler.go:433: > 11: goja._loadUndef({}) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestVarBlockConflictEval (0.00s) === RUN TestVarBlockNoConflict compiler.go:433: 0: *goja.newFunc(&{0xc00037f9a0 f function f() { let x; function ff() { { var x = 3; } } ff(); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{2 0}) compiler.go:433: > 1: *goja.newFunc(&{0xc00037f9f0 ff function ff() { { var x = 3; } } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: >> 1: goja.loadVal({3}) compiler.go:433: >> 2: goja.initStackP(1) compiler.go:433: >> 3: goja._loadUndef({}) compiler.go:433: >> 4: goja._ret({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja._loadUndef({}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja.loadStackLex(1) compiler.go:433: > 7: goja.call(0) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja._loadUndef({}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestVarBlockNoConflict (0.00s) === RUN TestVarBlockNoConflictEval compiler.go:433: 0: *goja.newFunc(&{0xc00037fd60 f function f() { let x; function ff() { { eval("var x = 3"); } } ff(); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741827 ff:1 x:2] 4 0 0 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(3) compiler.go:433: > 5: *goja.newFunc(&{0xc00037fdb0 ff function ff() { { eval("var x = 3"); } } 0 false}) compiler.go:433: >> 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: >> 1: goja._boxThis({}) compiler.go:433: >> 2: goja.initStash(0) compiler.go:433: >> 3: goja.createArgsMapped(0) compiler.go:433: >> 4: goja.initStashP(1) compiler.go:433: >> 5: goja.loadDynamicCallee(eval) compiler.go:433: >> 6: goja.loadVal({var x = 3}) compiler.go:433: >> 7: goja.callEval(1) compiler.go:433: >> 8: goja._pop({}) compiler.go:433: >> 9: goja._loadUndef({}) compiler.go:433: >> 10: goja._ret({}) compiler.go:433: > 6: goja.initStashP(1) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja.initStashP(2) compiler.go:433: > 9: goja._loadUndef({}) compiler.go:433: > 10: goja.loadStashLex(1) compiler.go:433: > 11: goja.call(0) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestVarBlockNoConflictEval (0.00s) === RUN TestVarDeclCorrectScope compiler.go:433: 0: *goja.newFunc(&{0xc000484370 f function f() { { let z; eval("var x = 3"); } return x; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: *goja.enterBlock(&{map[z:0] 1 0}) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja.initStashP(0) compiler.go:433: > 8: goja.loadDynamicCallee(eval) compiler.go:433: > 9: goja.loadVal({var x = 3}) compiler.go:433: > 10: goja.callEval(1) compiler.go:433: > 11: goja._pop({}) compiler.go:433: > 12: *goja.leaveBlock(&{0 true}) compiler.go:433: > 13: goja.loadDynamic(x) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestVarDeclCorrectScope (0.00s) === RUN TestLexicalCatch compiler.go:433: 0: goja.try({5 0}) compiler.go:433: 1: goja._clearResult({}) compiler.go:433: 2: goja.loadVal({{}}) compiler.go:433: 3: goja._throw({}) compiler.go:433: 4: goja.jump(9) compiler.go:433: 5: *goja.enterBlock(&{map[] 0 2}) compiler.go:433: 6: *goja.newFunc(&{0xc0004846e0 f function f() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 7: goja.initStackP(2) compiler.go:433: 8: goja.loadVal({1}) compiler.go:433: 9: goja.initStackP(3) compiler.go:433: 10: goja.loadStackLex(1) compiler.go:433: 11: goja._saveResult({}) compiler.go:433: 12: *goja.leaveBlock(&{3 false}) compiler.go:433: 13: goja.leaveTry({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestLexicalCatch (0.00s) === RUN TestArgumentsLexicalDecl compiler.go:433: 0: *goja.newFunc(&{0xc000484910 f1 function f1() { let arguments; return arguments; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadStackLex(1) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f1] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f1) compiler.go:433: 3: goja.loadVal({42}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArgumentsLexicalDecl (0.00s) === RUN TestArgumentsLexicalDeclAssign compiler.go:433: 0: *goja.newFunc(&{0xc000484c80 f1 function f1() { let arguments = arguments; return a; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.loadStackLex(1) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadDynamic(a) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f1] [] [] false}) compiler.go:433: 2: goja.loadDynamic(assert) compiler.go:433: 3: goja.getPropCallee(throws) compiler.go:433: 4: goja.loadDynamic(ReferenceError) compiler.go:433: 5: *goja.newFunc(&{0xc000484d20 function() { f1(42); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamicCallee(f1) compiler.go:433: > 2: goja.loadVal({42}) compiler.go:433: > 3: goja.call(1) compiler.go:433: > 4: goja._pop({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArgumentsLexicalDeclAssign (0.00s) === RUN TestLexicalConstModifyFromEval compiler.go:433: 0: *goja.newFunc(&{0xc000485130 f function f() { eval("x = 2"); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: goja.loadDynamicCallee(eval) compiler.go:433: > 6: goja.loadVal({x = 2}) compiler.go:433: > 7: goja.callEval(1) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja._loadUndef({}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [x] false}) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja.initGlobalP(x) compiler.go:433: 4: goja.loadDynamic(assert) compiler.go:433: 5: goja.getPropCallee(throws) compiler.go:433: 6: goja.loadDynamic(TypeError) compiler.go:433: 7: *goja.newFunc(&{0xc000485180 function() { f(); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamicCallee(f) compiler.go:433: > 2: goja.call(0) compiler.go:433: > 3: goja._pop({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 8: goja.call(2) compiler.go:433: 9: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestLexicalConstModifyFromEval (0.00s) === RUN TestLexicalStrictNames --- PASS: TestLexicalStrictNames (0.00s) === RUN TestAssignAfterStackExpand compiler.go:433: 0: *goja.newFunc(&{0xc000485630 f function f() { let sum = 0; for (let i = 0; i < arguments.length; i++) { sum += arguments[i]; } return sum; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 0 2 0 1 true false}) compiler.go:433: > 1: goja.createArgsMapped(0) compiler.go:433: > 2: goja.initStack1P(2) compiler.go:433: > 3: goja.loadVal({0}) compiler.go:433: > 4: goja.initStack1P(1) compiler.go:433: > 5: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: > 6: goja.loadVal({0}) compiler.go:433: > 7: goja.initStack1P(3) compiler.go:433: > 8: goja.jump(1) compiler.go:433: > 9: goja.loadStack1Lex(3) compiler.go:433: > 10: goja.loadStack1(2) compiler.go:433: > 11: goja.getProp(length) compiler.go:433: > 12: goja._op_lt({}) compiler.go:433: > 13: goja.jneP(12) compiler.go:433: > 14: goja.loadStack1Lex(1) compiler.go:433: > 15: goja.loadStack1(2) compiler.go:433: > 16: goja.loadStack1Lex(3) compiler.go:433: > 17: goja._getElem({}) compiler.go:433: > 18: goja._add({}) compiler.go:433: > 19: goja.storeStack1LexP(1) compiler.go:433: > 20: goja.jump(1) compiler.go:433: > 21: goja.loadStack1Lex(3) compiler.go:433: > 22: goja._inc({}) compiler.go:433: > 23: goja.storeStack1LexP(3) compiler.go:433: > 24: goja.jump(-15) compiler.go:433: > 25: *goja.leaveBlock(&{1 false}) compiler.go:433: > 26: goja.loadStack1Lex(1) compiler.go:433: > 27: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc000485680 testAssignment function testAssignment() { var x = 0; var scope = {}; with (scope) { x = (scope.x = f(0, 0, 0, 0, 0, 0, 1, 1), 1); } if (scope.x !== 2) { throw new Error('#1: scope.x === 2. Actual: ' + (scope.x)); } if (x !== 1) { throw new Error('#2: x === 1. Actual: ' + (x)); } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{2 0}) compiler.go:433: > 1: goja.loadVal({0}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja._newObject({}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: goja.loadStack(2) compiler.go:433: > 6: goja._enterWith({}) compiler.go:433: > 7: *goja.resolveMixedStack(&{x 1 0 1 false}) compiler.go:433: > 8: *goja.loadMixedStack(&{scope 2 1 false}) compiler.go:433: > 9: goja.loadDynamicCallee(f) compiler.go:433: > 10: goja.loadVal({0}) compiler.go:433: > 11: goja.loadVal({0}) compiler.go:433: > 12: goja.loadVal({0}) compiler.go:433: > 13: goja.loadVal({0}) compiler.go:433: > 14: goja.loadVal({0}) compiler.go:433: > 15: goja.loadVal({0}) compiler.go:433: > 16: goja.loadVal({1}) compiler.go:433: > 17: goja.loadVal({1}) compiler.go:433: > 18: goja.call(8) compiler.go:433: > 19: goja.setPropP(x) compiler.go:433: > 20: goja.loadVal({1}) compiler.go:433: > 21: goja._putValueP({}) compiler.go:433: > 22: goja._leaveWith({}) compiler.go:433: > 23: goja.loadStack(2) compiler.go:433: > 24: goja.getProp(x) compiler.go:433: > 25: goja.loadVal({2}) compiler.go:433: > 26: goja._op_strict_neq({}) compiler.go:433: > 27: goja.jneP(8) compiler.go:433: > 28: goja.loadDynamic(Error) compiler.go:433: > 29: goja.loadVal({#1: scope.x === 2. Actual: }) compiler.go:433: > 30: goja.loadStack(2) compiler.go:433: > 31: goja.getProp(x) compiler.go:433: > 32: goja._add({}) compiler.go:433: > 33: goja._new(1) compiler.go:433: > 34: goja._throw({}) compiler.go:433: > 35: goja.loadStack(1) compiler.go:433: > 36: goja.loadVal({1}) compiler.go:433: > 37: goja._op_strict_neq({}) compiler.go:433: > 38: goja.jneP(7) compiler.go:433: > 39: goja.loadDynamic(Error) compiler.go:433: > 40: goja.loadVal({#2: x === 1. Actual: }) compiler.go:433: > 41: goja.loadStack(1) compiler.go:433: > 42: goja._add({}) compiler.go:433: > 43: goja._new(1) compiler.go:433: > 44: goja._throw({}) compiler.go:433: > 45: goja._loadUndef({}) compiler.go:433: > 46: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[] [f testAssignment] [] [] false}) compiler.go:433: 3: goja.loadDynamicCallee(testAssignment) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestAssignAfterStackExpand (0.00s) === RUN TestArgAccessFromDynamicStash compiler.go:433: 0: *goja.newFunc(&{0xc0004859f0 f function f(arg) { function test() { eval(""); return a; } return arg; } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741825 arg:1073741824 arguments:1073741827 test:2] 4 0 1 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(1) compiler.go:433: > 3: goja.createArgsMapped(1) compiler.go:433: > 4: goja.initStashP(3) compiler.go:433: > 5: *goja.newFunc(&{0xc000485a40 test function test() { eval(""); return a; } 0 false}) compiler.go:433: >> 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: >> 1: goja._boxThis({}) compiler.go:433: >> 2: goja.initStash(0) compiler.go:433: >> 3: goja.createArgsMapped(0) compiler.go:433: >> 4: goja.initStashP(1) compiler.go:433: >> 5: goja.loadDynamicCallee(eval) compiler.go:433: >> 6: goja.loadVal({}) compiler.go:433: >> 7: goja.callEval(1) compiler.go:433: >> 8: goja._pop({}) compiler.go:433: >> 9: goja.loadDynamic(a) compiler.go:433: >> 10: goja._ret({}) compiler.go:433: > 6: goja.initStashP(2) compiler.go:433: > 7: goja.loadStashLex(0) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.loadVal({true}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArgAccessFromDynamicStash (0.00s) === RUN TestLoadMixedLex compiler.go:433: 0: *goja.newFunc(&{0xc000485d60 f function f() { let a = 1; { function inner() { eval("var a = true"); return a; } return inner(); } } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 a:1 arguments:1073741826] 3 0 0 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(2) compiler.go:433: > 5: goja.loadVal({1}) compiler.go:433: > 6: goja.initStashP(1) compiler.go:433: > 7: *goja.enterBlock(&{map[inner:0] 1 0}) compiler.go:433: > 8: *goja.newFunc(&{0xc000485db0 inner function inner() { eval("var a = true"); return a; } 0 false}) compiler.go:433: >> 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: >> 1: goja._boxThis({}) compiler.go:433: >> 2: goja.initStash(0) compiler.go:433: >> 3: goja.createArgsMapped(0) compiler.go:433: >> 4: goja.initStashP(1) compiler.go:433: >> 5: goja.loadDynamicCallee(eval) compiler.go:433: >> 6: goja.loadVal({var a = true}) compiler.go:433: >> 7: goja.callEval(1) compiler.go:433: >> 8: goja._pop({}) compiler.go:433: >> 9: *goja.loadMixedLex(&{a 33554433 false}) compiler.go:433: >> 10: goja._ret({}) compiler.go:433: > 9: goja.initStashP(0) compiler.go:433: > 10: goja._loadUndef({}) compiler.go:433: > 11: goja.loadStashLex(0) compiler.go:433: > 12: goja.call(0) compiler.go:433: > 13: goja._ret({}) compiler.go:433: > 14: *goja.leaveBlock(&{0 true}) compiler.go:433: > 15: goja._loadUndef({}) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 3 --- PASS: TestLoadMixedLex (0.00s) === RUN TestObjectLiteralSpread compiler.go:433: 0: *goja.bindGlobal(&{[] [] [src target] [] false}) compiler.go:433: 1: goja._newObject({}) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja.putProp(prop1) compiler.go:433: 4: goja.initGlobalP(src) compiler.go:433: 5: goja.loadDynamic(Object) compiler.go:433: 6: goja.getPropCallee(defineProperty) compiler.go:433: 7: goja.loadDynamic(src) compiler.go:433: 8: goja.loadVal({prop2}) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja.putProp(value) compiler.go:433: 12: goja.loadVal({true}) compiler.go:433: 13: goja.putProp(configurable) compiler.go:433: 14: goja.call(3) compiler.go:433: 15: goja._pop({}) compiler.go:433: 16: goja.loadDynamic(Object) compiler.go:433: 17: goja.getPropCallee(defineProperty) compiler.go:433: 18: goja.loadDynamic(src) compiler.go:433: 19: goja.loadVal({prop3}) compiler.go:433: 20: goja._newObject({}) compiler.go:433: 21: goja.loadVal({3}) compiler.go:433: 22: goja.putProp(value) compiler.go:433: 23: goja.loadVal({true}) compiler.go:433: 24: goja.putProp(enumerable) compiler.go:433: 25: goja.loadVal({true}) compiler.go:433: 26: goja.putProp(configurable) compiler.go:433: 27: goja.call(3) compiler.go:433: 28: goja._pop({}) compiler.go:433: 29: goja._newObject({}) compiler.go:433: 30: goja.loadVal({4}) compiler.go:433: 31: goja.putProp(prop4) compiler.go:433: 32: goja.loadDynamic(src) compiler.go:433: 33: goja._copySpread({}) compiler.go:433: 34: goja.initGlobalP(target) compiler.go:433: 35: goja.loadDynamicCallee(assert) compiler.go:433: 36: goja.loadDynamicCallee(deepEqual) compiler.go:433: 37: goja.loadDynamic(target) compiler.go:433: 38: goja._newObject({}) compiler.go:433: 39: goja.loadVal({1}) compiler.go:433: 40: goja.putProp(prop1) compiler.go:433: 41: goja.loadVal({3}) compiler.go:433: 42: goja.putProp(prop3) compiler.go:433: 43: goja.loadVal({4}) compiler.go:433: 44: goja.putProp(prop4) compiler.go:433: 45: goja.call(2) compiler.go:433: 46: goja.call(1) compiler.go:433: 47: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectLiteralSpread (0.00s) === RUN TestArrayLiteralSpread compiler.go:433: 0: *goja.bindGlobal(&{[] [] [a1 a2 a] [] false}) compiler.go:433: 1: goja.newArray(2) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja._pushArrayItem({}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja._pushArrayItem({}) compiler.go:433: 6: goja.initGlobalP(a1) compiler.go:433: 7: goja.newArray(2) compiler.go:433: 8: goja.loadVal({3}) compiler.go:433: 9: goja._pushArrayItem({}) compiler.go:433: 10: goja.loadVal({4}) compiler.go:433: 11: goja._pushArrayItem({}) compiler.go:433: 12: goja.initGlobalP(a2) compiler.go:433: 13: goja.newArray(0) compiler.go:433: 14: goja.loadDynamic(a1) compiler.go:433: 15: goja._pushArraySpread({}) compiler.go:433: 16: goja.loadVal({0}) compiler.go:433: 17: goja._pushArrayItem({}) compiler.go:433: 18: goja.loadDynamic(a2) compiler.go:433: 19: goja._pushArraySpread({}) compiler.go:433: 20: goja.loadVal({1}) compiler.go:433: 21: goja._pushArrayItem({}) compiler.go:433: 22: goja.initGlobalP(a) compiler.go:433: 23: goja.loadDynamicCallee(assert) compiler.go:433: 24: goja.loadDynamicCallee(compareArray) compiler.go:433: 25: goja.loadDynamic(a) compiler.go:433: 26: goja.newArray(6) compiler.go:433: 27: goja.loadVal({1}) compiler.go:433: 28: goja._pushArrayItem({}) compiler.go:433: 29: goja.loadVal({2}) compiler.go:433: 30: goja._pushArrayItem({}) compiler.go:433: 31: goja.loadVal({0}) compiler.go:433: 32: goja._pushArrayItem({}) compiler.go:433: 33: goja.loadVal({3}) compiler.go:433: 34: goja._pushArrayItem({}) compiler.go:433: 35: goja.loadVal({4}) compiler.go:433: 36: goja._pushArrayItem({}) compiler.go:433: 37: goja.loadVal({1}) compiler.go:433: 38: goja._pushArrayItem({}) compiler.go:433: 39: goja.call(2) compiler.go:433: 40: goja.call(1) compiler.go:433: 41: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayLiteralSpread (0.00s) === RUN TestObjectAssignmentPattern compiler.go:433: 0: *goja.bindGlobal(&{[] [] [a b c] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(a) compiler.go:433: 3: goja._loadUndef({}) compiler.go:433: 4: goja.initGlobalP(b) compiler.go:433: 5: goja._loadUndef({}) compiler.go:433: 6: goja.initGlobalP(c) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja.loadVal({1}) compiler.go:433: 9: goja.putProp(a) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja.putProp(b) compiler.go:433: 12: goja._checkObjectCoercible({}) compiler.go:433: 13: goja._dup({}) compiler.go:433: 14: goja.resolveVar1(a) compiler.go:433: 15: goja.getProp(a) compiler.go:433: 16: goja._putValueP({}) compiler.go:433: 17: goja._dup({}) compiler.go:433: 18: goja.resolveVar1(b) compiler.go:433: 19: goja.getProp(b) compiler.go:433: 20: goja._putValueP({}) compiler.go:433: 21: goja._dup({}) compiler.go:433: 22: goja.resolveVar1(c) compiler.go:433: 23: goja.getProp(c) compiler.go:433: 24: goja.jdef(2) compiler.go:433: 25: goja.loadVal({3}) compiler.go:433: 26: goja._putValueP({}) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja.loadDynamic(assert) compiler.go:433: 29: goja.getPropCallee(sameValue) compiler.go:433: 30: goja.loadDynamic(a) compiler.go:433: 31: goja.loadVal({1}) compiler.go:433: 32: goja.loadVal({a}) compiler.go:433: 33: goja.call(3) compiler.go:433: 34: goja._pop({}) compiler.go:433: 35: goja.loadDynamic(assert) compiler.go:433: 36: goja.getPropCallee(sameValue) compiler.go:433: 37: goja.loadDynamic(b) compiler.go:433: 38: goja.loadVal({2}) compiler.go:433: 39: goja.loadVal({b}) compiler.go:433: 40: goja.call(3) compiler.go:433: 41: goja._pop({}) compiler.go:433: 42: goja.loadDynamic(assert) compiler.go:433: 43: goja.getPropCallee(sameValue) compiler.go:433: 44: goja.loadDynamic(c) compiler.go:433: 45: goja.loadVal({3}) compiler.go:433: 46: goja.loadVal({c}) compiler.go:433: 47: goja.call(3) compiler.go:433: 48: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectAssignmentPattern (0.00s) === RUN TestObjectAssignmentPatternNoDyn compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc000326640 function() { let a, b, c; ({a, b, c=3} = {a: 1, b: 2}); assert.sameValue(a, 1, "a"); assert.sameValue(b, 2, "b"); assert.sameValue(c, 3, "c"); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{3 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja._loadUndef({}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja.initStackP(3) compiler.go:433: > 7: goja._newObject({}) compiler.go:433: > 8: goja.loadVal({1}) compiler.go:433: > 9: goja.putProp(a) compiler.go:433: > 10: goja.loadVal({2}) compiler.go:433: > 11: goja.putProp(b) compiler.go:433: > 12: goja._checkObjectCoercible({}) compiler.go:433: > 13: goja._dup({}) compiler.go:433: > 14: goja.getProp(a) compiler.go:433: > 15: goja.storeStackLexP(1) compiler.go:433: > 16: goja._dup({}) compiler.go:433: > 17: goja.getProp(b) compiler.go:433: > 18: goja.storeStackLexP(2) compiler.go:433: > 19: goja._dup({}) compiler.go:433: > 20: goja.getProp(c) compiler.go:433: > 21: goja.jdef(2) compiler.go:433: > 22: goja.loadVal({3}) compiler.go:433: > 23: goja.storeStackLexP(3) compiler.go:433: > 24: goja._pop({}) compiler.go:433: > 25: goja.loadDynamic(assert) compiler.go:433: > 26: goja.getPropCallee(sameValue) compiler.go:433: > 27: goja.loadStackLex(1) compiler.go:433: > 28: goja.loadVal({1}) compiler.go:433: > 29: goja.loadVal({a}) compiler.go:433: > 30: goja.call(3) compiler.go:433: > 31: goja._pop({}) compiler.go:433: > 32: goja.loadDynamic(assert) compiler.go:433: > 33: goja.getPropCallee(sameValue) compiler.go:433: > 34: goja.loadStackLex(2) compiler.go:433: > 35: goja.loadVal({2}) compiler.go:433: > 36: goja.loadVal({b}) compiler.go:433: > 37: goja.call(3) compiler.go:433: > 38: goja._pop({}) compiler.go:433: > 39: goja.loadDynamic(assert) compiler.go:433: > 40: goja.getPropCallee(sameValue) compiler.go:433: > 41: goja.loadStackLex(3) compiler.go:433: > 42: goja.loadVal({3}) compiler.go:433: > 43: goja.loadVal({c}) compiler.go:433: > 44: goja.call(3) compiler.go:433: > 45: goja._pop({}) compiler.go:433: > 46: goja._loadUndef({}) compiler.go:433: > 47: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectAssignmentPatternNoDyn (0.00s) === RUN TestObjectAssignmentPatternNested compiler.go:433: 0: *goja.bindGlobal(&{[] [] [a b c d] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(a) compiler.go:433: 3: goja._loadUndef({}) compiler.go:433: 4: goja.initGlobalP(b) compiler.go:433: 5: goja._loadUndef({}) compiler.go:433: 6: goja.initGlobalP(c) compiler.go:433: 7: goja._loadUndef({}) compiler.go:433: 8: goja.initGlobalP(d) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: goja.loadVal({1}) compiler.go:433: 11: goja.putProp(a) compiler.go:433: 12: goja.loadVal({2}) compiler.go:433: 13: goja.putProp(b) compiler.go:433: 14: goja._newObject({}) compiler.go:433: 15: goja.loadVal({4}) compiler.go:433: 16: goja.putProp(d) compiler.go:433: 17: goja.putProp(c) compiler.go:433: 18: goja._checkObjectCoercible({}) compiler.go:433: 19: goja._dup({}) compiler.go:433: 20: goja.resolveVar1(a) compiler.go:433: 21: goja.getProp(a) compiler.go:433: 22: goja._putValueP({}) compiler.go:433: 23: goja._dup({}) compiler.go:433: 24: goja.resolveVar1(b) compiler.go:433: 25: goja.getProp(b) compiler.go:433: 26: goja._putValueP({}) compiler.go:433: 27: goja._dup({}) compiler.go:433: 28: goja.loadVal({c}) compiler.go:433: 29: goja._toPropertyKey({}) compiler.go:433: 30: goja._getKey({}) compiler.go:433: 31: goja.jdef(2) compiler.go:433: 32: goja.loadVal({3}) compiler.go:433: 33: goja._checkObjectCoercible({}) compiler.go:433: 34: goja._dup({}) compiler.go:433: 35: goja.resolveVar1(d) compiler.go:433: 36: goja.getProp(d) compiler.go:433: 37: goja._putValueP({}) compiler.go:433: 38: goja._pop({}) compiler.go:433: 39: goja._pop({}) compiler.go:433: 40: goja.loadDynamic(assert) compiler.go:433: 41: goja.getPropCallee(sameValue) compiler.go:433: 42: goja.loadDynamic(a) compiler.go:433: 43: goja.loadVal({1}) compiler.go:433: 44: goja.loadVal({a}) compiler.go:433: 45: goja.call(3) compiler.go:433: 46: goja._pop({}) compiler.go:433: 47: goja.loadDynamic(assert) compiler.go:433: 48: goja.getPropCallee(sameValue) compiler.go:433: 49: goja.loadDynamic(b) compiler.go:433: 50: goja.loadVal({2}) compiler.go:433: 51: goja.loadVal({b}) compiler.go:433: 52: goja.call(3) compiler.go:433: 53: goja._pop({}) compiler.go:433: 54: goja.loadDynamic(assert) compiler.go:433: 55: goja.getPropCallee(sameValue) compiler.go:433: 56: goja.loadDynamic(c) compiler.go:433: 57: goja.loadDynamic(undefined) compiler.go:433: 58: goja.loadVal({c}) compiler.go:433: 59: goja.call(3) compiler.go:433: 60: goja._pop({}) compiler.go:433: 61: goja.loadDynamic(assert) compiler.go:433: 62: goja.getPropCallee(sameValue) compiler.go:433: 63: goja.loadDynamic(d) compiler.go:433: 64: goja.loadVal({4}) compiler.go:433: 65: goja.loadVal({d}) compiler.go:433: 66: goja.call(3) compiler.go:433: 67: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectAssignmentPatternNested (0.00s) === RUN TestObjectAssignmentPatternEvalOrder compiler.go:433: 0: *goja.newFunc(&{0xc000326d20 src function src() { trace += "src(),"; return { get a() { trace += "get a,"; return "a"; } } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({src(),}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja._newObject({}) compiler.go:433: > 7: *goja.newMethod(&{{0xc000326d70 a get a() { trace += "get a,"; return "a"; } 0 false} 1}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.resolveVar1(trace) compiler.go:433: >> 2: goja._getValue({}) compiler.go:433: >> 3: goja.loadVal({get a,}) compiler.go:433: >> 4: goja._add({}) compiler.go:433: >> 5: goja._putValueP({}) compiler.go:433: >> 6: goja.loadVal({a}) compiler.go:433: >> 7: goja._ret({}) compiler.go:433: > 8: *goja.defineGetterKeyed(&{a true}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc000326dc0 prop1 function prop1() { trace += "prop1()," return { toString: function() { trace += "prop1-to-string(),"; return "a"; } } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({prop1(),}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja._newObject({}) compiler.go:433: > 7: *goja.newFunc(&{0xc000326e10 toString function() { trace += "prop1-to-string(),"; return "a"; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.resolveVar1(trace) compiler.go:433: >> 2: goja._getValue({}) compiler.go:433: >> 3: goja.loadVal({prop1-to-string(),}) compiler.go:433: >> 4: goja._add({}) compiler.go:433: >> 5: goja._putValueP({}) compiler.go:433: >> 6: goja.loadVal({a}) compiler.go:433: >> 7: goja._ret({}) compiler.go:433: > 8: goja.putProp(toString) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 2: *goja.newFunc(&{0xc000326e60 prop2 function prop2() { trace += "prop2(),"; return { toString: function() { trace += "prop2-to-string(),"; return "b"; } } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({prop2(),}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja._newObject({}) compiler.go:433: > 7: *goja.newFunc(&{0xc000326eb0 toString function() { trace += "prop2-to-string(),"; return "b"; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.resolveVar1(trace) compiler.go:433: >> 2: goja._getValue({}) compiler.go:433: >> 3: goja.loadVal({prop2-to-string(),}) compiler.go:433: >> 4: goja._add({}) compiler.go:433: >> 5: goja._putValueP({}) compiler.go:433: >> 6: goja.loadVal({b}) compiler.go:433: >> 7: goja._ret({}) compiler.go:433: > 8: goja.putProp(toString) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 3: *goja.newFunc(&{0xc000326f00 target function target() { trace += "target()," return target_obj; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({target(),}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamic(target_obj) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 4: *goja.bindGlobal(&{[] [src prop1 prop2 target] [trace target_obj a b] [] false}) compiler.go:433: 5: goja.loadVal({}) compiler.go:433: 6: goja.initGlobalP(trace) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja.initGlobalP(target_obj) compiler.go:433: 9: goja._loadUndef({}) compiler.go:433: 10: goja.initGlobalP(a) compiler.go:433: 11: goja._loadUndef({}) compiler.go:433: 12: goja.initGlobalP(b) compiler.go:433: 13: goja.loadDynamicCallee(src) compiler.go:433: 14: goja.call(0) compiler.go:433: 15: goja._checkObjectCoercible({}) compiler.go:433: 16: goja._dup({}) compiler.go:433: 17: goja.loadDynamicCallee(prop1) compiler.go:433: 18: goja.call(0) compiler.go:433: 19: goja._toPropertyKey({}) compiler.go:433: 20: goja.loadDynamicCallee(target) compiler.go:433: 21: goja.call(0) compiler.go:433: 22: goja.getPropRef(a) compiler.go:433: 23: goja._getKey({}) compiler.go:433: 24: goja._putValueP({}) compiler.go:433: 25: goja._dup({}) compiler.go:433: 26: goja.loadDynamicCallee(prop2) compiler.go:433: 27: goja.call(0) compiler.go:433: 28: goja._toPropertyKey({}) compiler.go:433: 29: goja.resolveVar1(b) compiler.go:433: 30: goja._getKey({}) compiler.go:433: 31: goja._putValueP({}) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja.loadDynamic(target_obj) compiler.go:433: 34: goja.getProp(a) compiler.go:433: 35: goja.loadVal({a}) compiler.go:433: 36: goja._op_strict_neq({}) compiler.go:433: 37: goja.jneP(8) compiler.go:433: 38: goja.loadDynamic(Error) compiler.go:433: 39: goja.loadVal({target_obj.a=}) compiler.go:433: 40: goja.loadDynamic(target_obj) compiler.go:433: 41: goja.getProp(a) compiler.go:433: 42: goja._add({}) compiler.go:433: 43: goja._new(1) compiler.go:433: 44: goja._throw({}) compiler.go:433: 45: goja.loadDynamic(trace) compiler.go:433: 46: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectAssignmentPatternEvalOrder (0.00s) === RUN TestArrayAssignmentPatternEvalOrder compiler.go:433: 0: *goja.newFunc(&{0xc000327720 src function src() { trace += "src(),"; return src_arr; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({src(),}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamic(src_arr) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc000327770 target function target() { trace += "target(),"; return tgt; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({target(),}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamic(tgt) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 2: *goja.newFunc(&{0xc0003277c0 default_a function default_a() { trace += "default a,"; return "def_a"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({default a,}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadVal({def_a}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 3: *goja.newFunc(&{0xc000327810 default_b function default_b() { trace += "default b,"; return "def_b"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({default b,}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadVal({def_b}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 4: *goja.bindGlobal(&{[] [src target default_a default_b] [trace src_arr tgt] [] false}) compiler.go:433: 5: goja.loadVal({}) compiler.go:433: 6: goja.initGlobalP(trace) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja.loadDynamic(Symbol) compiler.go:433: 9: goja.getProp(iterator) compiler.go:433: 10: goja._toPropertyKey({}) compiler.go:433: 11: *goja.newFunc(&{0xc000327860 function() { let done = false; return { next: function() { trace += "next,"; if (!done) { done = true; return {value: 0}; } return {done: true}; }, return: function() { trace += "return,"; } } } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 0 1 false false}) compiler.go:433: > 1: goja.loadVal({false}) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: goja._newObject({}) compiler.go:433: > 4: *goja.newFunc(&{0xc0003278b0 next function() { trace += "next,"; if (!done) { done = true; return {value: 0}; } return {done: true}; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.resolveVar1(trace) compiler.go:433: >> 2: goja._getValue({}) compiler.go:433: >> 3: goja.loadVal({next,}) compiler.go:433: >> 4: goja._add({}) compiler.go:433: >> 5: goja._putValueP({}) compiler.go:433: >> 6: goja.loadStashLex(0) compiler.go:433: >> 7: goja._not({}) compiler.go:433: >> 8: goja.jneP(7) compiler.go:433: >> 9: goja.loadVal({true}) compiler.go:433: >> 10: goja.storeStashLexP(0) compiler.go:433: >> 11: goja._newObject({}) compiler.go:433: >> 12: goja.loadVal({0}) compiler.go:433: >> 13: goja.putProp(value) compiler.go:433: >> 14: goja._ret({}) compiler.go:433: >> 15: goja._newObject({}) compiler.go:433: >> 16: goja.loadVal({true}) compiler.go:433: >> 17: goja.putProp(done) compiler.go:433: >> 18: goja._ret({}) compiler.go:433: > 5: goja.putProp(next) compiler.go:433: > 6: *goja.newFunc(&{0xc000327900 return function() { trace += "return,"; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.resolveVar1(trace) compiler.go:433: >> 2: goja._getValue({}) compiler.go:433: >> 3: goja.loadVal({return,}) compiler.go:433: >> 4: goja._add({}) compiler.go:433: >> 5: goja._putValueP({}) compiler.go:433: >> 6: goja._loadUndef({}) compiler.go:433: >> 7: goja._ret({}) compiler.go:433: > 7: goja.putProp(return) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 12: goja._setElem1Named({}) compiler.go:433: 13: goja.initGlobalP(src_arr) compiler.go:433: 14: goja._newObject({}) compiler.go:433: 15: *goja.newMethod(&{{0xc000327950 a get a() { trace += "get a,"; return "a"; } 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({get a,}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadVal({a}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 16: *goja.defineGetterKeyed(&{a true}) compiler.go:433: 17: *goja.newMethod(&{{0xc0003279a0 b get b() { trace += "get b,"; return "b"; } 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({get b,}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadVal({b}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 18: *goja.defineGetterKeyed(&{b true}) compiler.go:433: 19: goja.initGlobalP(tgt) compiler.go:433: 20: goja.loadDynamicCallee(src) compiler.go:433: 21: goja.call(0) compiler.go:433: 22: goja._iterate({}) compiler.go:433: 23: goja.loadDynamicCallee(target) compiler.go:433: 24: goja.call(0) compiler.go:433: 25: goja.getPropRef(a) compiler.go:433: 26: goja.iterGetNextOrUndef({}) compiler.go:433: 27: goja.jdef(3) compiler.go:433: 28: goja.loadDynamicCallee(default_a) compiler.go:433: 29: goja.call(0) compiler.go:433: 30: goja._putValueP({}) compiler.go:433: 31: goja.loadDynamicCallee(target) compiler.go:433: 32: goja.call(0) compiler.go:433: 33: goja.getPropRef(b) compiler.go:433: 34: goja.iterGetNextOrUndef({}) compiler.go:433: 35: goja.jdef(3) compiler.go:433: 36: goja.loadDynamicCallee(default_b) compiler.go:433: 37: goja.call(0) compiler.go:433: 38: goja._putValueP({}) compiler.go:433: 39: goja._enumPopClose({}) compiler.go:433: 40: goja._pop({}) compiler.go:433: 41: goja.loadDynamic(trace) compiler.go:433: 42: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArrayAssignmentPatternEvalOrder (0.00s) === RUN TestObjectAssignPatternRest compiler.go:433: 0: *goja.bindGlobal(&{[] [] [a b c d] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(a) compiler.go:433: 3: goja._loadUndef({}) compiler.go:433: 4: goja.initGlobalP(b) compiler.go:433: 5: goja._loadUndef({}) compiler.go:433: 6: goja.initGlobalP(c) compiler.go:433: 7: goja._loadUndef({}) compiler.go:433: 8: goja.initGlobalP(d) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: goja.loadVal({1}) compiler.go:433: 11: goja.putProp(a) compiler.go:433: 12: goja.loadVal({2}) compiler.go:433: 13: goja.putProp(b) compiler.go:433: 14: goja.loadVal({4}) compiler.go:433: 15: goja.putProp(d) compiler.go:433: 16: goja._createDestructSrc({}) compiler.go:433: 17: goja._dup({}) compiler.go:433: 18: goja.resolveVar1(a) compiler.go:433: 19: goja.getProp(a) compiler.go:433: 20: goja._putValueP({}) compiler.go:433: 21: goja._dup({}) compiler.go:433: 22: goja.resolveVar1(b) compiler.go:433: 23: goja.getProp(b) compiler.go:433: 24: goja._putValueP({}) compiler.go:433: 25: goja._dup({}) compiler.go:433: 26: goja.resolveVar1(c) compiler.go:433: 27: goja.getProp(c) compiler.go:433: 28: goja._putValueP({}) compiler.go:433: 29: goja.resolveVar1(d) compiler.go:433: 30: goja._copyRest({}) compiler.go:433: 31: goja._putValueP({}) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja._pop({}) compiler.go:433: 34: goja.loadDynamic(assert) compiler.go:433: 35: goja.getPropCallee(sameValue) compiler.go:433: 36: goja.loadDynamic(a) compiler.go:433: 37: goja.loadVal({1}) compiler.go:433: 38: goja.loadVal({a}) compiler.go:433: 39: goja.call(3) compiler.go:433: 40: goja._pop({}) compiler.go:433: 41: goja.loadDynamic(assert) compiler.go:433: 42: goja.getPropCallee(sameValue) compiler.go:433: 43: goja.loadDynamic(b) compiler.go:433: 44: goja.loadVal({2}) compiler.go:433: 45: goja.loadVal({b}) compiler.go:433: 46: goja.call(3) compiler.go:433: 47: goja._pop({}) compiler.go:433: 48: goja.loadDynamic(assert) compiler.go:433: 49: goja.getPropCallee(sameValue) compiler.go:433: 50: goja.loadDynamic(c) compiler.go:433: 51: goja.loadDynamic(undefined) compiler.go:433: 52: goja.loadVal({c}) compiler.go:433: 53: goja.call(3) compiler.go:433: 54: goja._pop({}) compiler.go:433: 55: goja.loadDynamicCallee(assert) compiler.go:433: 56: goja.loadDynamicCallee(deepEqual) compiler.go:433: 57: goja.loadDynamic(d) compiler.go:433: 58: goja._newObject({}) compiler.go:433: 59: goja.loadVal({4}) compiler.go:433: 60: goja.putProp(d) compiler.go:433: 61: goja.call(2) compiler.go:433: 62: goja.loadVal({d}) compiler.go:433: 63: goja.call(2) compiler.go:433: 64: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectAssignPatternRest (0.00s) === RUN TestObjectBindPattern compiler.go:433: 0: *goja.bindGlobal(&{[y] [] [a b c d] [] false}) compiler.go:433: 1: goja._newObject({}) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja.putProp(a) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.putProp(b) compiler.go:433: 6: goja.loadVal({4}) compiler.go:433: 7: goja.putProp(d) compiler.go:433: 8: goja._createDestructSrc({}) compiler.go:433: 9: goja._dup({}) compiler.go:433: 10: goja.getProp(a) compiler.go:433: 11: goja.initGlobalP(a) compiler.go:433: 12: goja._dup({}) compiler.go:433: 13: goja.getProp(b) compiler.go:433: 14: goja.initGlobalP(b) compiler.go:433: 15: goja._dup({}) compiler.go:433: 16: goja.getProp(c) compiler.go:433: 17: goja.initGlobalP(c) compiler.go:433: 18: goja._copyRest({}) compiler.go:433: 19: goja.initGlobalP(d) compiler.go:433: 20: goja._pop({}) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.loadDynamic(assert) compiler.go:433: 23: goja.getPropCallee(sameValue) compiler.go:433: 24: goja.loadDynamic(a) compiler.go:433: 25: goja.loadVal({1}) compiler.go:433: 26: goja.loadVal({a}) compiler.go:433: 27: goja.call(3) compiler.go:433: 28: goja._pop({}) compiler.go:433: 29: goja.loadDynamic(assert) compiler.go:433: 30: goja.getPropCallee(sameValue) compiler.go:433: 31: goja.loadDynamic(b) compiler.go:433: 32: goja.loadVal({2}) compiler.go:433: 33: goja.loadVal({b}) compiler.go:433: 34: goja.call(3) compiler.go:433: 35: goja._pop({}) compiler.go:433: 36: goja.loadDynamic(assert) compiler.go:433: 37: goja.getPropCallee(sameValue) compiler.go:433: 38: goja.loadDynamic(c) compiler.go:433: 39: goja.loadDynamic(undefined) compiler.go:433: 40: goja.loadVal({c}) compiler.go:433: 41: goja.call(3) compiler.go:433: 42: goja._pop({}) compiler.go:433: 43: goja.loadDynamicCallee(assert) compiler.go:433: 44: goja.loadDynamicCallee(deepEqual) compiler.go:433: 45: goja.loadDynamic(d) compiler.go:433: 46: goja._newObject({}) compiler.go:433: 47: goja.loadVal({4}) compiler.go:433: 48: goja.putProp(d) compiler.go:433: 49: goja.call(2) compiler.go:433: 50: goja.loadVal({d}) compiler.go:433: 51: goja.call(2) compiler.go:433: 52: goja._pop({}) compiler.go:433: 53: goja._newObject({}) compiler.go:433: 54: goja.loadVal({23}) compiler.go:433: 55: goja.putProp(x) compiler.go:433: 56: goja._checkObjectCoercible({}) compiler.go:433: 57: goja._dup({}) compiler.go:433: 58: goja.loadVal({x}) compiler.go:433: 59: goja._toPropertyKey({}) compiler.go:433: 60: goja.resolveVar1(y) compiler.go:433: 61: goja._getKey({}) compiler.go:433: 62: goja._initValueP({}) compiler.go:433: 63: goja._pop({}) compiler.go:433: 64: goja.loadDynamic(assert) compiler.go:433: 65: goja.getPropCallee(sameValue) compiler.go:433: 66: goja.loadDynamic(y) compiler.go:433: 67: goja.loadVal({23}) compiler.go:433: 68: goja.call(2) compiler.go:433: 69: goja._pop({}) compiler.go:433: 70: goja.loadDynamic(assert) compiler.go:433: 71: goja.getPropCallee(throws) compiler.go:433: 72: goja.loadDynamic(ReferenceError) compiler.go:433: 73: *goja.newFunc(&{0xc000360410 function() { x; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(x) compiler.go:433: > 2: goja._pop({}) compiler.go:433: > 3: goja._loadUndef({}) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 74: goja.call(2) compiler.go:433: 75: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectBindPattern (0.00s) === RUN TestObjLiteralShorthandWithInitializer --- PASS: TestObjLiteralShorthandWithInitializer (0.00s) === RUN TestObjLiteralShorthandLetStringLit --- PASS: TestObjLiteralShorthandLetStringLit (0.00s) === RUN TestObjLiteralComputedKeys compiler.go:433: 0: *goja.bindGlobal(&{[] [] [o] [] false}) compiler.go:433: 1: goja._newObject({}) compiler.go:433: 2: goja.loadDynamic(Symbol) compiler.go:433: 3: goja.getProp(toString) compiler.go:433: 4: goja._toPropertyKey({}) compiler.go:433: 5: *goja.newMethod(&{{0xc000360820 get [Symbol.toString]() { } 0 false} 2}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 6: *goja.defineGetter(&{true}) compiler.go:433: 7: goja.initGlobalP(o) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjLiteralComputedKeys (0.00s) === RUN TestObjLiteralComputedKeysEvalOrder compiler.go:433: 0: *goja.newFunc(&{0xc000360b90 key function key() { trace.push("key"); return { toString: function() { trace.push("key-toString"); return "key"; } } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(trace) compiler.go:433: > 2: goja.getPropCallee(push) compiler.go:433: > 3: goja.loadVal({key}) compiler.go:433: > 4: goja.call(1) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja._newObject({}) compiler.go:433: > 7: *goja.newFunc(&{0xc000360be0 toString function() { trace.push("key-toString"); return "key"; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(trace) compiler.go:433: >> 2: goja.getPropCallee(push) compiler.go:433: >> 3: goja.loadVal({key-toString}) compiler.go:433: >> 4: goja.call(1) compiler.go:433: >> 5: goja._pop({}) compiler.go:433: >> 6: goja.loadVal({key}) compiler.go:433: >> 7: goja._ret({}) compiler.go:433: > 8: goja.putProp(toString) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc000360c30 val function val() { trace.push("val"); return "val"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(trace) compiler.go:433: > 2: goja.getPropCallee(push) compiler.go:433: > 3: goja.loadVal({val}) compiler.go:433: > 4: goja.call(1) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja.loadVal({val}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[] [key val] [trace] [_] false}) compiler.go:433: 3: goja.newArray(0) compiler.go:433: 4: goja.initGlobalP(trace) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja.loadDynamicCallee(key) compiler.go:433: 7: goja.call(0) compiler.go:433: 8: goja._toPropertyKey({}) compiler.go:433: 9: goja.loadDynamicCallee(val) compiler.go:433: 10: goja.call(0) compiler.go:433: 11: goja._setElem1({}) compiler.go:433: 12: goja.initGlobalP(_) compiler.go:433: 13: goja.loadDynamic(trace) compiler.go:433: 14: goja.getPropCallee(join) compiler.go:433: 15: goja.loadVal({,}) compiler.go:433: 16: goja.call(1) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjLiteralComputedKeysEvalOrder (0.00s) === RUN TestArrayAssignPattern compiler.go:433: 0: *goja.bindGlobal(&{[] [] [a b] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(a) compiler.go:433: 3: goja._loadUndef({}) compiler.go:433: 4: goja.initGlobalP(b) compiler.go:433: 5: goja.newArray(2) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja.loadVal({2}) compiler.go:433: 9: goja._pushArrayItem({}) compiler.go:433: 10: goja._iterate({}) compiler.go:433: 11: goja.resolveVar1(a) compiler.go:433: 12: goja.iterGetNextOrUndef({}) compiler.go:433: 13: goja._putValueP({}) compiler.go:433: 14: goja.resolveVar1(b) compiler.go:433: 15: goja.iterGetNextOrUndef({}) compiler.go:433: 16: goja._putValueP({}) compiler.go:433: 17: goja._enumPopClose({}) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamic(a) compiler.go:433: 20: goja.loadVal({1}) compiler.go:433: 21: goja._op_strict_eq({}) compiler.go:433: 22: goja.jne(4) compiler.go:433: 23: goja.loadDynamic(b) compiler.go:433: 24: goja.loadVal({2}) compiler.go:433: 25: goja._op_strict_eq({}) compiler.go:433: 26: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayAssignPattern (0.00s) === RUN TestArrayAssignPattern1 compiler.go:433: 0: *goja.bindGlobal(&{[] [] [a b] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(a) compiler.go:433: 3: goja._loadUndef({}) compiler.go:433: 4: goja.initGlobalP(b) compiler.go:433: 5: goja.newArray(1) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja._iterate({}) compiler.go:433: 9: goja.resolveVar1(a) compiler.go:433: 10: goja.iterGetNextOrUndef({}) compiler.go:433: 11: goja.jdef(2) compiler.go:433: 12: goja.loadVal({3}) compiler.go:433: 13: goja._putValueP({}) compiler.go:433: 14: goja.resolveVar1(b) compiler.go:433: 15: goja.iterGetNextOrUndef({}) compiler.go:433: 16: goja.jdef(2) compiler.go:433: 17: goja.loadVal({2}) compiler.go:433: 18: goja._putValueP({}) compiler.go:433: 19: goja._enumPopClose({}) compiler.go:433: 20: goja._pop({}) compiler.go:433: 21: goja.loadDynamic(a) compiler.go:433: 22: goja.loadVal({1}) compiler.go:433: 23: goja._op_strict_eq({}) compiler.go:433: 24: goja.jne(4) compiler.go:433: 25: goja.loadDynamic(b) compiler.go:433: 26: goja.loadVal({2}) compiler.go:433: 27: goja._op_strict_eq({}) compiler.go:433: 28: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayAssignPattern1 (0.00s) === RUN TestArrayAssignPatternLHS compiler.go:433: 0: *goja.bindGlobal(&{[] [] [a] [] false}) compiler.go:433: 1: goja._newObject({}) compiler.go:433: 2: goja.initGlobalP(a) compiler.go:433: 3: goja.newArray(1) compiler.go:433: 4: goja.loadVal({1}) compiler.go:433: 5: goja._pushArrayItem({}) compiler.go:433: 6: goja._iterate({}) compiler.go:433: 7: goja.loadDynamic(a) compiler.go:433: 8: goja.getPropRef(b) compiler.go:433: 9: goja.iterGetNextOrUndef({}) compiler.go:433: 10: goja._putValueP({}) compiler.go:433: 11: goja.loadDynamic(a) compiler.go:433: 12: goja.getPropRef(c) compiler.go:433: 13: goja.iterGetNextOrUndef({}) compiler.go:433: 14: goja.jdef(2) compiler.go:433: 15: goja.loadVal({2}) compiler.go:433: 16: goja._putValueP({}) compiler.go:433: 17: goja._enumPopClose({}) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamic(a) compiler.go:433: 20: goja.getProp(b) compiler.go:433: 21: goja.loadVal({1}) compiler.go:433: 22: goja._op_strict_eq({}) compiler.go:433: 23: goja.jne(5) compiler.go:433: 24: goja.loadDynamic(a) compiler.go:433: 25: goja.getProp(c) compiler.go:433: 26: goja.loadVal({2}) compiler.go:433: 27: goja._op_strict_eq({}) compiler.go:433: 28: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayAssignPatternLHS (0.00s) === RUN TestArrayAssignPatternElision compiler.go:433: 0: *goja.bindGlobal(&{[] [] [a b] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(a) compiler.go:433: 3: goja._loadUndef({}) compiler.go:433: 4: goja.initGlobalP(b) compiler.go:433: 5: goja.newArray(3) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja.loadVal({4}) compiler.go:433: 9: goja._pushArrayItem({}) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja._pushArrayItem({}) compiler.go:433: 12: goja._iterate({}) compiler.go:433: 13: goja.resolveVar1(a) compiler.go:433: 14: goja.iterGetNextOrUndef({}) compiler.go:433: 15: goja._putValueP({}) compiler.go:433: 16: goja.iterGetNextOrUndef({}) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.resolveVar1(b) compiler.go:433: 19: goja.iterGetNextOrUndef({}) compiler.go:433: 20: goja._putValueP({}) compiler.go:433: 21: goja._enumPopClose({}) compiler.go:433: 22: goja._pop({}) compiler.go:433: 23: goja.loadDynamic(a) compiler.go:433: 24: goja.loadVal({1}) compiler.go:433: 25: goja._op_strict_eq({}) compiler.go:433: 26: goja.jne(4) compiler.go:433: 27: goja.loadDynamic(b) compiler.go:433: 28: goja.loadVal({2}) compiler.go:433: 29: goja._op_strict_eq({}) compiler.go:433: 30: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayAssignPatternElision (0.00s) === RUN TestArrayAssignPatternRestPattern compiler.go:433: 0: *goja.bindGlobal(&{[] [] [a b z] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(a) compiler.go:433: 3: goja._loadUndef({}) compiler.go:433: 4: goja.initGlobalP(b) compiler.go:433: 5: goja._loadUndef({}) compiler.go:433: 6: goja.initGlobalP(z) compiler.go:433: 7: goja.newArray(3) compiler.go:433: 8: goja.loadVal({0}) compiler.go:433: 9: goja._pushArrayItem({}) compiler.go:433: 10: goja.loadVal({1}) compiler.go:433: 11: goja._pushArrayItem({}) compiler.go:433: 12: goja.loadVal({2}) compiler.go:433: 13: goja._pushArrayItem({}) compiler.go:433: 14: goja._iterate({}) compiler.go:433: 15: goja.resolveVar1(z) compiler.go:433: 16: goja.iterGetNextOrUndef({}) compiler.go:433: 17: goja._putValueP({}) compiler.go:433: 18: goja._newArrayFromIter({}) compiler.go:433: 19: goja._iterate({}) compiler.go:433: 20: goja.resolveVar1(a) compiler.go:433: 21: goja.iterGetNextOrUndef({}) compiler.go:433: 22: goja._putValueP({}) compiler.go:433: 23: goja.resolveVar1(b) compiler.go:433: 24: goja.iterGetNextOrUndef({}) compiler.go:433: 25: goja._putValueP({}) compiler.go:433: 26: goja._enumPopClose({}) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja._pop({}) compiler.go:433: 29: goja.loadDynamic(z) compiler.go:433: 30: goja.loadVal({0}) compiler.go:433: 31: goja._op_strict_eq({}) compiler.go:433: 32: goja.jne(4) compiler.go:433: 33: goja.loadDynamic(a) compiler.go:433: 34: goja.loadVal({1}) compiler.go:433: 35: goja._op_strict_eq({}) compiler.go:433: 36: goja.jne(4) compiler.go:433: 37: goja.loadDynamic(b) compiler.go:433: 38: goja.loadVal({2}) compiler.go:433: 39: goja._op_strict_eq({}) compiler.go:433: 40: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayAssignPatternRestPattern (0.00s) === RUN TestArrayBindingPattern compiler.go:433: 0: *goja.bindGlobal(&{[] [] [a b] [] false}) compiler.go:433: 1: goja.newArray(2) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja._pushArrayItem({}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja._pushArrayItem({}) compiler.go:433: 6: goja._iterate({}) compiler.go:433: 7: goja.iterGetNextOrUndef({}) compiler.go:433: 8: goja.initGlobalP(a) compiler.go:433: 9: goja.iterGetNextOrUndef({}) compiler.go:433: 10: goja.initGlobalP(b) compiler.go:433: 11: goja._enumPopClose({}) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: goja.loadDynamic(a) compiler.go:433: 14: goja.loadVal({1}) compiler.go:433: 15: goja._op_strict_eq({}) compiler.go:433: 16: goja.jne(4) compiler.go:433: 17: goja.loadDynamic(b) compiler.go:433: 18: goja.loadVal({2}) compiler.go:433: 19: goja._op_strict_eq({}) compiler.go:433: 20: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayBindingPattern (0.00s) === RUN TestObjectPatternShorthandInit compiler.go:433: 0: goja.newArray(0) compiler.go:433: 1: goja._iterate({}) compiler.go:433: 2: goja._newArrayFromIter({}) compiler.go:433: 3: goja._checkObjectCoercible({}) compiler.go:433: 4: goja._dup({}) compiler.go:433: 5: goja.resolveVar1(x) compiler.go:433: 6: goja.getProp(x) compiler.go:433: 7: goja.jdef(2) compiler.go:433: 8: goja.loadVal({1}) compiler.go:433: 9: goja._putValueP({}) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.loadDynamic(x) compiler.go:433: 13: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectPatternShorthandInit (0.00s) === RUN TestArrayBindingPatternRestPattern compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [a b c d] false}) compiler.go:433: 1: goja.newArray(4) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja._pushArrayItem({}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja._pushArrayItem({}) compiler.go:433: 6: goja.loadVal({3}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja.loadVal({4}) compiler.go:433: 9: goja._pushArrayItem({}) compiler.go:433: 10: goja._iterate({}) compiler.go:433: 11: goja.iterGetNextOrUndef({}) compiler.go:433: 12: goja.initGlobalP(a) compiler.go:433: 13: goja.iterGetNextOrUndef({}) compiler.go:433: 14: goja.initGlobalP(b) compiler.go:433: 15: goja._newArrayFromIter({}) compiler.go:433: 16: goja._iterate({}) compiler.go:433: 17: goja.iterGetNextOrUndef({}) compiler.go:433: 18: goja.initGlobalP(c) compiler.go:433: 19: goja.iterGetNextOrUndef({}) compiler.go:433: 20: goja.initGlobalP(d) compiler.go:433: 21: goja._enumPopClose({}) compiler.go:433: 22: goja._pop({}) compiler.go:433: 23: goja._pop({}) compiler.go:433: 24: goja.loadDynamic(a) compiler.go:433: 25: goja.loadVal({1}) compiler.go:433: 26: goja._op_strict_eq({}) compiler.go:433: 27: goja.jne(4) compiler.go:433: 28: goja.loadDynamic(b) compiler.go:433: 29: goja.loadVal({2}) compiler.go:433: 30: goja._op_strict_eq({}) compiler.go:433: 31: goja.jne(4) compiler.go:433: 32: goja.loadDynamic(c) compiler.go:433: 33: goja.loadVal({3}) compiler.go:433: 34: goja._op_strict_eq({}) compiler.go:433: 35: goja.jne(4) compiler.go:433: 36: goja.loadDynamic(d) compiler.go:433: 37: goja.loadVal({4}) compiler.go:433: 38: goja._op_strict_eq({}) compiler.go:433: 39: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestArrayBindingPatternRestPattern (0.00s) === RUN TestForVarPattern compiler.go:433: 0: *goja.bindGlobal(&{[o trace key value] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.putProp(a) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(trace) compiler.go:433: 7: goja.loadVal({}) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja.loadDynamic(Object) compiler.go:433: 10: goja.getPropCallee(entries) compiler.go:433: 11: goja.loadDynamic(o) compiler.go:433: 12: goja.call(1) compiler.go:433: 13: goja._iterateP({}) compiler.go:433: 14: goja.iterNext(21) compiler.go:433: 15: goja._enumGet({}) compiler.go:433: 16: goja._iterate({}) compiler.go:433: 17: goja.resolveVar1(key) compiler.go:433: 18: goja.iterGetNextOrUndef({}) compiler.go:433: 19: goja._initValueP({}) compiler.go:433: 20: goja.resolveVar1(value) compiler.go:433: 21: goja.iterGetNextOrUndef({}) compiler.go:433: 22: goja._initValueP({}) compiler.go:433: 23: goja._enumPopClose({}) compiler.go:433: 24: goja._pop({}) compiler.go:433: 25: goja.resolveVar1(trace) compiler.go:433: 26: goja._getValue({}) compiler.go:433: 27: goja.loadDynamic(key) compiler.go:433: 28: goja.loadVal({:}) compiler.go:433: 29: goja._add({}) compiler.go:433: 30: goja.loadDynamic(value) compiler.go:433: 31: goja._add({}) compiler.go:433: 32: goja._add({}) compiler.go:433: 33: goja._putValueP({}) compiler.go:433: 34: goja.jump(-20) compiler.go:433: 35: goja._enumPop({}) compiler.go:433: 36: goja.jump(2) compiler.go:433: 37: goja._enumPopClose({}) compiler.go:433: 38: goja.loadDynamic(trace) compiler.go:433: 39: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForVarPattern (0.00s) === RUN TestForLexPattern compiler.go:433: 0: *goja.bindGlobal(&{[o trace] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.putProp(a) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(trace) compiler.go:433: 7: goja.loadVal({}) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja.jump(1) compiler.go:433: 10: goja.loadDynamic(Object) compiler.go:433: 11: goja.getPropCallee(entries) compiler.go:433: 12: goja.loadDynamic(o) compiler.go:433: 13: goja.call(1) compiler.go:433: 14: goja._iterateP({}) compiler.go:433: 15: goja.iterNext(21) compiler.go:433: 16: *goja.enterBlock(&{map[] 0 2}) compiler.go:433: 17: goja._enumGet({}) compiler.go:433: 18: goja._iterate({}) compiler.go:433: 19: goja.iterGetNextOrUndef({}) compiler.go:433: 20: goja.initStackP(1) compiler.go:433: 21: goja.iterGetNextOrUndef({}) compiler.go:433: 22: goja.initStackP(2) compiler.go:433: 23: goja._enumPopClose({}) compiler.go:433: 24: goja._pop({}) compiler.go:433: 25: goja.resolveVar1(trace) compiler.go:433: 26: goja._getValue({}) compiler.go:433: 27: goja.loadStackLex(1) compiler.go:433: 28: goja.loadVal({:}) compiler.go:433: 29: goja._add({}) compiler.go:433: 30: goja.loadStackLex(2) compiler.go:433: 31: goja._add({}) compiler.go:433: 32: goja._add({}) compiler.go:433: 33: goja._putValueP({}) compiler.go:433: 34: *goja.leaveBlock(&{2 false}) compiler.go:433: 35: goja.jump(-20) compiler.go:433: 36: goja._enumPop({}) compiler.go:433: 37: goja.jump(2) compiler.go:433: 38: goja._enumPopClose({}) compiler.go:433: 39: goja.loadDynamic(trace) compiler.go:433: 40: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestForLexPattern (0.00s) === RUN TestBindingPatternRestTrailingComma --- PASS: TestBindingPatternRestTrailingComma (0.00s) === RUN TestAssignPatternRestTrailingComma --- PASS: TestAssignPatternRestTrailingComma (0.00s) === RUN TestFuncParamInitializerSimple compiler.go:433: 0: *goja.newFunc(&{0xc000361c20 f function f(a = 1) { return a; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.jdefP(3) compiler.go:433: > 3: goja.loadVal({1}) compiler.go:433: > 4: goja.initStackP(-1) compiler.go:433: > 5: *goja.enterFuncBody(&{{map[] 0 0} 1 false false}) compiler.go:433: > 6: goja.loadStackLex(-1) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadVal({}) compiler.go:433: 3: goja.loadDynamicCallee(f) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._add({}) compiler.go:433: 6: goja.loadDynamicCallee(f) compiler.go:433: 7: goja.loadVal({2}) compiler.go:433: 8: goja.call(1) compiler.go:433: 9: goja._add({}) compiler.go:433: 10: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFuncParamInitializerSimple (0.00s) === RUN TestFuncParamObjectPatternSimple compiler.go:433: 0: *goja.newFunc(&{0xc000361e50 f function f({a, b} = {a: 1, b: 2}) { return "" + a + b; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{2 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.jdef(6) compiler.go:433: > 3: goja._newObject({}) compiler.go:433: > 4: goja.loadVal({1}) compiler.go:433: > 5: goja.putProp(a) compiler.go:433: > 6: goja.loadVal({2}) compiler.go:433: > 7: goja.putProp(b) compiler.go:433: > 8: goja._checkObjectCoercible({}) compiler.go:433: > 9: goja._dup({}) compiler.go:433: > 10: goja.getProp(a) compiler.go:433: > 11: goja.initStackP(1) compiler.go:433: > 12: goja._dup({}) compiler.go:433: > 13: goja.getProp(b) compiler.go:433: > 14: goja.initStackP(2) compiler.go:433: > 15: goja._pop({}) compiler.go:433: > 16: *goja.enterFuncBody(&{{map[] 0 0} 1 false false}) compiler.go:433: > 17: goja.loadVal({}) compiler.go:433: > 18: goja.loadStackLex(1) compiler.go:433: > 19: goja._add({}) compiler.go:433: > 20: goja.loadStackLex(2) compiler.go:433: > 21: goja._add({}) compiler.go:433: > 22: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadVal({}) compiler.go:433: 3: goja.loadDynamicCallee(f) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._add({}) compiler.go:433: 6: goja.loadVal({ }) compiler.go:433: 7: goja._add({}) compiler.go:433: 8: goja.loadDynamicCallee(f) compiler.go:433: 9: goja._newObject({}) compiler.go:433: 10: goja.loadVal({3}) compiler.go:433: 11: goja.putProp(a) compiler.go:433: 12: goja.loadVal({4}) compiler.go:433: 13: goja.putProp(b) compiler.go:433: 14: goja.call(1) compiler.go:433: 15: goja._add({}) compiler.go:433: 16: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFuncParamObjectPatternSimple (0.00s) === RUN TestFuncParamRestStackSimple compiler.go:433: 0: *goja.newFunc(&{0xc00036c190 f function f(arg1, ...rest) { return rest; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 1}) compiler.go:433: > 1: goja.createArgsRestStack(1) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: *goja.enterFuncBody(&{{map[] 0 0} 1 false false}) compiler.go:433: > 4: goja.loadStackLex(1) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [ar] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.loadVal({3}) compiler.go:433: 6: goja.call(3) compiler.go:433: 7: goja.initGlobalP(ar) compiler.go:433: 8: goja.loadDynamic(ar) compiler.go:433: 9: goja.getPropCallee(join) compiler.go:433: 10: goja.loadVal({,}) compiler.go:433: 11: goja.call(1) compiler.go:433: 12: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFuncParamRestStackSimple (0.00s) === RUN TestFuncParamRestStashSimple compiler.go:433: 0: *goja.newFunc(&{0xc00036c3c0 f function f(arg1, ...rest) { eval("true"); return rest; } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741825 arg1:0 arguments:3 rest:2] 4 0 1 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(1) compiler.go:433: > 3: goja.createArgsUnmapped(1) compiler.go:433: > 4: goja.initStashP(3) compiler.go:433: > 5: goja._createArgsRestStash({}) compiler.go:433: > 6: goja.initStashP(2) compiler.go:433: > 7: *goja.enterFuncBody(&{{map[] 0 0} 1 true false}) compiler.go:433: > 8: goja.loadDynamicCallee(eval) compiler.go:433: > 9: goja.loadVal({true}) compiler.go:433: > 10: goja.callEval(1) compiler.go:433: > 11: goja._pop({}) compiler.go:433: > 12: *goja.loadMixedLex(&{rest 16777218 false}) compiler.go:433: > 13: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [ar] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.loadVal({3}) compiler.go:433: 6: goja.call(3) compiler.go:433: 7: goja.initGlobalP(ar) compiler.go:433: 8: goja.loadDynamic(ar) compiler.go:433: 9: goja.getPropCallee(join) compiler.go:433: 10: goja.loadVal({,}) compiler.go:433: 11: goja.call(1) compiler.go:433: 12: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestFuncParamRestStashSimple (0.00s) === RUN TestRestArgsNotInStash compiler.go:433: 0: *goja.newFunc(&{0xc00036c780 f function f(...rest) { () => rest; return rest.length; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 0 1 false false}) compiler.go:433: > 1: goja.createArgsRestStack(0) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: *goja.enterFuncBody(&{{map[] 0 0} 1 false false}) compiler.go:433: > 4: *goja.newArrowFunc(&{{0xc00036c7d0 () => rest 0 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStashLex(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja.loadStashLex(0) compiler.go:433: > 7: goja.getProp(length) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestRestArgsNotInStash (0.00s) === RUN TestRestArgsInStash compiler.go:433: 0: *goja.newFunc(&{0xc00036caf0 f function f(first, ...rest) { () => first; () => rest; return rest.length; } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 2 0 1 1 true false}) compiler.go:433: > 1: goja._createArgsRestStash({}) compiler.go:433: > 2: goja.initStashP(1) compiler.go:433: > 3: *goja.enterFuncBody(&{{map[] 0 0} 1 false false}) compiler.go:433: > 4: *goja.newArrowFunc(&{{0xc00036cb40 () => first 0 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStashLex(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: *goja.newArrowFunc(&{{0xc00036cb90 () => rest 0 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStashLex(1) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 7: goja._pop({}) compiler.go:433: > 8: goja.loadStashLex(1) compiler.go:433: > 9: goja.getProp(length) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestRestArgsInStash (0.00s) === RUN TestRestArgsInStashFwdRef compiler.go:433: 0: *goja.newFunc(&{0xc00036cf00 f function f(first = eval(), ...rest) { () => first; () => rest; return rest.length === 1 && rest[0] === 2; } 0 false}) compiler.go:433: > 0: *goja.enterFunc1(&{map[ this:1073741825 arguments:3 first:0 rest:2] 4 1 0 1 true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.initStashP(1) compiler.go:433: > 4: goja.createArgsUnmapped(1) compiler.go:433: > 5: goja.initStashP(3) compiler.go:433: > 6: goja.loadStackLex(-1) compiler.go:433: > 7: goja.jdefP(4) compiler.go:433: > 8: goja.loadDynamicCallee(eval) compiler.go:433: > 9: goja.callEval(0) compiler.go:433: > 10: goja.initStashP(0) compiler.go:433: > 11: goja._createArgsRestStash({}) compiler.go:433: > 12: goja.initStashP(2) compiler.go:433: > 13: *goja.enterFuncBody(&{{map[] 0 0} 1 false true}) compiler.go:433: > 14: *goja.newArrowFunc(&{{0xc00036cf50 () => first 0 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStashLex(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 15: goja._pop({}) compiler.go:433: > 16: *goja.newArrowFunc(&{{0xc00036cfa0 () => rest 0 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStashLex(2) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 17: goja._pop({}) compiler.go:433: > 18: goja.loadStashLex(2) compiler.go:433: > 19: goja.getProp(length) compiler.go:433: > 20: goja.loadVal({1}) compiler.go:433: > 21: goja._op_strict_eq({}) compiler.go:433: > 22: goja.jne(6) compiler.go:433: > 23: goja.loadStashLex(2) compiler.go:433: > 24: goja.loadVal({0}) compiler.go:433: > 25: goja._getElem({}) compiler.go:433: > 26: goja.loadVal({2}) compiler.go:433: > 27: goja._op_strict_eq({}) compiler.go:433: > 28: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestRestArgsInStashFwdRef (0.00s) === RUN TestFuncParamRestPattern compiler.go:433: 0: *goja.newFunc(&{0xc00036d270 f function f(arg1, ...{0: rest1, 1: rest2}) { return ""+arg1+" "+rest1+" "+rest2; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{2 1}) compiler.go:433: > 1: goja.createArgsRestStack(1) compiler.go:433: > 2: goja._checkObjectCoercible({}) compiler.go:433: > 3: goja._dup({}) compiler.go:433: > 4: goja.loadVal({0}) compiler.go:433: > 5: goja._toPropertyKey({}) compiler.go:433: > 6: goja._getKey({}) compiler.go:433: > 7: goja.initStackP(1) compiler.go:433: > 8: goja._dup({}) compiler.go:433: > 9: goja.loadVal({1}) compiler.go:433: > 10: goja._toPropertyKey({}) compiler.go:433: > 11: goja._getKey({}) compiler.go:433: > 12: goja.initStackP(2) compiler.go:433: > 13: goja._pop({}) compiler.go:433: > 14: *goja.enterFuncBody(&{{map[] 0 0} 1 false false}) compiler.go:433: > 15: goja.loadVal({}) compiler.go:433: > 16: goja.loadStackLex(-1) compiler.go:433: > 17: goja._add({}) compiler.go:433: > 18: goja.loadVal({ }) compiler.go:433: > 19: goja._add({}) compiler.go:433: > 20: goja.loadStackLex(1) compiler.go:433: > 21: goja._add({}) compiler.go:433: > 22: goja.loadVal({ }) compiler.go:433: > 23: goja._add({}) compiler.go:433: > 24: goja.loadStackLex(2) compiler.go:433: > 25: goja._add({}) compiler.go:433: > 26: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.loadVal({3}) compiler.go:433: 6: goja.call(3) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFuncParamRestPattern (0.00s) === RUN TestFuncParamForwardRef compiler.go:433: 0: *goja.newFunc(&{0xc00036d4a0 f function f(a = b + 1, b) { return ""+a+" "+b; } 0 false}) compiler.go:433: > 0: *goja.enterFunc1(&{map[] 2 2 1 1 false}) compiler.go:433: > 1: goja.loadStashLex(0) compiler.go:433: > 2: goja.jdefP(5) compiler.go:433: > 3: goja.loadStashLex(1) compiler.go:433: > 4: goja.loadVal({1}) compiler.go:433: > 5: goja._add({}) compiler.go:433: > 6: goja.initStashP(0) compiler.go:433: > 7: goja.loadStackLex(-2) compiler.go:433: > 8: goja.initStashP(1) compiler.go:433: > 9: *goja.enterFuncBody(&{{map[] 0 0} 1 false true}) compiler.go:433: > 10: goja.loadVal({}) compiler.go:433: > 11: goja.loadStashLex(0) compiler.go:433: > 12: goja._add({}) compiler.go:433: > 13: goja.loadVal({ }) compiler.go:433: > 14: goja._add({}) compiler.go:433: > 15: goja.loadStashLex(1) compiler.go:433: > 16: goja._add({}) compiler.go:433: > 17: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestFuncParamForwardRef (0.00s) === RUN TestFuncParamForwardRefMissing compiler.go:433: 0: *goja.newFunc(&{0xc00036d860 f function f(a = b + 1, b) { return ""+a+" "+b; } 0 false}) compiler.go:433: > 0: *goja.enterFunc1(&{map[] 2 2 1 1 false}) compiler.go:433: > 1: goja.loadStashLex(0) compiler.go:433: > 2: goja.jdefP(5) compiler.go:433: > 3: goja.loadStashLex(1) compiler.go:433: > 4: goja.loadVal({1}) compiler.go:433: > 5: goja._add({}) compiler.go:433: > 6: goja.initStashP(0) compiler.go:433: > 7: goja.loadStackLex(-2) compiler.go:433: > 8: goja.initStashP(1) compiler.go:433: > 9: *goja.enterFuncBody(&{{map[] 0 0} 1 false true}) compiler.go:433: > 10: goja.loadVal({}) compiler.go:433: > 11: goja.loadStashLex(0) compiler.go:433: > 12: goja._add({}) compiler.go:433: > 13: goja.loadVal({ }) compiler.go:433: > 14: goja._add({}) compiler.go:433: > 15: goja.loadStashLex(1) compiler.go:433: > 16: goja._add({}) compiler.go:433: > 17: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamic(assert) compiler.go:433: 3: goja.getPropCallee(throws) compiler.go:433: 4: goja.loadDynamic(ReferenceError) compiler.go:433: 5: *goja.newFunc(&{0xc00036d8b0 function() { f(); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamicCallee(f) compiler.go:433: > 2: goja.call(0) compiler.go:433: > 3: goja._pop({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestFuncParamForwardRefMissing (0.00s) === RUN TestFuncParamInnerRef compiler.go:433: 0: *goja.newFunc(&{0xc00036dbd0 f function f(a = inner) { var inner = 42; return a; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.jdefP(3) compiler.go:433: > 3: goja.loadDynamic(inner) compiler.go:433: > 4: goja.initStackP(-1) compiler.go:433: > 5: *goja.enterFuncBody(&{{map[] 0 1} 1 false false}) compiler.go:433: > 6: goja.loadVal({42}) compiler.go:433: > 7: goja.initStackP(1) compiler.go:433: > 8: goja.loadStackLex(-1) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamic(assert) compiler.go:433: 3: goja.getPropCallee(throws) compiler.go:433: 4: goja.loadDynamic(ReferenceError) compiler.go:433: 5: *goja.newFunc(&{0xc00036dc20 function() { f(); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamicCallee(f) compiler.go:433: > 2: goja.call(0) compiler.go:433: > 3: goja._pop({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFuncParamInnerRef (0.00s) === RUN TestFuncParamInnerRefEval compiler.go:433: 0: *goja.newFunc(&{0xc00036c2d0 f function f(a = eval("inner")) { var inner = 42; return a; } 0 false}) compiler.go:433: > 0: *goja.enterFunc1(&{map[ this:1073741825 a:0 arguments:2] 3 1 0 1 true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.initStashP(1) compiler.go:433: > 4: goja.createArgsUnmapped(1) compiler.go:433: > 5: goja.initStashP(2) compiler.go:433: > 6: goja.loadStackLex(-1) compiler.go:433: > 7: goja.jdefP(5) compiler.go:433: > 8: goja.loadDynamicCallee(eval) compiler.go:433: > 9: goja.loadVal({inner}) compiler.go:433: > 10: goja.callEval(1) compiler.go:433: > 11: goja.initStashP(0) compiler.go:433: > 12: *goja.enterFuncBody(&{{map[] 0 1} 1 false true}) compiler.go:433: > 13: goja.loadVal({42}) compiler.go:433: > 14: goja.initStack1P(1) compiler.go:433: > 15: goja.loadStashLex(0) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamic(assert) compiler.go:433: 3: goja.getPropCallee(throws) compiler.go:433: 4: goja.loadDynamic(ReferenceError) compiler.go:433: 5: *goja.newFunc(&{0xc00036c320 function() { f(); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamicCallee(f) compiler.go:433: > 2: goja.call(0) compiler.go:433: > 3: goja._pop({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestFuncParamInnerRefEval (0.00s) === RUN TestFuncParamCalleeName compiler.go:433: 0: *goja.newFunc(&{0xc00036c5f0 f function f(a = f) { var f; return f; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.jdefP(3) compiler.go:433: > 3: goja.loadDynamic(f) compiler.go:433: > 4: goja.initStackP(-1) compiler.go:433: > 5: *goja.enterFuncBody(&{{map[] 0 1} 1 false false}) compiler.go:433: > 6: goja.loadStack(1) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._typeof({}) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFuncParamCalleeName (0.00s) === RUN TestFuncParamVarCopy compiler.go:433: 0: *goja.newFunc(&{0xc00036c820 f function f(a = f) { var a; return a; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.jdefP(3) compiler.go:433: > 3: goja.loadDynamic(f) compiler.go:433: > 4: goja.initStackP(-1) compiler.go:433: > 5: *goja.enterFuncBody(&{{map[] 0 1} 1 false false}) compiler.go:433: > 6: goja.loadStackLex(-1) compiler.go:433: > 7: goja.storeStackP(1) compiler.go:433: > 8: goja.loadStack(1) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._typeof({}) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFuncParamVarCopy (0.00s) === RUN TestFuncParamScope compiler.go:433: 0: *goja.newFunc(&{0xc00036cb90 f function f( _ = probe1 = function() { return x; }, __ = (eval('var x = "inside";'), probe2 = function() { return x; }) ) { } 0 false}) compiler.go:433: > 0: *goja.enterFunc1(&{map[ this:1073741826 _:0 __:1 arguments:3] 4 2 1 1 true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.initStashP(2) compiler.go:433: > 4: goja.createArgsUnmapped(2) compiler.go:433: > 5: goja.initStashP(3) compiler.go:433: > 6: goja.loadStashLex(0) compiler.go:433: > 7: goja.jdefP(5) compiler.go:433: > 8: goja.resolveVar1(probe1) compiler.go:433: > 9: *goja.newFunc(&{0xc00036cbe0 probe1 function() { return x; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(x) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 10: goja._putValue({}) compiler.go:433: > 11: goja.initStashP(0) compiler.go:433: > 12: goja.loadStackLex(-2) compiler.go:433: > 13: goja.jdefP(9) compiler.go:433: > 14: goja.loadDynamicCallee(eval) compiler.go:433: > 15: goja.loadVal({var x = "inside";}) compiler.go:433: > 16: goja.callEval(1) compiler.go:433: > 17: goja._pop({}) compiler.go:433: > 18: goja.resolveVar1(probe2) compiler.go:433: > 19: *goja.newFunc(&{0xc00036cc30 probe2 function() { return x; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(x) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 20: goja._putValue({}) compiler.go:433: > 21: goja.initStashP(1) compiler.go:433: > 22: *goja.enterFuncBody(&{{map[] 0 0} 1 false true}) compiler.go:433: > 23: goja._loadUndef({}) compiler.go:433: > 24: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[x probe1 probe2] [f] [] [] false}) compiler.go:433: 2: goja.resolveVar1(x) compiler.go:433: 3: goja.loadVal({outside}) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.loadDynamicCallee(f) compiler.go:433: 6: goja.call(0) compiler.go:433: 7: goja._pop({}) compiler.go:433: 8: goja.loadDynamicCallee(probe1) compiler.go:433: 9: goja.call(0) compiler.go:433: 10: goja.loadVal({ }) compiler.go:433: 11: goja._add({}) compiler.go:433: 12: goja.loadDynamicCallee(probe2) compiler.go:433: 13: goja.call(0) compiler.go:433: 14: goja._add({}) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestFuncParamScope (0.00s) === RUN TestDefParamsStackPtr compiler.go:433: 0: *goja.newFunc(&{0xc00036d0e0 A function A() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc00036d130 D function D(message = '') { var C = A.B; C([1,2,3]); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.jdefP(3) compiler.go:433: > 3: goja.loadVal({}) compiler.go:433: > 4: goja.initStackP(-1) compiler.go:433: > 5: *goja.enterFuncBody(&{{map[] 0 1} 1 false false}) compiler.go:433: > 6: goja.loadDynamic(A) compiler.go:433: > 7: goja.getProp(B) compiler.go:433: > 8: goja.initStackP(1) compiler.go:433: > 9: goja._loadUndef({}) compiler.go:433: > 10: goja.loadStack(1) compiler.go:433: > 11: goja.newArray(3) compiler.go:433: > 12: goja.loadVal({1}) compiler.go:433: > 13: goja._pushArrayItem({}) compiler.go:433: > 14: goja.loadVal({2}) compiler.go:433: > 15: goja._pushArrayItem({}) compiler.go:433: > 16: goja.loadVal({3}) compiler.go:433: > 17: goja._pushArrayItem({}) compiler.go:433: > 18: goja.call(1) compiler.go:433: > 19: goja._pop({}) compiler.go:433: > 20: goja._loadUndef({}) compiler.go:433: > 21: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[] [A D] [] [] false}) compiler.go:433: 3: goja.loadDynamic(A) compiler.go:433: 4: *goja.newFunc(&{0xc00036d180 function () {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 5: goja.setPropP(B) compiler.go:433: 6: goja.loadDynamicCallee(D) compiler.go:433: 7: goja.call(0) compiler.go:433: 8: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDefParamsStackPtr (0.00s) === RUN TestNestedVariadicCalls compiler.go:433: 0: *goja.newFunc(&{0xc00036d3b0 f function f() { return Array.prototype.join.call(arguments, ","); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 0 1 0 1 true false}) compiler.go:433: > 1: goja.createArgsMapped(0) compiler.go:433: > 2: goja.initStack1P(1) compiler.go:433: > 3: goja.loadDynamic(Array) compiler.go:433: > 4: goja.getProp(prototype) compiler.go:433: > 5: goja.getProp(join) compiler.go:433: > 6: goja.getPropCallee(call) compiler.go:433: > 7: goja.loadStack1(1) compiler.go:433: > 8: goja.loadVal({,}) compiler.go:433: > 9: goja.call(2) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja._startVariadic({}) compiler.go:433: 3: goja.loadDynamicCallee(f) compiler.go:433: 4: goja.newArray(1) compiler.go:433: 5: goja.loadVal({1}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja._pushSpread({}) compiler.go:433: 8: goja.loadVal({a}) compiler.go:433: 9: goja._startVariadic({}) compiler.go:433: 10: goja.loadDynamicCallee(f) compiler.go:433: 11: goja.newArray(1) compiler.go:433: 12: goja.loadVal({2}) compiler.go:433: 13: goja._pushArrayItem({}) compiler.go:433: 14: goja._pushSpread({}) compiler.go:433: 15: goja._callVariadic({}) compiler.go:433: 16: goja._endVariadic({}) compiler.go:433: 17: goja._callVariadic({}) compiler.go:433: 18: goja._endVariadic({}) compiler.go:433: 19: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestNestedVariadicCalls (0.00s) === RUN TestVariadicNew compiler.go:433: 0: *goja.newFunc(&{0xc00036d680 C function C() { this.res = Array.prototype.join.call(arguments, ","); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 0 1 0 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.createArgsMapped(0) compiler.go:433: > 3: goja.initStack1P(1) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: goja.loadDynamic(Array) compiler.go:433: > 6: goja.getProp(prototype) compiler.go:433: > 7: goja.getProp(join) compiler.go:433: > 8: goja.getPropCallee(call) compiler.go:433: > 9: goja.loadStack1(1) compiler.go:433: > 10: goja.loadVal({,}) compiler.go:433: > 11: goja.call(2) compiler.go:433: > 12: goja.setPropP(res) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[c] [C] [] [] false}) compiler.go:433: 2: goja.resolveVar1(c) compiler.go:433: 3: goja._startVariadic({}) compiler.go:433: 4: goja.loadDynamic(C) compiler.go:433: 5: goja.newArray(1) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja._pushSpread({}) compiler.go:433: 9: goja.loadVal({a}) compiler.go:433: 10: goja._startVariadic({}) compiler.go:433: 11: goja.loadDynamic(C) compiler.go:433: 12: goja.newArray(1) compiler.go:433: 13: goja.loadVal({2}) compiler.go:433: 14: goja._pushArrayItem({}) compiler.go:433: 15: goja._pushSpread({}) compiler.go:433: 16: goja._newVariadic({}) compiler.go:433: 17: goja._endVariadic({}) compiler.go:433: 18: goja.getProp(res) compiler.go:433: 19: goja._newVariadic({}) compiler.go:433: 20: goja._endVariadic({}) compiler.go:433: 21: goja._initValueP({}) compiler.go:433: 22: goja.loadDynamic(c) compiler.go:433: 23: goja.getProp(res) compiler.go:433: 24: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestVariadicNew (0.00s) === RUN TestVariadicUseStackVars compiler.go:433: 0: *goja.newFunc(&{0xc00036dae0 A function A(message) { return message; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc00036db30 B function B(...args){ return A(...args); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.createArgsRestStack(0) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: *goja.enterFuncBody(&{{map[] 0 0} 1 false false}) compiler.go:433: > 4: goja._startVariadic({}) compiler.go:433: > 5: goja.loadDynamicCallee(A) compiler.go:433: > 6: goja.loadStackLex(1) compiler.go:433: > 7: goja._pushSpread({}) compiler.go:433: > 8: goja._callVariadic({}) compiler.go:433: > 9: goja._endVariadic({}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[] [A B] [] [] false}) compiler.go:433: 3: goja.loadDynamicCallee(B) compiler.go:433: 4: goja.loadVal({C}) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestVariadicUseStackVars (0.00s) === RUN TestCatchParamPattern compiler.go:433: 0: *goja.newFunc(&{0xc00036de50 f function f() { let x = 3; try { throw {a: 1, b: 2}; } catch ({a, b, c = x}) { let x = 99; return ""+a+" "+b+" "+c; } } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.loadVal({3}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.try({8 0}) compiler.go:433: > 4: goja._newObject({}) compiler.go:433: > 5: goja.loadVal({1}) compiler.go:433: > 6: goja.putProp(a) compiler.go:433: > 7: goja.loadVal({2}) compiler.go:433: > 8: goja.putProp(b) compiler.go:433: > 9: goja._throw({}) compiler.go:433: > 10: goja.jump(34) compiler.go:433: > 11: *goja.enterBlock(&{map[] 0 4}) compiler.go:433: > 12: goja.loadStackLex(2) compiler.go:433: > 13: goja._checkObjectCoercible({}) compiler.go:433: > 14: goja._dup({}) compiler.go:433: > 15: goja.getProp(a) compiler.go:433: > 16: goja.initStackP(3) compiler.go:433: > 17: goja._dup({}) compiler.go:433: > 18: goja.getProp(b) compiler.go:433: > 19: goja.initStackP(4) compiler.go:433: > 20: goja._dup({}) compiler.go:433: > 21: goja.getProp(c) compiler.go:433: > 22: goja.jdef(2) compiler.go:433: > 23: goja.loadStackLex(1) compiler.go:433: > 24: goja.initStackP(5) compiler.go:433: > 25: goja._pop({}) compiler.go:433: > 26: goja.loadVal({99}) compiler.go:433: > 27: goja.initStackP(6) compiler.go:433: > 28: goja.loadVal({}) compiler.go:433: > 29: goja.loadStackLex(3) compiler.go:433: > 30: goja._add({}) compiler.go:433: > 31: goja.loadVal({ }) compiler.go:433: > 32: goja._add({}) compiler.go:433: > 33: goja.loadStackLex(4) compiler.go:433: > 34: goja._add({}) compiler.go:433: > 35: goja.loadVal({ }) compiler.go:433: > 36: goja._add({}) compiler.go:433: > 37: goja.loadStackLex(5) compiler.go:433: > 38: goja._add({}) compiler.go:433: > 39: goja._saveResult({}) compiler.go:433: > 40: goja.leaveTry({}) compiler.go:433: > 41: goja._loadResult({}) compiler.go:433: > 42: goja._ret({}) compiler.go:433: > 43: *goja.leaveBlock(&{5 false}) compiler.go:433: > 44: goja.leaveTry({}) compiler.go:433: > 45: goja._loadUndef({}) compiler.go:433: > 46: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestCatchParamPattern (0.00s) === RUN TestArrowUseStrict --- PASS: TestArrowUseStrict (0.00s) === RUN TestArrowBoxedThis compiler.go:433: 0: *goja.bindGlobal(&{[context] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(fn) compiler.go:433: 2: *goja.newFunc(&{0xc000326550 fn function() { return (arg) => { var local; context = this; }; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 0 1 false false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.initStashP(0) compiler.go:433: > 4: *goja.newArrowFunc(&{{0xc0003265a0 (arg) => { var local; context = this; } 1 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{1 1}) compiler.go:433: >> 1: goja.resolveVar1(context) compiler.go:433: >> 2: goja.loadStash(0) compiler.go:433: >> 3: goja._putValueP({}) compiler.go:433: >> 4: goja._loadUndef({}) compiler.go:433: >> 5: goja._ret({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 3: goja._putValueP({}) compiler.go:433: 4: goja._loadUndef({}) compiler.go:433: 5: goja.loadDynamicCallee(fn) compiler.go:433: 6: goja.call(0) compiler.go:433: 7: goja.call(0) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja.loadDynamic(context) compiler.go:433: 10: goja._loadGlobalObject({}) compiler.go:433: 11: goja._op_strict_eq({}) compiler.go:433: 12: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArrowBoxedThis (0.00s) === RUN TestParameterOverride compiler.go:433: 0: *goja.newFunc(&{0xc000326820 f function f(arg) { var arg = arg || "default" return arg } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.jeq(2) compiler.go:433: > 3: goja.loadVal({default}) compiler.go:433: > 4: goja.initStackP(-1) compiler.go:433: > 5: goja.loadStackLex(-1) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestParameterOverride (0.00s) === RUN TestEvalInIterScope compiler.go:433: 0: *goja.enterBlock(&{map[a:0] 1 0}) compiler.go:433: 1: goja.loadVal({0}) compiler.go:433: 2: goja.initStashP(0) compiler.go:433: 3: goja._clearResult({}) compiler.go:433: 4: goja.copyStash({}) compiler.go:433: 5: goja.loadStashLex(0) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja._op_lt({}) compiler.go:433: 8: goja.jneP(11) compiler.go:433: 9: goja._clearResult({}) compiler.go:433: 10: goja.loadDynamicCallee(eval) compiler.go:433: 11: goja.loadVal({a}) compiler.go:433: 12: goja.callEval(1) compiler.go:433: 13: goja._saveResult({}) compiler.go:433: 14: goja.copyStash({}) compiler.go:433: 15: goja.loadStashLex(0) compiler.go:433: 16: goja._inc({}) compiler.go:433: 17: goja.storeStashLexP(0) compiler.go:433: 18: goja.jump(-13) compiler.go:433: 19: *goja.leaveBlock(&{0 true}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 3 --- PASS: TestEvalInIterScope (0.00s) === RUN TestTemplateLiterals === RUN TestTemplateLiterals/empty === RUN TestTemplateLiterals/noSub === RUN TestTemplateLiterals/emptyTail === RUN TestTemplateLiterals/emptyHead === RUN TestTemplateLiterals/headAndTail --- PASS: TestTemplateLiterals (0.00s) --- PASS: TestTemplateLiterals/empty (0.00s) --- PASS: TestTemplateLiterals/noSub (0.00s) --- PASS: TestTemplateLiterals/emptyTail (0.00s) --- PASS: TestTemplateLiterals/emptyHead (0.00s) --- PASS: TestTemplateLiterals/headAndTail (0.00s) === RUN TestTaggedTemplate compiler.go:433: 0: *goja.bindGlobal(&{[] [] [res] [o] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(res) compiler.go:433: 3: goja._newObject({}) compiler.go:433: 4: *goja.newMethod(&{{0xc000327860 tmpl tmpl() { res = this; return () => {}; } 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.resolveVar1(res) compiler.go:433: > 3: goja.loadStack(0) compiler.go:433: > 4: goja._putValueP({}) compiler.go:433: > 5: *goja.newArrowFunc(&{{0xc0003278b0 () => {} 0 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._loadUndef({}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 5: *goja.defineMethodKeyed(&{tmpl true}) compiler.go:433: 6: goja.initGlobalP(o) compiler.go:433: 7: goja._loadUndef({}) compiler.go:433: 8: goja.loadDynamic(o) compiler.go:433: 9: goja.getPropCallee(tmpl) compiler.go:433: 10: goja.call(0) compiler.go:433: 11: *goja.getTaggedTmplObject(&{[0xc000215aa0] [0xc000215ad0]}) compiler.go:433: 12: goja.call(1) compiler.go:433: 13: goja._pop({}) compiler.go:433: 14: goja.loadDynamic(res) compiler.go:433: 15: goja.loadDynamic(o) compiler.go:433: 16: goja._op_strict_eq({}) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTaggedTemplate (0.00s) === RUN TestDuplicateGlobalFunc compiler.go:433: 0: *goja.newFunc(&{0xc000327db0 b function b(){ return "b" } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({b}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc000327e00 c function c(){ return "c" } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({c}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 2: *goja.newFunc(&{0xc000327e50 a function a(){} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 3: *goja.bindGlobal(&{[] [b c a] [] [] false}) compiler.go:433: 4: goja.loadDynamicCallee(b) compiler.go:433: 5: goja.call(0) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDuplicateGlobalFunc (0.00s) === RUN TestDuplicateFunc compiler.go:433: 0: *goja.newFunc(&{0xc00037e6e0 f function f() { function a(){} function b(){ return "b" } function c(){ return "c" } function a(){} return b(); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{3 0}) compiler.go:433: > 1: *goja.newFunc(&{0xc00037e730 a function a(){} 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._loadUndef({}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: *goja.newFunc(&{0xc00037e780 b function b(){ return "b" } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadVal({b}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: *goja.newFunc(&{0xc00037e7d0 c function c(){ return "c" } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadVal({c}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 6: goja.initStackP(3) compiler.go:433: > 7: *goja.newFunc(&{0xc00037e820 a function a(){} 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._loadUndef({}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 8: goja.initStackP(1) compiler.go:433: > 9: goja._loadUndef({}) compiler.go:433: > 10: goja.loadStackLex(2) compiler.go:433: > 11: goja.call(0) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDuplicateFunc (0.00s) === RUN TestSrcLocations compiler.go:433: 0: *goja.bindGlobal(&{[] [] [i] [] false}) compiler.go:433: 1: goja._newObject({}) compiler.go:433: 2: *goja.newMethod(&{{0xc00037f090 valueOf valueOf() { throw new Error(); } 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Error) compiler.go:433: > 2: goja._new(0) compiler.go:433: > 3: goja._throw({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 3: *goja.defineMethodKeyed(&{valueOf true}) compiler.go:433: 4: goja.initGlobalP(i) compiler.go:433: 5: goja.try({6 0}) compiler.go:433: 6: goja.resolveVar1(i) compiler.go:433: 7: goja._getValue({}) compiler.go:433: 8: goja._inc({}) compiler.go:433: 9: goja._putValueP({}) compiler.go:433: 10: goja.jump(28) compiler.go:433: 11: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 12: goja.loadDynamicCallee(assertStack) compiler.go:433: 13: goja.loadStackLex(1) compiler.go:433: 14: goja.newArray(2) compiler.go:433: 15: goja.newArray(4) compiler.go:433: 16: goja.loadVal({test.js}) compiler.go:433: 17: goja._pushArrayItem({}) compiler.go:433: 18: goja.loadVal({valueOf}) compiler.go:433: 19: goja._pushArrayItem({}) compiler.go:433: 20: goja.loadVal({4}) compiler.go:433: 21: goja._pushArrayItem({}) compiler.go:433: 22: goja.loadVal({10}) compiler.go:433: 23: goja._pushArrayItem({}) compiler.go:433: 24: goja._pushArrayItem({}) compiler.go:433: 25: goja.newArray(4) compiler.go:433: 26: goja.loadVal({test.js}) compiler.go:433: 27: goja._pushArrayItem({}) compiler.go:433: 28: goja.loadVal({}) compiler.go:433: 29: goja._pushArrayItem({}) compiler.go:433: 30: goja.loadVal({8}) compiler.go:433: 31: goja._pushArrayItem({}) compiler.go:433: 32: goja.loadVal({3}) compiler.go:433: 33: goja._pushArrayItem({}) compiler.go:433: 34: goja._pushArrayItem({}) compiler.go:433: 35: goja.call(2) compiler.go:433: 36: goja._pop({}) compiler.go:433: 37: *goja.leaveBlock(&{1 false}) compiler.go:433: 38: goja.leaveTry({}) compiler.go:433: 39: goja.loadDynamic(Object) compiler.go:433: 40: goja.getPropCallee(defineProperty) compiler.go:433: 41: goja.loadDynamic(globalThis) compiler.go:433: 42: goja.loadVal({x}) compiler.go:433: 43: goja._newObject({}) compiler.go:433: 44: *goja.newMethod(&{{0xc00037f180 get get() { throw new Error(); } 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Error) compiler.go:433: > 2: goja._new(0) compiler.go:433: > 3: goja._throw({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 45: *goja.defineMethodKeyed(&{get true}) compiler.go:433: 46: *goja.newMethod(&{{0xc00037f1d0 set set() { throw new Error(); } 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Error) compiler.go:433: > 2: goja._new(0) compiler.go:433: > 3: goja._throw({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 47: *goja.defineMethodKeyed(&{set true}) compiler.go:433: 48: goja.call(3) compiler.go:433: 49: goja._pop({}) compiler.go:433: 50: goja.try({4 0}) compiler.go:433: 51: goja.loadDynamic(x) compiler.go:433: 52: goja._pop({}) compiler.go:433: 53: goja.jump(28) compiler.go:433: 54: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 55: goja.loadDynamicCallee(assertStack) compiler.go:433: 56: goja.loadStackLex(1) compiler.go:433: 57: goja.newArray(2) compiler.go:433: 58: goja.newArray(4) compiler.go:433: 59: goja.loadVal({test.js}) compiler.go:433: 60: goja._pushArrayItem({}) compiler.go:433: 61: goja.loadVal({get}) compiler.go:433: 62: goja._pushArrayItem({}) compiler.go:433: 63: goja.loadVal({17}) compiler.go:433: 64: goja._pushArrayItem({}) compiler.go:433: 65: goja.loadVal({10}) compiler.go:433: 66: goja._pushArrayItem({}) compiler.go:433: 67: goja._pushArrayItem({}) compiler.go:433: 68: goja.newArray(4) compiler.go:433: 69: goja.loadVal({test.js}) compiler.go:433: 70: goja._pushArrayItem({}) compiler.go:433: 71: goja.loadVal({}) compiler.go:433: 72: goja._pushArrayItem({}) compiler.go:433: 73: goja.loadVal({25}) compiler.go:433: 74: goja._pushArrayItem({}) compiler.go:433: 75: goja.loadVal({3}) compiler.go:433: 76: goja._pushArrayItem({}) compiler.go:433: 77: goja._pushArrayItem({}) compiler.go:433: 78: goja.call(2) compiler.go:433: 79: goja._pop({}) compiler.go:433: 80: *goja.leaveBlock(&{1 false}) compiler.go:433: 81: goja.leaveTry({}) compiler.go:433: 82: goja.try({6 0}) compiler.go:433: 83: goja.resolveVar1(x) compiler.go:433: 84: goja._getValue({}) compiler.go:433: 85: goja._inc({}) compiler.go:433: 86: goja._putValueP({}) compiler.go:433: 87: goja.jump(28) compiler.go:433: 88: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 89: goja.loadDynamicCallee(assertStack) compiler.go:433: 90: goja.loadStackLex(1) compiler.go:433: 91: goja.newArray(2) compiler.go:433: 92: goja.newArray(4) compiler.go:433: 93: goja.loadVal({test.js}) compiler.go:433: 94: goja._pushArrayItem({}) compiler.go:433: 95: goja.loadVal({get}) compiler.go:433: 96: goja._pushArrayItem({}) compiler.go:433: 97: goja.loadVal({17}) compiler.go:433: 98: goja._pushArrayItem({}) compiler.go:433: 99: goja.loadVal({10}) compiler.go:433: 100: goja._pushArrayItem({}) compiler.go:433: 101: goja._pushArrayItem({}) compiler.go:433: 102: goja.newArray(4) compiler.go:433: 103: goja.loadVal({test.js}) compiler.go:433: 104: goja._pushArrayItem({}) compiler.go:433: 105: goja.loadVal({}) compiler.go:433: 106: goja._pushArrayItem({}) compiler.go:433: 107: goja.loadVal({33}) compiler.go:433: 108: goja._pushArrayItem({}) compiler.go:433: 109: goja.loadVal({3}) compiler.go:433: 110: goja._pushArrayItem({}) compiler.go:433: 111: goja._pushArrayItem({}) compiler.go:433: 112: goja.call(2) compiler.go:433: 113: goja._pop({}) compiler.go:433: 114: *goja.leaveBlock(&{1 false}) compiler.go:433: 115: goja.leaveTry({}) compiler.go:433: 116: goja.try({5 0}) compiler.go:433: 117: goja.resolveVar1(x) compiler.go:433: 118: goja.loadVal({2}) compiler.go:433: 119: goja._putValueP({}) compiler.go:433: 120: goja.jump(28) compiler.go:433: 121: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 122: goja.loadDynamicCallee(assertStack) compiler.go:433: 123: goja.loadStackLex(1) compiler.go:433: 124: goja.newArray(2) compiler.go:433: 125: goja.newArray(4) compiler.go:433: 126: goja.loadVal({test.js}) compiler.go:433: 127: goja._pushArrayItem({}) compiler.go:433: 128: goja.loadVal({set}) compiler.go:433: 129: goja._pushArrayItem({}) compiler.go:433: 130: goja.loadVal({20}) compiler.go:433: 131: goja._pushArrayItem({}) compiler.go:433: 132: goja.loadVal({10}) compiler.go:433: 133: goja._pushArrayItem({}) compiler.go:433: 134: goja._pushArrayItem({}) compiler.go:433: 135: goja.newArray(4) compiler.go:433: 136: goja.loadVal({test.js}) compiler.go:433: 137: goja._pushArrayItem({}) compiler.go:433: 138: goja.loadVal({}) compiler.go:433: 139: goja._pushArrayItem({}) compiler.go:433: 140: goja.loadVal({41}) compiler.go:433: 141: goja._pushArrayItem({}) compiler.go:433: 142: goja.loadVal({3}) compiler.go:433: 143: goja._pushArrayItem({}) compiler.go:433: 144: goja._pushArrayItem({}) compiler.go:433: 145: goja.call(2) compiler.go:433: 146: goja._pop({}) compiler.go:433: 147: *goja.leaveBlock(&{1 false}) compiler.go:433: 148: goja.leaveTry({}) compiler.go:433: 149: goja.try({5 0}) compiler.go:433: 150: goja.loadDynamic(i) compiler.go:433: 151: goja._plus({}) compiler.go:433: 152: goja._pop({}) compiler.go:433: 153: goja.jump(28) compiler.go:433: 154: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 155: goja.loadDynamicCallee(assertStack) compiler.go:433: 156: goja.loadStackLex(1) compiler.go:433: 157: goja.newArray(2) compiler.go:433: 158: goja.newArray(4) compiler.go:433: 159: goja.loadVal({test.js}) compiler.go:433: 160: goja._pushArrayItem({}) compiler.go:433: 161: goja.loadVal({valueOf}) compiler.go:433: 162: goja._pushArrayItem({}) compiler.go:433: 163: goja.loadVal({4}) compiler.go:433: 164: goja._pushArrayItem({}) compiler.go:433: 165: goja.loadVal({10}) compiler.go:433: 166: goja._pushArrayItem({}) compiler.go:433: 167: goja._pushArrayItem({}) compiler.go:433: 168: goja.newArray(4) compiler.go:433: 169: goja.loadVal({test.js}) compiler.go:433: 170: goja._pushArrayItem({}) compiler.go:433: 171: goja.loadVal({}) compiler.go:433: 172: goja._pushArrayItem({}) compiler.go:433: 173: goja.loadVal({49}) compiler.go:433: 174: goja._pushArrayItem({}) compiler.go:433: 175: goja.loadVal({4}) compiler.go:433: 176: goja._pushArrayItem({}) compiler.go:433: 177: goja._pushArrayItem({}) compiler.go:433: 178: goja.call(2) compiler.go:433: 179: goja._pop({}) compiler.go:433: 180: *goja.leaveBlock(&{1 false}) compiler.go:433: 181: goja.leaveTry({}) compiler.go:433: 182: goja.try({15 0}) compiler.go:433: 183: goja._clearResult({}) compiler.go:433: 184: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 185: goja._loadUndef({}) compiler.go:433: 186: goja.initStackP(1) compiler.go:433: 187: goja.loadStackLex(1) compiler.go:433: 188: goja._newObject({}) compiler.go:433: 189: goja.loadVal({test}) compiler.go:433: 190: goja.putProp(key1) compiler.go:433: 191: goja._newObject({}) compiler.go:433: 192: goja.putProp(key2) compiler.go:433: 193: goja.setProp(field) compiler.go:433: 194: goja._saveResult({}) compiler.go:433: 195: *goja.leaveBlock(&{1 false}) compiler.go:433: 196: goja.jump(18) compiler.go:433: 197: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 198: goja.loadDynamicCallee(assertStack) compiler.go:433: 199: goja.loadStackLex(1) compiler.go:433: 200: goja.newArray(1) compiler.go:433: 201: goja.newArray(4) compiler.go:433: 202: goja.loadVal({test.js}) compiler.go:433: 203: goja._pushArrayItem({}) compiler.go:433: 204: goja.loadVal({}) compiler.go:433: 205: goja._pushArrayItem({}) compiler.go:433: 206: goja.loadVal({58}) compiler.go:433: 207: goja._pushArrayItem({}) compiler.go:433: 208: goja.loadVal({5}) compiler.go:433: 209: goja._pushArrayItem({}) compiler.go:433: 210: goja._pushArrayItem({}) compiler.go:433: 211: goja.call(2) compiler.go:433: 212: goja._saveResult({}) compiler.go:433: 213: *goja.leaveBlock(&{1 false}) compiler.go:433: 214: goja.leaveTry({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSrcLocations (0.00s) === RUN TestSrcLocationThrowLiteral --- PASS: TestSrcLocationThrowLiteral (0.00s) === RUN TestSrcLocation --- PASS: TestSrcLocation (0.00s) === RUN TestBadObjectKey --- PASS: TestBadObjectKey (0.00s) === RUN TestConstantFolding === RUN TestConstantFolding/lexical_binding compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [x] false}) compiler.go:433: 1: goja.loadVal({3}) compiler.go:433: 2: goja.initGlobalP(x) compiler.go:433: 3: goja.loadDynamic(x) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 === RUN TestConstantFolding/var_binding compiler.go:433: 0: *goja.bindGlobal(&{[x] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(x) compiler.go:433: 2: goja.loadVal({3}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(x) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 === RUN TestConstantFolding/assignment compiler.go:433: 0: goja.resolveVar1(x) compiler.go:433: 1: goja.loadVal({3}) compiler.go:433: 2: goja._putValueP({}) compiler.go:433: 3: goja.loadDynamic(x) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 === RUN TestConstantFolding/object_pattern compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [x] false}) compiler.go:433: 1: goja._newObject({}) compiler.go:433: 2: goja._checkObjectCoercible({}) compiler.go:433: 3: goja._dup({}) compiler.go:433: 4: goja.getProp(x) compiler.go:433: 5: goja.jdef(2) compiler.go:433: 6: goja.loadVal({3}) compiler.go:433: 7: goja.initGlobalP(x) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja.loadDynamic(x) compiler.go:433: 10: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 === RUN TestConstantFolding/array_pattern compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [x] false}) compiler.go:433: 1: goja.newArray(0) compiler.go:433: 2: goja._iterate({}) compiler.go:433: 3: goja.iterGetNextOrUndef({}) compiler.go:433: 4: goja.jdef(2) compiler.go:433: 5: goja.loadVal({3}) compiler.go:433: 6: goja.initGlobalP(x) compiler.go:433: 7: goja._enumPopClose({}) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja.loadDynamic(x) compiler.go:433: 10: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 === RUN TestConstantFolding/object_literal compiler.go:433: 0: *goja.bindGlobal(&{[o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({3}) compiler.go:433: 4: goja.putProp(x) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(o) compiler.go:433: 7: goja.getProp(x) compiler.go:433: 8: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 === RUN TestConstantFolding/array_literal compiler.go:433: 0: *goja.bindGlobal(&{[a] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.newArray(4) compiler.go:433: 3: goja.loadVal({3}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.loadVal({3}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja.loadVal({3}) compiler.go:433: 8: goja._pushArrayItem({}) compiler.go:433: 9: goja.loadVal({3}) compiler.go:433: 10: goja._pushArrayItem({}) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(a) compiler.go:433: 13: goja.loadVal({3}) compiler.go:433: 14: goja._getElem({}) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 === RUN TestConstantFolding/default_function_parameter compiler.go:433: 0: *goja.newFunc(&{0xc0004845a0 f function f(arg = 1 + 2) {return arg} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.jdefP(3) compiler.go:433: > 3: goja.loadVal({3}) compiler.go:433: > 4: goja.initStackP(-1) compiler.go:433: > 5: *goja.enterFuncBody(&{{map[] 0 0} 1 false false}) compiler.go:433: > 6: goja.loadStackLex(-1) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 === RUN TestConstantFolding/return compiler.go:433: 0: *goja.newFunc(&{0xc000484820 f function f() {return 1 + 2} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({3}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(f) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestConstantFolding (0.00s) --- PASS: TestConstantFolding/lexical_binding (0.00s) --- PASS: TestConstantFolding/var_binding (0.00s) --- PASS: TestConstantFolding/assignment (0.00s) --- PASS: TestConstantFolding/object_pattern (0.00s) --- PASS: TestConstantFolding/array_pattern (0.00s) --- PASS: TestConstantFolding/object_literal (0.00s) --- PASS: TestConstantFolding/array_literal (0.00s) --- PASS: TestConstantFolding/default_function_parameter (0.00s) --- PASS: TestConstantFolding/return (0.00s) === RUN TestStringInterning --- PASS: TestStringInterning (0.00s) === RUN TestAssignBeforeInit compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(throws) compiler.go:433: 2: goja.loadDynamic(ReferenceError) compiler.go:433: 3: *goja.newArrowFunc(&{{0xc0004854a0 () => { a = 1; let a; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.loadVal({1}) compiler.go:433: > 2: goja.storeStackLexP(1) compiler.go:433: > 3: goja._loadUndef({}) compiler.go:433: > 4: goja.initStackP(1) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja._pop({}) compiler.go:433: 6: goja.loadDynamic(assert) compiler.go:433: 7: goja.getPropCallee(throws) compiler.go:433: 8: goja.loadDynamic(ReferenceError) compiler.go:433: 9: *goja.newArrowFunc(&{{0xc0004854f0 () => { ({a, b} = {a: 1, b: 2}); let a, b; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{2 0}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: goja.loadVal({1}) compiler.go:433: > 3: goja.putProp(a) compiler.go:433: > 4: goja.loadVal({2}) compiler.go:433: > 5: goja.putProp(b) compiler.go:433: > 6: goja._checkObjectCoercible({}) compiler.go:433: > 7: goja._dup({}) compiler.go:433: > 8: goja.getProp(a) compiler.go:433: > 9: goja.storeStackLexP(1) compiler.go:433: > 10: goja._dup({}) compiler.go:433: > 11: goja.getProp(b) compiler.go:433: > 12: goja.storeStackLexP(2) compiler.go:433: > 13: goja._pop({}) compiler.go:433: > 14: goja._loadUndef({}) compiler.go:433: > 15: goja.initStackP(1) compiler.go:433: > 16: goja._loadUndef({}) compiler.go:433: > 17: goja.initStackP(2) compiler.go:433: > 18: goja._loadUndef({}) compiler.go:433: > 19: goja._ret({}) compiler.go:433: 10: goja.call(2) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.loadDynamic(assert) compiler.go:433: 13: goja.getPropCallee(throws) compiler.go:433: 14: goja.loadDynamic(ReferenceError) compiler.go:433: 15: *goja.newArrowFunc(&{{0xc000485540 () => { (function() { eval(""); ({a} = {a: 1}); })(); let a; } 0 false}}) compiler.go:433: > 0: *goja.enterFunc(&{map[a:0] 1 0 0 2 true false}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: *goja.newFunc(&{0xc000485590 function() { eval(""); ({a} = {a: 1}); } 0 false}) compiler.go:433: >> 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 1 true true}) compiler.go:433: >> 1: goja._boxThis({}) compiler.go:433: >> 2: goja.initStash(0) compiler.go:433: >> 3: goja.createArgsMapped(0) compiler.go:433: >> 4: goja.initStashP(1) compiler.go:433: >> 5: goja.loadDynamicCallee(eval) compiler.go:433: >> 6: goja.loadVal({}) compiler.go:433: >> 7: goja.callEval(1) compiler.go:433: >> 8: goja._pop({}) compiler.go:433: >> 9: goja._newObject({}) compiler.go:433: >> 10: goja.loadVal({1}) compiler.go:433: >> 11: goja.putProp(a) compiler.go:433: >> 12: goja._checkObjectCoercible({}) compiler.go:433: >> 13: goja._dup({}) compiler.go:433: >> 14: *goja.resolveMixed(&{a 16777216 1 false}) compiler.go:433: >> 15: goja.getProp(a) compiler.go:433: >> 16: goja._putValueP({}) compiler.go:433: >> 17: goja._pop({}) compiler.go:433: >> 18: goja._loadUndef({}) compiler.go:433: >> 19: goja._ret({}) compiler.go:433: > 3: goja.call(0) compiler.go:433: > 4: goja._pop({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja.initStashP(0) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 16: goja.call(2) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.loadDynamic(assert) compiler.go:433: 19: goja.getPropCallee(throws) compiler.go:433: 20: goja.loadDynamic(ReferenceError) compiler.go:433: 21: *goja.newArrowFunc(&{{0xc0004855e0 () => { const ctx = {x: 1}; function t() { delete ctx.x; return 42; } with(ctx) { (function() { 'use strict'; ({x} = {x: t()}); })(); } return ctx.x; } 0 false}}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 2 0 0 2 false false}) compiler.go:433: > 1: *goja.newFunc(&{0xc000485630 t function t() { delete ctx.x; return 42; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStashLex(1) compiler.go:433: >> 2: goja.deleteProp(x) compiler.go:433: >> 3: goja._pop({}) compiler.go:433: >> 4: goja.loadVal({42}) compiler.go:433: >> 5: goja._ret({}) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: goja._newObject({}) compiler.go:433: > 4: goja.loadVal({1}) compiler.go:433: > 5: goja.putProp(x) compiler.go:433: > 6: goja.initStashP(1) compiler.go:433: > 7: goja.loadStashLex(1) compiler.go:433: > 8: goja._enterWith({}) compiler.go:433: > 9: goja._loadUndef({}) compiler.go:433: > 10: *goja.newFunc(&{0xc000485680 function() { 'use strict'; ({x} = {x: t()}); } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._newObject({}) compiler.go:433: >> 2: *goja.loadMixedLex(&{t 16777216 true}) compiler.go:433: >> 3: goja.call(0) compiler.go:433: >> 4: goja.putProp(x) compiler.go:433: >> 5: goja._checkObjectCoercible({}) compiler.go:433: >> 6: goja._dup({}) compiler.go:433: >> 7: goja.resolveVar1Strict(x) compiler.go:433: >> 8: goja.getProp(x) compiler.go:433: >> 9: goja._putValueP({}) compiler.go:433: >> 10: goja._pop({}) compiler.go:433: >> 11: goja._loadUndef({}) compiler.go:433: >> 12: goja._ret({}) compiler.go:433: > 11: goja.call(0) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja._leaveWith({}) compiler.go:433: > 14: goja.loadStashLex(1) compiler.go:433: > 15: goja.getProp(x) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 22: goja.call(2) compiler.go:433: 23: goja._pop({}) compiler.go:433: 24: goja.loadDynamic(assert) compiler.go:433: 25: goja.getPropCallee(throws) compiler.go:433: 26: goja.loadDynamic(ReferenceError) compiler.go:433: 27: *goja.newArrowFunc(&{{0xc0004856d0 () => { const ctx = {x: 1}; function t() { delete ctx.x; return 42; } with(ctx) { (function() { 'use strict'; const src = {}; Object.defineProperty(src, "x", { get() { return t(); } }); ({x} = src); })(); } return ctx.x; } 0 false}}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 2 0 0 2 false false}) compiler.go:433: > 1: *goja.newFunc(&{0xc000485720 t function t() { delete ctx.x; return 42; } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStashLex(1) compiler.go:433: >> 2: goja.deleteProp(x) compiler.go:433: >> 3: goja._pop({}) compiler.go:433: >> 4: goja.loadVal({42}) compiler.go:433: >> 5: goja._ret({}) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: goja._newObject({}) compiler.go:433: > 4: goja.loadVal({1}) compiler.go:433: > 5: goja.putProp(x) compiler.go:433: > 6: goja.initStashP(1) compiler.go:433: > 7: goja.loadStashLex(1) compiler.go:433: > 8: goja._enterWith({}) compiler.go:433: > 9: goja._loadUndef({}) compiler.go:433: > 10: *goja.newFunc(&{0xc000485770 function() { 'use strict'; const src = {}; Object.defineProperty(src, "x", { get() { return t(); } }); ({x} = src); } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: >> 1: goja._newObject({}) compiler.go:433: >> 2: goja.initStackP(1) compiler.go:433: >> 3: goja.loadDynamic(Object) compiler.go:433: >> 4: goja.getPropCallee(defineProperty) compiler.go:433: >> 5: goja.loadStackLex(1) compiler.go:433: >> 6: goja.loadVal({x}) compiler.go:433: >> 7: goja._newObject({}) compiler.go:433: >> 8: *goja.newMethod(&{{0xc0004857c0 get get() { return t(); } 0 true} 1}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >>> 1: *goja.loadMixedLex(&{t 16777216 true}) compiler.go:433: >>> 2: goja.call(0) compiler.go:433: >>> 3: goja._ret({}) compiler.go:433: >> 9: *goja.defineMethodKeyed(&{get true}) compiler.go:433: >> 10: goja.call(3) compiler.go:433: >> 11: goja._pop({}) compiler.go:433: >> 12: goja.loadStackLex(1) compiler.go:433: >> 13: goja._checkObjectCoercible({}) compiler.go:433: >> 14: goja._dup({}) compiler.go:433: >> 15: goja.resolveVar1Strict(x) compiler.go:433: >> 16: goja.getProp(x) compiler.go:433: >> 17: goja._putValueP({}) compiler.go:433: >> 18: goja._pop({}) compiler.go:433: >> 19: goja._loadUndef({}) compiler.go:433: >> 20: goja._ret({}) compiler.go:433: > 11: goja.call(0) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja._leaveWith({}) compiler.go:433: > 14: goja.loadStashLex(1) compiler.go:433: > 15: goja.getProp(x) compiler.go:433: > 16: goja._ret({}) compiler.go:433: 28: goja.call(2) compiler.go:433: 29: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 6 --- PASS: TestAssignBeforeInit (0.00s) === RUN TestOptChainCallee compiler.go:433: 0: *goja.bindGlobal(&{[a o] [] [] [] false}) compiler.go:433: 1: goja.loadDynamic(assert) compiler.go:433: 2: goja.getPropCallee(sameValue) compiler.go:433: 3: goja.loadDynamicCallee(a) compiler.go:433: 4: goja.joptc(3) compiler.go:433: 5: goja.loadVal({true}) compiler.go:433: 6: goja.call(1) compiler.go:433: 7: goja.loadDynamic(undefined) compiler.go:433: 8: goja.call(2) compiler.go:433: 9: goja._pop({}) compiler.go:433: 10: goja.resolveVar1(a) compiler.go:433: 11: goja.loadVal({{}}) compiler.go:433: 12: goja._putValueP({}) compiler.go:433: 13: goja.loadDynamic(assert) compiler.go:433: 14: goja.getPropCallee(sameValue) compiler.go:433: 15: goja.loadDynamicCallee(a) compiler.go:433: 16: goja.joptc(2) compiler.go:433: 17: goja.call(0) compiler.go:433: 18: goja.loadDynamic(undefined) compiler.go:433: 19: goja.call(2) compiler.go:433: 20: goja._pop({}) compiler.go:433: 21: goja.resolveVar1(o) compiler.go:433: 22: goja._newObject({}) compiler.go:433: 23: goja.loadVal({{}}) compiler.go:433: 24: goja.putProp(n) compiler.go:433: 25: goja._initValueP({}) compiler.go:433: 26: goja.loadDynamic(assert) compiler.go:433: 27: goja.getPropCallee(sameValue) compiler.go:433: 28: goja.loadDynamic(o) compiler.go:433: 29: goja.getPropCallee(m) compiler.go:433: 30: goja.joptc(3) compiler.go:433: 31: goja.loadVal({true}) compiler.go:433: 32: goja.call(1) compiler.go:433: 33: goja.loadDynamic(undefined) compiler.go:433: 34: goja.call(2) compiler.go:433: 35: goja._pop({}) compiler.go:433: 36: goja.loadDynamic(assert) compiler.go:433: 37: goja.getPropCallee(sameValue) compiler.go:433: 38: goja.loadDynamic(o) compiler.go:433: 39: goja.getPropCallee(n) compiler.go:433: 40: goja.joptc(3) compiler.go:433: 41: goja.loadVal({true}) compiler.go:433: 42: goja.call(1) compiler.go:433: 43: goja.loadDynamic(undefined) compiler.go:433: 44: goja.call(2) compiler.go:433: 45: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestOptChainCallee (0.00s) === RUN TestObjectLiteralSuper compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [proto o] false}) compiler.go:433: 1: goja._newObject({}) compiler.go:433: 2: *goja.newMethod(&{{0xc000485e00 m m() { return 40; } 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({40}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 3: *goja.defineMethodKeyed(&{m true}) compiler.go:433: 4: goja.initGlobalP(proto) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: *goja.newMethod(&{{0xc000485e50 m m() { return super.m() + 2; } 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja._loadSuper({}) compiler.go:433: > 4: goja.getPropRecvCallee(m) compiler.go:433: > 5: goja.call(0) compiler.go:433: > 6: goja.loadVal({2}) compiler.go:433: > 7: goja._add({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 7: *goja.defineMethodKeyed(&{m true}) compiler.go:433: 8: goja.initGlobalP(o) compiler.go:433: 9: goja.loadDynamic(o) compiler.go:433: 10: goja.loadDynamic(proto) compiler.go:433: 11: goja.setPropP(__proto__) compiler.go:433: 12: goja.loadDynamic(o) compiler.go:433: 13: goja.getPropCallee(m) compiler.go:433: 14: goja.call(0) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectLiteralSuper (0.00s) === RUN TestClassCaptureThisInFieldInit compiler.go:433: 0: *goja.bindGlobal(&{[] [] [capture C c] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(capture) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: *goja.newClass(&{ C class C { a = () => this } 0xc000360140 [] [] 0 0 0 false}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 0 4 false false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: *goja.newArrowFunc(&{{0xc000360190 a () => this 0 true}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 3: goja.definePropKeyed(a) compiler.go:430: > ---- compiler.go:433: 5: goja._endVariadic({}) compiler.go:433: 6: goja.initGlobalP(C) compiler.go:433: 7: goja.loadDynamic(C) compiler.go:433: 8: goja._new(0) compiler.go:433: 9: goja.initGlobalP(c) compiler.go:433: 10: goja.loadDynamic(c) compiler.go:433: 11: goja.getPropCallee(a) compiler.go:433: 12: goja.call(0) compiler.go:433: 13: goja.loadDynamic(c) compiler.go:433: 14: goja._op_strict_eq({}) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestClassCaptureThisInFieldInit (0.00s) === RUN TestClassUseThisInFieldInit compiler.go:433: 0: *goja.bindGlobal(&{[] [] [capture C c] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(capture) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: *goja.newClass(&{ C class C { a = this } 0xc000360410 [] [] 0 0 0 false}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadStack(0) compiler.go:433: > 1: goja.definePropKeyed(a) compiler.go:430: > ---- compiler.go:433: 5: goja._endVariadic({}) compiler.go:433: 6: goja.initGlobalP(C) compiler.go:433: 7: goja.loadDynamic(C) compiler.go:433: 8: goja._new(0) compiler.go:433: 9: goja.initGlobalP(c) compiler.go:433: 10: goja.loadDynamic(c) compiler.go:433: 11: goja.getProp(a) compiler.go:433: 12: goja.loadDynamic(c) compiler.go:433: 13: goja._op_strict_eq({}) compiler.go:433: 14: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassUseThisInFieldInit (0.00s) === RUN TestClassCaptureThisInStaticFieldInit compiler.go:433: 0: *goja.bindGlobal(&{[] [] [capture C c] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(capture) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: *goja.newStaticFieldInit(&{0xc000360690 0 0}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 0 4 false false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.resolveVar1Strict(capture) compiler.go:433: > 3: *goja.newArrowFunc(&{{0xc0003606e0 capture () => this 0 true}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 4: goja._putValueP({}) compiler.go:433: > 5: goja.loadVal({0}) compiler.go:433: > 6: goja.definePropKeyed(a) compiler.go:430: > ---- compiler.go:433: 5: *goja.newClass(&{ C class C { static a = (capture = () => this, 0) } [] [] 0 0 0 false}) compiler.go:433: 6: *goja.initStaticElements(&{[] []}) compiler.go:433: 7: goja.initGlobalP(C) compiler.go:433: 8: goja.loadDynamic(C) compiler.go:433: 9: goja._new(0) compiler.go:433: 10: goja.initGlobalP(c) compiler.go:433: 11: goja.loadDynamicCallee(capture) compiler.go:433: 12: goja.call(0) compiler.go:433: 13: goja.loadDynamic(C) compiler.go:433: 14: goja._op_strict_eq({}) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestClassCaptureThisInStaticFieldInit (0.00s) === RUN TestClassDynCaptureThisInStaticFieldInit compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C] [] false}) compiler.go:433: 1: *goja.enterBlock(&{map[C:2684354560] 1 0}) compiler.go:433: 2: *goja.newStaticFieldInit(&{0xc000360910 0 0}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824] 1 0 0 4 false false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.loadDynamicCallee(eval) compiler.go:433: > 3: goja.loadVal({this}) compiler.go:433: > 4: goja.callEvalStrict(1) compiler.go:433: > 5: goja.definePropKeyed(a) compiler.go:430: > ---- compiler.go:433: 3: *goja.newClass(&{ C class C { static a = eval("this") } [] [] 0 0 0 false}) compiler.go:433: 4: goja.initStash(0) compiler.go:433: 5: *goja.initStaticElements(&{[] []}) compiler.go:433: 6: *goja.leaveBlock(&{0 true}) compiler.go:433: 7: goja.initGlobalP(C) compiler.go:433: 8: goja.loadDynamic(C) compiler.go:433: 9: goja.getProp(a) compiler.go:433: 10: goja.loadDynamic(C) compiler.go:433: 11: goja._op_strict_eq({}) compiler.go:433: 12: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestClassDynCaptureThisInStaticFieldInit (0.00s) === RUN TestCompileClass compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C c] [] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newStaticFieldInit(&{0xc000361180 0 0}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadDynamic(Math) compiler.go:433: > 1: goja.getPropCallee(random) compiler.go:433: > 2: goja.call(0) compiler.go:433: > 3: goja.loadVal({1}) compiler.go:433: > 4: goja._op_lt({}) compiler.go:433: > 5: goja.definePropKeyed(A) compiler.go:433: > 6: goja._dup({}) compiler.go:433: > 7: *goja.newMethod(&{{0xc0003611d0 { this.supername = super.name; } 0 true} 1}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStack(0) compiler.go:433: >> 2: goja.loadStack(0) compiler.go:433: >> 3: goja._loadSuper({}) compiler.go:433: >> 4: goja.getPropRecv(name) compiler.go:433: >> 5: goja.setPropStrictP(supername) compiler.go:433: >> 6: goja._loadUndef({}) compiler.go:433: >> 7: goja._ret({}) compiler.go:433: > 8: goja.call(0) compiler.go:433: > 9: goja._pop({}) compiler.go:430: > ---- compiler.go:433: 3: goja.loadDynamic(Error) compiler.go:433: 4: *goja.newDerivedClass(&{{0xc000360fa0 C class C extends Error { a = true; b = 1; ["b".toUpperCase()] = 2 static A = Math.random() < 1 constructor(message = "My Error") { super(message); } static M() { } static M1() { } m() { //return C.a; } m1() { return true; } static { this.supername = super.name; } } 0xc000361130 [] [] 0 0 0 false}}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadVal({true}) compiler.go:433: > 1: goja.definePropKeyed(a) compiler.go:433: > 2: goja.loadVal({1}) compiler.go:433: > 3: goja.definePropKeyed(b) compiler.go:433: > 4: goja.loadComputedKey(0) compiler.go:433: > 5: goja.loadVal({2}) compiler.go:433: > 6: goja.defineProp({}) compiler.go:430: > ---- compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.jdefP(3) compiler.go:433: > 3: goja.loadVal({My Error}) compiler.go:433: > 4: goja.initStackP(-1) compiler.go:433: > 5: *goja.enterFuncBody(&{{map[] 0 0} 6 false false}) compiler.go:433: > 6: goja.loadStackLex(-1) compiler.go:433: > 7: goja.resolveThisStack({}) compiler.go:433: > 8: goja.superCall(1) compiler.go:433: > 9: goja._pop({}) compiler.go:433: > 10: goja._loadUndef({}) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 5: goja.loadVal({b}) compiler.go:433: 6: goja.getPropCallee(toUpperCase) compiler.go:433: 7: goja.call(0) compiler.go:433: 8: goja.defineComputedKey(2) compiler.go:433: 9: *goja.newMethod(&{{0xc000360ff0 M M() { } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 10: *goja.defineMethodKeyed(&{M false}) compiler.go:433: 11: *goja.newMethod(&{{0xc000361040 M1 M1() { } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 12: *goja.defineMethodKeyed(&{M1 false}) compiler.go:433: 13: goja.dupN(1) compiler.go:433: 14: *goja.newMethod(&{{0xc000361090 m m() { //return C.a; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 15: *goja.defineMethodKeyed(&{m false}) compiler.go:433: 16: *goja.newMethod(&{{0xc0003610e0 m1 m1() { return true; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({true}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 17: *goja.defineMethodKeyed(&{m1 false}) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: *goja.initStaticElements(&{[] []}) compiler.go:433: 20: goja.initGlobalP(C) compiler.go:433: 21: goja.loadDynamic(C) compiler.go:433: 22: goja._new(0) compiler.go:433: 23: goja.initGlobalP(c) compiler.go:433: 24: goja.loadDynamic(c) compiler.go:433: 25: goja.getProp(a) compiler.go:433: 26: goja.loadVal({true}) compiler.go:433: 27: goja._op_strict_eq({}) compiler.go:433: 28: goja.jne(5) compiler.go:433: 29: goja.loadDynamic(c) compiler.go:433: 30: goja.getProp(b) compiler.go:433: 31: goja.loadVal({1}) compiler.go:433: 32: goja._op_strict_eq({}) compiler.go:433: 33: goja.jne(5) compiler.go:433: 34: goja.loadDynamic(c) compiler.go:433: 35: goja.getProp(B) compiler.go:433: 36: goja.loadVal({2}) compiler.go:433: 37: goja._op_strict_eq({}) compiler.go:433: 38: goja.jne(4) compiler.go:433: 39: goja.loadDynamic(c) compiler.go:433: 40: goja.getPropCallee(m1) compiler.go:433: 41: goja.call(0) compiler.go:433: 42: goja.jne(3) compiler.go:433: 43: goja.loadDynamic(C) compiler.go:433: 44: goja.getProp(A) compiler.go:433: 45: goja.jne(5) compiler.go:433: 46: goja.loadDynamic(C) compiler.go:433: 47: goja.getProp(supername) compiler.go:433: 48: goja.loadVal({Error}) compiler.go:433: 49: goja._op_strict_eq({}) compiler.go:433: 50: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestCompileClass (0.00s) === RUN TestSuperInEval compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C c] [] false}) compiler.go:433: 1: *goja.enterBlock(&{map[C:2684354560] 1 0}) compiler.go:433: 2: goja.loadDynamic(Error) compiler.go:433: 3: *goja.newDerivedClass(&{{0xc0003614f0 C class C extends Error { constructor() { eval("super()"); } m() { return eval("super.name"); } } [] [] 0 0 0 false}}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:2147483649] 2 0 0 6 true false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.createArgsUnmapped(0) compiler.go:433: > 3: goja.initStashP(1) compiler.go:433: > 4: goja.loadDynamicCallee(eval) compiler.go:433: > 5: goja.loadVal({super()}) compiler.go:433: > 6: goja.callEvalStrict(1) compiler.go:433: > 7: goja._pop({}) compiler.go:433: > 8: goja._loadUndef({}) compiler.go:433: > 9: goja.cret(0) compiler.go:433: 4: goja.dupN(1) compiler.go:433: 5: *goja.newMethod(&{{0xc000361540 m m() { return eval("super.name"); } 0 true} 1}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:2147483649] 2 0 0 3 true false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.createArgsUnmapped(0) compiler.go:433: > 3: goja.initStashP(1) compiler.go:433: > 4: goja.loadDynamicCallee(eval) compiler.go:433: > 5: goja.loadVal({super.name}) compiler.go:433: > 6: goja.callEvalStrict(1) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 6: *goja.defineMethodKeyed(&{m false}) compiler.go:433: 7: goja._pop({}) compiler.go:433: 8: goja.initStash(0) compiler.go:433: 9: goja._endVariadic({}) compiler.go:433: 10: *goja.leaveBlock(&{0 true}) compiler.go:433: 11: goja.initGlobalP(C) compiler.go:433: 12: goja.loadDynamic(C) compiler.go:433: 13: goja._new(0) compiler.go:433: 14: goja.initGlobalP(c) compiler.go:433: 15: goja.loadDynamic(c) compiler.go:433: 16: goja.getPropCallee(m) compiler.go:433: 17: goja.call(0) compiler.go:433: 18: goja.loadVal({Error}) compiler.go:433: 19: goja._op_strict_eq({}) compiler.go:433: 20: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 3 --- PASS: TestSuperInEval (0.00s) === RUN TestSuperRefDot compiler.go:433: 0: *goja.bindGlobal(&{[] [] [thisGet thisSet P C o] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(thisGet) compiler.go:433: 3: goja._loadUndef({}) compiler.go:433: 4: goja.initGlobalP(thisSet) compiler.go:433: 5: goja.jump(1) compiler.go:433: 6: *goja.newClass(&{ P class P { _p = 0 get p() { thisGet = this; return this._p; } set p(v) { thisSet = this; this._p = v; } } 0xc0000207d0 [] [] 0 0 0 false}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadVal({0}) compiler.go:433: > 1: goja.definePropKeyed(_p) compiler.go:430: > ---- compiler.go:433: 7: goja.dupN(1) compiler.go:433: 8: *goja.newMethod(&{{0xc000020730 p get p() { thisGet = this; return this._p; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1Strict(thisGet) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: goja.getProp(_p) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 9: *goja.defineGetterKeyed(&{p false}) compiler.go:433: 10: *goja.newMethod(&{{0xc000020780 p set p(v) { thisSet = this; this._p = v; } 1 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.resolveVar1Strict(thisSet) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: goja.loadStackLex(-1) compiler.go:433: > 6: goja.setPropStrictP(_p) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 11: *goja.defineSetterKeyed(&{p false}) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: goja._endVariadic({}) compiler.go:433: 14: goja.initGlobalP(P) compiler.go:433: 15: goja.jump(1) compiler.go:433: 16: goja.loadDynamic(P) compiler.go:433: 17: *goja.newDerivedClass(&{{ C class C extends P { g() { return super.p; } s(v) { super.p = v; } inc() { super.p++; } incR() { return super.p++; } inc1() { ++super.p; } inc1R() { return ++super.p; } unary() { return +super.p; } pattern() { [super.p] = [9]; } } [] [] 0 0 0 false}}) compiler.go:433: 18: goja.dupN(1) compiler.go:433: 19: *goja.newMethod(&{{0xc000020820 g g() { return super.p; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja._loadSuper({}) compiler.go:433: > 3: goja.getPropRecv(p) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 20: *goja.defineMethodKeyed(&{g false}) compiler.go:433: 21: *goja.newMethod(&{{0xc0000208c0 s s(v) { super.p = v; } 1 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja._loadSuper({}) compiler.go:433: > 3: goja.loadStackLex(-1) compiler.go:433: > 4: goja.setPropRecvStrictP(p) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 22: *goja.defineMethodKeyed(&{s false}) compiler.go:433: 23: *goja.newMethod(&{{0xc000020910 inc inc() { super.p++; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja._loadSuper({}) compiler.go:433: > 3: goja.dupLast(2) compiler.go:433: > 4: goja.getPropRecv(p) compiler.go:433: > 5: goja._inc({}) compiler.go:433: > 6: goja.setPropRecvStrictP(p) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 24: *goja.defineMethodKeyed(&{inc false}) compiler.go:433: 25: *goja.newMethod(&{{0xc000020960 incR incR() { return super.p++; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja._loadSuper({}) compiler.go:433: > 4: goja.dupLast(2) compiler.go:433: > 5: goja.getPropRecv(p) compiler.go:433: > 6: goja._toNumber({}) compiler.go:433: > 7: goja.rdupN(3) compiler.go:433: > 8: goja._inc({}) compiler.go:433: > 9: goja.setPropRecvStrictP(p) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 26: *goja.defineMethodKeyed(&{incR false}) compiler.go:433: 27: *goja.newMethod(&{{0xc0000209b0 inc1 inc1() { ++super.p; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja._loadSuper({}) compiler.go:433: > 3: goja.dupLast(2) compiler.go:433: > 4: goja.getPropRecv(p) compiler.go:433: > 5: goja._inc({}) compiler.go:433: > 6: goja.setPropRecvStrictP(p) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 28: *goja.defineMethodKeyed(&{inc1 false}) compiler.go:433: 29: *goja.newMethod(&{{0xc000020a00 inc1R inc1R() { return ++super.p; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja._loadSuper({}) compiler.go:433: > 3: goja.dupLast(2) compiler.go:433: > 4: goja.getPropRecv(p) compiler.go:433: > 5: goja._toNumber({}) compiler.go:433: > 6: goja._inc({}) compiler.go:433: > 7: goja.setPropRecvStrict(p) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 30: *goja.defineMethodKeyed(&{inc1R false}) compiler.go:433: 31: *goja.newMethod(&{{0xc000020a50 unary unary() { return +super.p; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja._loadSuper({}) compiler.go:433: > 3: goja.getPropRecv(p) compiler.go:433: > 4: goja._plus({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 32: *goja.defineMethodKeyed(&{unary false}) compiler.go:433: 33: *goja.newMethod(&{{0xc000020aa0 pattern pattern() { [super.p] = [9]; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.newArray(1) compiler.go:433: > 2: goja.loadVal({9}) compiler.go:433: > 3: goja._pushArrayItem({}) compiler.go:433: > 4: goja._iterate({}) compiler.go:433: > 5: goja.loadStack(0) compiler.go:433: > 6: goja._loadSuper({}) compiler.go:433: > 7: goja.getPropRefRecvStrict(p) compiler.go:433: > 8: goja.iterGetNextOrUndef({}) compiler.go:433: > 9: goja._putValueP({}) compiler.go:433: > 10: goja._enumPopClose({}) compiler.go:433: > 11: goja._pop({}) compiler.go:433: > 12: goja._loadUndef({}) compiler.go:433: > 13: goja._ret({}) compiler.go:433: 34: *goja.defineMethodKeyed(&{pattern false}) compiler.go:433: 35: goja._pop({}) compiler.go:433: 36: goja._endVariadic({}) compiler.go:433: 37: goja.initGlobalP(C) compiler.go:433: 38: goja.loadDynamic(C) compiler.go:433: 39: goja._new(0) compiler.go:433: 40: goja.initGlobalP(o) compiler.go:433: 41: goja.loadDynamic(assert) compiler.go:433: 42: goja.getPropCallee(sameValue) compiler.go:433: 43: goja.loadDynamic(o) compiler.go:433: 44: goja.getPropCallee(g) compiler.go:433: 45: goja.call(0) compiler.go:433: 46: goja.loadVal({0}) compiler.go:433: 47: goja.loadVal({get value}) compiler.go:433: 48: goja.call(3) compiler.go:433: 49: goja._pop({}) compiler.go:433: 50: goja.loadDynamic(assert) compiler.go:433: 51: goja.getPropCallee(sameValue) compiler.go:433: 52: goja.loadDynamic(thisGet) compiler.go:433: 53: goja.loadDynamic(o) compiler.go:433: 54: goja.loadVal({get this}) compiler.go:433: 55: goja.call(3) compiler.go:433: 56: goja._pop({}) compiler.go:433: 57: goja.loadDynamic(o) compiler.go:433: 58: goja.getPropCallee(s) compiler.go:433: 59: goja.loadVal({1}) compiler.go:433: 60: goja.call(1) compiler.go:433: 61: goja._pop({}) compiler.go:433: 62: goja.loadDynamic(assert) compiler.go:433: 63: goja.getPropCallee(sameValue) compiler.go:433: 64: goja.loadDynamic(o) compiler.go:433: 65: goja.getProp(_p) compiler.go:433: 66: goja.loadVal({1}) compiler.go:433: 67: goja.loadVal({set value}) compiler.go:433: 68: goja.call(3) compiler.go:433: 69: goja._pop({}) compiler.go:433: 70: goja.loadDynamic(assert) compiler.go:433: 71: goja.getPropCallee(sameValue) compiler.go:433: 72: goja.loadDynamic(thisSet) compiler.go:433: 73: goja.loadDynamic(o) compiler.go:433: 74: goja.loadVal({set this}) compiler.go:433: 75: goja.call(3) compiler.go:433: 76: goja._pop({}) compiler.go:433: 77: goja.resolveVar1(thisGet) compiler.go:433: 78: goja.loadDynamic(undefined) compiler.go:433: 79: goja._putValueP({}) compiler.go:433: 80: goja.resolveVar1(thisSet) compiler.go:433: 81: goja.loadDynamic(undefined) compiler.go:433: 82: goja._putValueP({}) compiler.go:433: 83: goja.loadDynamic(o) compiler.go:433: 84: goja.getPropCallee(inc) compiler.go:433: 85: goja.call(0) compiler.go:433: 86: goja._pop({}) compiler.go:433: 87: goja.loadDynamic(assert) compiler.go:433: 88: goja.getPropCallee(sameValue) compiler.go:433: 89: goja.loadDynamic(o) compiler.go:433: 90: goja.getProp(_p) compiler.go:433: 91: goja.loadVal({2}) compiler.go:433: 92: goja.loadVal({inc value}) compiler.go:433: 93: goja.call(3) compiler.go:433: 94: goja._pop({}) compiler.go:433: 95: goja.loadDynamic(assert) compiler.go:433: 96: goja.getPropCallee(sameValue) compiler.go:433: 97: goja.loadDynamic(thisGet) compiler.go:433: 98: goja.loadDynamic(o) compiler.go:433: 99: goja.loadVal({inc thisGet}) compiler.go:433: 100: goja.call(3) compiler.go:433: 101: goja._pop({}) compiler.go:433: 102: goja.loadDynamic(assert) compiler.go:433: 103: goja.getPropCallee(sameValue) compiler.go:433: 104: goja.loadDynamic(thisSet) compiler.go:433: 105: goja.loadDynamic(o) compiler.go:433: 106: goja.loadVal({inc thisSet}) compiler.go:433: 107: goja.call(3) compiler.go:433: 108: goja._pop({}) compiler.go:433: 109: goja.resolveVar1(thisGet) compiler.go:433: 110: goja.loadDynamic(undefined) compiler.go:433: 111: goja._putValueP({}) compiler.go:433: 112: goja.resolveVar1(thisSet) compiler.go:433: 113: goja.loadDynamic(undefined) compiler.go:433: 114: goja._putValueP({}) compiler.go:433: 115: goja.loadDynamic(assert) compiler.go:433: 116: goja.getPropCallee(sameValue) compiler.go:433: 117: goja.loadDynamic(o) compiler.go:433: 118: goja.getPropCallee(incR) compiler.go:433: 119: goja.call(0) compiler.go:433: 120: goja.loadVal({2}) compiler.go:433: 121: goja.loadVal({incR result}) compiler.go:433: 122: goja.call(3) compiler.go:433: 123: goja._pop({}) compiler.go:433: 124: goja.loadDynamic(assert) compiler.go:433: 125: goja.getPropCallee(sameValue) compiler.go:433: 126: goja.loadDynamic(o) compiler.go:433: 127: goja.getProp(_p) compiler.go:433: 128: goja.loadVal({3}) compiler.go:433: 129: goja.loadVal({incR value}) compiler.go:433: 130: goja.call(3) compiler.go:433: 131: goja._pop({}) compiler.go:433: 132: goja.loadDynamic(assert) compiler.go:433: 133: goja.getPropCallee(sameValue) compiler.go:433: 134: goja.loadDynamic(thisGet) compiler.go:433: 135: goja.loadDynamic(o) compiler.go:433: 136: goja.loadVal({incR thisGet}) compiler.go:433: 137: goja.call(3) compiler.go:433: 138: goja._pop({}) compiler.go:433: 139: goja.loadDynamic(assert) compiler.go:433: 140: goja.getPropCallee(sameValue) compiler.go:433: 141: goja.loadDynamic(thisSet) compiler.go:433: 142: goja.loadDynamic(o) compiler.go:433: 143: goja.loadVal({incR thisSet}) compiler.go:433: 144: goja.call(3) compiler.go:433: 145: goja._pop({}) compiler.go:433: 146: goja.resolveVar1(thisGet) compiler.go:433: 147: goja.loadDynamic(undefined) compiler.go:433: 148: goja._putValueP({}) compiler.go:433: 149: goja.resolveVar1(thisSet) compiler.go:433: 150: goja.loadDynamic(undefined) compiler.go:433: 151: goja._putValueP({}) compiler.go:433: 152: goja.loadDynamic(o) compiler.go:433: 153: goja.getPropCallee(inc1) compiler.go:433: 154: goja.call(0) compiler.go:433: 155: goja._pop({}) compiler.go:433: 156: goja.loadDynamic(assert) compiler.go:433: 157: goja.getPropCallee(sameValue) compiler.go:433: 158: goja.loadDynamic(o) compiler.go:433: 159: goja.getProp(_p) compiler.go:433: 160: goja.loadVal({4}) compiler.go:433: 161: goja.loadVal({inc1 value}) compiler.go:433: 162: goja.call(3) compiler.go:433: 163: goja._pop({}) compiler.go:433: 164: goja.loadDynamic(assert) compiler.go:433: 165: goja.getPropCallee(sameValue) compiler.go:433: 166: goja.loadDynamic(thisGet) compiler.go:433: 167: goja.loadDynamic(o) compiler.go:433: 168: goja.loadVal({inc1 thisGet}) compiler.go:433: 169: goja.call(3) compiler.go:433: 170: goja._pop({}) compiler.go:433: 171: goja.loadDynamic(assert) compiler.go:433: 172: goja.getPropCallee(sameValue) compiler.go:433: 173: goja.loadDynamic(thisSet) compiler.go:433: 174: goja.loadDynamic(o) compiler.go:433: 175: goja.loadVal({inc1 thisSet}) compiler.go:433: 176: goja.call(3) compiler.go:433: 177: goja._pop({}) compiler.go:433: 178: goja.resolveVar1(thisGet) compiler.go:433: 179: goja.loadDynamic(undefined) compiler.go:433: 180: goja._putValueP({}) compiler.go:433: 181: goja.resolveVar1(thisSet) compiler.go:433: 182: goja.loadDynamic(undefined) compiler.go:433: 183: goja._putValueP({}) compiler.go:433: 184: goja.loadDynamic(assert) compiler.go:433: 185: goja.getPropCallee(sameValue) compiler.go:433: 186: goja.loadDynamic(o) compiler.go:433: 187: goja.getPropCallee(inc1R) compiler.go:433: 188: goja.call(0) compiler.go:433: 189: goja.loadVal({5}) compiler.go:433: 190: goja.loadVal({inc1R result}) compiler.go:433: 191: goja.call(3) compiler.go:433: 192: goja._pop({}) compiler.go:433: 193: goja.loadDynamic(assert) compiler.go:433: 194: goja.getPropCallee(sameValue) compiler.go:433: 195: goja.loadDynamic(o) compiler.go:433: 196: goja.getProp(_p) compiler.go:433: 197: goja.loadVal({5}) compiler.go:433: 198: goja.loadVal({inc1R value}) compiler.go:433: 199: goja.call(3) compiler.go:433: 200: goja._pop({}) compiler.go:433: 201: goja.loadDynamic(assert) compiler.go:433: 202: goja.getPropCallee(sameValue) compiler.go:433: 203: goja.loadDynamic(thisGet) compiler.go:433: 204: goja.loadDynamic(o) compiler.go:433: 205: goja.loadVal({inc1R thisGet}) compiler.go:433: 206: goja.call(3) compiler.go:433: 207: goja._pop({}) compiler.go:433: 208: goja.loadDynamic(assert) compiler.go:433: 209: goja.getPropCallee(sameValue) compiler.go:433: 210: goja.loadDynamic(thisSet) compiler.go:433: 211: goja.loadDynamic(o) compiler.go:433: 212: goja.loadVal({inc1R thisSet}) compiler.go:433: 213: goja.call(3) compiler.go:433: 214: goja._pop({}) compiler.go:433: 215: goja.loadDynamic(assert) compiler.go:433: 216: goja.getPropCallee(sameValue) compiler.go:433: 217: goja.loadDynamic(o) compiler.go:433: 218: goja.getPropCallee(unary) compiler.go:433: 219: goja.call(0) compiler.go:433: 220: goja.loadVal({5}) compiler.go:433: 221: goja.loadVal({unary}) compiler.go:433: 222: goja.call(3) compiler.go:433: 223: goja._pop({}) compiler.go:433: 224: goja.loadDynamic(o) compiler.go:433: 225: goja.getPropCallee(pattern) compiler.go:433: 226: goja.call(0) compiler.go:433: 227: goja._pop({}) compiler.go:433: 228: goja.loadDynamic(assert) compiler.go:433: 229: goja.getPropCallee(sameValue) compiler.go:433: 230: goja.loadDynamic(o) compiler.go:433: 231: goja.getProp(_p) compiler.go:433: 232: goja.loadVal({9}) compiler.go:433: 233: goja.loadVal({pattern}) compiler.go:433: 234: goja.call(3) compiler.go:433: 235: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSuperRefDot (0.00s) === RUN TestPrivateRefDot compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C o] [] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{ C class C { #p = 0; g() { return this.#p; } s(v) { this.#p = v; } inc() { this.#p++; } incR() { return this.#p++; } inc1() { ++this.#p; } inc1R() { return ++this.#p; } pattern() { [this.#p] = [9]; } } 0xc000021630 [] [] 1 0 0 true}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadVal({0}) compiler.go:433: > 1: *goja.definePrivateProp(&{0}) compiler.go:430: > ---- compiler.go:433: 3: goja.dupN(1) compiler.go:433: 4: *goja.newMethod(&{{0xc000021310 g g() { return this.#p; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: *goja.getPrivatePropRes(&{p 0 0 false false}) compiler.go:433: > 3: goja._ret({}) compiler.go:433: 5: *goja.defineMethodKeyed(&{g false}) compiler.go:433: 6: *goja.newMethod(&{{0xc000021360 s s(v) { this.#p = v; } 1 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: *goja.setPrivatePropResP(&{p 0 0 false false}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 7: *goja.defineMethodKeyed(&{s false}) compiler.go:433: 8: *goja.newMethod(&{{0xc0000214a0 inc inc() { this.#p++; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja._dup({}) compiler.go:433: > 3: *goja.getPrivatePropRes(&{p 0 0 false false}) compiler.go:433: > 4: goja._inc({}) compiler.go:433: > 5: *goja.setPrivatePropResP(&{p 0 0 false false}) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 9: *goja.defineMethodKeyed(&{inc false}) compiler.go:433: 10: *goja.newMethod(&{{0xc0000214f0 incR incR() { return this.#p++; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja._dup({}) compiler.go:433: > 4: *goja.getPrivatePropRes(&{p 0 0 false false}) compiler.go:433: > 5: goja._toNumber({}) compiler.go:433: > 6: goja.rdupN(2) compiler.go:433: > 7: goja._inc({}) compiler.go:433: > 8: *goja.setPrivatePropResP(&{p 0 0 false false}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 11: *goja.defineMethodKeyed(&{incR false}) compiler.go:433: 12: *goja.newMethod(&{{0xc000021540 inc1 inc1() { ++this.#p; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja._dup({}) compiler.go:433: > 3: *goja.getPrivatePropRes(&{p 0 0 false false}) compiler.go:433: > 4: goja._inc({}) compiler.go:433: > 5: *goja.setPrivatePropResP(&{p 0 0 false false}) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 13: *goja.defineMethodKeyed(&{inc1 false}) compiler.go:433: 14: *goja.newMethod(&{{0xc000021590 inc1R inc1R() { return ++this.#p; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja._dup({}) compiler.go:433: > 3: *goja.getPrivatePropRes(&{p 0 0 false false}) compiler.go:433: > 4: goja._toNumber({}) compiler.go:433: > 5: goja._inc({}) compiler.go:433: > 6: *goja.setPrivatePropRes(&{p 0 0 false false}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 15: *goja.defineMethodKeyed(&{inc1R false}) compiler.go:433: 16: *goja.newMethod(&{{0xc0000215e0 pattern pattern() { [this.#p] = [9]; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.newArray(1) compiler.go:433: > 2: goja.loadVal({9}) compiler.go:433: > 3: goja._pushArrayItem({}) compiler.go:433: > 4: goja._iterate({}) compiler.go:433: > 5: goja.loadStack(0) compiler.go:433: > 6: *goja.getPrivateRefRes(&{p 0 0 false false}) compiler.go:433: > 7: goja.iterGetNextOrUndef({}) compiler.go:433: > 8: goja._putValueP({}) compiler.go:433: > 9: goja._enumPopClose({}) compiler.go:433: > 10: goja._pop({}) compiler.go:433: > 11: goja._loadUndef({}) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 17: *goja.defineMethodKeyed(&{pattern false}) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja._endVariadic({}) compiler.go:433: 20: goja.popPrivateEnv({}) compiler.go:433: 21: goja.initGlobalP(C) compiler.go:433: 22: goja.loadDynamic(C) compiler.go:433: 23: goja._new(0) compiler.go:433: 24: goja.initGlobalP(o) compiler.go:433: 25: goja.loadDynamic(assert) compiler.go:433: 26: goja.getPropCallee(sameValue) compiler.go:433: 27: goja.loadDynamic(o) compiler.go:433: 28: goja.getPropCallee(g) compiler.go:433: 29: goja.call(0) compiler.go:433: 30: goja.loadVal({0}) compiler.go:433: 31: goja.loadVal({get value}) compiler.go:433: 32: goja.call(3) compiler.go:433: 33: goja._pop({}) compiler.go:433: 34: goja.loadDynamic(o) compiler.go:433: 35: goja.getPropCallee(s) compiler.go:433: 36: goja.loadVal({1}) compiler.go:433: 37: goja.call(1) compiler.go:433: 38: goja._pop({}) compiler.go:433: 39: goja.loadDynamic(assert) compiler.go:433: 40: goja.getPropCallee(sameValue) compiler.go:433: 41: goja.loadDynamic(o) compiler.go:433: 42: goja.getPropCallee(g) compiler.go:433: 43: goja.call(0) compiler.go:433: 44: goja.loadVal({1}) compiler.go:433: 45: goja.loadVal({set value}) compiler.go:433: 46: goja.call(3) compiler.go:433: 47: goja._pop({}) compiler.go:433: 48: goja.loadDynamic(o) compiler.go:433: 49: goja.getPropCallee(inc) compiler.go:433: 50: goja.call(0) compiler.go:433: 51: goja._pop({}) compiler.go:433: 52: goja.loadDynamic(assert) compiler.go:433: 53: goja.getPropCallee(sameValue) compiler.go:433: 54: goja.loadDynamic(o) compiler.go:433: 55: goja.getPropCallee(g) compiler.go:433: 56: goja.call(0) compiler.go:433: 57: goja.loadVal({2}) compiler.go:433: 58: goja.loadVal({inc value}) compiler.go:433: 59: goja.call(3) compiler.go:433: 60: goja._pop({}) compiler.go:433: 61: goja.loadDynamic(assert) compiler.go:433: 62: goja.getPropCallee(sameValue) compiler.go:433: 63: goja.loadDynamic(o) compiler.go:433: 64: goja.getPropCallee(incR) compiler.go:433: 65: goja.call(0) compiler.go:433: 66: goja.loadVal({2}) compiler.go:433: 67: goja.loadVal({incR result}) compiler.go:433: 68: goja.call(3) compiler.go:433: 69: goja._pop({}) compiler.go:433: 70: goja.loadDynamic(assert) compiler.go:433: 71: goja.getPropCallee(sameValue) compiler.go:433: 72: goja.loadDynamic(o) compiler.go:433: 73: goja.getPropCallee(g) compiler.go:433: 74: goja.call(0) compiler.go:433: 75: goja.loadVal({3}) compiler.go:433: 76: goja.loadVal({incR value}) compiler.go:433: 77: goja.call(3) compiler.go:433: 78: goja._pop({}) compiler.go:433: 79: goja.loadDynamic(o) compiler.go:433: 80: goja.getPropCallee(inc1) compiler.go:433: 81: goja.call(0) compiler.go:433: 82: goja._pop({}) compiler.go:433: 83: goja.loadDynamic(assert) compiler.go:433: 84: goja.getPropCallee(sameValue) compiler.go:433: 85: goja.loadDynamic(o) compiler.go:433: 86: goja.getPropCallee(g) compiler.go:433: 87: goja.call(0) compiler.go:433: 88: goja.loadVal({4}) compiler.go:433: 89: goja.loadVal({inc1 value}) compiler.go:433: 90: goja.call(3) compiler.go:433: 91: goja._pop({}) compiler.go:433: 92: goja.loadDynamic(assert) compiler.go:433: 93: goja.getPropCallee(sameValue) compiler.go:433: 94: goja.loadDynamic(o) compiler.go:433: 95: goja.getPropCallee(inc1R) compiler.go:433: 96: goja.call(0) compiler.go:433: 97: goja.loadVal({5}) compiler.go:433: 98: goja.loadVal({inc1R result}) compiler.go:433: 99: goja.call(3) compiler.go:433: 100: goja._pop({}) compiler.go:433: 101: goja.loadDynamic(assert) compiler.go:433: 102: goja.getPropCallee(sameValue) compiler.go:433: 103: goja.loadDynamic(o) compiler.go:433: 104: goja.getPropCallee(g) compiler.go:433: 105: goja.call(0) compiler.go:433: 106: goja.loadVal({5}) compiler.go:433: 107: goja.loadVal({inc1R value}) compiler.go:433: 108: goja.call(3) compiler.go:433: 109: goja._pop({}) compiler.go:433: 110: goja.loadDynamic(o) compiler.go:433: 111: goja.getPropCallee(pattern) compiler.go:433: 112: goja.call(0) compiler.go:433: 113: goja._pop({}) compiler.go:433: 114: goja.loadDynamic(assert) compiler.go:433: 115: goja.getPropCallee(sameValue) compiler.go:433: 116: goja.loadDynamic(o) compiler.go:433: 117: goja.getPropCallee(g) compiler.go:433: 118: goja.call(0) compiler.go:433: 119: goja.loadVal({9}) compiler.go:433: 120: goja.loadVal({pattern}) compiler.go:433: 121: goja.call(3) compiler.go:433: 122: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestPrivateRefDot (0.00s) === RUN TestPrivateRefDotEval compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C o] [] false}) compiler.go:433: 1: *goja.enterBlock(&{map[C:2684354560] 1 0}) compiler.go:433: 2: *goja.newClass(&{ C class C { #p = 0; g() { return eval("this.#p"); } s(v) { eval("this.#p = v"); } incR() { return eval("this.#p++"); } inc1R() { return eval("++this.#p"); } pattern() { eval("[this.#p] = [9]"); } } 0xc000021d10 [p] [] 1 0 0 true}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadVal({0}) compiler.go:433: > 1: *goja.definePrivateProp(&{0}) compiler.go:430: > ---- compiler.go:433: 3: goja.dupN(1) compiler.go:433: 4: *goja.newMethod(&{{0xc000021b80 g g() { return eval("this.#p"); } 0 true} 1}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:2147483649] 2 0 0 3 true false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.createArgsUnmapped(0) compiler.go:433: > 3: goja.initStashP(1) compiler.go:433: > 4: goja.loadDynamicCallee(eval) compiler.go:433: > 5: goja.loadVal({this.#p}) compiler.go:433: > 6: goja.callEvalStrict(1) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 5: *goja.defineMethodKeyed(&{g false}) compiler.go:433: 6: *goja.newMethod(&{{0xc000021bd0 s s(v) { eval("this.#p = v"); } 1 true} 1}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741825 arguments:2147483650 v:1073741824] 3 0 1 3 true false}) compiler.go:433: > 1: goja.initStash(1) compiler.go:433: > 2: goja.createArgsUnmapped(1) compiler.go:433: > 3: goja.initStashP(2) compiler.go:433: > 4: goja.loadDynamicCallee(eval) compiler.go:433: > 5: goja.loadVal({this.#p = v}) compiler.go:433: > 6: goja.callEvalStrict(1) compiler.go:433: > 7: goja._pop({}) compiler.go:433: > 8: goja._loadUndef({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 7: *goja.defineMethodKeyed(&{s false}) compiler.go:433: 8: *goja.newMethod(&{{0xc000021c20 incR incR() { return eval("this.#p++"); } 0 true} 1}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:2147483649] 2 0 0 3 true false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.createArgsUnmapped(0) compiler.go:433: > 3: goja.initStashP(1) compiler.go:433: > 4: goja.loadDynamicCallee(eval) compiler.go:433: > 5: goja.loadVal({this.#p++}) compiler.go:433: > 6: goja.callEvalStrict(1) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 9: *goja.defineMethodKeyed(&{incR false}) compiler.go:433: 10: *goja.newMethod(&{{0xc000021c70 inc1R inc1R() { return eval("++this.#p"); } 0 true} 1}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:2147483649] 2 0 0 3 true false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.createArgsUnmapped(0) compiler.go:433: > 3: goja.initStashP(1) compiler.go:433: > 4: goja.loadDynamicCallee(eval) compiler.go:433: > 5: goja.loadVal({++this.#p}) compiler.go:433: > 6: goja.callEvalStrict(1) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 11: *goja.defineMethodKeyed(&{inc1R false}) compiler.go:433: 12: *goja.newMethod(&{{0xc000021cc0 pattern pattern() { eval("[this.#p] = [9]"); } 0 true} 1}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:2147483649] 2 0 0 3 true false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.createArgsUnmapped(0) compiler.go:433: > 3: goja.initStashP(1) compiler.go:433: > 4: goja.loadDynamicCallee(eval) compiler.go:433: > 5: goja.loadVal({[this.#p] = [9]}) compiler.go:433: > 6: goja.callEvalStrict(1) compiler.go:433: > 7: goja._pop({}) compiler.go:433: > 8: goja._loadUndef({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 13: *goja.defineMethodKeyed(&{pattern false}) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja.initStash(0) compiler.go:433: 16: goja._endVariadic({}) compiler.go:433: 17: *goja.leaveBlock(&{0 true}) compiler.go:433: 18: goja.popPrivateEnv({}) compiler.go:433: 19: goja.initGlobalP(C) compiler.go:433: 20: goja.loadDynamic(C) compiler.go:433: 21: goja._new(0) compiler.go:433: 22: goja.initGlobalP(o) compiler.go:433: 23: goja.loadDynamic(assert) compiler.go:433: 24: goja.getPropCallee(sameValue) compiler.go:433: 25: goja.loadDynamic(o) compiler.go:433: 26: goja.getPropCallee(g) compiler.go:433: 27: goja.call(0) compiler.go:433: 28: goja.loadVal({0}) compiler.go:433: 29: goja.loadVal({get value}) compiler.go:433: 30: goja.call(3) compiler.go:433: 31: goja._pop({}) compiler.go:433: 32: goja.loadDynamic(o) compiler.go:433: 33: goja.getPropCallee(s) compiler.go:433: 34: goja.loadVal({1}) compiler.go:433: 35: goja.call(1) compiler.go:433: 36: goja._pop({}) compiler.go:433: 37: goja.loadDynamic(assert) compiler.go:433: 38: goja.getPropCallee(sameValue) compiler.go:433: 39: goja.loadDynamic(o) compiler.go:433: 40: goja.getPropCallee(g) compiler.go:433: 41: goja.call(0) compiler.go:433: 42: goja.loadVal({1}) compiler.go:433: 43: goja.loadVal({set value}) compiler.go:433: 44: goja.call(3) compiler.go:433: 45: goja._pop({}) compiler.go:433: 46: goja.loadDynamic(assert) compiler.go:433: 47: goja.getPropCallee(sameValue) compiler.go:433: 48: goja.loadDynamic(o) compiler.go:433: 49: goja.getPropCallee(incR) compiler.go:433: 50: goja.call(0) compiler.go:433: 51: goja.loadVal({1}) compiler.go:433: 52: goja.loadVal({incR result}) compiler.go:433: 53: goja.call(3) compiler.go:433: 54: goja._pop({}) compiler.go:433: 55: goja.loadDynamic(assert) compiler.go:433: 56: goja.getPropCallee(sameValue) compiler.go:433: 57: goja.loadDynamic(o) compiler.go:433: 58: goja.getPropCallee(g) compiler.go:433: 59: goja.call(0) compiler.go:433: 60: goja.loadVal({2}) compiler.go:433: 61: goja.loadVal({incR value}) compiler.go:433: 62: goja.call(3) compiler.go:433: 63: goja._pop({}) compiler.go:433: 64: goja.loadDynamic(assert) compiler.go:433: 65: goja.getPropCallee(sameValue) compiler.go:433: 66: goja.loadDynamic(o) compiler.go:433: 67: goja.getPropCallee(inc1R) compiler.go:433: 68: goja.call(0) compiler.go:433: 69: goja.loadVal({3}) compiler.go:433: 70: goja.loadVal({inc1R result}) compiler.go:433: 71: goja.call(3) compiler.go:433: 72: goja._pop({}) compiler.go:433: 73: goja.loadDynamic(assert) compiler.go:433: 74: goja.getPropCallee(sameValue) compiler.go:433: 75: goja.loadDynamic(o) compiler.go:433: 76: goja.getPropCallee(g) compiler.go:433: 77: goja.call(0) compiler.go:433: 78: goja.loadVal({3}) compiler.go:433: 79: goja.loadVal({inc1R value}) compiler.go:433: 80: goja.call(3) compiler.go:433: 81: goja._pop({}) compiler.go:433: 82: goja.loadDynamic(o) compiler.go:433: 83: goja.getPropCallee(pattern) compiler.go:433: 84: goja.call(0) compiler.go:433: 85: goja._pop({}) compiler.go:433: 86: goja.loadDynamic(assert) compiler.go:433: 87: goja.getPropCallee(sameValue) compiler.go:433: 88: goja.loadDynamic(o) compiler.go:433: 89: goja.getPropCallee(g) compiler.go:433: 90: goja.call(0) compiler.go:433: 91: goja.loadVal({9}) compiler.go:433: 92: goja.loadVal({pattern}) compiler.go:433: 93: goja.call(3) compiler.go:433: 94: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 10 --- PASS: TestPrivateRefDotEval (0.00s) === RUN TestSuperRefDotCallee compiler.go:433: 0: *goja.bindGlobal(&{[] [] [P C o] [] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{ P class P { get p() { return function() { return this; }; } } [] [] 0 0 0 false}) compiler.go:433: 3: goja.dupN(1) compiler.go:433: 4: *goja.newMethod(&{{0xc000418a50 p get p() { return function() { return this; }; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: *goja.newFunc(&{0xc000418aa0 function() { return this; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStack(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 5: *goja.defineGetterKeyed(&{p false}) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja._endVariadic({}) compiler.go:433: 8: goja.initGlobalP(P) compiler.go:433: 9: goja.jump(1) compiler.go:433: 10: goja.loadDynamic(P) compiler.go:433: 11: *goja.newDerivedClass(&{{ C class C extends P { m() { return super.p(); } } [] [] 0 0 0 false}}) compiler.go:433: 12: goja.dupN(1) compiler.go:433: 13: *goja.newMethod(&{{0xc000418af0 m m() { return super.p(); } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja._loadSuper({}) compiler.go:433: > 3: goja.getPropRecvCallee(p) compiler.go:433: > 4: goja.call(0) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 14: *goja.defineMethodKeyed(&{m false}) compiler.go:433: 15: goja._pop({}) compiler.go:433: 16: goja._endVariadic({}) compiler.go:433: 17: goja.initGlobalP(C) compiler.go:433: 18: goja.loadDynamic(C) compiler.go:433: 19: goja._new(0) compiler.go:433: 20: goja.initGlobalP(o) compiler.go:433: 21: goja.loadDynamic(o) compiler.go:433: 22: goja.getPropCallee(m) compiler.go:433: 23: goja.call(0) compiler.go:433: 24: goja.loadDynamic(o) compiler.go:433: 25: goja._op_strict_eq({}) compiler.go:433: 26: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSuperRefDotCallee (0.00s) === RUN TestSuperRefBracket compiler.go:433: 0: *goja.bindGlobal(&{[] [] [PROP thisGet thisSet P C o] [] false}) compiler.go:433: 1: goja.loadVal({p}) compiler.go:433: 2: goja.initGlobalP(PROP) compiler.go:433: 3: goja._loadUndef({}) compiler.go:433: 4: goja.initGlobalP(thisGet) compiler.go:433: 5: goja._loadUndef({}) compiler.go:433: 6: goja.initGlobalP(thisSet) compiler.go:433: 7: goja.jump(1) compiler.go:433: 8: *goja.newClass(&{ P class P { _p = 0 get p() { thisGet = this; return this._p; } set p(v) { thisSet = this; this._p = v; } } 0xc000418910 [] [] 0 0 0 false}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadVal({0}) compiler.go:433: > 1: goja.definePropKeyed(_p) compiler.go:430: > ---- compiler.go:433: 9: goja.dupN(1) compiler.go:433: 10: *goja.newMethod(&{{0xc000418870 p get p() { thisGet = this; return this._p; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1Strict(thisGet) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: goja.getProp(_p) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 11: *goja.defineGetterKeyed(&{p false}) compiler.go:433: 12: *goja.newMethod(&{{0xc0004188c0 p set p(v) { thisSet = this; this._p = v; } 1 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.resolveVar1Strict(thisSet) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: goja.loadStackLex(-1) compiler.go:433: > 6: goja.setPropStrictP(_p) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 13: *goja.defineSetterKeyed(&{p false}) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja._endVariadic({}) compiler.go:433: 16: goja.initGlobalP(P) compiler.go:433: 17: goja.jump(1) compiler.go:433: 18: goja.loadDynamic(P) compiler.go:433: 19: *goja.newDerivedClass(&{{ C class C extends P { g() { return super[PROP]; } s(v) { super[PROP] = v; } inc() { super[PROP]++; } incR() { return super[PROP]++; } inc1() { ++super[PROP]; } inc1R() { return ++super[PROP]; } pattern() { [super[PROP]] = [9]; } } [] [] 0 0 0 false}}) compiler.go:433: 20: goja.dupN(1) compiler.go:433: 21: *goja.newMethod(&{{0xc000418960 g g() { return super[PROP]; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.loadDynamic(PROP) compiler.go:433: > 3: goja._loadSuper({}) compiler.go:433: > 4: goja._getElemRecv({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 22: *goja.defineMethodKeyed(&{g false}) compiler.go:433: 23: *goja.newMethod(&{{0xc0004189b0 s s(v) { super[PROP] = v; } 1 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.loadDynamic(PROP) compiler.go:433: > 3: goja._loadSuper({}) compiler.go:433: > 4: goja.loadStackLex(-1) compiler.go:433: > 5: goja._setElemRecvStrictP({}) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 24: *goja.defineMethodKeyed(&{s false}) compiler.go:433: 25: *goja.newMethod(&{{0xc000418b40 inc inc() { super[PROP]++; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.loadDynamic(PROP) compiler.go:433: > 3: goja._loadSuper({}) compiler.go:433: > 4: goja.dupLast(3) compiler.go:433: > 5: goja._getElemRecv({}) compiler.go:433: > 6: goja._inc({}) compiler.go:433: > 7: goja._setElemRecvStrictP({}) compiler.go:433: > 8: goja._loadUndef({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 26: *goja.defineMethodKeyed(&{inc false}) compiler.go:433: 27: *goja.newMethod(&{{0xc000418b90 incR incR() { return super[PROP]++; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.loadDynamic(PROP) compiler.go:433: > 4: goja._loadSuper({}) compiler.go:433: > 5: goja.dupLast(3) compiler.go:433: > 6: goja._getElemRecv({}) compiler.go:433: > 7: goja._toNumber({}) compiler.go:433: > 8: goja.rdupN(4) compiler.go:433: > 9: goja._inc({}) compiler.go:433: > 10: goja._setElemRecvStrictP({}) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 28: *goja.defineMethodKeyed(&{incR false}) compiler.go:433: 29: *goja.newMethod(&{{0xc000418be0 inc1 inc1() { ++super[PROP]; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.loadDynamic(PROP) compiler.go:433: > 3: goja._loadSuper({}) compiler.go:433: > 4: goja.dupLast(3) compiler.go:433: > 5: goja._getElemRecv({}) compiler.go:433: > 6: goja._inc({}) compiler.go:433: > 7: goja._setElemRecvStrictP({}) compiler.go:433: > 8: goja._loadUndef({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 30: *goja.defineMethodKeyed(&{inc1 false}) compiler.go:433: 31: *goja.newMethod(&{{0xc000418c30 inc1R inc1R() { return ++super[PROP]; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.loadDynamic(PROP) compiler.go:433: > 3: goja._loadSuper({}) compiler.go:433: > 4: goja.dupLast(3) compiler.go:433: > 5: goja._getElemRecv({}) compiler.go:433: > 6: goja._toNumber({}) compiler.go:433: > 7: goja._inc({}) compiler.go:433: > 8: goja._setElemRecvStrict({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 32: *goja.defineMethodKeyed(&{inc1R false}) compiler.go:433: 33: *goja.newMethod(&{{0xc000418c80 pattern pattern() { [super[PROP]] = [9]; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.newArray(1) compiler.go:433: > 2: goja.loadVal({9}) compiler.go:433: > 3: goja._pushArrayItem({}) compiler.go:433: > 4: goja._iterate({}) compiler.go:433: > 5: goja.loadStack(0) compiler.go:433: > 6: goja.loadDynamic(PROP) compiler.go:433: > 7: goja._loadSuper({}) compiler.go:433: > 8: goja._getElemRefRecvStrict({}) compiler.go:433: > 9: goja.iterGetNextOrUndef({}) compiler.go:433: > 10: goja._putValueP({}) compiler.go:433: > 11: goja._enumPopClose({}) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 34: *goja.defineMethodKeyed(&{pattern false}) compiler.go:433: 35: goja._pop({}) compiler.go:433: 36: goja._endVariadic({}) compiler.go:433: 37: goja.initGlobalP(C) compiler.go:433: 38: goja.loadDynamic(C) compiler.go:433: 39: goja._new(0) compiler.go:433: 40: goja.initGlobalP(o) compiler.go:433: 41: goja.loadDynamic(assert) compiler.go:433: 42: goja.getPropCallee(sameValue) compiler.go:433: 43: goja.loadDynamic(o) compiler.go:433: 44: goja.getPropCallee(g) compiler.go:433: 45: goja.call(0) compiler.go:433: 46: goja.loadVal({0}) compiler.go:433: 47: goja.loadVal({get value}) compiler.go:433: 48: goja.call(3) compiler.go:433: 49: goja._pop({}) compiler.go:433: 50: goja.loadDynamic(assert) compiler.go:433: 51: goja.getPropCallee(sameValue) compiler.go:433: 52: goja.loadDynamic(thisGet) compiler.go:433: 53: goja.loadDynamic(o) compiler.go:433: 54: goja.loadVal({get this}) compiler.go:433: 55: goja.call(3) compiler.go:433: 56: goja._pop({}) compiler.go:433: 57: goja.loadDynamic(o) compiler.go:433: 58: goja.getPropCallee(s) compiler.go:433: 59: goja.loadVal({1}) compiler.go:433: 60: goja.call(1) compiler.go:433: 61: goja._pop({}) compiler.go:433: 62: goja.loadDynamic(assert) compiler.go:433: 63: goja.getPropCallee(sameValue) compiler.go:433: 64: goja.loadDynamic(o) compiler.go:433: 65: goja.getProp(_p) compiler.go:433: 66: goja.loadVal({1}) compiler.go:433: 67: goja.loadVal({set value}) compiler.go:433: 68: goja.call(3) compiler.go:433: 69: goja._pop({}) compiler.go:433: 70: goja.loadDynamic(assert) compiler.go:433: 71: goja.getPropCallee(sameValue) compiler.go:433: 72: goja.loadDynamic(thisSet) compiler.go:433: 73: goja.loadDynamic(o) compiler.go:433: 74: goja.loadVal({set this}) compiler.go:433: 75: goja.call(3) compiler.go:433: 76: goja._pop({}) compiler.go:433: 77: goja.resolveVar1(thisGet) compiler.go:433: 78: goja.loadDynamic(undefined) compiler.go:433: 79: goja._putValueP({}) compiler.go:433: 80: goja.resolveVar1(thisSet) compiler.go:433: 81: goja.loadDynamic(undefined) compiler.go:433: 82: goja._putValueP({}) compiler.go:433: 83: goja.loadDynamic(o) compiler.go:433: 84: goja.getPropCallee(inc) compiler.go:433: 85: goja.call(0) compiler.go:433: 86: goja._pop({}) compiler.go:433: 87: goja.loadDynamic(assert) compiler.go:433: 88: goja.getPropCallee(sameValue) compiler.go:433: 89: goja.loadDynamic(o) compiler.go:433: 90: goja.getProp(_p) compiler.go:433: 91: goja.loadVal({2}) compiler.go:433: 92: goja.loadVal({inc value}) compiler.go:433: 93: goja.call(3) compiler.go:433: 94: goja._pop({}) compiler.go:433: 95: goja.loadDynamic(assert) compiler.go:433: 96: goja.getPropCallee(sameValue) compiler.go:433: 97: goja.loadDynamic(thisGet) compiler.go:433: 98: goja.loadDynamic(o) compiler.go:433: 99: goja.loadVal({inc thisGet}) compiler.go:433: 100: goja.call(3) compiler.go:433: 101: goja._pop({}) compiler.go:433: 102: goja.loadDynamic(assert) compiler.go:433: 103: goja.getPropCallee(sameValue) compiler.go:433: 104: goja.loadDynamic(thisSet) compiler.go:433: 105: goja.loadDynamic(o) compiler.go:433: 106: goja.loadVal({inc thisSet}) compiler.go:433: 107: goja.call(3) compiler.go:433: 108: goja._pop({}) compiler.go:433: 109: goja.resolveVar1(thisGet) compiler.go:433: 110: goja.loadDynamic(undefined) compiler.go:433: 111: goja._putValueP({}) compiler.go:433: 112: goja.resolveVar1(thisSet) compiler.go:433: 113: goja.loadDynamic(undefined) compiler.go:433: 114: goja._putValueP({}) compiler.go:433: 115: goja.loadDynamic(assert) compiler.go:433: 116: goja.getPropCallee(sameValue) compiler.go:433: 117: goja.loadDynamic(o) compiler.go:433: 118: goja.getPropCallee(incR) compiler.go:433: 119: goja.call(0) compiler.go:433: 120: goja.loadVal({2}) compiler.go:433: 121: goja.loadVal({incR result}) compiler.go:433: 122: goja.call(3) compiler.go:433: 123: goja._pop({}) compiler.go:433: 124: goja.loadDynamic(assert) compiler.go:433: 125: goja.getPropCallee(sameValue) compiler.go:433: 126: goja.loadDynamic(o) compiler.go:433: 127: goja.getProp(_p) compiler.go:433: 128: goja.loadVal({3}) compiler.go:433: 129: goja.loadVal({incR value}) compiler.go:433: 130: goja.call(3) compiler.go:433: 131: goja._pop({}) compiler.go:433: 132: goja.loadDynamic(assert) compiler.go:433: 133: goja.getPropCallee(sameValue) compiler.go:433: 134: goja.loadDynamic(thisGet) compiler.go:433: 135: goja.loadDynamic(o) compiler.go:433: 136: goja.loadVal({incR thisGet}) compiler.go:433: 137: goja.call(3) compiler.go:433: 138: goja._pop({}) compiler.go:433: 139: goja.loadDynamic(assert) compiler.go:433: 140: goja.getPropCallee(sameValue) compiler.go:433: 141: goja.loadDynamic(thisSet) compiler.go:433: 142: goja.loadDynamic(o) compiler.go:433: 143: goja.loadVal({incR thisSet}) compiler.go:433: 144: goja.call(3) compiler.go:433: 145: goja._pop({}) compiler.go:433: 146: goja.resolveVar1(thisGet) compiler.go:433: 147: goja.loadDynamic(undefined) compiler.go:433: 148: goja._putValueP({}) compiler.go:433: 149: goja.resolveVar1(thisSet) compiler.go:433: 150: goja.loadDynamic(undefined) compiler.go:433: 151: goja._putValueP({}) compiler.go:433: 152: goja.loadDynamic(o) compiler.go:433: 153: goja.getPropCallee(inc1) compiler.go:433: 154: goja.call(0) compiler.go:433: 155: goja._pop({}) compiler.go:433: 156: goja.loadDynamic(assert) compiler.go:433: 157: goja.getPropCallee(sameValue) compiler.go:433: 158: goja.loadDynamic(o) compiler.go:433: 159: goja.getProp(_p) compiler.go:433: 160: goja.loadVal({4}) compiler.go:433: 161: goja.loadVal({inc1 value}) compiler.go:433: 162: goja.call(3) compiler.go:433: 163: goja._pop({}) compiler.go:433: 164: goja.loadDynamic(assert) compiler.go:433: 165: goja.getPropCallee(sameValue) compiler.go:433: 166: goja.loadDynamic(thisGet) compiler.go:433: 167: goja.loadDynamic(o) compiler.go:433: 168: goja.loadVal({inc1 thisGet}) compiler.go:433: 169: goja.call(3) compiler.go:433: 170: goja._pop({}) compiler.go:433: 171: goja.loadDynamic(assert) compiler.go:433: 172: goja.getPropCallee(sameValue) compiler.go:433: 173: goja.loadDynamic(thisSet) compiler.go:433: 174: goja.loadDynamic(o) compiler.go:433: 175: goja.loadVal({inc1 thisSet}) compiler.go:433: 176: goja.call(3) compiler.go:433: 177: goja._pop({}) compiler.go:433: 178: goja.resolveVar1(thisGet) compiler.go:433: 179: goja.loadDynamic(undefined) compiler.go:433: 180: goja._putValueP({}) compiler.go:433: 181: goja.resolveVar1(thisSet) compiler.go:433: 182: goja.loadDynamic(undefined) compiler.go:433: 183: goja._putValueP({}) compiler.go:433: 184: goja.loadDynamic(assert) compiler.go:433: 185: goja.getPropCallee(sameValue) compiler.go:433: 186: goja.loadDynamic(o) compiler.go:433: 187: goja.getPropCallee(inc1R) compiler.go:433: 188: goja.call(0) compiler.go:433: 189: goja.loadVal({5}) compiler.go:433: 190: goja.loadVal({inc1R result}) compiler.go:433: 191: goja.call(3) compiler.go:433: 192: goja._pop({}) compiler.go:433: 193: goja.loadDynamic(assert) compiler.go:433: 194: goja.getPropCallee(sameValue) compiler.go:433: 195: goja.loadDynamic(o) compiler.go:433: 196: goja.getProp(_p) compiler.go:433: 197: goja.loadVal({5}) compiler.go:433: 198: goja.loadVal({inc1R value}) compiler.go:433: 199: goja.call(3) compiler.go:433: 200: goja._pop({}) compiler.go:433: 201: goja.loadDynamic(assert) compiler.go:433: 202: goja.getPropCallee(sameValue) compiler.go:433: 203: goja.loadDynamic(thisGet) compiler.go:433: 204: goja.loadDynamic(o) compiler.go:433: 205: goja.loadVal({inc1R thisGet}) compiler.go:433: 206: goja.call(3) compiler.go:433: 207: goja._pop({}) compiler.go:433: 208: goja.loadDynamic(assert) compiler.go:433: 209: goja.getPropCallee(sameValue) compiler.go:433: 210: goja.loadDynamic(thisSet) compiler.go:433: 211: goja.loadDynamic(o) compiler.go:433: 212: goja.loadVal({inc1R thisSet}) compiler.go:433: 213: goja.call(3) compiler.go:433: 214: goja._pop({}) compiler.go:433: 215: goja.loadDynamic(o) compiler.go:433: 216: goja.getPropCallee(pattern) compiler.go:433: 217: goja.call(0) compiler.go:433: 218: goja._pop({}) compiler.go:433: 219: goja.loadDynamic(assert) compiler.go:433: 220: goja.getPropCallee(sameValue) compiler.go:433: 221: goja.loadDynamic(o) compiler.go:433: 222: goja.getProp(_p) compiler.go:433: 223: goja.loadVal({9}) compiler.go:433: 224: goja.loadVal({pattern}) compiler.go:433: 225: goja.call(3) compiler.go:433: 226: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSuperRefBracket (0.00s) === RUN TestSuperRefBracketEvalOrder compiler.go:433: 0: *goja.newFunc(&{0xc000418ff0 key function key() { keyCallCount++; C.prototype.__proto__ = null; return "k"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(keyCallCount) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja._inc({}) compiler.go:433: > 4: goja._putValueP({}) compiler.go:433: > 5: goja.loadDynamic(C) compiler.go:433: > 6: goja.getProp(prototype) compiler.go:433: > 7: goja.loadVal({{}}) compiler.go:433: > 8: goja.setPropP(__proto__) compiler.go:433: > 9: goja.loadVal({k}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [key] [keyCallCount C] [] false}) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja.initGlobalP(keyCallCount) compiler.go:433: 4: goja.jump(1) compiler.go:433: 5: *goja.newClass(&{0xc000419040 C class C { constructor() { super[key()]++; } } [] [] 0 0 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.loadDynamicCallee(key) compiler.go:433: > 3: goja.call(0) compiler.go:433: > 4: goja._loadSuper({}) compiler.go:433: > 5: goja.dupLast(3) compiler.go:433: > 6: goja._getElemRecv({}) compiler.go:433: > 7: goja._inc({}) compiler.go:433: > 8: goja._setElemRecvStrictP({}) compiler.go:433: > 9: goja._loadUndef({}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 6: goja._endVariadic({}) compiler.go:433: 7: goja.initGlobalP(C) compiler.go:433: 8: goja.loadDynamic(assert) compiler.go:433: 9: goja.getPropCallee(throws) compiler.go:433: 10: goja.loadDynamic(TypeError) compiler.go:433: 11: *goja.newArrowFunc(&{{0xc000419090 () => new C 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(C) compiler.go:433: > 2: goja._new(0) compiler.go:433: > 3: goja._ret({}) compiler.go:433: 12: goja.call(2) compiler.go:433: 13: goja._pop({}) compiler.go:433: 14: goja.loadDynamic(assert) compiler.go:433: 15: goja.getPropCallee(sameValue) compiler.go:433: 16: goja.loadDynamic(keyCallCount) compiler.go:433: 17: goja.loadVal({1}) compiler.go:433: 18: goja.call(2) compiler.go:433: 19: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSuperRefBracketEvalOrder (0.00s) === RUN TestSuperRefBracketCallee compiler.go:433: 0: *goja.bindGlobal(&{[] [] [PROP P C o] [] false}) compiler.go:433: 1: goja.loadVal({p}) compiler.go:433: 2: goja.initGlobalP(PROP) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: *goja.newClass(&{ P class P { get p() { return function() { return this; }; } } [] [] 0 0 0 false}) compiler.go:433: 5: goja.dupN(1) compiler.go:433: 6: *goja.newMethod(&{{0xc0004194f0 p get p() { return function() { return this; }; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: *goja.newFunc(&{0xc000419540 function() { return this; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStack(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 7: *goja.defineGetterKeyed(&{p false}) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja._endVariadic({}) compiler.go:433: 10: goja.initGlobalP(P) compiler.go:433: 11: goja.jump(1) compiler.go:433: 12: goja.loadDynamic(P) compiler.go:433: 13: *goja.newDerivedClass(&{{ C class C extends P { m() { return super[PROP](); } } [] [] 0 0 0 false}}) compiler.go:433: 14: goja.dupN(1) compiler.go:433: 15: *goja.newMethod(&{{0xc000419590 m m() { return super[PROP](); } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja._loadSuper({}) compiler.go:433: > 3: goja.loadDynamic(PROP) compiler.go:433: > 4: goja._getElemRecvCallee({}) compiler.go:433: > 5: goja.call(0) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 16: *goja.defineMethodKeyed(&{m false}) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja._endVariadic({}) compiler.go:433: 19: goja.initGlobalP(C) compiler.go:433: 20: goja.loadDynamic(C) compiler.go:433: 21: goja._new(0) compiler.go:433: 22: goja.initGlobalP(o) compiler.go:433: 23: goja.loadDynamic(o) compiler.go:433: 24: goja.getPropCallee(m) compiler.go:433: 25: goja.call(0) compiler.go:433: 26: goja.loadDynamic(o) compiler.go:433: 27: goja._op_strict_eq({}) compiler.go:433: 28: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSuperRefBracketCallee (0.00s) === RUN TestSuperBaseInCtor compiler.go:433: 0: *goja.bindGlobal(&{[] [] [result Derived] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(result) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: goja.loadDynamic(Object) compiler.go:433: 5: *goja.newDerivedClass(&{{0xc0004198b0 Derived class Derived extends Object { constructor() { super(); result = super.constructor === Object; } } [] [] 0 0 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveThisStack({}) compiler.go:433: > 2: goja.superCall(0) compiler.go:433: > 3: goja._pop({}) compiler.go:433: > 4: goja.resolveVar1Strict(result) compiler.go:433: > 5: goja.loadThisStack({}) compiler.go:433: > 6: goja._loadSuper({}) compiler.go:433: > 7: goja.getPropRecv(constructor) compiler.go:433: > 8: goja.loadDynamic(Object) compiler.go:433: > 9: goja._op_strict_eq({}) compiler.go:433: > 10: goja._putValueP({}) compiler.go:433: > 11: goja._loadUndef({}) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 6: goja._endVariadic({}) compiler.go:433: 7: goja.initGlobalP(Derived) compiler.go:433: 8: goja.loadDynamic(Derived) compiler.go:433: 9: goja._new(0) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.loadDynamic(result) compiler.go:433: 12: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSuperBaseInCtor (0.00s) === RUN TestClassNamedEval compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [C] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{ C class { } [] [] 0 0 0 false}) compiler.go:433: 3: goja._endVariadic({}) compiler.go:433: 4: goja.initGlobalP(C) compiler.go:433: 5: goja.loadDynamic(C) compiler.go:433: 6: goja.getProp(name) compiler.go:433: 7: goja.loadVal({C}) compiler.go:433: 8: goja._op_strict_eq({}) compiler.go:433: 9: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassNamedEval (0.00s) === RUN TestClassNonDerived compiler.go:433: 0: *goja.newFunc(&{0xc000419cc0 initF function initF() { } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [initF] [C c] [] false}) compiler.go:433: 2: goja.jump(1) compiler.go:433: 3: *goja.newClass(&{ C class C { f = initF() } 0xc000419d10 [] [] 0 0 0 false}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadDynamicCallee(initF) compiler.go:433: > 1: goja.call(0) compiler.go:433: > 2: goja.definePropKeyed(f) compiler.go:430: > ---- compiler.go:433: 4: goja._endVariadic({}) compiler.go:433: 5: goja.initGlobalP(C) compiler.go:433: 6: goja.loadDynamic(C) compiler.go:433: 7: goja._new(0) compiler.go:433: 8: goja.initGlobalP(c) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassNonDerived (0.00s) === RUN TestClassExpr compiler.go:433: 0: goja.loadDynamic(Object) compiler.go:433: 1: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 2: goja.jump(1) compiler.go:433: 3: *goja.newClass(&{ class {get f() {}} [] [] 0 0 0 false}) compiler.go:433: 4: goja.dupN(1) compiler.go:433: 5: *goja.newMethod(&{{0xc00036c0a0 f get f() {} 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 6: *goja.defineGetterKeyed(&{f false}) compiler.go:433: 7: goja._pop({}) compiler.go:433: 8: goja._endVariadic({}) compiler.go:433: 9: goja.getProp(prototype) compiler.go:433: 10: goja.loadVal({f}) compiler.go:433: 11: goja.call(2) compiler.go:433: 12: goja.getProp(get) compiler.go:433: 13: goja._typeof({}) compiler.go:433: 14: goja.loadVal({function}) compiler.go:433: 15: goja._op_strict_eq({}) compiler.go:433: 16: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassExpr (0.00s) === RUN TestClassSuperInHeritage compiler.go:433: 0: *goja.bindGlobal(&{[] [] [P C] [] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{ P class P { a() { return Error; } } [] [] 0 0 0 false}) compiler.go:433: 3: goja.dupN(1) compiler.go:433: 4: *goja.newMethod(&{{0xc00036c460 a a() { return Error; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Error) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 5: *goja.defineMethodKeyed(&{a false}) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja._endVariadic({}) compiler.go:433: 8: goja.initGlobalP(P) compiler.go:433: 9: goja.jump(1) compiler.go:433: 10: goja.loadDynamic(P) compiler.go:433: 11: *goja.newDerivedClass(&{{ C class C extends P { m() { class Inner extends super.a() { } return new Inner(); } } [] [] 0 0 0 false}}) compiler.go:433: 12: goja.dupN(1) compiler.go:433: 13: *goja.newMethod(&{{0xc00036c4b0 m m() { class Inner extends super.a() { } return new Inner(); } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.jump(1) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja._loadSuper({}) compiler.go:433: > 4: goja.getPropRecvCallee(a) compiler.go:433: > 5: goja.call(0) compiler.go:433: > 6: *goja.newDerivedClass(&{{ Inner class Inner extends super.a() { } [] [] 0 0 0 false}}) compiler.go:433: > 7: goja._endVariadic({}) compiler.go:433: > 8: goja.initStackP(1) compiler.go:433: > 9: goja.loadStackLex(1) compiler.go:433: > 10: goja._new(0) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 14: *goja.defineMethodKeyed(&{m false}) compiler.go:433: 15: goja._pop({}) compiler.go:433: 16: goja._endVariadic({}) compiler.go:433: 17: goja.initGlobalP(C) compiler.go:433: 18: goja.loadDynamic(C) compiler.go:433: 19: goja._new(0) compiler.go:433: 20: goja.getPropCallee(m) compiler.go:433: 21: goja.call(0) compiler.go:433: 22: goja.loadDynamic(Error) compiler.go:433: 23: goja._op_instanceof({}) compiler.go:433: 24: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassSuperInHeritage (0.00s) === RUN TestClassSuperInHeritageExpr compiler.go:433: 0: *goja.bindGlobal(&{[] [] [P C] [] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{ P class P { a() { return Error; } } [] [] 0 0 0 false}) compiler.go:433: 3: goja.dupN(1) compiler.go:433: 4: *goja.newMethod(&{{0xc00036c9b0 a a() { return Error; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Error) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 5: *goja.defineMethodKeyed(&{a false}) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja._endVariadic({}) compiler.go:433: 8: goja.initGlobalP(P) compiler.go:433: 9: goja.jump(1) compiler.go:433: 10: goja.loadDynamic(P) compiler.go:433: 11: *goja.newDerivedClass(&{{ C class C extends P { m() { function f(cls) { return new cls(); } return f(class Inner extends super.a() { }) } } [] [] 0 0 0 false}}) compiler.go:433: 12: goja.dupN(1) compiler.go:433: 13: *goja.newMethod(&{{0xc00036ca00 m m() { function f(cls) { return new cls(); } return f(class Inner extends super.a() { }) } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: *goja.newFunc(&{0xc00036ca50 f function f(cls) { return new cls(); } 1 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: >> 1: goja.loadStackLex(-1) compiler.go:433: >> 2: goja._new(0) compiler.go:433: >> 3: goja._ret({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja._loadUndef({}) compiler.go:433: > 4: goja.loadStackLex(1) compiler.go:433: > 5: goja.jump(1) compiler.go:433: > 6: goja.loadStack(0) compiler.go:433: > 7: goja._loadSuper({}) compiler.go:433: > 8: goja.getPropRecvCallee(a) compiler.go:433: > 9: goja.call(0) compiler.go:433: > 10: *goja.newDerivedClass(&{{ Inner class Inner extends super.a() { } [] [] 0 0 0 false}}) compiler.go:433: > 11: goja._endVariadic({}) compiler.go:433: > 12: goja.call(1) compiler.go:433: > 13: goja._ret({}) compiler.go:433: 14: *goja.defineMethodKeyed(&{m false}) compiler.go:433: 15: goja._pop({}) compiler.go:433: 16: goja._endVariadic({}) compiler.go:433: 17: goja.initGlobalP(C) compiler.go:433: 18: goja.loadDynamic(C) compiler.go:433: 19: goja._new(0) compiler.go:433: 20: goja.getPropCallee(m) compiler.go:433: 21: goja.call(0) compiler.go:433: 22: goja.loadDynamic(Error) compiler.go:433: 23: goja._op_instanceof({}) compiler.go:433: 24: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassSuperInHeritageExpr (0.00s) === RUN TestClassReferToBinding compiler.go:433: 0: *goja.bindGlobal(&{[] [] [c] [CC] false}) compiler.go:433: 1: *goja.enterBlock(&{map[] 1 0}) compiler.go:433: 2: *goja.newStaticFieldInit(&{0xc00036cd20 0 0}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadVal({40}) compiler.go:433: > 1: goja.definePropKeyed(T) compiler.go:430: > ---- compiler.go:433: 3: *goja.newClass(&{ C class C { static T = 40 f = C.T + 2 } 0xc00036cc80 [] [] 0 0 0 false}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadStashLex(0) compiler.go:433: > 1: goja.getProp(T) compiler.go:433: > 2: goja.loadVal({2}) compiler.go:433: > 3: goja._add({}) compiler.go:433: > 4: goja.definePropKeyed(f) compiler.go:430: > ---- compiler.go:433: 4: goja.initStash(0) compiler.go:433: 5: *goja.initStaticElements(&{[] []}) compiler.go:433: 6: *goja.leaveBlock(&{0 true}) compiler.go:433: 7: goja.initGlobalP(CC) compiler.go:433: 8: goja.loadDynamic(CC) compiler.go:433: 9: goja._new(0) compiler.go:433: 10: goja.initGlobalP(c) compiler.go:433: 11: goja.loadDynamic(c) compiler.go:433: 12: goja.getProp(f) compiler.go:433: 13: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestClassReferToBinding (0.00s) === RUN TestClassReferToBindingInStaticDecl compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C] [] false}) compiler.go:433: 1: *goja.enterBlock(&{map[] 1 0}) compiler.go:433: 2: *goja.newStaticFieldInit(&{0xc00036cf50 0 0}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadStashLex(0) compiler.go:433: > 1: goja.getProp(name) compiler.go:433: > 2: goja.definePropKeyed(T) compiler.go:430: > ---- compiler.go:433: 3: *goja.newClass(&{ C class C { static T = C.name } [] [] 0 0 0 false}) compiler.go:433: 4: goja.initStash(0) compiler.go:433: 5: *goja.initStaticElements(&{[] []}) compiler.go:433: 6: *goja.leaveBlock(&{0 true}) compiler.go:433: 7: goja.initGlobalP(C) compiler.go:433: 8: goja.loadDynamic(C) compiler.go:433: 9: goja.getProp(T) compiler.go:433: 10: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestClassReferToBindingInStaticDecl (0.00s) === RUN TestClassReferToBindingInStaticEval compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [CC] false}) compiler.go:433: 1: *goja.enterBlock(&{map[C:2684354560] 1 0}) compiler.go:433: 2: *goja.newStaticFieldInit(&{0xc00036d180 0 0}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824] 1 0 0 4 false false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.loadDynamicCallee(eval) compiler.go:433: > 3: goja.loadVal({C.name}) compiler.go:433: > 4: goja.callEvalStrict(1) compiler.go:433: > 5: goja.definePropKeyed(T) compiler.go:430: > ---- compiler.go:433: 3: *goja.newClass(&{ C class C { static T = eval("C.name") } [] [] 0 0 0 false}) compiler.go:433: 4: goja.initStash(0) compiler.go:433: 5: *goja.initStaticElements(&{[] []}) compiler.go:433: 6: *goja.leaveBlock(&{0 true}) compiler.go:433: 7: goja.initGlobalP(CC) compiler.go:433: 8: goja.loadDynamic(CC) compiler.go:433: 9: goja.getProp(T) compiler.go:433: 10: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestClassReferToBindingInStaticEval (0.00s) === RUN TestClassReferToBindingFromHeritage compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(throws) compiler.go:433: 2: goja.loadDynamic(ReferenceError) compiler.go:433: 3: *goja.newArrowFunc(&{{0xc00036d590 () => { class C extends C { } } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: *goja.enterBlock(&{map[] 1 0}) compiler.go:433: > 2: goja.loadStashLex(0) compiler.go:433: > 3: *goja.newDerivedClass(&{{ C class C extends C { } [] [] 0 0 0 false}}) compiler.go:433: > 4: goja.initStash(0) compiler.go:433: > 5: goja._endVariadic({}) compiler.go:433: > 6: *goja.leaveBlock(&{0 true}) compiler.go:433: > 7: goja.initStackP(1) compiler.go:433: > 8: goja._loadUndef({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestClassReferToBindingFromHeritage (0.00s) === RUN TestClassCaptureSuperCallInArrowFunc compiler.go:433: 0: *goja.bindGlobal(&{[] [] [f C c] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(f) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: goja.jump(1) compiler.go:433: 5: *goja.newClass(&{ class {} [] [] 0 0 0 false}) compiler.go:433: 6: goja._endVariadic({}) compiler.go:433: 7: *goja.newDerivedClass(&{{0xc00036d900 C class C extends class {} { constructor() { f = () => super(); f(); } } [] [] 0 0 0 false}}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 0 6 false false}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: goja.resolveVar1Strict(f) compiler.go:433: > 4: *goja.newArrowFunc(&{{0xc00036d950 f () => super() 0 true}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.resolveThisStash(0) compiler.go:433: >> 2: goja.superCall(0) compiler.go:433: >> 3: goja._ret({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamicCallee(f) compiler.go:433: > 7: goja.call(0) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja._loadUndef({}) compiler.go:433: > 10: goja.cret(0) compiler.go:433: 8: goja._endVariadic({}) compiler.go:433: 9: goja.initGlobalP(C) compiler.go:433: 10: goja.loadDynamic(C) compiler.go:433: 11: goja._new(0) compiler.go:433: 12: goja.initGlobalP(c) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestClassCaptureSuperCallInArrowFunc (0.00s) === RUN TestClassCaptureSuperCallInNestedArrowFunc compiler.go:433: 0: *goja.bindGlobal(&{[] [] [f P C] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(f) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: *goja.newClass(&{ P class P { } [] [] 0 0 0 false}) compiler.go:433: 5: goja._endVariadic({}) compiler.go:433: 6: goja.initGlobalP(P) compiler.go:433: 7: goja.jump(1) compiler.go:433: 8: goja.loadDynamic(P) compiler.go:433: 9: *goja.newDerivedClass(&{{0xc00036dd10 C class C extends P { constructor() { f = () => () => super(); f()(); } } [] [] 0 0 0 false}}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 0 6 false false}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: goja.resolveVar1Strict(f) compiler.go:433: > 4: *goja.newArrowFunc(&{{0xc00036dd60 f () => () => super() 0 true}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: *goja.newArrowFunc(&{{0xc00036ddb0 () => super() 0 true}}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >>> 1: goja.resolveThisStash(0) compiler.go:433: >>> 2: goja.superCall(0) compiler.go:433: >>> 3: goja._ret({}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja.loadDynamicCallee(f) compiler.go:433: > 8: goja.call(0) compiler.go:433: > 9: goja.call(0) compiler.go:433: > 10: goja._pop({}) compiler.go:433: > 11: goja._loadUndef({}) compiler.go:433: > 12: goja.cret(0) compiler.go:433: 10: goja._endVariadic({}) compiler.go:433: 11: goja.initGlobalP(C) compiler.go:433: 12: goja.loadDynamic(C) compiler.go:433: 13: goja._new(0) compiler.go:433: 14: goja.loadDynamic(P) compiler.go:433: 15: goja._op_instanceof({}) compiler.go:433: 16: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestClassCaptureSuperCallInNestedArrowFunc (0.00s) === RUN TestThisInEval compiler.go:433: 0: *goja.bindGlobal(&{[] [] [o] [] false}) compiler.go:433: 1: goja.loadDynamic(assert) compiler.go:433: 2: goja.getPropCallee(sameValue) compiler.go:433: 3: goja.loadDynamicCallee(eval) compiler.go:433: 4: goja.loadVal({this}) compiler.go:433: 5: goja.callEval(1) compiler.go:433: 6: goja._loadGlobalObject({}) compiler.go:433: 7: goja.loadVal({global}) compiler.go:433: 8: goja.call(3) compiler.go:433: 9: goja._pop({}) compiler.go:433: 10: goja._newObject({}) compiler.go:433: 11: *goja.newMethod(&{{0xc000326140 f f() { return eval("this"); } 0 false} 1}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 arguments:1073741825] 2 0 0 3 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: goja.loadDynamicCallee(eval) compiler.go:433: > 6: goja.loadVal({this}) compiler.go:433: > 7: goja.callEval(1) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 12: *goja.defineMethodKeyed(&{f true}) compiler.go:433: 13: goja.initGlobalP(o) compiler.go:433: 14: goja.loadDynamic(assert) compiler.go:433: 15: goja.getPropCallee(sameValue) compiler.go:433: 16: goja.loadDynamic(o) compiler.go:433: 17: goja.getPropCallee(f) compiler.go:433: 18: goja.call(0) compiler.go:433: 19: goja.loadDynamic(o) compiler.go:433: 20: goja.loadVal({obj literal}) compiler.go:433: 21: goja.call(3) compiler.go:433: 22: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestThisInEval (0.00s) === RUN TestStaticAsBindingTarget compiler.go:433: 0: *goja.bindGlobal(&{[] [] [static] [] false}) compiler.go:433: 1: goja.newArray(0) compiler.go:433: 2: goja._iterate({}) compiler.go:433: 3: goja.iterGetNextOrUndef({}) compiler.go:433: 4: goja.initGlobalP(static) compiler.go:433: 5: goja._enumPopClose({}) compiler.go:433: 6: goja._pop({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestStaticAsBindingTarget (0.00s) === RUN TestEvalInStaticFieldInit compiler.go:433: 0: *goja.bindGlobal(&{[C] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(C) compiler.go:433: 2: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 3: *goja.newStaticFieldInit(&{0xc0003265a0 0 0}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824] 1 0 0 4 false false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.loadVal({test}) compiler.go:433: > 3: goja.definePropKeyed(f) compiler.go:433: > 4: goja.loadStash(0) compiler.go:433: > 5: goja.getProp(f) compiler.go:433: > 6: goja.loadVal({262}) compiler.go:433: > 7: goja._add({}) compiler.go:433: > 8: goja.definePropKeyed(g) compiler.go:433: > 9: goja.loadDynamicCallee(eval) compiler.go:433: > 10: goja.loadVal({this.g}) compiler.go:433: > 11: goja.callEvalStrict(1) compiler.go:433: > 12: goja.loadVal({test}) compiler.go:433: > 13: goja._add({}) compiler.go:433: > 14: goja.definePropKeyed(h) compiler.go:430: > ---- compiler.go:433: 4: *goja.newClass(&{ C class { static f = 'test'; static g = this.f + '262'; static h = eval('this.g') + 'test'; } [] [] 0 0 0 false}) compiler.go:433: 5: *goja.initStaticElements(&{[] []}) compiler.go:433: 6: *goja.leaveBlock(&{0 false}) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.loadDynamic(C) compiler.go:433: 9: goja.getProp(f) compiler.go:433: 10: goja.loadVal({test}) compiler.go:433: 11: goja._op_strict_eq({}) compiler.go:433: 12: goja.jne(5) compiler.go:433: 13: goja.loadDynamic(C) compiler.go:433: 14: goja.getProp(g) compiler.go:433: 15: goja.loadVal({test262}) compiler.go:433: 16: goja._op_strict_eq({}) compiler.go:433: 17: goja.jne(5) compiler.go:433: 18: goja.loadDynamic(C) compiler.go:433: 19: goja.getProp(h) compiler.go:433: 20: goja.loadVal({test262test}) compiler.go:433: 21: goja._op_strict_eq({}) compiler.go:433: 22: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestEvalInStaticFieldInit (0.00s) === RUN TestClassPrivateElemInEval compiler.go:433: 0: *goja.bindGlobal(&{[] [] [f1 f2 C] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(f1) compiler.go:433: 3: goja._loadUndef({}) compiler.go:433: 4: goja.initGlobalP(f2) compiler.go:433: 5: *goja.enterBlock(&{map[C:2684354560] 1 0}) compiler.go:433: 6: *goja.newStaticFieldInit(&{0xc000326b40 1 0}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824] 1 0 0 4 false false}) compiler.go:433: > 1: goja.initStash(0) compiler.go:433: > 2: goja.loadVal({42}) compiler.go:433: > 3: *goja.definePrivateProp(&{0}) compiler.go:433: > 4: goja._dup({}) compiler.go:433: > 5: *goja.newMethod(&{{0xc000326b90 { f2 = o => eval("o.#a"); assert.sameValue(C.#a, 42); assert.sameValue((() => C.#a)(), 42); } 0 true} 1}) compiler.go:433: >> 0: *goja.enterFunc(&{map[ this:1073741824] 1 0 0 4 true false}) compiler.go:433: >> 1: goja.initStash(0) compiler.go:433: >> 2: goja.resolveVar1Strict(f2) compiler.go:433: >> 3: *goja.newArrowFunc(&{{0xc000326be0 f2 o => eval("o.#a") 1 true}}) compiler.go:433: >>> 0: *goja.enterFunc(&{map[o:1073741824] 1 0 1 2 true false}) compiler.go:433: >>> 1: goja.loadDynamicCallee(eval) compiler.go:433: >>> 2: goja.loadVal({o.#a}) compiler.go:433: >>> 3: goja.callEvalStrict(1) compiler.go:433: >>> 4: goja._ret({}) compiler.go:433: >> 4: goja._putValueP({}) compiler.go:433: >> 5: goja.loadDynamic(assert) compiler.go:433: >> 6: goja.getPropCallee(sameValue) compiler.go:433: >> 7: goja.loadStashLex(33554432) compiler.go:433: >> 8: *goja.getPrivatePropRes(&{a 0 0 true false}) compiler.go:433: >> 9: goja.loadVal({42}) compiler.go:433: >> 10: goja.call(2) compiler.go:433: >> 11: goja._pop({}) compiler.go:433: >> 12: goja.loadDynamic(assert) compiler.go:433: >> 13: goja.getPropCallee(sameValue) compiler.go:433: >> 14: goja._loadUndef({}) compiler.go:433: >> 15: *goja.newArrowFunc(&{{0xc000326c80 () => C.# 0 true}}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >>> 1: goja.loadStashLex(33554432) compiler.go:433: >>> 2: *goja.getPrivatePropRes(&{a 0 0 true false}) compiler.go:433: >>> 3: goja._ret({}) compiler.go:433: >> 16: goja.call(0) compiler.go:433: >> 17: goja.loadVal({42}) compiler.go:433: >> 18: goja.call(2) compiler.go:433: >> 19: goja._pop({}) compiler.go:433: >> 20: goja._loadUndef({}) compiler.go:433: >> 21: goja._ret({}) compiler.go:433: > 6: goja.call(0) compiler.go:433: > 7: goja._pop({}) compiler.go:430: > ---- compiler.go:433: 7: goja.resolveVar1Strict(f1) compiler.go:433: 8: *goja.newArrowFunc(&{{0xc000326aa0 f1 o => eval("o.#a") 1 true}}) compiler.go:433: > 0: *goja.enterFunc(&{map[o:1073741824] 1 0 1 2 true false}) compiler.go:433: > 1: goja.loadDynamicCallee(eval) compiler.go:433: > 2: goja.loadVal({o.#a}) compiler.go:433: > 3: goja.callEvalStrict(1) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 9: goja._putValueP({}) compiler.go:433: 10: goja.loadDynamic(Object) compiler.go:433: 11: *goja.newDerivedClass(&{{ C class C extends (f1 = o => eval("o.#a"), Object) { static #a = 42; static { f2 = o => eval("o.#a"); assert.sameValue(C.#a, 42); assert.sameValue((() => C.#a)(), 42); } } [] [] 0 0 0 true}}) compiler.go:433: 12: goja.initStash(0) compiler.go:433: 13: *goja.initStaticElements(&{[a] []}) compiler.go:433: 14: *goja.leaveBlock(&{0 true}) compiler.go:433: 15: goja.popPrivateEnv({}) compiler.go:433: 16: goja.initGlobalP(C) compiler.go:433: 17: goja.loadDynamic(assert) compiler.go:433: 18: goja.getPropCallee(throws) compiler.go:433: 19: goja.loadDynamic(SyntaxError) compiler.go:433: 20: *goja.newArrowFunc(&{{0xc000326cd0 () => f1(C) 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamicCallee(f1) compiler.go:433: > 2: goja.loadDynamic(C) compiler.go:433: > 3: goja.call(1) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 21: goja.call(2) compiler.go:433: 22: goja._pop({}) compiler.go:433: 23: goja.loadDynamic(assert) compiler.go:433: 24: goja.getPropCallee(sameValue) compiler.go:433: 25: goja.loadDynamicCallee(f2) compiler.go:433: 26: goja.loadDynamic(C) compiler.go:433: 27: goja.call(1) compiler.go:433: 28: goja.loadVal({42}) compiler.go:433: 29: goja.call(2) compiler.go:433: 30: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 5 --- PASS: TestClassPrivateElemInEval (0.00s) === RUN TestClassPrivateElemInIndirectEval compiler.go:433: 0: *goja.bindGlobal(&{[] [] [f1 f2 C] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: goja.initGlobalP(f1) compiler.go:433: 3: goja._loadUndef({}) compiler.go:433: 4: goja.initGlobalP(f2) compiler.go:433: 5: goja.jump(1) compiler.go:433: 6: *goja.newStaticFieldInit(&{0xc000327540 1 0}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadVal({42}) compiler.go:433: > 1: *goja.definePrivateProp(&{0}) compiler.go:433: > 2: goja._dup({}) compiler.go:433: > 3: *goja.newMethod(&{{0xc000327590 { f2 = o => (0, eval)("o.#a"); assert.throws(SyntaxError, () => (0, eval)("C.#a")); } 0 true} 1}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.resolveVar1Strict(f2) compiler.go:433: >> 2: *goja.newArrowFunc(&{{0xc0003275e0 f2 o => (0, eval)("o.#a") 1 true}}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: >>> 1: goja._loadUndef({}) compiler.go:433: >>> 2: goja.loadDynamic(eval) compiler.go:433: >>> 3: goja.loadVal({o.#a}) compiler.go:433: >>> 4: goja.call(1) compiler.go:433: >>> 5: goja._ret({}) compiler.go:433: >> 3: goja._putValueP({}) compiler.go:433: >> 4: goja.loadDynamic(assert) compiler.go:433: >> 5: goja.getPropCallee(throws) compiler.go:433: >> 6: goja.loadDynamic(SyntaxError) compiler.go:433: >> 7: *goja.newArrowFunc(&{{0xc000327630 () => (0, eval)("C.#a") 0 true}}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >>> 1: goja._loadUndef({}) compiler.go:433: >>> 2: goja.loadDynamic(eval) compiler.go:433: >>> 3: goja.loadVal({C.#a}) compiler.go:433: >>> 4: goja.call(1) compiler.go:433: >>> 5: goja._ret({}) compiler.go:433: >> 8: goja.call(2) compiler.go:433: >> 9: goja._pop({}) compiler.go:433: >> 10: goja._loadUndef({}) compiler.go:433: >> 11: goja._ret({}) compiler.go:433: > 4: goja.call(0) compiler.go:433: > 5: goja._pop({}) compiler.go:430: > ---- compiler.go:433: 7: goja.resolveVar1Strict(f1) compiler.go:433: 8: *goja.newArrowFunc(&{{0xc0003274f0 f1 o => (0, eval)("o.#a") 1 true}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja.loadDynamic(eval) compiler.go:433: > 3: goja.loadVal({o.#a}) compiler.go:433: > 4: goja.call(1) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 9: goja._putValueP({}) compiler.go:433: 10: goja.loadDynamic(Object) compiler.go:433: 11: *goja.newDerivedClass(&{{ C class C extends (f1 = o => (0, eval)("o.#a"), Object) { static #a = 42; static { f2 = o => (0, eval)("o.#a"); assert.throws(SyntaxError, () => (0, eval)("C.#a")); } } [] [] 0 0 0 true}}) compiler.go:433: 12: *goja.initStaticElements(&{[] []}) compiler.go:433: 13: goja.popPrivateEnv({}) compiler.go:433: 14: goja.initGlobalP(C) compiler.go:433: 15: goja.loadDynamic(assert) compiler.go:433: 16: goja.getPropCallee(throws) compiler.go:433: 17: goja.loadDynamic(SyntaxError) compiler.go:433: 18: *goja.newArrowFunc(&{{0xc000327680 () => f1(C) 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamicCallee(f1) compiler.go:433: > 2: goja.loadDynamic(C) compiler.go:433: > 3: goja.call(1) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 19: goja.call(2) compiler.go:433: 20: goja._pop({}) compiler.go:433: 21: goja.loadDynamic(assert) compiler.go:433: 22: goja.getPropCallee(throws) compiler.go:433: 23: goja.loadDynamic(SyntaxError) compiler.go:433: 24: *goja.newArrowFunc(&{{0xc000327720 () => f2(C) 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamicCallee(f2) compiler.go:433: > 2: goja.loadDynamic(C) compiler.go:433: > 3: goja.call(1) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 25: goja.call(2) compiler.go:433: 26: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassPrivateElemInIndirectEval (0.00s) === RUN TestClassPrivateElemInFunction compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(throws) compiler.go:433: 2: goja.loadDynamic(SyntaxError) compiler.go:433: 3: *goja.newArrowFunc(&{{0xc000327c20 () => { class C { static #a = 42; static { Function("o", "return o.#a"); } } } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.jump(1) compiler.go:433: > 2: *goja.newStaticFieldInit(&{0xc000327c70 1 0}) compiler.go:428: >> ---- init_fields: compiler.go:433: >> 0: goja.loadVal({42}) compiler.go:433: >> 1: *goja.definePrivateProp(&{0}) compiler.go:433: >> 2: goja._dup({}) compiler.go:433: >> 3: *goja.newMethod(&{{0xc000327cc0 { Function("o", "return o.#a"); } 0 true} 1}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >>> 1: goja.loadDynamicCallee(Function) compiler.go:433: >>> 2: goja.loadVal({o}) compiler.go:433: >>> 3: goja.loadVal({return o.#a}) compiler.go:433: >>> 4: goja.call(2) compiler.go:433: >>> 5: goja._pop({}) compiler.go:433: >>> 6: goja._loadUndef({}) compiler.go:433: >>> 7: goja._ret({}) compiler.go:433: >> 4: goja.call(0) compiler.go:433: >> 5: goja._pop({}) compiler.go:430: >> ---- compiler.go:433: > 3: *goja.newClass(&{ C class C { static #a = 42; static { Function("o", "return o.#a"); } } [] [] 0 0 0 true}) compiler.go:433: > 4: *goja.initStaticElements(&{[] []}) compiler.go:433: > 5: goja.popPrivateEnv({}) compiler.go:433: > 6: goja.initStackP(1) compiler.go:433: > 7: goja._loadUndef({}) compiler.go:433: > 8: goja._ret({}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassPrivateElemInFunction (0.00s) === RUN TestClassPrivateElementsDecl compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C c] [] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{ C class C { #a = 42; get #b() {} set #b(_) {} get c() { return this.#a; } #m() { return this.#a; } static getter(inst) { return inst.#m(); } } 0xc00037e8c0 [] [] 1 2 0 true}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadVal({42}) compiler.go:433: > 1: *goja.definePrivateProp(&{0}) compiler.go:430: > ---- compiler.go:433: 3: goja.dupN(1) compiler.go:433: 4: *goja.newMethod(&{{0xc00037e6e0 #b get #b() {} 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 5: *goja.definePrivateGetter(&{{0 3}}) compiler.go:433: 6: *goja.newMethod(&{{0xc00037e730 #b set #b(_) {} 1 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 7: *goja.definePrivateSetter(&{{0 3}}) compiler.go:433: 8: *goja.newMethod(&{{0xc00037e780 c get c() { return this.#a; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: *goja.getPrivatePropRes(&{a 0 0 false false}) compiler.go:433: > 3: goja._ret({}) compiler.go:433: 9: *goja.defineGetterKeyed(&{c false}) compiler.go:433: 10: *goja.newMethod(&{{0xc00037e7d0 #m #m() { return this.#a; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: *goja.getPrivatePropRes(&{a 0 0 false false}) compiler.go:433: > 3: goja._ret({}) compiler.go:433: 11: *goja.definePrivateMethod(&{1 3}) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: *goja.newMethod(&{{0xc00037e820 getter getter(inst) { return inst.#m(); } 1 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: *goja.getPrivatePropResCallee(&{m 1 0 false true}) compiler.go:433: > 3: goja.call(0) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 14: *goja.defineMethodKeyed(&{getter false}) compiler.go:433: 15: goja._endVariadic({}) compiler.go:433: 16: goja.popPrivateEnv({}) compiler.go:433: 17: goja.initGlobalP(C) compiler.go:433: 18: goja.loadDynamic(C) compiler.go:433: 19: goja._new(0) compiler.go:433: 20: goja.initGlobalP(c) compiler.go:433: 21: goja.loadDynamic(c) compiler.go:433: 22: goja.getProp(c) compiler.go:433: 23: goja.loadDynamic(C) compiler.go:433: 24: goja.getPropCallee(getter) compiler.go:433: 25: goja.loadDynamic(c) compiler.go:433: 26: goja.call(1) compiler.go:433: 27: goja._add({}) compiler.go:433: 28: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassPrivateElementsDecl (0.00s) === RUN TestPrivateIn compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C c] [] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{ C class C { #a = 42; static check(inst) { return #a in inst; } } 0xc00037ef50 [] [] 1 0 0 true}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja.loadVal({42}) compiler.go:433: > 1: *goja.definePrivateProp(&{0}) compiler.go:430: > ---- compiler.go:433: 3: *goja.newMethod(&{{0xc00037edc0 check check(inst) { return #a in inst; } 1 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: *goja.privateInRes(&{a 0 0 false false}) compiler.go:433: > 3: goja._ret({}) compiler.go:433: 4: *goja.defineMethodKeyed(&{check false}) compiler.go:433: 5: goja._endVariadic({}) compiler.go:433: 6: goja.popPrivateEnv({}) compiler.go:433: 7: goja.initGlobalP(C) compiler.go:433: 8: goja.loadDynamic(C) compiler.go:433: 9: goja._new(0) compiler.go:433: 10: goja.initGlobalP(c) compiler.go:433: 11: goja.loadDynamic(C) compiler.go:433: 12: goja.getPropCallee(check) compiler.go:433: 13: goja.loadDynamic(c) compiler.go:433: 14: goja.call(1) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestPrivateIn (0.00s) === RUN TestDeletePropOfNonObject compiler.go:433: 0: goja.loadVal({Test262}) compiler.go:433: 1: goja.loadVal({100}) compiler.go:433: 2: goja._deleteElem({}) compiler.go:433: 3: goja.jne(3) compiler.go:433: 4: goja.loadVal({Test262}) compiler.go:433: 5: goja.deleteProp(a) compiler.go:433: 6: goja.jne(3) compiler.go:433: 7: goja.loadVal({Test262}) compiler.go:433: 8: goja.deleteProp(@) compiler.go:433: 9: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDeletePropOfNonObject (0.00s) === RUN TestKeywordsAsLabels compiler.go:433: 0: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 1: goja.loadVal({0}) compiler.go:433: 2: goja.initStackP(1) compiler.go:433: 3: goja.jump(1) compiler.go:433: 4: goja.loadStackLex(1) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja._op_lt({}) compiler.go:433: 7: goja.jneP(13) compiler.go:433: 8: goja.loadStackLex(1) compiler.go:433: 9: goja.loadVal({0}) compiler.go:433: 10: goja._op_strict_eq({}) compiler.go:433: 11: goja.jneP(2) compiler.go:433: 12: goja.jump(4) compiler.go:433: 13: *goja.leaveBlock(&{1 false}) compiler.go:433: 14: goja.jump(7) compiler.go:433: 15: goja.jump(1) compiler.go:433: 16: goja.loadStackLex(1) compiler.go:433: 17: goja._inc({}) compiler.go:433: 18: goja.storeStackLexP(1) compiler.go:433: 19: goja.jump(-15) compiler.go:433: 20: *goja.leaveBlock(&{1 false}) compiler.go:433: 21: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 22: goja.loadVal({0}) compiler.go:433: 23: goja.initStackP(1) compiler.go:433: 24: goja.jump(1) compiler.go:433: 25: goja.loadStackLex(1) compiler.go:433: 26: goja.loadVal({2}) compiler.go:433: 27: goja._op_lt({}) compiler.go:433: 28: goja.jneP(13) compiler.go:433: 29: goja.loadStackLex(1) compiler.go:433: 30: goja.loadVal({0}) compiler.go:433: 31: goja._op_strict_eq({}) compiler.go:433: 32: goja.jneP(2) compiler.go:433: 33: goja.jump(4) compiler.go:433: 34: *goja.leaveBlock(&{1 false}) compiler.go:433: 35: goja.jump(7) compiler.go:433: 36: goja.jump(1) compiler.go:433: 37: goja.loadStackLex(1) compiler.go:433: 38: goja._inc({}) compiler.go:433: 39: goja.storeStackLexP(1) compiler.go:433: 40: goja.jump(-15) compiler.go:433: 41: *goja.leaveBlock(&{1 false}) compiler.go:433: 42: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 43: goja.loadVal({0}) compiler.go:433: 44: goja.initStackP(1) compiler.go:433: 45: goja.jump(1) compiler.go:433: 46: goja.loadStackLex(1) compiler.go:433: 47: goja.loadVal({2}) compiler.go:433: 48: goja._op_lt({}) compiler.go:433: 49: goja.jneP(13) compiler.go:433: 50: goja.loadStackLex(1) compiler.go:433: 51: goja.loadVal({0}) compiler.go:433: 52: goja._op_strict_eq({}) compiler.go:433: 53: goja.jneP(2) compiler.go:433: 54: goja.jump(4) compiler.go:433: 55: *goja.leaveBlock(&{1 false}) compiler.go:433: 56: goja.jump(7) compiler.go:433: 57: goja.jump(1) compiler.go:433: 58: goja.loadStackLex(1) compiler.go:433: 59: goja._inc({}) compiler.go:433: 60: goja.storeStackLexP(1) compiler.go:433: 61: goja.jump(-15) compiler.go:433: 62: *goja.leaveBlock(&{1 false}) compiler.go:433: 63: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 64: goja.loadVal({0}) compiler.go:433: 65: goja.initStackP(1) compiler.go:433: 66: goja._clearResult({}) compiler.go:433: 67: goja.jump(1) compiler.go:433: 68: goja.loadStackLex(1) compiler.go:433: 69: goja.loadVal({2}) compiler.go:433: 70: goja._op_lt({}) compiler.go:433: 71: goja.jneP(17) compiler.go:433: 72: goja._clearResult({}) compiler.go:433: 73: goja._clearResult({}) compiler.go:433: 74: goja.loadStackLex(1) compiler.go:433: 75: goja.loadVal({0}) compiler.go:433: 76: goja._op_strict_eq({}) compiler.go:433: 77: goja.jneP(3) compiler.go:433: 78: goja.jump(6) compiler.go:433: 79: goja.jump(2) compiler.go:433: 80: goja._clearResult({}) compiler.go:433: 81: *goja.leaveBlock(&{1 false}) compiler.go:433: 82: goja.jump(7) compiler.go:433: 83: goja.jump(1) compiler.go:433: 84: goja.loadStackLex(1) compiler.go:433: 85: goja._inc({}) compiler.go:433: 86: goja.storeStackLexP(1) compiler.go:433: 87: goja.jump(-19) compiler.go:433: 88: *goja.leaveBlock(&{1 false}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestKeywordsAsLabels (0.00s) === RUN TestThisResolutionWithArg compiler.go:433: 0: *goja.newFunc(&{0xc00037f950 f function f(arg) { capture = () => this; // move 'this' to stash return [this, arg]; } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 1 1 false false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.initStashP(0) compiler.go:433: > 4: goja.resolveVar1(capture) compiler.go:433: > 5: *goja.newArrowFunc(&{{0xc00037f9a0 capture () => this 0 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 6: goja._putValueP({}) compiler.go:433: > 7: goja.newArray(2) compiler.go:433: > 8: goja.loadStash(0) compiler.go:433: > 9: goja._pushArrayItem({}) compiler.go:433: > 10: goja.loadStackLex(-1) compiler.go:433: > 11: goja._pushArrayItem({}) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [capture] [_this arg _this1 arg1] false}) compiler.go:433: 2: goja._loadUndef({}) compiler.go:433: 3: goja.initGlobalP(capture) compiler.go:433: 4: goja._newObject({}) compiler.go:433: 5: goja.initGlobalP(_this) compiler.go:433: 6: goja._newObject({}) compiler.go:433: 7: goja.initGlobalP(arg) compiler.go:433: 8: goja.loadDynamic(f) compiler.go:433: 9: goja.getPropCallee(call) compiler.go:433: 10: goja.loadDynamic(_this) compiler.go:433: 11: goja.loadDynamic(arg) compiler.go:433: 12: goja.call(2) compiler.go:433: 13: goja._iterate({}) compiler.go:433: 14: goja.iterGetNextOrUndef({}) compiler.go:433: 15: goja.initGlobalP(_this1) compiler.go:433: 16: goja.iterGetNextOrUndef({}) compiler.go:433: 17: goja.initGlobalP(arg1) compiler.go:433: 18: goja._enumPopClose({}) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.loadDynamic(_this1) compiler.go:433: 21: goja.loadDynamic(_this) compiler.go:433: 22: goja._op_strict_eq({}) compiler.go:433: 23: goja.jne(4) compiler.go:433: 24: goja.loadDynamic(arg1) compiler.go:433: 25: goja.loadDynamic(arg) compiler.go:433: 26: goja._op_strict_eq({}) compiler.go:433: 27: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestThisResolutionWithArg (0.00s) === RUN TestThisResolutionArgInStash compiler.go:433: 0: *goja.newFunc(&{0xc00037fc70 f function f(arg) { capture = () => this + arg; // move 'this' and arguments to stash return [this, arg]; } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 2 0 1 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(1) compiler.go:433: > 3: goja.resolveVar1(capture) compiler.go:433: > 4: *goja.newArrowFunc(&{{0xc00037fcc0 capture () => this + arg 0 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(1) compiler.go:433: >> 2: goja.loadStashLex(0) compiler.go:433: >> 3: goja._add({}) compiler.go:433: >> 4: goja._ret({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.newArray(2) compiler.go:433: > 7: goja.loadStash(1) compiler.go:433: > 8: goja._pushArrayItem({}) compiler.go:433: > 9: goja.loadStashLex(0) compiler.go:433: > 10: goja._pushArrayItem({}) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [capture] [_this arg _this1 arg1] false}) compiler.go:433: 2: goja._loadUndef({}) compiler.go:433: 3: goja.initGlobalP(capture) compiler.go:433: 4: goja._newObject({}) compiler.go:433: 5: goja.initGlobalP(_this) compiler.go:433: 6: goja._newObject({}) compiler.go:433: 7: goja.initGlobalP(arg) compiler.go:433: 8: goja.loadDynamic(f) compiler.go:433: 9: goja.getPropCallee(call) compiler.go:433: 10: goja.loadDynamic(_this) compiler.go:433: 11: goja.loadDynamic(arg) compiler.go:433: 12: goja.call(2) compiler.go:433: 13: goja._iterate({}) compiler.go:433: 14: goja.iterGetNextOrUndef({}) compiler.go:433: 15: goja.initGlobalP(_this1) compiler.go:433: 16: goja.iterGetNextOrUndef({}) compiler.go:433: 17: goja.initGlobalP(arg1) compiler.go:433: 18: goja._enumPopClose({}) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.loadDynamic(_this1) compiler.go:433: 21: goja.loadDynamic(_this) compiler.go:433: 22: goja._op_strict_eq({}) compiler.go:433: 23: goja.jne(4) compiler.go:433: 24: goja.loadDynamic(arg1) compiler.go:433: 25: goja.loadDynamic(arg) compiler.go:433: 26: goja._op_strict_eq({}) compiler.go:433: 27: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestThisResolutionArgInStash (0.00s) === RUN TestThisResolutionWithStackVar compiler.go:433: 0: *goja.newFunc(&{0xc0004841e0 f function f(arg) { const _ = 1; // a stack variable capture = () => this + arg; // move 'this' and arguments to stash return [this, arg]; } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 2 1 1 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.initStashP(1) compiler.go:433: > 4: goja.loadVal({1}) compiler.go:433: > 5: goja.initStack1P(1) compiler.go:433: > 6: goja.resolveVar1(capture) compiler.go:433: > 7: *goja.newArrowFunc(&{{0xc000484230 capture () => this + arg 0 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(1) compiler.go:433: >> 2: goja.loadStashLex(0) compiler.go:433: >> 3: goja._add({}) compiler.go:433: >> 4: goja._ret({}) compiler.go:433: > 8: goja._putValueP({}) compiler.go:433: > 9: goja.newArray(2) compiler.go:433: > 10: goja.loadStash(1) compiler.go:433: > 11: goja._pushArrayItem({}) compiler.go:433: > 12: goja.loadStashLex(0) compiler.go:433: > 13: goja._pushArrayItem({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [capture] [_this arg _this1 arg1] false}) compiler.go:433: 2: goja._loadUndef({}) compiler.go:433: 3: goja.initGlobalP(capture) compiler.go:433: 4: goja._newObject({}) compiler.go:433: 5: goja.initGlobalP(_this) compiler.go:433: 6: goja._newObject({}) compiler.go:433: 7: goja.initGlobalP(arg) compiler.go:433: 8: goja.loadDynamic(f) compiler.go:433: 9: goja.getPropCallee(call) compiler.go:433: 10: goja.loadDynamic(_this) compiler.go:433: 11: goja.loadDynamic(arg) compiler.go:433: 12: goja.call(2) compiler.go:433: 13: goja._iterate({}) compiler.go:433: 14: goja.iterGetNextOrUndef({}) compiler.go:433: 15: goja.initGlobalP(_this1) compiler.go:433: 16: goja.iterGetNextOrUndef({}) compiler.go:433: 17: goja.initGlobalP(arg1) compiler.go:433: 18: goja._enumPopClose({}) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.loadDynamic(_this1) compiler.go:433: 21: goja.loadDynamic(_this) compiler.go:433: 22: goja._op_strict_eq({}) compiler.go:433: 23: goja.jne(4) compiler.go:433: 24: goja.loadDynamic(arg1) compiler.go:433: 25: goja.loadDynamic(arg) compiler.go:433: 26: goja._op_strict_eq({}) compiler.go:433: 27: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestThisResolutionWithStackVar (0.00s) === RUN TestForInLoopContinue compiler.go:433: 0: *goja.bindGlobal(&{[globalSink] [] [] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: *goja.newFunc(&{0xc000484780 function() { const data = [{disabled: true}, {}]; function dummy() {} function f1() {} function f() { dummy(); // move dummy to stash (so that f1 is at index 1) for (const d of data) { if (d.disabled) continue; globalSink = () => d; // move d to stash f1(); } } f(); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 3 1 0 1 false false}) compiler.go:433: > 1: *goja.newFunc(&{0xc0004847d0 dummy function dummy() {} 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._loadUndef({}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: *goja.newFunc(&{0xc000484820 f1 function f1() {} 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._loadUndef({}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: *goja.newFunc(&{0xc000484870 f function f() { dummy(); // move dummy to stash (so that f1 is at index 1) for (const d of data) { if (d.disabled) continue; globalSink = () => d; // move d to stash f1(); } } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._loadUndef({}) compiler.go:433: >> 2: goja.loadStashLex(0) compiler.go:433: >> 3: goja.call(0) compiler.go:433: >> 4: goja._pop({}) compiler.go:433: >> 5: goja.jump(1) compiler.go:433: >> 6: goja.loadStashLex(2) compiler.go:433: >> 7: goja._iterateP({}) compiler.go:433: >> 8: goja.iterNext(18) compiler.go:433: >> 9: *goja.enterBlock(&{map[] 1 0}) compiler.go:433: >> 10: goja._enumGet({}) compiler.go:433: >> 11: goja.initStashP(0) compiler.go:433: >> 12: goja.loadStashLex(0) compiler.go:433: >> 13: goja.getProp(disabled) compiler.go:433: >> 14: goja.jneP(3) compiler.go:433: >> 15: *goja.leaveBlock(&{0 true}) compiler.go:433: >> 16: goja.jump(-8) compiler.go:433: >> 17: goja.resolveVar1(globalSink) compiler.go:433: >> 18: *goja.newArrowFunc(&{{0xc0004848c0 globalSink () => d 0 false}}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >>> 1: goja.loadStashLex(0) compiler.go:433: >>> 2: goja._ret({}) compiler.go:433: >> 19: goja._putValueP({}) compiler.go:433: >> 20: goja._loadUndef({}) compiler.go:433: >> 21: goja.loadStashLex(16777217) compiler.go:433: >> 22: goja.call(0) compiler.go:433: >> 23: goja._pop({}) compiler.go:433: >> 24: *goja.leaveBlock(&{0 true}) compiler.go:433: >> 25: goja.jump(-17) compiler.go:433: >> 26: goja._enumPop({}) compiler.go:433: >> 27: goja.jump(2) compiler.go:433: >> 28: goja._enumPopClose({}) compiler.go:433: >> 29: goja._loadUndef({}) compiler.go:433: >> 30: goja._ret({}) compiler.go:433: > 6: goja.initStackP(1) compiler.go:433: > 7: goja.newArray(2) compiler.go:433: > 8: goja._newObject({}) compiler.go:433: > 9: goja.loadVal({true}) compiler.go:433: > 10: goja.putProp(disabled) compiler.go:433: > 11: goja._pushArrayItem({}) compiler.go:433: > 12: goja._newObject({}) compiler.go:433: > 13: goja._pushArrayItem({}) compiler.go:433: > 14: goja.initStashP(2) compiler.go:433: > 15: goja._loadUndef({}) compiler.go:433: > 16: goja.loadStackLex(1) compiler.go:433: > 17: goja.call(0) compiler.go:433: > 18: goja._pop({}) compiler.go:433: > 19: goja._loadUndef({}) compiler.go:433: > 20: goja._ret({}) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 3 --- PASS: TestForInLoopContinue (0.00s) === RUN TestForInLoopContinueOuter compiler.go:433: 0: *goja.bindGlobal(&{[globalSink] [] [] [] false}) compiler.go:433: 1: goja._loadUndef({}) compiler.go:433: 2: *goja.newFunc(&{0xc000484fa0 function() { const data = [{disabled: true}, {}]; function dummy1() {} function f1() {} function f() { dummy1(); let counter = 0; OUTER: for (let i = 0; i < 1; i++) { for (const d of data) { if (d.disabled) continue OUTER; globalSink = () => d; } counter++; } f1(); if (counter !== 0) { throw new Error(counter); } } f(); } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 3 1 0 1 false false}) compiler.go:433: > 1: *goja.newFunc(&{0xc000484ff0 dummy1 function dummy1() {} 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._loadUndef({}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: *goja.newFunc(&{0xc000485040 f1 function f1() {} 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja._loadUndef({}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: *goja.newFunc(&{0xc000485090 f function f() { dummy1(); let counter = 0; OUTER: for (let i = 0; i < 1; i++) { for (const d of data) { if (d.disabled) continue OUTER; globalSink = () => d; } counter++; } f1(); if (counter !== 0) { throw new Error(counter); } } 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: >> 1: goja._loadUndef({}) compiler.go:433: >> 2: goja.loadStashLex(0) compiler.go:433: >> 3: goja.call(0) compiler.go:433: >> 4: goja._pop({}) compiler.go:433: >> 5: goja.loadVal({0}) compiler.go:433: >> 6: goja.initStackP(1) compiler.go:433: >> 7: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: >> 8: goja.loadVal({0}) compiler.go:433: >> 9: goja.initStackP(2) compiler.go:433: >> 10: goja.jump(1) compiler.go:433: >> 11: goja.loadStackLex(2) compiler.go:433: >> 12: goja.loadVal({1}) compiler.go:433: >> 13: goja._op_lt({}) compiler.go:433: >> 14: goja.jneP(30) compiler.go:433: >> 15: goja.jump(1) compiler.go:433: >> 16: goja.loadStashLex(2) compiler.go:433: >> 17: goja._iterateP({}) compiler.go:433: >> 18: goja.iterNext(15) compiler.go:433: >> 19: *goja.enterBlock(&{map[] 1 0}) compiler.go:433: >> 20: goja._enumGet({}) compiler.go:433: >> 21: goja.initStashP(0) compiler.go:433: >> 22: goja.loadStashLex(0) compiler.go:433: >> 23: goja.getProp(disabled) compiler.go:433: >> 24: goja.jneP(4) compiler.go:433: >> 25: *goja.leaveBlock(&{0 true}) compiler.go:433: >> 26: goja._enumPopClose({}) compiler.go:433: >> 27: goja.jump(13) compiler.go:433: >> 28: goja.resolveVar1(globalSink) compiler.go:433: >> 29: *goja.newArrowFunc(&{{0xc0004850e0 globalSink () => d 0 false}}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >>> 1: goja.loadStashLex(0) compiler.go:433: >>> 2: goja._ret({}) compiler.go:433: >> 30: goja._putValueP({}) compiler.go:433: >> 31: *goja.leaveBlock(&{0 true}) compiler.go:433: >> 32: goja.jump(-14) compiler.go:433: >> 33: goja._enumPop({}) compiler.go:433: >> 34: goja.jump(2) compiler.go:433: >> 35: goja._enumPopClose({}) compiler.go:433: >> 36: goja.loadStackLex(1) compiler.go:433: >> 37: goja._inc({}) compiler.go:433: >> 38: goja.storeStackLexP(1) compiler.go:433: >> 39: goja.jump(1) compiler.go:433: >> 40: goja.loadStackLex(2) compiler.go:433: >> 41: goja._inc({}) compiler.go:433: >> 42: goja.storeStackLexP(2) compiler.go:433: >> 43: goja.jump(-32) compiler.go:433: >> 44: *goja.leaveBlock(&{1 false}) compiler.go:433: >> 45: goja._loadUndef({}) compiler.go:433: >> 46: goja.loadStashLex(1) compiler.go:433: >> 47: goja.call(0) compiler.go:433: >> 48: goja._pop({}) compiler.go:433: >> 49: goja.loadStackLex(1) compiler.go:433: >> 50: goja.loadVal({0}) compiler.go:433: >> 51: goja._op_strict_neq({}) compiler.go:433: >> 52: goja.jneP(5) compiler.go:433: >> 53: goja.loadDynamic(Error) compiler.go:433: >> 54: goja.loadStackLex(1) compiler.go:433: >> 55: goja._new(1) compiler.go:433: >> 56: goja._throw({}) compiler.go:433: >> 57: goja._loadUndef({}) compiler.go:433: >> 58: goja._ret({}) compiler.go:433: > 6: goja.initStackP(1) compiler.go:433: > 7: goja.newArray(2) compiler.go:433: > 8: goja._newObject({}) compiler.go:433: > 9: goja.loadVal({true}) compiler.go:433: > 10: goja.putProp(disabled) compiler.go:433: > 11: goja._pushArrayItem({}) compiler.go:433: > 12: goja._newObject({}) compiler.go:433: > 13: goja._pushArrayItem({}) compiler.go:433: > 14: goja.initStashP(2) compiler.go:433: > 15: goja._loadUndef({}) compiler.go:433: > 16: goja.loadStackLex(1) compiler.go:433: > 17: goja.call(0) compiler.go:433: > 18: goja._pop({}) compiler.go:433: > 19: goja._loadUndef({}) compiler.go:433: > 20: goja._ret({}) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestForInLoopContinueOuter (0.00s) === RUN TestLexicalDeclInSwitch compiler.go:433: 0: goja.loadVal({0}) compiler.go:433: 1: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: 2: goja._clearResult({}) compiler.go:433: 3: goja.loadStackLex(1) compiler.go:433: 4: goja.loadVal({1}) compiler.go:433: 5: goja._op_strict_eq({}) compiler.go:433: 6: goja.jneP(2) compiler.go:433: 7: goja.jump(7) compiler.go:433: 8: goja.loadStackLex(1) compiler.go:433: 9: goja.loadVal({2}) compiler.go:433: 10: goja._op_strict_eq({}) compiler.go:433: 11: goja.jneP(2) compiler.go:433: 12: goja.jump(4) compiler.go:433: 13: goja.jump(5) compiler.go:433: 14: goja._clearResult({}) compiler.go:433: 15: goja._clearResult({}) compiler.go:433: 16: goja.loadVal({1}) compiler.go:433: 17: goja.initStackP(2) compiler.go:433: 18: *goja.leaveBlock(&{2 false}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestLexicalDeclInSwitch (0.00s) === RUN TestClassFieldSpecial compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C] [] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{ C class C { get; set; async; static; } 0xc0004854f0 [] [] 0 0 0 false}) compiler.go:428: > ---- init_fields: compiler.go:433: > 0: goja._loadUndef({}) compiler.go:433: > 1: goja.definePropKeyed(get) compiler.go:433: > 2: goja._loadUndef({}) compiler.go:433: > 3: goja.definePropKeyed(set) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja.definePropKeyed(async) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja.definePropKeyed(static) compiler.go:430: > ---- compiler.go:433: 3: goja._endVariadic({}) compiler.go:433: 4: goja.initGlobalP(C) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassFieldSpecial (0.00s) === RUN TestClassMethodSpecial compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C] [] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{ C class C { get() {} set() {} async() {} static() {} } [] [] 0 0 0 false}) compiler.go:433: 3: goja.dupN(1) compiler.go:433: 4: *goja.newMethod(&{{0xc000485950 get get() {} 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 5: *goja.defineMethodKeyed(&{get false}) compiler.go:433: 6: *goja.newMethod(&{{0xc0004859a0 set set() {} 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 7: *goja.defineMethodKeyed(&{set false}) compiler.go:433: 8: *goja.newMethod(&{{0xc0004859f0 async async() {} 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 9: *goja.defineMethodKeyed(&{async false}) compiler.go:433: 10: *goja.newMethod(&{{0xc000485a40 static static() {} 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 11: *goja.defineMethodKeyed(&{static false}) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: goja._endVariadic({}) compiler.go:433: 14: goja.initGlobalP(C) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassMethodSpecial (0.00s) === RUN TestClassMethodNumLiteral compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C] [] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{ C class C { 0() { return true; } } [] [] 0 0 0 false}) compiler.go:433: 3: goja.dupN(1) compiler.go:433: 4: *goja.newMethod(&{{0xc000485cc0 0 0() { return true; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({true}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 5: *goja.defineMethodKeyed(&{0 false}) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja._endVariadic({}) compiler.go:433: 8: goja.initGlobalP(C) compiler.go:433: 9: goja.loadDynamic(C) compiler.go:433: 10: goja._new(0) compiler.go:433: 11: goja.loadVal({0}) compiler.go:433: 12: goja._getElemCallee({}) compiler.go:433: 13: goja.call(0) compiler.go:433: 14: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassMethodNumLiteral (0.00s) === RUN TestAsyncFunc --- PASS: TestAsyncFunc (0.00s) === RUN TestObjectLiteralComputedMethodKeys --- PASS: TestObjectLiteralComputedMethodKeys (0.00s) === RUN TestGeneratorFunc compiler.go:433: 0: *goja.newFunc(&{0xc000360d20 defParam function defParam() { trace += "1"; return "def"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(trace) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({1}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadVal({def}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 1: *goja.newGeneratorFunc(&{{0xc000360d70 g function* g(param = defParam()) { const THREE = 3; trace += "2"; assert.sameValue(Math.floor(yield 1), THREE); return 42; } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.jdefP(4) compiler.go:433: > 3: goja.loadDynamicCallee(defParam) compiler.go:433: > 4: goja.call(0) compiler.go:433: > 5: goja.initStackP(-1) compiler.go:433: > 6: *goja.enterFuncBody(&{{map[] 0 1} 1 false false}) compiler.go:433: > 7: *goja.yieldMarker(empty) compiler.go:433: > 8: goja.loadVal({3}) compiler.go:433: > 9: goja.initStackP(1) compiler.go:433: > 10: goja.resolveVar1(trace) compiler.go:433: > 11: goja._getValue({}) compiler.go:433: > 12: goja.loadVal({2}) compiler.go:433: > 13: goja._add({}) compiler.go:433: > 14: goja._putValueP({}) compiler.go:433: > 15: goja.loadDynamic(assert) compiler.go:433: > 16: goja.getPropCallee(sameValue) compiler.go:433: > 17: goja.loadDynamic(Math) compiler.go:433: > 18: goja.getPropCallee(floor) compiler.go:433: > 19: goja.loadVal({1}) compiler.go:433: > 20: *goja.yieldMarker(yieldRes) compiler.go:433: > 21: goja.call(1) compiler.go:433: > 22: goja.loadStackLex(1) compiler.go:433: > 23: goja.call(2) compiler.go:433: > 24: goja._pop({}) compiler.go:433: > 25: goja.loadVal({42}) compiler.go:433: > 26: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[] [defParam g] [trace iter next] [] false}) compiler.go:433: 3: goja.loadVal({}) compiler.go:433: 4: goja.initGlobalP(trace) compiler.go:433: 5: goja.loadDynamicCallee(g) compiler.go:433: 6: goja.call(0) compiler.go:433: 7: goja.initGlobalP(iter) compiler.go:433: 8: goja.loadDynamic(assert) compiler.go:433: 9: goja.getPropCallee(sameValue) compiler.go:433: 10: goja.loadDynamic(trace) compiler.go:433: 11: goja.loadVal({1}) compiler.go:433: 12: goja.call(2) compiler.go:433: 13: goja._pop({}) compiler.go:433: 14: goja.loadDynamic(iter) compiler.go:433: 15: goja.getPropCallee(next) compiler.go:433: 16: goja.call(0) compiler.go:433: 17: goja.initGlobalP(next) compiler.go:433: 18: goja.loadDynamic(assert) compiler.go:433: 19: goja.getPropCallee(sameValue) compiler.go:433: 20: goja.loadDynamic(next) compiler.go:433: 21: goja.getProp(value) compiler.go:433: 22: goja.loadVal({1}) compiler.go:433: 23: goja.call(2) compiler.go:433: 24: goja._pop({}) compiler.go:433: 25: goja.loadDynamic(assert) compiler.go:433: 26: goja.getPropCallee(sameValue) compiler.go:433: 27: goja.loadDynamic(next) compiler.go:433: 28: goja.getProp(done) compiler.go:433: 29: goja.loadVal({false}) compiler.go:433: 30: goja.call(2) compiler.go:433: 31: goja._pop({}) compiler.go:433: 32: goja.resolveVar1(next) compiler.go:433: 33: goja.loadDynamic(iter) compiler.go:433: 34: goja.getPropCallee(next) compiler.go:433: 35: goja.loadDynamic(Math) compiler.go:433: 36: goja.getProp(PI) compiler.go:433: 37: goja.call(1) compiler.go:433: 38: goja._putValueP({}) compiler.go:433: 39: goja.loadDynamic(assert) compiler.go:433: 40: goja.getPropCallee(sameValue) compiler.go:433: 41: goja.loadDynamic(next) compiler.go:433: 42: goja.getProp(value) compiler.go:433: 43: goja.loadVal({42}) compiler.go:433: 44: goja.call(2) compiler.go:433: 45: goja._pop({}) compiler.go:433: 46: goja.loadDynamic(assert) compiler.go:433: 47: goja.getPropCallee(sameValue) compiler.go:433: 48: goja.loadDynamic(next) compiler.go:433: 49: goja.getProp(done) compiler.go:433: 50: goja.loadVal({true}) compiler.go:433: 51: goja.call(2) compiler.go:433: 52: goja._pop({}) compiler.go:433: 53: goja.loadDynamic(assert) compiler.go:433: 54: goja.getPropCallee(sameValue) compiler.go:433: 55: goja.loadDynamic(trace) compiler.go:433: 56: goja.loadVal({12}) compiler.go:433: 57: goja.call(2) compiler.go:433: 58: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGeneratorFunc (0.00s) === RUN TestGeneratorMethods compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C c iter res] [] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{ C class C { *g(param) { yield 1; yield 2; } } [] [] 0 0 0 false}) compiler.go:433: 3: goja.dupN(1) compiler.go:433: 4: *goja.newGeneratorMethod(&{{{0xc000360ff0 g *g(param) { yield 1; yield 2; } 1 true} 1}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: *goja.yieldMarker(empty) compiler.go:433: > 2: goja.loadVal({1}) compiler.go:433: > 3: *goja.yieldMarker(yield) compiler.go:433: > 4: goja.loadVal({2}) compiler.go:433: > 5: *goja.yieldMarker(yield) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 5: *goja.defineMethodKeyed(&{g false}) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja._endVariadic({}) compiler.go:433: 8: goja.initGlobalP(C) compiler.go:433: 9: goja.loadDynamic(C) compiler.go:433: 10: goja._new(0) compiler.go:433: 11: goja.initGlobalP(c) compiler.go:433: 12: goja.loadDynamic(c) compiler.go:433: 13: goja.getPropCallee(g) compiler.go:433: 14: goja.call(0) compiler.go:433: 15: goja.initGlobalP(iter) compiler.go:433: 16: goja.loadDynamic(iter) compiler.go:433: 17: goja.getPropCallee(next) compiler.go:433: 18: goja.call(0) compiler.go:433: 19: goja.initGlobalP(res) compiler.go:433: 20: goja.loadDynamic(assert) compiler.go:433: 21: goja.getPropCallee(sameValue) compiler.go:433: 22: goja.loadDynamic(res) compiler.go:433: 23: goja.getProp(value) compiler.go:433: 24: goja.loadVal({1}) compiler.go:433: 25: goja.call(2) compiler.go:433: 26: goja._pop({}) compiler.go:433: 27: goja.loadDynamic(assert) compiler.go:433: 28: goja.getPropCallee(sameValue) compiler.go:433: 29: goja.loadDynamic(res) compiler.go:433: 30: goja.getProp(done) compiler.go:433: 31: goja.loadVal({false}) compiler.go:433: 32: goja.call(2) compiler.go:433: 33: goja._pop({}) compiler.go:433: 34: goja.resolveVar1(res) compiler.go:433: 35: goja.loadDynamic(iter) compiler.go:433: 36: goja.getPropCallee(next) compiler.go:433: 37: goja.call(0) compiler.go:433: 38: goja._putValueP({}) compiler.go:433: 39: goja.loadDynamic(assert) compiler.go:433: 40: goja.getPropCallee(sameValue) compiler.go:433: 41: goja.loadDynamic(res) compiler.go:433: 42: goja.getProp(value) compiler.go:433: 43: goja.loadVal({2}) compiler.go:433: 44: goja.call(2) compiler.go:433: 45: goja._pop({}) compiler.go:433: 46: goja.loadDynamic(assert) compiler.go:433: 47: goja.getPropCallee(sameValue) compiler.go:433: 48: goja.loadDynamic(res) compiler.go:433: 49: goja.getProp(done) compiler.go:433: 50: goja.loadVal({false}) compiler.go:433: 51: goja.call(2) compiler.go:433: 52: goja._pop({}) compiler.go:433: 53: goja.resolveVar1(res) compiler.go:433: 54: goja.loadDynamic(iter) compiler.go:433: 55: goja.getPropCallee(next) compiler.go:433: 56: goja.call(0) compiler.go:433: 57: goja._putValueP({}) compiler.go:433: 58: goja.loadDynamic(assert) compiler.go:433: 59: goja.getPropCallee(sameValue) compiler.go:433: 60: goja.loadDynamic(res) compiler.go:433: 61: goja.getProp(value) compiler.go:433: 62: goja.loadDynamic(undefined) compiler.go:433: 63: goja.call(2) compiler.go:433: 64: goja._pop({}) compiler.go:433: 65: goja.loadDynamic(assert) compiler.go:433: 66: goja.getPropCallee(sameValue) compiler.go:433: 67: goja.loadDynamic(res) compiler.go:433: 68: goja.getProp(done) compiler.go:433: 69: goja.loadVal({true}) compiler.go:433: 70: goja.call(2) compiler.go:433: 71: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGeneratorMethods (0.00s) === RUN TestFunctionBodyClassDecl --- PASS: TestFunctionBodyClassDecl (0.00s) === RUN TestNestedDestructArray compiler.go:433: 0: *goja.bindGlobal(&{[h h1 h2] [] [] [] false}) compiler.go:433: 1: goja.newArray(0) compiler.go:433: 2: goja._iterate({}) compiler.go:433: 3: goja.iterGetNextOrUndef({}) compiler.go:433: 4: goja.jdef(4) compiler.go:433: 5: goja.newArray(1) compiler.go:433: 6: goja.loadVal({0}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja._iterate({}) compiler.go:433: 9: goja.resolveVar1(h) compiler.go:433: 10: goja.iterGetNextOrUndef({}) compiler.go:433: 11: goja.jdef(2) compiler.go:433: 12: goja.loadVal({0}) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja._enumPopClose({}) compiler.go:433: 15: goja._pop({}) compiler.go:433: 16: goja._enumPopClose({}) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.loadDynamic(assert) compiler.go:433: 19: goja.getPropCallee(sameValue) compiler.go:433: 20: goja.loadDynamic(h) compiler.go:433: 21: goja.loadVal({0}) compiler.go:433: 22: goja.call(2) compiler.go:433: 23: goja._pop({}) compiler.go:433: 24: goja.newArray(0) compiler.go:433: 25: goja._iterate({}) compiler.go:433: 26: goja.iterGetNextOrUndef({}) compiler.go:433: 27: goja.jdef(2) compiler.go:433: 28: goja.newArray(0) compiler.go:433: 29: goja._iterate({}) compiler.go:433: 30: goja.resolveVar1(h1) compiler.go:433: 31: goja.iterGetNextOrUndef({}) compiler.go:433: 32: goja.jdef(2) compiler.go:433: 33: goja.loadVal({1}) compiler.go:433: 34: goja._initValueP({}) compiler.go:433: 35: goja._enumPopClose({}) compiler.go:433: 36: goja._pop({}) compiler.go:433: 37: goja._enumPopClose({}) compiler.go:433: 38: goja._pop({}) compiler.go:433: 39: goja.loadDynamic(assert) compiler.go:433: 40: goja.getPropCallee(sameValue) compiler.go:433: 41: goja.loadDynamic(h1) compiler.go:433: 42: goja.loadVal({1}) compiler.go:433: 43: goja.call(2) compiler.go:433: 44: goja._pop({}) compiler.go:433: 45: goja.newArray(1) compiler.go:433: 46: goja.newArray(1) compiler.go:433: 47: goja.loadVal({2}) compiler.go:433: 48: goja._pushArrayItem({}) compiler.go:433: 49: goja._pushArrayItem({}) compiler.go:433: 50: goja._iterate({}) compiler.go:433: 51: goja.iterGetNextOrUndef({}) compiler.go:433: 52: goja.jdef(2) compiler.go:433: 53: goja.newArray(0) compiler.go:433: 54: goja._iterate({}) compiler.go:433: 55: goja.resolveVar1(h2) compiler.go:433: 56: goja.iterGetNextOrUndef({}) compiler.go:433: 57: goja.jdef(2) compiler.go:433: 58: goja.loadVal({1}) compiler.go:433: 59: goja._initValueP({}) compiler.go:433: 60: goja._enumPopClose({}) compiler.go:433: 61: goja._pop({}) compiler.go:433: 62: goja._enumPopClose({}) compiler.go:433: 63: goja._pop({}) compiler.go:433: 64: goja.loadDynamic(assert) compiler.go:433: 65: goja.getPropCallee(sameValue) compiler.go:433: 66: goja.loadDynamic(h2) compiler.go:433: 67: goja.loadVal({2}) compiler.go:433: 68: goja.call(2) compiler.go:433: 69: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNestedDestructArray (0.00s) === RUN TestThisInStash compiler.go:433: 0: *goja.newFunc(&{0xc000361680 f function f() { globalThis.x = () => this; // move 'this' to stash { try { throw new Error("boo!"); } catch (e) { if (e.message !== 'boo!') { throw new Error("unexpected exception value"); } } } } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 0 1 false false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.initStashP(0) compiler.go:433: > 4: goja.loadDynamic(globalThis) compiler.go:433: > 5: *goja.newArrowFunc(&{{0xc0003616d0 () => this 0 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 6: goja.setPropP(x) compiler.go:433: > 7: goja.try({6 0}) compiler.go:433: > 8: goja.loadDynamic(Error) compiler.go:433: > 9: goja.loadVal({boo!}) compiler.go:433: > 10: goja._new(1) compiler.go:433: > 11: goja._throw({}) compiler.go:433: > 12: goja.jump(12) compiler.go:433: > 13: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 14: goja.loadStackLex(1) compiler.go:433: > 15: goja.getProp(message) compiler.go:433: > 16: goja.loadVal({boo!}) compiler.go:433: > 17: goja._op_strict_neq({}) compiler.go:433: > 18: goja.jneP(5) compiler.go:433: > 19: goja.loadDynamic(Error) compiler.go:433: > 20: goja.loadVal({unexpected exception value}) compiler.go:433: > 21: goja._new(1) compiler.go:433: > 22: goja._throw({}) compiler.go:433: > 23: *goja.leaveBlock(&{1 false}) compiler.go:433: > 24: goja.leaveTry({}) compiler.go:433: > 25: goja._loadUndef({}) compiler.go:433: > 26: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc000361720 f1 function f1() { globalThis.x = () => this; // move 'this' to stash var v; // introduce a stack variable { try { throw new Error("boo!"); } catch (e) { if (e.message !== 'boo!') { throw new Error("unexpected exception value"); } } } } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 1 0 1 false false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.initStashP(0) compiler.go:433: > 4: goja.loadDynamic(globalThis) compiler.go:433: > 5: *goja.newArrowFunc(&{{0xc000361770 () => this 0 false}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 6: goja.setPropP(x) compiler.go:433: > 7: goja.try({6 0}) compiler.go:433: > 8: goja.loadDynamic(Error) compiler.go:433: > 9: goja.loadVal({boo!}) compiler.go:433: > 10: goja._new(1) compiler.go:433: > 11: goja._throw({}) compiler.go:433: > 12: goja.jump(12) compiler.go:433: > 13: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 14: goja.loadStackLex(2) compiler.go:433: > 15: goja.getProp(message) compiler.go:433: > 16: goja.loadVal({boo!}) compiler.go:433: > 17: goja._op_strict_neq({}) compiler.go:433: > 18: goja.jneP(5) compiler.go:433: > 19: goja.loadDynamic(Error) compiler.go:433: > 20: goja.loadVal({unexpected exception value}) compiler.go:433: > 21: goja._new(1) compiler.go:433: > 22: goja._throw({}) compiler.go:433: > 23: *goja.leaveBlock(&{1 false}) compiler.go:433: > 24: goja.leaveTry({}) compiler.go:433: > 25: goja._loadUndef({}) compiler.go:433: > 26: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[] [f f1] [] [] false}) compiler.go:433: 3: goja.loadDynamicCallee(f) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._pop({}) compiler.go:433: 6: goja.loadDynamicCallee(f1) compiler.go:433: 7: goja.call(0) compiler.go:433: 8: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestThisInStash (0.00s) === RUN TestThisInStashCtor compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C C1] [] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: goja.loadDynamic(Object) compiler.go:433: 3: *goja.newDerivedClass(&{{0xc000361c20 C class C extends Object { constructor() { super(); globalThis.x = () => this; // move 'this' to stash { try { throw new Error("boo!"); } catch (e) { if (e.message !== 'boo!') { throw new Error("unexpected exception value"); } } } } } [] [] 0 0 0 false}}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 0 6 false false}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: goja.resolveThisStash(0) compiler.go:433: > 4: goja.superCall(0) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja.loadDynamic(globalThis) compiler.go:433: > 7: *goja.newArrowFunc(&{{0xc000361c70 () => this 0 true}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadThisStash(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 8: goja.setPropStrictP(x) compiler.go:433: > 9: goja.try({6 0}) compiler.go:433: > 10: goja.loadDynamic(Error) compiler.go:433: > 11: goja.loadVal({boo!}) compiler.go:433: > 12: goja._new(1) compiler.go:433: > 13: goja._throw({}) compiler.go:433: > 14: goja.jump(12) compiler.go:433: > 15: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 16: goja.loadStackLex(1) compiler.go:433: > 17: goja.getProp(message) compiler.go:433: > 18: goja.loadVal({boo!}) compiler.go:433: > 19: goja._op_strict_neq({}) compiler.go:433: > 20: goja.jneP(5) compiler.go:433: > 21: goja.loadDynamic(Error) compiler.go:433: > 22: goja.loadVal({unexpected exception value}) compiler.go:433: > 23: goja._new(1) compiler.go:433: > 24: goja._throw({}) compiler.go:433: > 25: *goja.leaveBlock(&{1 false}) compiler.go:433: > 26: goja.leaveTry({}) compiler.go:433: > 27: goja._loadUndef({}) compiler.go:433: > 28: goja.cret(0) compiler.go:433: 4: goja._endVariadic({}) compiler.go:433: 5: goja.initGlobalP(C) compiler.go:433: 6: goja.jump(1) compiler.go:433: 7: goja.loadDynamic(Object) compiler.go:433: 8: *goja.newDerivedClass(&{{0xc000361cc0 C1 class C1 extends Object { constructor() { super(); globalThis.x = () => this; // move 'this' to stash var v; // introduce a stack variable { try { throw new Error("boo!"); } catch (e) { if (e.message !== 'boo!') { throw new Error("unexpected exception value"); } } } } } [] [] 0 0 0 false}}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 1 0 6 false false}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: goja.resolveThisStash(0) compiler.go:433: > 4: goja.superCall(0) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja.loadDynamic(globalThis) compiler.go:433: > 7: *goja.newArrowFunc(&{{0xc000361d10 () => this 0 true}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadThisStash(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 8: goja.setPropStrictP(x) compiler.go:433: > 9: goja.try({6 0}) compiler.go:433: > 10: goja.loadDynamic(Error) compiler.go:433: > 11: goja.loadVal({boo!}) compiler.go:433: > 12: goja._new(1) compiler.go:433: > 13: goja._throw({}) compiler.go:433: > 14: goja.jump(12) compiler.go:433: > 15: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 16: goja.loadStackLex(2) compiler.go:433: > 17: goja.getProp(message) compiler.go:433: > 18: goja.loadVal({boo!}) compiler.go:433: > 19: goja._op_strict_neq({}) compiler.go:433: > 20: goja.jneP(5) compiler.go:433: > 21: goja.loadDynamic(Error) compiler.go:433: > 22: goja.loadVal({unexpected exception value}) compiler.go:433: > 23: goja._new(1) compiler.go:433: > 24: goja._throw({}) compiler.go:433: > 25: *goja.leaveBlock(&{1 false}) compiler.go:433: > 26: goja.leaveTry({}) compiler.go:433: > 27: goja._loadUndef({}) compiler.go:433: > 28: goja.cret(0) compiler.go:433: 9: goja._endVariadic({}) compiler.go:433: 10: goja.initGlobalP(C1) compiler.go:433: 11: goja.loadDynamic(C) compiler.go:433: 12: goja._new(0) compiler.go:433: 13: goja._pop({}) compiler.go:433: 14: goja.loadDynamic(C1) compiler.go:433: 15: goja._new(0) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadDynamic(undefined) compiler.go:433: 18: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestThisInStashCtor (0.00s) === RUN TestWrongThisRest compiler.go:433: 0: *goja.bindGlobal(&{[] [] [mine] [a] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{0xc0003604b0 mine class mine { constructor (arg) { this.field = arg } f(...argument) { if (this.field != "something") { throw "wrong " + this.field + " Object.keys:" + Object.keys(this) } let s = () => { for (const arg of argument) arg.call() return this.field } } } [] [] 0 0 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja.setPropStrictP(field) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 3: goja.dupN(1) compiler.go:433: 4: *goja.newMethod(&{{0xc000360500 f f(...argument) { if (this.field != "something") { throw "wrong " + this.field + " Object.keys:" + Object.keys(this) } let s = () => { for (const arg of argument) arg.call() return this.field } } 0 true} 1}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 2 0 0 3 false false}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: goja.createArgsRestStack(0) compiler.go:433: > 4: goja.initStashP(1) compiler.go:433: > 5: *goja.enterFuncBody(&{{map[] 0 1} 3 false false}) compiler.go:433: > 6: goja.loadStash(0) compiler.go:433: > 7: goja.getProp(field) compiler.go:433: > 8: goja.loadVal({something}) compiler.go:433: > 9: goja._op_neq({}) compiler.go:433: > 10: goja.jneP(13) compiler.go:433: > 11: goja.loadVal({wrong }) compiler.go:433: > 12: goja.loadStash(0) compiler.go:433: > 13: goja.getProp(field) compiler.go:433: > 14: goja._add({}) compiler.go:433: > 15: goja.loadVal({ Object.keys:}) compiler.go:433: > 16: goja._add({}) compiler.go:433: > 17: goja.loadDynamic(Object) compiler.go:433: > 18: goja.getPropCallee(keys) compiler.go:433: > 19: goja.loadStash(0) compiler.go:433: > 20: goja.call(1) compiler.go:433: > 21: goja._add({}) compiler.go:433: > 22: goja._throw({}) compiler.go:433: > 23: *goja.newArrowFunc(&{{0xc000360550 s () => { for (const arg of argument) arg.call() return this.field } 0 true}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.jump(1) compiler.go:433: >> 2: goja.loadStashLex(1) compiler.go:433: >> 3: goja._iterateP({}) compiler.go:433: >> 4: goja.iterNext(10) compiler.go:433: >> 5: *goja.enterBlock(&{map[] 0 1}) compiler.go:433: >> 6: goja._enumGet({}) compiler.go:433: >> 7: goja.initStackP(1) compiler.go:433: >> 8: goja.loadStackLex(1) compiler.go:433: >> 9: goja.getPropCallee(call) compiler.go:433: >> 10: goja.call(0) compiler.go:433: >> 11: goja._pop({}) compiler.go:433: >> 12: *goja.leaveBlock(&{1 false}) compiler.go:433: >> 13: goja.jump(-9) compiler.go:433: >> 14: goja._enumPop({}) compiler.go:433: >> 15: goja.jump(2) compiler.go:433: >> 16: goja._enumPopClose({}) compiler.go:433: >> 17: goja.loadStash(0) compiler.go:433: >> 18: goja.getProp(field) compiler.go:433: >> 19: goja._ret({}) compiler.go:433: > 24: goja.initStackP(1) compiler.go:433: > 25: goja._loadUndef({}) compiler.go:433: > 26: goja._ret({}) compiler.go:433: 5: *goja.defineMethodKeyed(&{f false}) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja._endVariadic({}) compiler.go:433: 8: goja.initGlobalP(mine) compiler.go:433: 9: goja.loadDynamic(mine) compiler.go:433: 10: goja.loadVal({something}) compiler.go:433: 11: goja._new(1) compiler.go:433: 12: goja.initGlobalP(a) compiler.go:433: 13: goja.loadDynamic(a) compiler.go:433: 14: goja.getPropCallee(f) compiler.go:433: 15: goja._newObject({}) compiler.go:433: 16: goja.loadVal({here}) compiler.go:433: 17: goja.putProp(SomeKey) compiler.go:433: 18: goja.call(1) compiler.go:433: 19: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestWrongThisRest (0.00s) === RUN TestWrongThisExtraArg compiler.go:433: 0: *goja.bindGlobal(&{[] [] [mine] [a] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{0xc000360910 mine class mine { constructor (arg) { this.field = arg } f() { if (this.field != "something") { throw "wrong " + this.field + " Object.keys:" + Object.keys(this) } globalThis.x = () => this.field; } } [] [] 0 0 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja.setPropStrictP(field) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 3: goja.dupN(1) compiler.go:433: 4: *goja.newMethod(&{{0xc000360960 f f() { if (this.field != "something") { throw "wrong " + this.field + " Object.keys:" + Object.keys(this) } globalThis.x = () => this.field; } 0 true} 1}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 0 3 false false}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.initStashP(0) compiler.go:433: > 3: goja.loadStash(0) compiler.go:433: > 4: goja.getProp(field) compiler.go:433: > 5: goja.loadVal({something}) compiler.go:433: > 6: goja._op_neq({}) compiler.go:433: > 7: goja.jneP(13) compiler.go:433: > 8: goja.loadVal({wrong }) compiler.go:433: > 9: goja.loadStash(0) compiler.go:433: > 10: goja.getProp(field) compiler.go:433: > 11: goja._add({}) compiler.go:433: > 12: goja.loadVal({ Object.keys:}) compiler.go:433: > 13: goja._add({}) compiler.go:433: > 14: goja.loadDynamic(Object) compiler.go:433: > 15: goja.getPropCallee(keys) compiler.go:433: > 16: goja.loadStash(0) compiler.go:433: > 17: goja.call(1) compiler.go:433: > 18: goja._add({}) compiler.go:433: > 19: goja._throw({}) compiler.go:433: > 20: goja.loadDynamic(globalThis) compiler.go:433: > 21: *goja.newArrowFunc(&{{0xc0003609b0 () => this.field 0 true}}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(0) compiler.go:433: >> 2: goja.getProp(field) compiler.go:433: >> 3: goja._ret({}) compiler.go:433: > 22: goja.setPropStrictP(x) compiler.go:433: > 23: goja._loadUndef({}) compiler.go:433: > 24: goja._ret({}) compiler.go:433: 5: *goja.defineMethodKeyed(&{f false}) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja._endVariadic({}) compiler.go:433: 8: goja.initGlobalP(mine) compiler.go:433: 9: goja.loadDynamic(mine) compiler.go:433: 10: goja.loadVal({something}) compiler.go:433: 11: goja._new(1) compiler.go:433: 12: goja.initGlobalP(a) compiler.go:433: 13: goja.loadDynamic(a) compiler.go:433: 14: goja.getPropCallee(f) compiler.go:433: 15: goja._newObject({}) compiler.go:433: 16: goja.loadVal({here}) compiler.go:433: 17: goja.putProp(SomeKey) compiler.go:433: 18: goja.call(1) compiler.go:433: 19: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestWrongThisExtraArg (0.00s) === RUN TestWrongThisForwardRef compiler.go:433: 0: *goja.newFunc(&{0xc000360c30 f function f(a = b + 1, b) { // forward ref argument to make sure args remain on stack if (this != expectedThis) { throw new Error("unexpected 'this'"); } eval("true"); // make the scope dynamic which copies args to stash } 0 false}) compiler.go:433: > 0: *goja.enterFunc1(&{map[ this:1073741826 a:0 arguments:3 b:1] 4 2 1 1 false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.initStashP(2) compiler.go:433: > 4: goja.createArgsUnmapped(2) compiler.go:433: > 5: goja.initStashP(3) compiler.go:433: > 6: goja.loadStashLex(0) compiler.go:433: > 7: goja.jdefP(5) compiler.go:433: > 8: goja.loadStashLex(1) compiler.go:433: > 9: goja.loadVal({1}) compiler.go:433: > 10: goja._add({}) compiler.go:433: > 11: goja.initStashP(0) compiler.go:433: > 12: goja.loadStackLex(-2) compiler.go:433: > 13: goja.initStashP(1) compiler.go:433: > 14: *goja.enterFuncBody(&{{map[] 0 0} 1 true true}) compiler.go:433: > 15: goja.loadStash(16777218) compiler.go:433: > 16: goja.loadDynamic(expectedThis) compiler.go:433: > 17: goja._op_neq({}) compiler.go:433: > 18: goja.jneP(5) compiler.go:433: > 19: goja.loadDynamic(Error) compiler.go:433: > 20: goja.loadVal({unexpected 'this'}) compiler.go:433: > 21: goja._new(1) compiler.go:433: > 22: goja._throw({}) compiler.go:433: > 23: goja.loadDynamicCallee(eval) compiler.go:433: > 24: goja.loadVal({true}) compiler.go:433: > 25: goja.callEval(1) compiler.go:433: > 26: goja._pop({}) compiler.go:433: > 27: goja._loadUndef({}) compiler.go:433: > 28: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [expectedThis] false}) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.initGlobalP(expectedThis) compiler.go:433: 4: goja.loadDynamic(f) compiler.go:433: 5: goja.getPropCallee(call) compiler.go:433: 6: goja.loadDynamic(expectedThis) compiler.go:433: 7: goja.loadVal({1}) compiler.go:433: 8: goja.loadVal({2}) compiler.go:433: 9: goja.call(3) compiler.go:433: 10: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestWrongThisForwardRef (0.00s) === RUN TestDateUTC compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(sameValue) compiler.go:433: 2: goja.loadDynamic(Date) compiler.go:433: 3: goja.getPropCallee(UTC) compiler.go:433: 4: goja.loadVal({1970}) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja.loadVal({0}) compiler.go:433: 8: goja.loadVal({1970, 0}) compiler.go:433: 9: goja.call(3) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.loadDynamic(assert) compiler.go:433: 12: goja.getPropCallee(sameValue) compiler.go:433: 13: goja.loadDynamic(Date) compiler.go:433: 14: goja.getPropCallee(UTC) compiler.go:433: 15: goja.loadVal({2016}) compiler.go:433: 16: goja.loadVal({0}) compiler.go:433: 17: goja.call(2) compiler.go:433: 18: goja.loadVal({1451606400000}) compiler.go:433: 19: goja.loadVal({2016, 0}) compiler.go:433: 20: goja.call(3) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.loadDynamic(assert) compiler.go:433: 23: goja.getPropCallee(sameValue) compiler.go:433: 24: goja.loadDynamic(Date) compiler.go:433: 25: goja.getPropCallee(UTC) compiler.go:433: 26: goja.loadVal({2016}) compiler.go:433: 27: goja.loadVal({6}) compiler.go:433: 28: goja.call(2) compiler.go:433: 29: goja.loadVal({1467331200000}) compiler.go:433: 30: goja.loadVal({2016, 6}) compiler.go:433: 31: goja.call(3) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja.loadDynamic(assert) compiler.go:433: 34: goja.getPropCallee(sameValue) compiler.go:433: 35: goja.loadDynamic(Date) compiler.go:433: 36: goja.getPropCallee(UTC) compiler.go:433: 37: goja.loadVal({2016}) compiler.go:433: 38: goja.loadVal({6}) compiler.go:433: 39: goja.loadVal({1}) compiler.go:433: 40: goja.call(3) compiler.go:433: 41: goja.loadVal({1467331200000}) compiler.go:433: 42: goja.loadVal({2016, 6, 1}) compiler.go:433: 43: goja.call(3) compiler.go:433: 44: goja._pop({}) compiler.go:433: 45: goja.loadDynamic(assert) compiler.go:433: 46: goja.getPropCallee(sameValue) compiler.go:433: 47: goja.loadDynamic(Date) compiler.go:433: 48: goja.getPropCallee(UTC) compiler.go:433: 49: goja.loadVal({2016}) compiler.go:433: 50: goja.loadVal({6}) compiler.go:433: 51: goja.loadVal({5}) compiler.go:433: 52: goja.call(3) compiler.go:433: 53: goja.loadVal({1467676800000}) compiler.go:433: 54: goja.loadVal({2016, 6, 5}) compiler.go:433: 55: goja.call(3) compiler.go:433: 56: goja._pop({}) compiler.go:433: 57: goja.loadDynamic(assert) compiler.go:433: 58: goja.getPropCallee(sameValue) compiler.go:433: 59: goja.loadDynamic(Date) compiler.go:433: 60: goja.getPropCallee(UTC) compiler.go:433: 61: goja.loadVal({2016}) compiler.go:433: 62: goja.loadVal({6}) compiler.go:433: 63: goja.loadVal({5}) compiler.go:433: 64: goja.loadVal({0}) compiler.go:433: 65: goja.call(4) compiler.go:433: 66: goja.loadVal({1467676800000}) compiler.go:433: 67: goja.loadVal({2016, 6, 5, 0}) compiler.go:433: 68: goja.call(3) compiler.go:433: 69: goja._pop({}) compiler.go:433: 70: goja.loadDynamic(assert) compiler.go:433: 71: goja.getPropCallee(sameValue) compiler.go:433: 72: goja.loadDynamic(Date) compiler.go:433: 73: goja.getPropCallee(UTC) compiler.go:433: 74: goja.loadVal({2016}) compiler.go:433: 75: goja.loadVal({6}) compiler.go:433: 76: goja.loadVal({5}) compiler.go:433: 77: goja.loadVal({15}) compiler.go:433: 78: goja.call(4) compiler.go:433: 79: goja.loadVal({1467730800000}) compiler.go:433: 80: goja.loadVal({2016, 6, 5, 15}) compiler.go:433: 81: goja.call(3) compiler.go:433: 82: goja._pop({}) compiler.go:433: 83: goja.loadDynamic(assert) compiler.go:433: 84: goja.getPropCallee(sameValue) compiler.go:433: 85: goja.loadDynamic(Date) compiler.go:433: 86: goja.getPropCallee(UTC) compiler.go:433: 87: goja.loadVal({2016}) compiler.go:433: 88: goja.loadVal({6}) compiler.go:433: 89: goja.loadVal({5}) compiler.go:433: 90: goja.loadVal({15}) compiler.go:433: 91: goja.loadVal({0}) compiler.go:433: 92: goja.call(5) compiler.go:433: 93: goja.loadVal({1467730800000}) compiler.go:433: 94: goja.loadVal({2016, 6, 5, 15, 0}) compiler.go:433: 95: goja.call(3) compiler.go:433: 96: goja._pop({}) compiler.go:433: 97: goja.loadDynamic(assert) compiler.go:433: 98: goja.getPropCallee(sameValue) compiler.go:433: 99: goja.loadDynamic(Date) compiler.go:433: 100: goja.getPropCallee(UTC) compiler.go:433: 101: goja.loadVal({2016}) compiler.go:433: 102: goja.loadVal({6}) compiler.go:433: 103: goja.loadVal({5}) compiler.go:433: 104: goja.loadVal({15}) compiler.go:433: 105: goja.loadVal({34}) compiler.go:433: 106: goja.call(5) compiler.go:433: 107: goja.loadVal({1467732840000}) compiler.go:433: 108: goja.loadVal({2016, 6, 5, 15, 34}) compiler.go:433: 109: goja.call(3) compiler.go:433: 110: goja._pop({}) compiler.go:433: 111: goja.loadDynamic(assert) compiler.go:433: 112: goja.getPropCallee(sameValue) compiler.go:433: 113: goja.loadDynamic(Date) compiler.go:433: 114: goja.getPropCallee(UTC) compiler.go:433: 115: goja.loadVal({2016}) compiler.go:433: 116: goja.loadVal({6}) compiler.go:433: 117: goja.loadVal({5}) compiler.go:433: 118: goja.loadVal({15}) compiler.go:433: 119: goja.loadVal({34}) compiler.go:433: 120: goja.loadVal({0}) compiler.go:433: 121: goja.call(6) compiler.go:433: 122: goja.loadVal({1467732840000}) compiler.go:433: 123: goja.loadVal({2016, 6, 5, 15, 34, 0}) compiler.go:433: 124: goja.call(3) compiler.go:433: 125: goja._pop({}) compiler.go:433: 126: goja.loadDynamic(assert) compiler.go:433: 127: goja.getPropCallee(sameValue) compiler.go:433: 128: goja.loadDynamic(Date) compiler.go:433: 129: goja.getPropCallee(UTC) compiler.go:433: 130: goja.loadVal({2016}) compiler.go:433: 131: goja.loadVal({6}) compiler.go:433: 132: goja.loadVal({5}) compiler.go:433: 133: goja.loadVal({15}) compiler.go:433: 134: goja.loadVal({34}) compiler.go:433: 135: goja.loadVal({45}) compiler.go:433: 136: goja.call(6) compiler.go:433: 137: goja.loadVal({1467732885000}) compiler.go:433: 138: goja.loadVal({2016, 6, 5, 15, 34, 45}) compiler.go:433: 139: goja.call(3) compiler.go:433: 140: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDateUTC (0.00s) === RUN TestNewDate compiler.go:433: 0: *goja.bindGlobal(&{[d1] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(d1) compiler.go:433: 2: goja.loadDynamic(Date) compiler.go:433: 3: goja.loadVal({2016-09-01T12:34:56Z}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(d1) compiler.go:433: 7: goja.getPropCallee(getUTCHours) compiler.go:433: 8: goja.call(0) compiler.go:433: 9: goja.loadVal({12}) compiler.go:433: 10: goja._op_strict_eq({}) compiler.go:433: 11: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNewDate (0.00s) === RUN TestNewDate0 compiler.go:433: 0: goja.loadDynamic(Date) compiler.go:433: 1: goja.loadVal({0}) compiler.go:433: 2: goja._new(1) compiler.go:433: 3: goja.getPropCallee(toUTCString) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNewDate0 (0.00s) === RUN TestSetHour compiler.go:433: 0: *goja.bindGlobal(&{[d] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(d) compiler.go:433: 2: goja.loadDynamic(Date) compiler.go:433: 3: goja.loadVal({2016}) compiler.go:433: 4: goja.loadVal({8}) compiler.go:433: 5: goja.loadVal({1}) compiler.go:433: 6: goja.loadVal({12}) compiler.go:433: 7: goja.loadVal({23}) compiler.go:433: 8: goja.loadVal({45}) compiler.go:433: 9: goja._new(6) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.loadDynamic(assert) compiler.go:433: 12: goja.getPropCallee(sameValue) compiler.go:433: 13: goja.loadDynamic(d) compiler.go:433: 14: goja.getPropCallee(getHours) compiler.go:433: 15: goja.call(0) compiler.go:433: 16: goja.loadVal({12}) compiler.go:433: 17: goja.call(2) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamic(assert) compiler.go:433: 20: goja.getPropCallee(sameValue) compiler.go:433: 21: goja.loadDynamic(d) compiler.go:433: 22: goja.getPropCallee(getUTCHours) compiler.go:433: 23: goja.call(0) compiler.go:433: 24: goja.loadVal({16}) compiler.go:433: 25: goja.call(2) compiler.go:433: 26: goja._pop({}) compiler.go:433: 27: goja.loadDynamic(d) compiler.go:433: 28: goja.getPropCallee(setHours) compiler.go:433: 29: goja.loadVal({13}) compiler.go:433: 30: goja.call(1) compiler.go:433: 31: goja._pop({}) compiler.go:433: 32: goja.loadDynamic(assert) compiler.go:433: 33: goja.getPropCallee(sameValue) compiler.go:433: 34: goja.loadDynamic(d) compiler.go:433: 35: goja.getPropCallee(getHours) compiler.go:433: 36: goja.call(0) compiler.go:433: 37: goja.loadVal({13}) compiler.go:433: 38: goja.call(2) compiler.go:433: 39: goja._pop({}) compiler.go:433: 40: goja.loadDynamic(assert) compiler.go:433: 41: goja.getPropCallee(sameValue) compiler.go:433: 42: goja.loadDynamic(d) compiler.go:433: 43: goja.getPropCallee(getMinutes) compiler.go:433: 44: goja.call(0) compiler.go:433: 45: goja.loadVal({23}) compiler.go:433: 46: goja.call(2) compiler.go:433: 47: goja._pop({}) compiler.go:433: 48: goja.loadDynamic(assert) compiler.go:433: 49: goja.getPropCallee(sameValue) compiler.go:433: 50: goja.loadDynamic(d) compiler.go:433: 51: goja.getPropCallee(getSeconds) compiler.go:433: 52: goja.call(0) compiler.go:433: 53: goja.loadVal({45}) compiler.go:433: 54: goja.call(2) compiler.go:433: 55: goja._pop({}) compiler.go:433: 56: goja.loadDynamic(d) compiler.go:433: 57: goja.getPropCallee(setUTCHours) compiler.go:433: 58: goja.loadVal({13}) compiler.go:433: 59: goja.call(1) compiler.go:433: 60: goja._pop({}) compiler.go:433: 61: goja.loadDynamic(assert) compiler.go:433: 62: goja.getPropCallee(sameValue) compiler.go:433: 63: goja.loadDynamic(d) compiler.go:433: 64: goja.getPropCallee(getHours) compiler.go:433: 65: goja.call(0) compiler.go:433: 66: goja.loadVal({9}) compiler.go:433: 67: goja.call(2) compiler.go:433: 68: goja._pop({}) compiler.go:433: 69: goja.loadDynamic(assert) compiler.go:433: 70: goja.getPropCallee(sameValue) compiler.go:433: 71: goja.loadDynamic(d) compiler.go:433: 72: goja.getPropCallee(getMinutes) compiler.go:433: 73: goja.call(0) compiler.go:433: 74: goja.loadVal({23}) compiler.go:433: 75: goja.call(2) compiler.go:433: 76: goja._pop({}) compiler.go:433: 77: goja.loadDynamic(assert) compiler.go:433: 78: goja.getPropCallee(sameValue) compiler.go:433: 79: goja.loadDynamic(d) compiler.go:433: 80: goja.getPropCallee(getSeconds) compiler.go:433: 81: goja.call(0) compiler.go:433: 82: goja.loadVal({45}) compiler.go:433: 83: goja.call(2) compiler.go:433: 84: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSetHour (0.00s) === RUN TestSetMinute compiler.go:433: 0: *goja.bindGlobal(&{[d] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(d) compiler.go:433: 2: goja.loadDynamic(Date) compiler.go:433: 3: goja.loadVal({2016}) compiler.go:433: 4: goja.loadVal({8}) compiler.go:433: 5: goja.loadVal({1}) compiler.go:433: 6: goja.loadVal({12}) compiler.go:433: 7: goja.loadVal({23}) compiler.go:433: 8: goja.loadVal({45}) compiler.go:433: 9: goja._new(6) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.loadDynamic(assert) compiler.go:433: 12: goja.getPropCallee(sameValue) compiler.go:433: 13: goja.loadDynamic(d) compiler.go:433: 14: goja.getPropCallee(getHours) compiler.go:433: 15: goja.call(0) compiler.go:433: 16: goja.loadVal({12}) compiler.go:433: 17: goja.call(2) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamic(assert) compiler.go:433: 20: goja.getPropCallee(sameValue) compiler.go:433: 21: goja.loadDynamic(d) compiler.go:433: 22: goja.getPropCallee(getUTCHours) compiler.go:433: 23: goja.call(0) compiler.go:433: 24: goja.loadVal({6}) compiler.go:433: 25: goja.call(2) compiler.go:433: 26: goja._pop({}) compiler.go:433: 27: goja.loadDynamic(assert) compiler.go:433: 28: goja.getPropCallee(sameValue) compiler.go:433: 29: goja.loadDynamic(d) compiler.go:433: 30: goja.getPropCallee(getMinutes) compiler.go:433: 31: goja.call(0) compiler.go:433: 32: goja.loadVal({23}) compiler.go:433: 33: goja.call(2) compiler.go:433: 34: goja._pop({}) compiler.go:433: 35: goja.loadDynamic(assert) compiler.go:433: 36: goja.getPropCallee(sameValue) compiler.go:433: 37: goja.loadDynamic(d) compiler.go:433: 38: goja.getPropCallee(getUTCMinutes) compiler.go:433: 39: goja.call(0) compiler.go:433: 40: goja.loadVal({53}) compiler.go:433: 41: goja.call(2) compiler.go:433: 42: goja._pop({}) compiler.go:433: 43: goja.loadDynamic(d) compiler.go:433: 44: goja.getPropCallee(setMinutes) compiler.go:433: 45: goja.loadVal({55}) compiler.go:433: 46: goja.call(1) compiler.go:433: 47: goja._pop({}) compiler.go:433: 48: goja.loadDynamic(assert) compiler.go:433: 49: goja.getPropCallee(sameValue) compiler.go:433: 50: goja.loadDynamic(d) compiler.go:433: 51: goja.getPropCallee(getMinutes) compiler.go:433: 52: goja.call(0) compiler.go:433: 53: goja.loadVal({55}) compiler.go:433: 54: goja.call(2) compiler.go:433: 55: goja._pop({}) compiler.go:433: 56: goja.loadDynamic(assert) compiler.go:433: 57: goja.getPropCallee(sameValue) compiler.go:433: 58: goja.loadDynamic(d) compiler.go:433: 59: goja.getPropCallee(getSeconds) compiler.go:433: 60: goja.call(0) compiler.go:433: 61: goja.loadVal({45}) compiler.go:433: 62: goja.call(2) compiler.go:433: 63: goja._pop({}) compiler.go:433: 64: goja.loadDynamic(d) compiler.go:433: 65: goja.getPropCallee(setUTCMinutes) compiler.go:433: 66: goja.loadVal({52}) compiler.go:433: 67: goja.call(1) compiler.go:433: 68: goja._pop({}) compiler.go:433: 69: goja.loadDynamic(assert) compiler.go:433: 70: goja.getPropCallee(sameValue) compiler.go:433: 71: goja.loadDynamic(d) compiler.go:433: 72: goja.getPropCallee(getMinutes) compiler.go:433: 73: goja.call(0) compiler.go:433: 74: goja.loadVal({22}) compiler.go:433: 75: goja.call(2) compiler.go:433: 76: goja._pop({}) compiler.go:433: 77: goja.loadDynamic(assert) compiler.go:433: 78: goja.getPropCallee(sameValue) compiler.go:433: 79: goja.loadDynamic(d) compiler.go:433: 80: goja.getPropCallee(getHours) compiler.go:433: 81: goja.call(0) compiler.go:433: 82: goja.loadVal({13}) compiler.go:433: 83: goja.call(2) compiler.go:433: 84: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSetMinute (0.00s) === RUN TestTimezoneOffset compiler.go:433: 0: *goja.bindGlobal(&{[d] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(d) compiler.go:433: 2: goja.loadDynamic(Date) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(d) compiler.go:433: 7: goja.getPropCallee(getTimezoneOffset) compiler.go:433: 8: goja.call(0) compiler.go:433: 9: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTimezoneOffset (0.00s) === RUN TestDateValueOf compiler.go:433: 0: *goja.bindGlobal(&{[d9] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(d9) compiler.go:433: 2: goja.loadDynamic(Date) compiler.go:433: 3: goja.loadVal({1230000000000000}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(d9) compiler.go:433: 7: goja.getPropCallee(valueOf) compiler.go:433: 8: goja.call(0) compiler.go:433: 9: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDateValueOf (0.00s) === RUN TestDateSetters compiler.go:433: 0: *goja.bindGlobal(&{[d] [] [] [] false}) compiler.go:433: 1: goja.loadDynamic(assert) compiler.go:433: 2: goja.getPropCallee(sameValue) compiler.go:433: 3: goja.loadDynamic(Date) compiler.go:433: 4: goja.loadVal({0}) compiler.go:433: 5: goja._new(1) compiler.go:433: 6: goja.getPropCallee(setMilliseconds) compiler.go:433: 7: goja.loadVal({2345}) compiler.go:433: 8: goja.call(1) compiler.go:433: 9: goja.loadVal({2345}) compiler.go:433: 10: goja.loadVal({setMilliseconds(2345)}) compiler.go:433: 11: goja.call(3) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: goja.loadDynamic(assert) compiler.go:433: 14: goja.getPropCallee(sameValue) compiler.go:433: 15: goja.loadDynamic(Date) compiler.go:433: 16: goja.loadVal({1000}) compiler.go:433: 17: goja._new(1) compiler.go:433: 18: goja.getPropCallee(setMilliseconds) compiler.go:433: 19: goja.loadVal({23450000000000}) compiler.go:433: 20: goja.call(1) compiler.go:433: 21: goja.loadVal({23450000001000}) compiler.go:433: 22: goja.loadVal({setMilliseconds(23450000000000)}) compiler.go:433: 23: goja.call(3) compiler.go:433: 24: goja._pop({}) compiler.go:433: 25: goja.loadDynamic(assert) compiler.go:433: 26: goja.getPropCallee(sameValue) compiler.go:433: 27: goja.loadDynamic(Date) compiler.go:433: 28: goja.loadVal({0}) compiler.go:433: 29: goja._new(1) compiler.go:433: 30: goja.getPropCallee(setUTCMilliseconds) compiler.go:433: 31: goja.loadVal({2345}) compiler.go:433: 32: goja.call(1) compiler.go:433: 33: goja.loadVal({2345}) compiler.go:433: 34: goja.loadVal({setUTCMilliseconds()}) compiler.go:433: 35: goja.call(3) compiler.go:433: 36: goja._pop({}) compiler.go:433: 37: goja.loadDynamic(assert) compiler.go:433: 38: goja.getPropCallee(sameValue) compiler.go:433: 39: goja.loadDynamic(Date) compiler.go:433: 40: goja.loadVal({0}) compiler.go:433: 41: goja._new(1) compiler.go:433: 42: goja.getPropCallee(setSeconds) compiler.go:433: 43: goja.loadVal({12}) compiler.go:433: 44: goja.call(1) compiler.go:433: 45: goja.loadVal({12000}) compiler.go:433: 46: goja.loadVal({setSeconds()}) compiler.go:433: 47: goja.call(3) compiler.go:433: 48: goja._pop({}) compiler.go:433: 49: goja.loadDynamic(assert) compiler.go:433: 50: goja.getPropCallee(sameValue) compiler.go:433: 51: goja.loadDynamic(Date) compiler.go:433: 52: goja.loadVal({0}) compiler.go:433: 53: goja._new(1) compiler.go:433: 54: goja.getPropCallee(setUTCSeconds) compiler.go:433: 55: goja.loadVal({12}) compiler.go:433: 56: goja.call(1) compiler.go:433: 57: goja.loadVal({12000}) compiler.go:433: 58: goja.loadVal({setUTCSeconds()}) compiler.go:433: 59: goja.call(3) compiler.go:433: 60: goja._pop({}) compiler.go:433: 61: goja.loadDynamic(assert) compiler.go:433: 62: goja.getPropCallee(sameValue) compiler.go:433: 63: goja.loadDynamic(Date) compiler.go:433: 64: goja.loadVal({0}) compiler.go:433: 65: goja._new(1) compiler.go:433: 66: goja.getPropCallee(setMinutes) compiler.go:433: 67: goja.loadVal({12}) compiler.go:433: 68: goja.call(1) compiler.go:433: 69: goja.loadVal({720}) compiler.go:433: 70: goja.loadVal({1000}) compiler.go:433: 71: goja._mul({}) compiler.go:433: 72: goja.loadVal({setMinutes()}) compiler.go:433: 73: goja.call(3) compiler.go:433: 74: goja._pop({}) compiler.go:433: 75: goja.loadDynamic(assert) compiler.go:433: 76: goja.getPropCallee(sameValue) compiler.go:433: 77: goja.loadDynamic(Date) compiler.go:433: 78: goja.loadVal({0}) compiler.go:433: 79: goja._new(1) compiler.go:433: 80: goja.getPropCallee(setUTCMinutes) compiler.go:433: 81: goja.loadVal({12}) compiler.go:433: 82: goja.call(1) compiler.go:433: 83: goja.loadVal({720}) compiler.go:433: 84: goja.loadVal({1000}) compiler.go:433: 85: goja._mul({}) compiler.go:433: 86: goja.loadVal({setUTCMinutes()}) compiler.go:433: 87: goja.call(3) compiler.go:433: 88: goja._pop({}) compiler.go:433: 89: goja.loadDynamic(assert) compiler.go:433: 90: goja.getPropCallee(sameValue) compiler.go:433: 91: goja.loadDynamic(Date) compiler.go:433: 92: goja.loadVal({2016-06-01}) compiler.go:433: 93: goja._new(1) compiler.go:433: 94: goja.getPropCallee(setHours) compiler.go:433: 95: goja.loadVal({1}) compiler.go:433: 96: goja.call(1) compiler.go:433: 97: goja.loadVal({1464739200000}) compiler.go:433: 98: goja.loadVal({setHours()}) compiler.go:433: 99: goja.call(3) compiler.go:433: 100: goja._pop({}) compiler.go:433: 101: goja.loadDynamic(assert) compiler.go:433: 102: goja.getPropCallee(sameValue) compiler.go:433: 103: goja.loadDynamic(Date) compiler.go:433: 104: goja.loadVal({2016-06-01}) compiler.go:433: 105: goja._new(1) compiler.go:433: 106: goja.getPropCallee(setUTCHours) compiler.go:433: 107: goja.loadVal({1}) compiler.go:433: 108: goja.call(1) compiler.go:433: 109: goja.loadVal({1464742800000}) compiler.go:433: 110: goja.loadVal({setUTCHours()}) compiler.go:433: 111: goja.call(3) compiler.go:433: 112: goja._pop({}) compiler.go:433: 113: goja.loadDynamic(assert) compiler.go:433: 114: goja.getPropCallee(sameValue) compiler.go:433: 115: goja.loadDynamic(Date) compiler.go:433: 116: goja.loadVal({0}) compiler.go:433: 117: goja._new(1) compiler.go:433: 118: goja.getPropCallee(setDate) compiler.go:433: 119: goja.loadVal({2}) compiler.go:433: 120: goja.call(1) compiler.go:433: 121: goja.loadVal({86400000}) compiler.go:433: 122: goja.loadVal({setDate()}) compiler.go:433: 123: goja.call(3) compiler.go:433: 124: goja._pop({}) compiler.go:433: 125: goja.loadDynamic(assert) compiler.go:433: 126: goja.getPropCallee(sameValue) compiler.go:433: 127: goja.loadDynamic(Date) compiler.go:433: 128: goja.loadVal({0}) compiler.go:433: 129: goja._new(1) compiler.go:433: 130: goja.getPropCallee(setUTCDate) compiler.go:433: 131: goja.loadVal({2}) compiler.go:433: 132: goja.call(1) compiler.go:433: 133: goja.loadVal({86400000}) compiler.go:433: 134: goja.loadVal({setUTCDate()}) compiler.go:433: 135: goja.call(3) compiler.go:433: 136: goja._pop({}) compiler.go:433: 137: goja.loadDynamic(assert) compiler.go:433: 138: goja.getPropCallee(sameValue) compiler.go:433: 139: goja.loadDynamic(Date) compiler.go:433: 140: goja.loadVal({0}) compiler.go:433: 141: goja._new(1) compiler.go:433: 142: goja.getPropCallee(setMonth) compiler.go:433: 143: goja.loadVal({2}) compiler.go:433: 144: goja.call(1) compiler.go:433: 145: goja.loadVal({5097600000}) compiler.go:433: 146: goja.loadVal({setMonth()}) compiler.go:433: 147: goja.call(3) compiler.go:433: 148: goja._pop({}) compiler.go:433: 149: goja.loadDynamic(assert) compiler.go:433: 150: goja.getPropCallee(sameValue) compiler.go:433: 151: goja.loadDynamic(Date) compiler.go:433: 152: goja.loadVal({0}) compiler.go:433: 153: goja._new(1) compiler.go:433: 154: goja.getPropCallee(setUTCMonth) compiler.go:433: 155: goja.loadVal({2}) compiler.go:433: 156: goja.call(1) compiler.go:433: 157: goja.loadVal({5097600000}) compiler.go:433: 158: goja.loadVal({setUTCMonth()}) compiler.go:433: 159: goja.call(3) compiler.go:433: 160: goja._pop({}) compiler.go:433: 161: goja.loadDynamic(assert) compiler.go:433: 162: goja.getPropCallee(sameValue) compiler.go:433: 163: goja.loadDynamic(Date) compiler.go:433: 164: goja.loadVal({0}) compiler.go:433: 165: goja._new(1) compiler.go:433: 166: goja.getPropCallee(setFullYear) compiler.go:433: 167: goja.loadVal({1971}) compiler.go:433: 168: goja.call(1) compiler.go:433: 169: goja.loadVal({31536000000}) compiler.go:433: 170: goja.loadVal({setFullYear()}) compiler.go:433: 171: goja.call(3) compiler.go:433: 172: goja._pop({}) compiler.go:433: 173: goja.loadDynamic(assert) compiler.go:433: 174: goja.getPropCallee(sameValue) compiler.go:433: 175: goja.loadDynamic(Date) compiler.go:433: 176: goja.loadVal({0}) compiler.go:433: 177: goja._new(1) compiler.go:433: 178: goja.getPropCallee(setFullYear) compiler.go:433: 179: goja.loadVal({1971}) compiler.go:433: 180: goja.loadVal({2}) compiler.go:433: 181: goja.loadVal({3}) compiler.go:433: 182: goja.call(3) compiler.go:433: 183: goja.loadVal({36806400000}) compiler.go:433: 184: goja.loadVal({setFullYear(Y,M,D)}) compiler.go:433: 185: goja.call(3) compiler.go:433: 186: goja._pop({}) compiler.go:433: 187: goja.loadDynamic(assert) compiler.go:433: 188: goja.getPropCallee(sameValue) compiler.go:433: 189: goja.loadDynamic(Date) compiler.go:433: 190: goja.loadVal({0}) compiler.go:433: 191: goja._new(1) compiler.go:433: 192: goja.getPropCallee(setUTCFullYear) compiler.go:433: 193: goja.loadVal({1971}) compiler.go:433: 194: goja.call(1) compiler.go:433: 195: goja.loadVal({31536000000}) compiler.go:433: 196: goja.loadVal({setUTCFullYear()}) compiler.go:433: 197: goja.call(3) compiler.go:433: 198: goja._pop({}) compiler.go:433: 199: goja.loadDynamic(assert) compiler.go:433: 200: goja.getPropCallee(sameValue) compiler.go:433: 201: goja.loadDynamic(Date) compiler.go:433: 202: goja.loadVal({0}) compiler.go:433: 203: goja._new(1) compiler.go:433: 204: goja.getPropCallee(setUTCFullYear) compiler.go:433: 205: goja.loadVal({1971}) compiler.go:433: 206: goja.loadVal({2}) compiler.go:433: 207: goja.loadVal({3}) compiler.go:433: 208: goja.call(3) compiler.go:433: 209: goja.loadVal({36806400000}) compiler.go:433: 210: goja.loadVal({setUTCFullYear(Y,M,D)}) compiler.go:433: 211: goja.call(3) compiler.go:433: 212: goja._pop({}) compiler.go:433: 213: goja.resolveVar1(d) compiler.go:433: 214: goja.loadDynamic(Date) compiler.go:433: 215: goja._new(0) compiler.go:433: 216: goja._initValueP({}) compiler.go:433: 217: goja.loadDynamic(d) compiler.go:433: 218: goja.getPropCallee(setTime) compiler.go:433: 219: goja.loadVal({1151877845000}) compiler.go:433: 220: goja.call(1) compiler.go:433: 221: goja._pop({}) compiler.go:433: 222: goja.loadDynamic(assert) compiler.go:433: 223: goja.getPropCallee(sameValue) compiler.go:433: 224: goja.loadDynamic(d) compiler.go:433: 225: goja.getPropCallee(getHours) compiler.go:433: 226: goja.call(0) compiler.go:433: 227: goja.loadVal({23}) compiler.go:433: 228: goja.loadVal({d.getHours()}) compiler.go:433: 229: goja.call(3) compiler.go:433: 230: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDateSetters (0.00s) === RUN TestDateParse compiler.go:433: 0: *goja.newFunc(&{0xc000361b80 testParse function testParse(str, expected) { assert.sameValue(Date.parse(str), expected, str); } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadDynamic(assert) compiler.go:433: > 2: goja.getPropCallee(sameValue) compiler.go:433: > 3: goja.loadDynamic(Date) compiler.go:433: > 4: goja.getPropCallee(parse) compiler.go:433: > 5: goja.loadStackLex(-1) compiler.go:433: > 6: goja.call(1) compiler.go:433: > 7: goja.loadStackLex(-2) compiler.go:433: > 8: goja.loadStackLex(-1) compiler.go:433: > 9: goja.call(3) compiler.go:433: > 10: goja._pop({}) compiler.go:433: > 11: goja._loadUndef({}) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[zero d minDateStr minDate maxDateStr maxDate belowRange aboveRange] [testParse] [] [] false}) compiler.go:433: 2: goja.resolveVar1(zero) compiler.go:433: 3: goja.loadDynamic(Date) compiler.go:433: 4: goja.loadVal({0}) compiler.go:433: 5: goja._new(1) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(assert) compiler.go:433: 8: goja.getPropCallee(sameValue) compiler.go:433: 9: goja.loadDynamic(zero) compiler.go:433: 10: goja.getPropCallee(valueOf) compiler.go:433: 11: goja.call(0) compiler.go:433: 12: goja.loadDynamic(Date) compiler.go:433: 13: goja.getPropCallee(parse) compiler.go:433: 14: goja.loadDynamic(zero) compiler.go:433: 15: goja.getPropCallee(toString) compiler.go:433: 16: goja.call(0) compiler.go:433: 17: goja.call(1) compiler.go:433: 18: goja.loadVal({Date.parse(zeroDate.toString())}) compiler.go:433: 19: goja.call(3) compiler.go:433: 20: goja._pop({}) compiler.go:433: 21: goja.loadDynamic(assert) compiler.go:433: 22: goja.getPropCallee(sameValue) compiler.go:433: 23: goja.loadDynamic(zero) compiler.go:433: 24: goja.getPropCallee(valueOf) compiler.go:433: 25: goja.call(0) compiler.go:433: 26: goja.loadDynamic(Date) compiler.go:433: 27: goja.getPropCallee(parse) compiler.go:433: 28: goja.loadDynamic(zero) compiler.go:433: 29: goja.getPropCallee(toUTCString) compiler.go:433: 30: goja.call(0) compiler.go:433: 31: goja.call(1) compiler.go:433: 32: goja.loadVal({Date.parse(zeroDate.toUTCString())}) compiler.go:433: 33: goja.call(3) compiler.go:433: 34: goja._pop({}) compiler.go:433: 35: goja.loadDynamic(assert) compiler.go:433: 36: goja.getPropCallee(sameValue) compiler.go:433: 37: goja.loadDynamic(zero) compiler.go:433: 38: goja.getPropCallee(valueOf) compiler.go:433: 39: goja.call(0) compiler.go:433: 40: goja.loadDynamic(Date) compiler.go:433: 41: goja.getPropCallee(parse) compiler.go:433: 42: goja.loadDynamic(zero) compiler.go:433: 43: goja.getPropCallee(toISOString) compiler.go:433: 44: goja.call(0) compiler.go:433: 45: goja.call(1) compiler.go:433: 46: goja.loadVal({Date.parse(zeroDate.toISOString())}) compiler.go:433: 47: goja.call(3) compiler.go:433: 48: goja._pop({}) compiler.go:433: 49: goja.loadDynamicCallee(testParse) compiler.go:433: 50: goja.loadVal({Mon, 02 Jan 2006 15:04:05 MST}) compiler.go:433: 51: goja.loadVal({1136239445000}) compiler.go:433: 52: goja.call(2) compiler.go:433: 53: goja._pop({}) compiler.go:433: 54: goja.loadDynamicCallee(testParse) compiler.go:433: 55: goja.loadVal({Tue, 22 Jun 2021 13:54:40 GMT}) compiler.go:433: 56: goja.loadVal({1624370080000}) compiler.go:433: 57: goja.call(2) compiler.go:433: 58: goja._pop({}) compiler.go:433: 59: goja.loadDynamicCallee(testParse) compiler.go:433: 60: goja.loadVal({Tuesday, 22 Jun 2021 13:54:40 GMT}) compiler.go:433: 61: goja.loadVal({1624370080000}) compiler.go:433: 62: goja.call(2) compiler.go:433: 63: goja._pop({}) compiler.go:433: 64: goja.loadDynamicCallee(testParse) compiler.go:433: 65: goja.loadVal({Mon, 02 Jan 2006 15:04:05 GMT-07:00 (MST)}) compiler.go:433: 66: goja.loadVal({1136239445000}) compiler.go:433: 67: goja.call(2) compiler.go:433: 68: goja._pop({}) compiler.go:433: 69: goja.loadDynamicCallee(testParse) compiler.go:433: 70: goja.loadVal({Mon, 02 Jan 2006 15:04:05 -07:00 (MST)}) compiler.go:433: 71: goja.loadVal({1136239445000}) compiler.go:433: 72: goja.call(2) compiler.go:433: 73: goja._pop({}) compiler.go:433: 74: goja.loadDynamicCallee(testParse) compiler.go:433: 75: goja.loadVal({Monday, 02 Jan 2006 15:04:05 -0700 (MST)}) compiler.go:433: 76: goja.loadVal({1136239445000}) compiler.go:433: 77: goja.call(2) compiler.go:433: 78: goja._pop({}) compiler.go:433: 79: goja.loadDynamicCallee(testParse) compiler.go:433: 80: goja.loadVal({Mon Jan 02 2006 15:04:05 GMT-0700 (GMT Standard Time)}) compiler.go:433: 81: goja.loadVal({1136239445000}) compiler.go:433: 82: goja.call(2) compiler.go:433: 83: goja._pop({}) compiler.go:433: 84: goja.loadDynamicCallee(testParse) compiler.go:433: 85: goja.loadVal({Mon Jan 2 15:04:05 MST 2006}) compiler.go:433: 86: goja.loadVal({1136239445000}) compiler.go:433: 87: goja.call(2) compiler.go:433: 88: goja._pop({}) compiler.go:433: 89: goja.loadDynamicCallee(testParse) compiler.go:433: 90: goja.loadVal({Mon Jan 02 15:04:05 MST 2006}) compiler.go:433: 91: goja.loadVal({1136239445000}) compiler.go:433: 92: goja.call(2) compiler.go:433: 93: goja._pop({}) compiler.go:433: 94: goja.loadDynamicCallee(testParse) compiler.go:433: 95: goja.loadVal({Mon Jan 2 15:04:05 2006}) compiler.go:433: 96: goja.loadVal({1136232245000}) compiler.go:433: 97: goja.call(2) compiler.go:433: 98: goja._pop({}) compiler.go:433: 99: goja.loadDynamicCallee(testParse) compiler.go:433: 100: goja.loadVal({Mon Jan 02 15:04:05 -0700 2006}) compiler.go:433: 101: goja.loadVal({1136239445000}) compiler.go:433: 102: goja.call(2) compiler.go:433: 103: goja._pop({}) compiler.go:433: 104: goja.loadDynamicCallee(testParse) compiler.go:433: 105: goja.loadVal({Mon Jan 02 3:4 PM -0700 2006}) compiler.go:433: 106: goja.loadVal({1136239440000}) compiler.go:433: 107: goja.call(2) compiler.go:433: 108: goja._pop({}) compiler.go:433: 109: goja.loadDynamicCallee(testParse) compiler.go:433: 110: goja.loadVal({December 04, 1986}) compiler.go:433: 111: goja.loadVal({534056400000}) compiler.go:433: 112: goja.call(2) compiler.go:433: 113: goja._pop({}) compiler.go:433: 114: goja.loadDynamicCallee(testParse) compiler.go:433: 115: goja.loadVal({Dec 04, 1986}) compiler.go:433: 116: goja.loadVal({534056400000}) compiler.go:433: 117: goja.call(2) compiler.go:433: 118: goja._pop({}) compiler.go:433: 119: goja.loadDynamicCallee(testParse) compiler.go:433: 120: goja.loadVal({Dec 4, 1986}) compiler.go:433: 121: goja.loadVal({534056400000}) compiler.go:433: 122: goja.call(2) compiler.go:433: 123: goja._pop({}) compiler.go:433: 124: goja.loadDynamicCallee(testParse) compiler.go:433: 125: goja.loadVal({2006-01-02T15:04:05.000Z}) compiler.go:433: 126: goja.loadVal({1136214245000}) compiler.go:433: 127: goja.call(2) compiler.go:433: 128: goja._pop({}) compiler.go:433: 129: goja.loadDynamicCallee(testParse) compiler.go:433: 130: goja.loadVal({2006-06-02T15:04:05.000}) compiler.go:433: 131: goja.loadVal({1149275045000}) compiler.go:433: 132: goja.call(2) compiler.go:433: 133: goja._pop({}) compiler.go:433: 134: goja.loadDynamicCallee(testParse) compiler.go:433: 135: goja.loadVal({2006-01-02T15:04:05}) compiler.go:433: 136: goja.loadVal({1136232245000}) compiler.go:433: 137: goja.call(2) compiler.go:433: 138: goja._pop({}) compiler.go:433: 139: goja.loadDynamicCallee(testParse) compiler.go:433: 140: goja.loadVal({2006-01-02 15:04:05.123}) compiler.go:433: 141: goja.loadVal({1136232245123}) compiler.go:433: 142: goja.call(2) compiler.go:433: 143: goja._pop({}) compiler.go:433: 144: goja.loadDynamicCallee(testParse) compiler.go:433: 145: goja.loadVal({2006-01-02}) compiler.go:433: 146: goja.loadVal({1136160000000}) compiler.go:433: 147: goja.call(2) compiler.go:433: 148: goja._pop({}) compiler.go:433: 149: goja.loadDynamicCallee(testParse) compiler.go:433: 150: goja.loadVal({2006T15:04-0700}) compiler.go:433: 151: goja.loadVal({1136153040000}) compiler.go:433: 152: goja.call(2) compiler.go:433: 153: goja._pop({}) compiler.go:433: 154: goja.loadDynamicCallee(testParse) compiler.go:433: 155: goja.loadVal({2006T15:04+07:00}) compiler.go:433: 156: goja.loadVal({1136102640000}) compiler.go:433: 157: goja.call(2) compiler.go:433: 158: goja._pop({}) compiler.go:433: 159: goja.loadDynamicCallee(testParse) compiler.go:433: 160: goja.loadVal({2006T15:04Z}) compiler.go:433: 161: goja.loadVal({1136127840000}) compiler.go:433: 162: goja.call(2) compiler.go:433: 163: goja._pop({}) compiler.go:433: 164: goja.loadDynamicCallee(testParse) compiler.go:433: 165: goja.loadVal({2019-01-01T12:00:00.52Z}) compiler.go:433: 166: goja.loadVal({1546344000520}) compiler.go:433: 167: goja.call(2) compiler.go:433: 168: goja._pop({}) compiler.go:433: 169: goja.loadDynamicCallee(testParse) compiler.go:433: 170: goja.loadVal({2019-01T12:00:00.52Z}) compiler.go:433: 171: goja.loadVal({1546344000520}) compiler.go:433: 172: goja.call(2) compiler.go:433: 173: goja._pop({}) compiler.go:433: 174: goja.loadDynamicCallee(testParse) compiler.go:433: 175: goja.loadVal({+002019-01-01T12:00:00.52Z}) compiler.go:433: 176: goja.loadVal({1546344000520}) compiler.go:433: 177: goja.call(2) compiler.go:433: 178: goja._pop({}) compiler.go:433: 179: goja.resolveVar1(d) compiler.go:433: 180: goja.loadDynamic(Date) compiler.go:433: 181: goja.loadVal({Mon, 02 Jan 2006 15:04:05 MST}) compiler.go:433: 182: goja._new(1) compiler.go:433: 183: goja._initValueP({}) compiler.go:433: 184: goja.loadDynamic(assert) compiler.go:433: 185: goja.getPropCallee(sameValue) compiler.go:433: 186: goja.loadDynamic(d) compiler.go:433: 187: goja.getPropCallee(getUTCHours) compiler.go:433: 188: goja.call(0) compiler.go:433: 189: goja.loadVal({22}) compiler.go:433: 190: goja.loadVal({new Date("Mon, 02 Jan 2006 15:04:05 MST").getUTCHours()}) compiler.go:433: 191: goja.call(3) compiler.go:433: 192: goja._pop({}) compiler.go:433: 193: goja.loadDynamic(assert) compiler.go:433: 194: goja.getPropCallee(sameValue) compiler.go:433: 195: goja.loadDynamic(d) compiler.go:433: 196: goja.getPropCallee(getHours) compiler.go:433: 197: goja.call(0) compiler.go:433: 198: goja.loadVal({17}) compiler.go:433: 199: goja.loadVal({new Date("Mon, 02 Jan 2006 15:04:05 MST").getHours()}) compiler.go:433: 200: goja.call(3) compiler.go:433: 201: goja._pop({}) compiler.go:433: 202: goja.loadDynamic(assert) compiler.go:433: 203: goja.getPropCallee(sameValue) compiler.go:433: 204: goja.loadDynamic(Date) compiler.go:433: 205: goja.getPropCallee(parse) compiler.go:433: 206: goja.loadVal({Mon, 02 Jan 2006 15:04:05 zzz}) compiler.go:433: 207: goja.call(1) compiler.go:433: 208: goja.loadDynamic(NaN) compiler.go:433: 209: goja.loadVal({Date.parse("Mon, 02 Jan 2006 15:04:05 zzz")}) compiler.go:433: 210: goja.call(3) compiler.go:433: 211: goja._pop({}) compiler.go:433: 212: goja.loadDynamic(assert) compiler.go:433: 213: goja.getPropCallee(sameValue) compiler.go:433: 214: goja.loadDynamic(Date) compiler.go:433: 215: goja.getPropCallee(parse) compiler.go:433: 216: goja.loadVal({Mon, 02 Jan 2006 15:04:05 ZZZ}) compiler.go:433: 217: goja.call(1) compiler.go:433: 218: goja.loadDynamic(NaN) compiler.go:433: 219: goja.loadVal({Date.parse("Mon, 02 Jan 2006 15:04:05 ZZZ")}) compiler.go:433: 220: goja.call(3) compiler.go:433: 221: goja._pop({}) compiler.go:433: 222: goja.resolveVar1(minDateStr) compiler.go:433: 223: goja.loadVal({-271821-04-20T00:00:00.000Z}) compiler.go:433: 224: goja._initValueP({}) compiler.go:433: 225: goja.resolveVar1(minDate) compiler.go:433: 226: goja.loadDynamic(Date) compiler.go:433: 227: goja.loadVal({8640000000000000}) compiler.go:433: 228: goja._neg({}) compiler.go:433: 229: goja._new(1) compiler.go:433: 230: goja._initValueP({}) compiler.go:433: 231: goja.loadDynamic(assert) compiler.go:433: 232: goja.getPropCallee(sameValue) compiler.go:433: 233: goja.loadDynamic(minDate) compiler.go:433: 234: goja.getPropCallee(toISOString) compiler.go:433: 235: goja.call(0) compiler.go:433: 236: goja.loadDynamic(minDateStr) compiler.go:433: 237: goja.loadVal({minDateStr}) compiler.go:433: 238: goja.call(3) compiler.go:433: 239: goja._pop({}) compiler.go:433: 240: goja.loadDynamic(assert) compiler.go:433: 241: goja.getPropCallee(sameValue) compiler.go:433: 242: goja.loadDynamic(Date) compiler.go:433: 243: goja.getPropCallee(parse) compiler.go:433: 244: goja.loadDynamic(minDateStr) compiler.go:433: 245: goja.call(1) compiler.go:433: 246: goja.loadDynamic(minDate) compiler.go:433: 247: goja.getPropCallee(valueOf) compiler.go:433: 248: goja.call(0) compiler.go:433: 249: goja.loadVal({parse minDateStr}) compiler.go:433: 250: goja.call(3) compiler.go:433: 251: goja._pop({}) compiler.go:433: 252: goja.resolveVar1(maxDateStr) compiler.go:433: 253: goja.loadVal({+275760-09-13T00:00:00.000Z}) compiler.go:433: 254: goja._initValueP({}) compiler.go:433: 255: goja.resolveVar1(maxDate) compiler.go:433: 256: goja.loadDynamic(Date) compiler.go:433: 257: goja.loadVal({8640000000000000}) compiler.go:433: 258: goja._new(1) compiler.go:433: 259: goja._initValueP({}) compiler.go:433: 260: goja.loadDynamic(assert) compiler.go:433: 261: goja.getPropCallee(sameValue) compiler.go:433: 262: goja.loadDynamic(maxDate) compiler.go:433: 263: goja.getPropCallee(toISOString) compiler.go:433: 264: goja.call(0) compiler.go:433: 265: goja.loadDynamic(maxDateStr) compiler.go:433: 266: goja.loadVal({maxDateStr}) compiler.go:433: 267: goja.call(3) compiler.go:433: 268: goja._pop({}) compiler.go:433: 269: goja.loadDynamic(assert) compiler.go:433: 270: goja.getPropCallee(sameValue) compiler.go:433: 271: goja.loadDynamic(Date) compiler.go:433: 272: goja.getPropCallee(parse) compiler.go:433: 273: goja.loadDynamic(maxDateStr) compiler.go:433: 274: goja.call(1) compiler.go:433: 275: goja.loadDynamic(maxDate) compiler.go:433: 276: goja.getPropCallee(valueOf) compiler.go:433: 277: goja.call(0) compiler.go:433: 278: goja.loadVal({parse maxDateStr}) compiler.go:433: 279: goja.call(3) compiler.go:433: 280: goja._pop({}) compiler.go:433: 281: goja.resolveVar1(belowRange) compiler.go:433: 282: goja.loadVal({-271821-04-19T23:59:59.999Z}) compiler.go:433: 283: goja._initValueP({}) compiler.go:433: 284: goja.resolveVar1(aboveRange) compiler.go:433: 285: goja.loadVal({+275760-09-13T00:00:00.001Z}) compiler.go:433: 286: goja._initValueP({}) compiler.go:433: 287: goja.loadDynamic(assert) compiler.go:433: 288: goja.getPropCallee(sameValue) compiler.go:433: 289: goja.loadDynamic(Date) compiler.go:433: 290: goja.getPropCallee(parse) compiler.go:433: 291: goja.loadDynamic(belowRange) compiler.go:433: 292: goja.call(1) compiler.go:433: 293: goja.loadDynamic(NaN) compiler.go:433: 294: goja.loadVal({parse below minimum time value}) compiler.go:433: 295: goja.call(3) compiler.go:433: 296: goja._pop({}) compiler.go:433: 297: goja.loadDynamic(assert) compiler.go:433: 298: goja.getPropCallee(sameValue) compiler.go:433: 299: goja.loadDynamic(Date) compiler.go:433: 300: goja.getPropCallee(parse) compiler.go:433: 301: goja.loadDynamic(aboveRange) compiler.go:433: 302: goja.call(1) compiler.go:433: 303: goja.loadDynamic(NaN) compiler.go:433: 304: goja.loadVal({parse above maximum time value}) compiler.go:433: 305: goja.call(3) compiler.go:433: 306: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDateParse (0.00s) === RUN TestDateMaxValues compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(sameValue) compiler.go:433: 2: goja.loadDynamic(Date) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja.getPropCallee(setUTCMilliseconds) compiler.go:433: 6: goja.loadVal({8640000000000000}) compiler.go:433: 7: goja.call(1) compiler.go:433: 8: goja.loadVal({8640000000000000}) compiler.go:433: 9: goja.call(2) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.loadDynamic(assert) compiler.go:433: 12: goja.getPropCallee(sameValue) compiler.go:433: 13: goja.loadDynamic(Date) compiler.go:433: 14: goja.loadVal({0}) compiler.go:433: 15: goja._new(1) compiler.go:433: 16: goja.getPropCallee(setUTCSeconds) compiler.go:433: 17: goja.loadVal({8640000000000}) compiler.go:433: 18: goja.call(1) compiler.go:433: 19: goja.loadVal({8640000000000000}) compiler.go:433: 20: goja.call(2) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.loadDynamic(assert) compiler.go:433: 23: goja.getPropCallee(sameValue) compiler.go:433: 24: goja.loadDynamic(Date) compiler.go:433: 25: goja.loadVal({0}) compiler.go:433: 26: goja._new(1) compiler.go:433: 27: goja.getPropCallee(setUTCMilliseconds) compiler.go:433: 28: goja.loadVal({8640000000000000}) compiler.go:433: 29: goja._neg({}) compiler.go:433: 30: goja.call(1) compiler.go:433: 31: goja.loadVal({8640000000000000}) compiler.go:433: 32: goja._neg({}) compiler.go:433: 33: goja.call(2) compiler.go:433: 34: goja._pop({}) compiler.go:433: 35: goja.loadDynamic(assert) compiler.go:433: 36: goja.getPropCallee(sameValue) compiler.go:433: 37: goja.loadDynamic(Date) compiler.go:433: 38: goja.loadVal({0}) compiler.go:433: 39: goja._new(1) compiler.go:433: 40: goja.getPropCallee(setUTCSeconds) compiler.go:433: 41: goja.loadVal({8640000000000}) compiler.go:433: 42: goja._neg({}) compiler.go:433: 43: goja.call(1) compiler.go:433: 44: goja.loadVal({8640000000000000}) compiler.go:433: 45: goja._neg({}) compiler.go:433: 46: goja.call(2) compiler.go:433: 47: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDateMaxValues (0.00s) === RUN TestDateExport --- PASS: TestDateExport (0.00s) === RUN TestDateToJSON compiler.go:433: 0: goja.loadDynamic(Date) compiler.go:433: 1: goja.getProp(prototype) compiler.go:433: 2: goja.getProp(toJSON) compiler.go:433: 3: goja.getPropCallee(call) compiler.go:433: 4: goja._newObject({}) compiler.go:433: 5: *goja.newFunc(&{0xc00036c280 toISOString function () { return 1; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({1}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 6: goja.putProp(toISOString) compiler.go:433: 7: goja.call(1) compiler.go:433: 8: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDateToJSON (0.00s) === RUN TestDateExportType --- PASS: TestDateExportType (0.00s) === RUN TestDateParseV8 compiler.go:433: 0: *goja.newFunc(&{0xc00036c910 testDateParse function testDateParse(string) { var d = Date.parse(string); assertEquals(946713600000, d, "parse: " + string); } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 1}) compiler.go:433: > 1: goja.loadDynamic(Date) compiler.go:433: > 2: goja.getPropCallee(parse) compiler.go:433: > 3: goja.loadStackLex(-1) compiler.go:433: > 4: goja.call(1) compiler.go:433: > 5: goja.initStackP(1) compiler.go:433: > 6: goja.loadDynamicCallee(assertEquals) compiler.go:433: > 7: goja.loadVal({946713600000}) compiler.go:433: > 8: goja.loadStack(1) compiler.go:433: > 9: goja.loadVal({parse: }) compiler.go:433: > 10: goja.loadStackLex(-1) compiler.go:433: > 11: goja._add({}) compiler.go:433: > 12: goja.call(3) compiler.go:433: > 13: goja._pop({}) compiler.go:433: > 14: goja._loadUndef({}) compiler.go:433: > 15: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc00036c960 testDateParseLocalTime function testDateParseLocalTime(string) { var d = Date.parse("parse-local-time:" + string); assertTrue(!isNaN(d), "parse-local-time: " + string + " is NaN."); assertTrue(d > 0, "parse-local-time: " + string + " <= 0."); } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 1}) compiler.go:433: > 1: goja.loadDynamic(Date) compiler.go:433: > 2: goja.getPropCallee(parse) compiler.go:433: > 3: goja.loadVal({parse-local-time:}) compiler.go:433: > 4: goja.loadStackLex(-1) compiler.go:433: > 5: goja._add({}) compiler.go:433: > 6: goja.call(1) compiler.go:433: > 7: goja.initStackP(1) compiler.go:433: > 8: goja.loadDynamicCallee(assertTrue) compiler.go:433: > 9: goja.loadDynamicCallee(isNaN) compiler.go:433: > 10: goja.loadStack(1) compiler.go:433: > 11: goja.call(1) compiler.go:433: > 12: goja._not({}) compiler.go:433: > 13: goja.loadVal({parse-local-time: }) compiler.go:433: > 14: goja.loadStackLex(-1) compiler.go:433: > 15: goja._add({}) compiler.go:433: > 16: goja.loadVal({ is NaN.}) compiler.go:433: > 17: goja._add({}) compiler.go:433: > 18: goja.call(2) compiler.go:433: > 19: goja._pop({}) compiler.go:433: > 20: goja.loadDynamicCallee(assertTrue) compiler.go:433: > 21: goja.loadStack(1) compiler.go:433: > 22: goja.loadVal({0}) compiler.go:433: > 23: goja._op_gt({}) compiler.go:433: > 24: goja.loadVal({parse-local-time: }) compiler.go:433: > 25: goja.loadStackLex(-1) compiler.go:433: > 26: goja._add({}) compiler.go:433: > 27: goja.loadVal({ <= 0.}) compiler.go:433: > 28: goja._add({}) compiler.go:433: > 29: goja.call(2) compiler.go:433: > 30: goja._pop({}) compiler.go:433: > 31: goja._loadUndef({}) compiler.go:433: > 32: goja._ret({}) compiler.go:433: 2: *goja.newFunc(&{0xc00036c9b0 testDateParseMisc function testDateParseMisc(array) { assertEquals(2, array.length, "array [" + array + "] length != 2."); var string = array[0]; var expected = array[1]; var d = Date.parse(string); assertEquals(expected, d, "parse-misc: " + string); } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{3 1}) compiler.go:433: > 1: goja.loadDynamicCallee(assertEquals) compiler.go:433: > 2: goja.loadVal({2}) compiler.go:433: > 3: goja.loadStackLex(-1) compiler.go:433: > 4: goja.getProp(length) compiler.go:433: > 5: goja.loadVal({array [}) compiler.go:433: > 6: goja.loadStackLex(-1) compiler.go:433: > 7: goja._add({}) compiler.go:433: > 8: goja.loadVal({] length != 2.}) compiler.go:433: > 9: goja._add({}) compiler.go:433: > 10: goja.call(3) compiler.go:433: > 11: goja._pop({}) compiler.go:433: > 12: goja.loadStackLex(-1) compiler.go:433: > 13: goja.loadVal({0}) compiler.go:433: > 14: goja._getElem({}) compiler.go:433: > 15: goja.initStackP(1) compiler.go:433: > 16: goja.loadStackLex(-1) compiler.go:433: > 17: goja.loadVal({1}) compiler.go:433: > 18: goja._getElem({}) compiler.go:433: > 19: goja.initStackP(2) compiler.go:433: > 20: goja.loadDynamic(Date) compiler.go:433: > 21: goja.getPropCallee(parse) compiler.go:433: > 22: goja.loadStack(1) compiler.go:433: > 23: goja.call(1) compiler.go:433: > 24: goja.initStackP(3) compiler.go:433: > 25: goja.loadDynamicCallee(assertEquals) compiler.go:433: > 26: goja.loadStack(2) compiler.go:433: > 27: goja.loadStack(3) compiler.go:433: > 28: goja.loadVal({parse-misc: }) compiler.go:433: > 29: goja.loadStack(1) compiler.go:433: > 30: goja._add({}) compiler.go:433: > 31: goja.call(3) compiler.go:433: > 32: goja._pop({}) compiler.go:433: > 33: goja._loadUndef({}) compiler.go:433: > 34: goja._ret({}) compiler.go:433: 3: *goja.bindGlobal(&{[testCasesUT testCasesGMT testCasesEST testCasesEDT testCasesCST testCasesCDT testCasesMST testCasesMDT testCasesPST testCasesPDT testCasesLocalTime testCasesMisc testCasesES5Misc testCasesES5MiscNegative localOffset testCasesES2016TZ i ms s testCasesNegative] [testDateParse testDateParseLocalTime testDateParseMisc] [] [assertEquals assertTrue] false}) compiler.go:433: 4: goja.loadDynamic(assert) compiler.go:433: 5: goja.getProp(sameValue) compiler.go:433: 6: goja.initGlobalP(assertEquals) compiler.go:433: 7: goja.loadDynamic(assert) compiler.go:433: 8: goja.initGlobalP(assertTrue) compiler.go:433: 9: goja.resolveVar1(testCasesUT) compiler.go:433: 10: goja.newArray(52) compiler.go:433: 11: goja.loadVal({Sat, 01-Jan-2000 08:00:00 UT}) compiler.go:433: 12: goja._pushArrayItem({}) compiler.go:433: 13: goja.loadVal({Sat, 01 Jan 2000 08:00:00 UT}) compiler.go:433: 14: goja._pushArrayItem({}) compiler.go:433: 15: goja.loadVal({Jan 01 2000 08:00:00 UT}) compiler.go:433: 16: goja._pushArrayItem({}) compiler.go:433: 17: goja.loadVal({Jan 01 08:00:00 UT 2000}) compiler.go:433: 18: goja._pushArrayItem({}) compiler.go:433: 19: goja.loadVal({Saturday, 01-Jan-00 08:00:00 UT}) compiler.go:433: 20: goja._pushArrayItem({}) compiler.go:433: 21: goja.loadVal({01 Jan 00 08:00 +0000}) compiler.go:433: 22: goja._pushArrayItem({}) compiler.go:433: 23: goja.loadVal({Mon, 01 Jan 2000 08:00:00 UT}) compiler.go:433: 24: goja._pushArrayItem({}) compiler.go:433: 25: goja.loadVal({Tue, 01 Jan 2000 08:00:00 UT}) compiler.go:433: 26: goja._pushArrayItem({}) compiler.go:433: 27: goja.loadVal({[Saturday] Jan 01 08:00:00 UT 2000}) compiler.go:433: 28: goja._pushArrayItem({}) compiler.go:433: 29: goja.loadVal({Ignore all of this stuff because it is annoying 01 Jan 2000 08:00:00 UT}) compiler.go:433: 30: goja._pushArrayItem({}) compiler.go:433: 31: goja.loadVal({[Saturday] Jan 01 2000 08:00:00 UT}) compiler.go:433: 32: goja._pushArrayItem({}) compiler.go:433: 33: goja.loadVal({All of this stuff is really annoying, so it will be ignored Jan 01 2000 08:00:00 UT}) compiler.go:433: 34: goja._pushArrayItem({}) compiler.go:433: 35: goja.loadVal({Sat, 01-Janisamonth-2000 08:00:00 UT}) compiler.go:433: 36: goja._pushArrayItem({}) compiler.go:433: 37: goja.loadVal({Sat, 01 Janisamonth 2000 08:00:00 UT}) compiler.go:433: 38: goja._pushArrayItem({}) compiler.go:433: 39: goja.loadVal({Janisamonth 01 2000 08:00:00 UT}) compiler.go:433: 40: goja._pushArrayItem({}) compiler.go:433: 41: goja.loadVal({Janisamonth 01 08:00:00 UT 2000}) compiler.go:433: 42: goja._pushArrayItem({}) compiler.go:433: 43: goja.loadVal({Saturday, 01-Janisamonth-00 08:00:00 UT}) compiler.go:433: 44: goja._pushArrayItem({}) compiler.go:433: 45: goja.loadVal({01 Janisamonth 00 08:00 +0000}) compiler.go:433: 46: goja._pushArrayItem({}) compiler.go:433: 47: goja.loadVal({Janisamonthandtherestisignored01 2000 08:00:00 UT}) compiler.go:433: 48: goja._pushArrayItem({}) compiler.go:433: 49: goja.loadVal({Jan01 2000 08:00:00 UT}) compiler.go:433: 50: goja._pushArrayItem({}) compiler.go:433: 51: goja.loadVal({Sat, 2000/01/01 08:00:00 UT}) compiler.go:433: 52: goja._pushArrayItem({}) compiler.go:433: 53: goja.loadVal({Sat, 01/01/2000 08:00:00 UT}) compiler.go:433: 54: goja._pushArrayItem({}) compiler.go:433: 55: goja.loadVal({Sat, 01/01 2000 08:00:00 UT}) compiler.go:433: 56: goja._pushArrayItem({}) compiler.go:433: 57: goja.loadVal({Sat, 01,Jan,2000,08:00:00 UT}) compiler.go:433: 58: goja._pushArrayItem({}) compiler.go:433: 59: goja.loadVal({Sat, 01-Jan-2000 08:00 UT}) compiler.go:433: 60: goja._pushArrayItem({}) compiler.go:433: 61: goja.loadVal({Sat, 01 Jan 2000 08:00 UT}) compiler.go:433: 62: goja._pushArrayItem({}) compiler.go:433: 63: goja.loadVal({Jan 01 2000 08:00 UT}) compiler.go:433: 64: goja._pushArrayItem({}) compiler.go:433: 65: goja.loadVal({Jan 01 08:00 UT 2000}) compiler.go:433: 66: goja._pushArrayItem({}) compiler.go:433: 67: goja.loadVal({Saturday, 01-Jan-00 08:00 UT}) compiler.go:433: 68: goja._pushArrayItem({}) compiler.go:433: 69: goja.loadVal({01 Jan 00 08:00 +0000}) compiler.go:433: 70: goja._pushArrayItem({}) compiler.go:433: 71: goja.loadVal({Sat, 01-Jan-2000 08:00 AM UT}) compiler.go:433: 72: goja._pushArrayItem({}) compiler.go:433: 73: goja.loadVal({Sat, 01 Jan 2000 08:00 AM UT}) compiler.go:433: 74: goja._pushArrayItem({}) compiler.go:433: 75: goja.loadVal({Jan 01 2000 08:00 AM UT}) compiler.go:433: 76: goja._pushArrayItem({}) compiler.go:433: 77: goja.loadVal({Jan 01 08:00 AM UT 2000}) compiler.go:433: 78: goja._pushArrayItem({}) compiler.go:433: 79: goja.loadVal({Saturday, 01-Jan-00 08:00 AM UT}) compiler.go:433: 80: goja._pushArrayItem({}) compiler.go:433: 81: goja.loadVal({01 Jan 00 08:00 AM +0000}) compiler.go:433: 82: goja._pushArrayItem({}) compiler.go:433: 83: goja.loadVal({ Sat, 01-Jan-2000 08:00:00 UT }) compiler.go:433: 84: goja._pushArrayItem({}) compiler.go:433: 85: goja.loadVal({ Sat, 01 Jan 2000 08:00:00 UT }) compiler.go:433: 86: goja._pushArrayItem({}) compiler.go:433: 87: goja.loadVal({ Saturday, 01-Jan-00 08:00:00 UT }) compiler.go:433: 88: goja._pushArrayItem({}) compiler.go:433: 89: goja.loadVal({ 01 Jan 00 08:00 +0000 }) compiler.go:433: 90: goja._pushArrayItem({}) compiler.go:433: 91: goja.loadVal({ ()(Sat, 01-Jan-2000) Sat, 01-Jan-2000 08:00:00 UT }) compiler.go:433: 92: goja._pushArrayItem({}) compiler.go:433: 93: goja.loadVal({ Sat()(Sat, 01-Jan-2000)01 Jan 2000 08:00:00 UT }) compiler.go:433: 94: goja._pushArrayItem({}) compiler.go:433: 95: goja.loadVal({ Sat,(02)01 Jan 2000 08:00:00 UT }) compiler.go:433: 96: goja._pushArrayItem({}) compiler.go:433: 97: goja.loadVal({ Sat, 01(02)Jan 2000 08:00:00 UT }) compiler.go:433: 98: goja._pushArrayItem({}) compiler.go:433: 99: goja.loadVal({ Sat, 01 Jan 2000 (2001)08:00:00 UT }) compiler.go:433: 100: goja._pushArrayItem({}) compiler.go:433: 101: goja.loadVal({ Sat, 01 Jan 2000 (01)08:00:00 UT }) compiler.go:433: 102: goja._pushArrayItem({}) compiler.go:433: 103: goja.loadVal({ Sat, 01 Jan 2000 (01:00:00)08:00:00 UT }) compiler.go:433: 104: goja._pushArrayItem({}) compiler.go:433: 105: goja.loadVal({ Sat, 01 Jan 2000 08:00:00 (CDT)UT }) compiler.go:433: 106: goja._pushArrayItem({}) compiler.go:433: 107: goja.loadVal({ Sat, 01 Jan 2000 08:00:00 UT((((CDT))))}) compiler.go:433: 108: goja._pushArrayItem({}) compiler.go:433: 109: goja.loadVal({ Saturday, 01-Jan-00 ()(((asfd)))(Sat, 01-Jan-2000)08:00:00 UT }) compiler.go:433: 110: goja._pushArrayItem({}) compiler.go:433: 111: goja.loadVal({ 01 Jan 00 08:00 ()(((asdf)))(Sat, 01-Jan-2000)+0000 }) compiler.go:433: 112: goja._pushArrayItem({}) compiler.go:433: 113: goja.loadVal({ 01 Jan 00 08:00 +0000()((asfd)(Sat, 01-Jan-2000)) }) compiler.go:433: 114: goja._pushArrayItem({}) compiler.go:433: 115: goja._initValueP({}) compiler.go:433: 116: goja.resolveVar1(testCasesGMT) compiler.go:433: 117: goja.newArray(10) compiler.go:433: 118: goja.loadVal({Sat, 01-Jan-2000 08:00:00 GMT}) compiler.go:433: 119: goja._pushArrayItem({}) compiler.go:433: 120: goja.loadVal({Sat, 01-Jan-2000 08:00:00 GMT+0}) compiler.go:433: 121: goja._pushArrayItem({}) compiler.go:433: 122: goja.loadVal({Sat, 01-Jan-2000 08:00:00 GMT+00}) compiler.go:433: 123: goja._pushArrayItem({}) compiler.go:433: 124: goja.loadVal({Sat, 01-Jan-2000 08:00:00 GMT+000}) compiler.go:433: 125: goja._pushArrayItem({}) compiler.go:433: 126: goja.loadVal({Sat, 01-Jan-2000 08:00:00 GMT+0000}) compiler.go:433: 127: goja._pushArrayItem({}) compiler.go:433: 128: goja.loadVal({Sat, 01-Jan-2000 08:00:00 GMT+00:00}) compiler.go:433: 129: goja._pushArrayItem({}) compiler.go:433: 130: goja.loadVal({Sat, 01 Jan 2000 08:00:00 GMT}) compiler.go:433: 131: goja._pushArrayItem({}) compiler.go:433: 132: goja.loadVal({Saturday, 01-Jan-00 08:00:00 GMT}) compiler.go:433: 133: goja._pushArrayItem({}) compiler.go:433: 134: goja.loadVal({01 Jan 00 08:00 -0000}) compiler.go:433: 135: goja._pushArrayItem({}) compiler.go:433: 136: goja.loadVal({01 Jan 00 08:00 +0000}) compiler.go:433: 137: goja._pushArrayItem({}) compiler.go:433: 138: goja._initValueP({}) compiler.go:433: 139: goja.resolveVar1(testCasesEST) compiler.go:433: 140: goja.newArray(6) compiler.go:433: 141: goja.loadVal({Sat, 01-Jan-2000 03:00:00 UTC-0500}) compiler.go:433: 142: goja._pushArrayItem({}) compiler.go:433: 143: goja.loadVal({Sat, 01-Jan-2000 03:00:00 UTC-05:00}) compiler.go:433: 144: goja._pushArrayItem({}) compiler.go:433: 145: goja.loadVal({Sat, 01-Jan-2000 03:00:00 EST}) compiler.go:433: 146: goja._pushArrayItem({}) compiler.go:433: 147: goja.loadVal({Sat, 01 Jan 2000 03:00:00 EST}) compiler.go:433: 148: goja._pushArrayItem({}) compiler.go:433: 149: goja.loadVal({Saturday, 01-Jan-00 03:00:00 EST}) compiler.go:433: 150: goja._pushArrayItem({}) compiler.go:433: 151: goja.loadVal({01 Jan 00 03:00 -0500}) compiler.go:433: 152: goja._pushArrayItem({}) compiler.go:433: 153: goja._initValueP({}) compiler.go:433: 154: goja.resolveVar1(testCasesEDT) compiler.go:433: 155: goja.newArray(4) compiler.go:433: 156: goja.loadVal({Sat, 01-Jan-2000 04:00:00 EDT}) compiler.go:433: 157: goja._pushArrayItem({}) compiler.go:433: 158: goja.loadVal({Sat, 01 Jan 2000 04:00:00 EDT}) compiler.go:433: 159: goja._pushArrayItem({}) compiler.go:433: 160: goja.loadVal({Saturday, 01-Jan-00 04:00:00 EDT}) compiler.go:433: 161: goja._pushArrayItem({}) compiler.go:433: 162: goja.loadVal({01 Jan 00 04:00 -0400}) compiler.go:433: 163: goja._pushArrayItem({}) compiler.go:433: 164: goja._initValueP({}) compiler.go:433: 165: goja.resolveVar1(testCasesCST) compiler.go:433: 166: goja.newArray(4) compiler.go:433: 167: goja.loadVal({Sat, 01-Jan-2000 02:00:00 CST}) compiler.go:433: 168: goja._pushArrayItem({}) compiler.go:433: 169: goja.loadVal({Sat, 01 Jan 2000 02:00:00 CST}) compiler.go:433: 170: goja._pushArrayItem({}) compiler.go:433: 171: goja.loadVal({Saturday, 01-Jan-00 02:00:00 CST}) compiler.go:433: 172: goja._pushArrayItem({}) compiler.go:433: 173: goja.loadVal({01 Jan 00 02:00 -0600}) compiler.go:433: 174: goja._pushArrayItem({}) compiler.go:433: 175: goja._initValueP({}) compiler.go:433: 176: goja.resolveVar1(testCasesCDT) compiler.go:433: 177: goja.newArray(4) compiler.go:433: 178: goja.loadVal({Sat, 01-Jan-2000 03:00:00 CDT}) compiler.go:433: 179: goja._pushArrayItem({}) compiler.go:433: 180: goja.loadVal({Sat, 01 Jan 2000 03:00:00 CDT}) compiler.go:433: 181: goja._pushArrayItem({}) compiler.go:433: 182: goja.loadVal({Saturday, 01-Jan-00 03:00:00 CDT}) compiler.go:433: 183: goja._pushArrayItem({}) compiler.go:433: 184: goja.loadVal({01 Jan 00 03:00 -0500}) compiler.go:433: 185: goja._pushArrayItem({}) compiler.go:433: 186: goja._initValueP({}) compiler.go:433: 187: goja.resolveVar1(testCasesMST) compiler.go:433: 188: goja.newArray(4) compiler.go:433: 189: goja.loadVal({Sat, 01-Jan-2000 01:00:00 MST}) compiler.go:433: 190: goja._pushArrayItem({}) compiler.go:433: 191: goja.loadVal({Sat, 01 Jan 2000 01:00:00 MST}) compiler.go:433: 192: goja._pushArrayItem({}) compiler.go:433: 193: goja.loadVal({Saturday, 01-Jan-00 01:00:00 MST}) compiler.go:433: 194: goja._pushArrayItem({}) compiler.go:433: 195: goja.loadVal({01 Jan 00 01:00 -0700}) compiler.go:433: 196: goja._pushArrayItem({}) compiler.go:433: 197: goja._initValueP({}) compiler.go:433: 198: goja.resolveVar1(testCasesMDT) compiler.go:433: 199: goja.newArray(4) compiler.go:433: 200: goja.loadVal({Sat, 01-Jan-2000 02:00:00 MDT}) compiler.go:433: 201: goja._pushArrayItem({}) compiler.go:433: 202: goja.loadVal({Sat, 01 Jan 2000 02:00:00 MDT}) compiler.go:433: 203: goja._pushArrayItem({}) compiler.go:433: 204: goja.loadVal({Saturday, 01-Jan-00 02:00:00 MDT}) compiler.go:433: 205: goja._pushArrayItem({}) compiler.go:433: 206: goja.loadVal({01 Jan 00 02:00 -0600}) compiler.go:433: 207: goja._pushArrayItem({}) compiler.go:433: 208: goja._initValueP({}) compiler.go:433: 209: goja.resolveVar1(testCasesPST) compiler.go:433: 210: goja.newArray(5) compiler.go:433: 211: goja.loadVal({Sat, 01-Jan-2000 00:00:00 PST}) compiler.go:433: 212: goja._pushArrayItem({}) compiler.go:433: 213: goja.loadVal({Sat, 01 Jan 2000 00:00:00 PST}) compiler.go:433: 214: goja._pushArrayItem({}) compiler.go:433: 215: goja.loadVal({Saturday, 01-Jan-00 00:00:00 PST}) compiler.go:433: 216: goja._pushArrayItem({}) compiler.go:433: 217: goja.loadVal({01 Jan 00 00:00 -0800}) compiler.go:433: 218: goja._pushArrayItem({}) compiler.go:433: 219: goja.loadVal({Sat, 01-Jan-2000 PST}) compiler.go:433: 220: goja._pushArrayItem({}) compiler.go:433: 221: goja._initValueP({}) compiler.go:433: 222: goja.resolveVar1(testCasesPDT) compiler.go:433: 223: goja.newArray(4) compiler.go:433: 224: goja.loadVal({Sat, 01-Jan-2000 01:00:00 PDT}) compiler.go:433: 225: goja._pushArrayItem({}) compiler.go:433: 226: goja.loadVal({Sat, 01 Jan 2000 01:00:00 PDT}) compiler.go:433: 227: goja._pushArrayItem({}) compiler.go:433: 228: goja.loadVal({Saturday, 01-Jan-00 01:00:00 PDT}) compiler.go:433: 229: goja._pushArrayItem({}) compiler.go:433: 230: goja.loadVal({01 Jan 00 01:00 -0700}) compiler.go:433: 231: goja._pushArrayItem({}) compiler.go:433: 232: goja._initValueP({}) compiler.go:433: 233: goja.resolveVar1(testCasesLocalTime) compiler.go:433: 234: goja.newArray(6) compiler.go:433: 235: goja.loadVal({Sat, 01-Jan-2000 08:00:00}) compiler.go:433: 236: goja._pushArrayItem({}) compiler.go:433: 237: goja.loadVal({Sat, 01 Jan 2000 08:00:00}) compiler.go:433: 238: goja._pushArrayItem({}) compiler.go:433: 239: goja.loadVal({Jan 01 2000 08:00:00}) compiler.go:433: 240: goja._pushArrayItem({}) compiler.go:433: 241: goja.loadVal({Jan 01 08:00:00 2000}) compiler.go:433: 242: goja._pushArrayItem({}) compiler.go:433: 243: goja.loadVal({Saturday, 01-Jan-00 08:00:00}) compiler.go:433: 244: goja._pushArrayItem({}) compiler.go:433: 245: goja.loadVal({01 Jan 00 08:00}) compiler.go:433: 246: goja._pushArrayItem({}) compiler.go:433: 247: goja._initValueP({}) compiler.go:433: 248: goja.resolveVar1(testCasesMisc) compiler.go:433: 249: goja.newArray(11) compiler.go:433: 250: goja.newArray(2) compiler.go:433: 251: goja.loadVal({Sat, 01 Jan 0 08:00:00 UT}) compiler.go:433: 252: goja._pushArrayItem({}) compiler.go:433: 253: goja.loadVal({946713600000}) compiler.go:433: 254: goja._pushArrayItem({}) compiler.go:433: 255: goja._pushArrayItem({}) compiler.go:433: 256: goja.newArray(2) compiler.go:433: 257: goja.loadVal({Sat, 01 Jan 49 08:00:00 UT}) compiler.go:433: 258: goja._pushArrayItem({}) compiler.go:433: 259: goja.loadVal({2493100800000}) compiler.go:433: 260: goja._pushArrayItem({}) compiler.go:433: 261: goja._pushArrayItem({}) compiler.go:433: 262: goja.newArray(2) compiler.go:433: 263: goja.loadVal({Sat, 01 Jan 50 08:00:00 UT}) compiler.go:433: 264: goja._pushArrayItem({}) compiler.go:433: 265: goja.loadVal({-631123200000}) compiler.go:433: 266: goja._pushArrayItem({}) compiler.go:433: 267: goja._pushArrayItem({}) compiler.go:433: 268: goja.newArray(2) compiler.go:433: 269: goja.loadVal({Sat, 01 Jan 99 08:00:00 UT}) compiler.go:433: 270: goja._pushArrayItem({}) compiler.go:433: 271: goja.loadVal({915177600000}) compiler.go:433: 272: goja._pushArrayItem({}) compiler.go:433: 273: goja._pushArrayItem({}) compiler.go:433: 274: goja.newArray(2) compiler.go:433: 275: goja.loadVal({Sat, 01 Jan 100 08:00:00 UT}) compiler.go:433: 276: goja._pushArrayItem({}) compiler.go:433: 277: goja.loadVal({-59011430400000}) compiler.go:433: 278: goja._pushArrayItem({}) compiler.go:433: 279: goja._pushArrayItem({}) compiler.go:433: 280: goja.newArray(2) compiler.go:433: 281: goja.loadVal({Sat, 01-Jan-2000 08:00 PM UT}) compiler.go:433: 282: goja._pushArrayItem({}) compiler.go:433: 283: goja.loadVal({946756800000}) compiler.go:433: 284: goja._pushArrayItem({}) compiler.go:433: 285: goja._pushArrayItem({}) compiler.go:433: 286: goja.newArray(2) compiler.go:433: 287: goja.loadVal({Sat, 01 Jan 2000 08:00 PM UT}) compiler.go:433: 288: goja._pushArrayItem({}) compiler.go:433: 289: goja.loadVal({946756800000}) compiler.go:433: 290: goja._pushArrayItem({}) compiler.go:433: 291: goja._pushArrayItem({}) compiler.go:433: 292: goja.newArray(2) compiler.go:433: 293: goja.loadVal({Jan 01 2000 08:00 PM UT}) compiler.go:433: 294: goja._pushArrayItem({}) compiler.go:433: 295: goja.loadVal({946756800000}) compiler.go:433: 296: goja._pushArrayItem({}) compiler.go:433: 297: goja._pushArrayItem({}) compiler.go:433: 298: goja.newArray(2) compiler.go:433: 299: goja.loadVal({Jan 01 08:00 PM UT 2000}) compiler.go:433: 300: goja._pushArrayItem({}) compiler.go:433: 301: goja.loadVal({946756800000}) compiler.go:433: 302: goja._pushArrayItem({}) compiler.go:433: 303: goja._pushArrayItem({}) compiler.go:433: 304: goja.newArray(2) compiler.go:433: 305: goja.loadVal({Saturday, 01-Jan-00 08:00 PM UT}) compiler.go:433: 306: goja._pushArrayItem({}) compiler.go:433: 307: goja.loadVal({946756800000}) compiler.go:433: 308: goja._pushArrayItem({}) compiler.go:433: 309: goja._pushArrayItem({}) compiler.go:433: 310: goja.newArray(2) compiler.go:433: 311: goja.loadVal({01 Jan 00 08:00 PM +0000}) compiler.go:433: 312: goja._pushArrayItem({}) compiler.go:433: 313: goja.loadVal({946756800000}) compiler.go:433: 314: goja._pushArrayItem({}) compiler.go:433: 315: goja._pushArrayItem({}) compiler.go:433: 316: goja._initValueP({}) compiler.go:433: 317: goja.resolveVar1(testCasesES5Misc) compiler.go:433: 318: goja.newArray(15) compiler.go:433: 319: goja.newArray(2) compiler.go:433: 320: goja.loadVal({2000-01-01T08:00:00.000Z}) compiler.go:433: 321: goja._pushArrayItem({}) compiler.go:433: 322: goja.loadVal({946713600000}) compiler.go:433: 323: goja._pushArrayItem({}) compiler.go:433: 324: goja._pushArrayItem({}) compiler.go:433: 325: goja.newArray(2) compiler.go:433: 326: goja.loadVal({2000-01-01T08:00:00Z}) compiler.go:433: 327: goja._pushArrayItem({}) compiler.go:433: 328: goja.loadVal({946713600000}) compiler.go:433: 329: goja._pushArrayItem({}) compiler.go:433: 330: goja._pushArrayItem({}) compiler.go:433: 331: goja.newArray(2) compiler.go:433: 332: goja.loadVal({2000-01-01T08:00Z}) compiler.go:433: 333: goja._pushArrayItem({}) compiler.go:433: 334: goja.loadVal({946713600000}) compiler.go:433: 335: goja._pushArrayItem({}) compiler.go:433: 336: goja._pushArrayItem({}) compiler.go:433: 337: goja.newArray(2) compiler.go:433: 338: goja.loadVal({2000-01T08:00:00.000Z}) compiler.go:433: 339: goja._pushArrayItem({}) compiler.go:433: 340: goja.loadVal({946713600000}) compiler.go:433: 341: goja._pushArrayItem({}) compiler.go:433: 342: goja._pushArrayItem({}) compiler.go:433: 343: goja.newArray(2) compiler.go:433: 344: goja.loadVal({2000T08:00:00.000Z}) compiler.go:433: 345: goja._pushArrayItem({}) compiler.go:433: 346: goja.loadVal({946713600000}) compiler.go:433: 347: goja._pushArrayItem({}) compiler.go:433: 348: goja._pushArrayItem({}) compiler.go:433: 349: goja.newArray(2) compiler.go:433: 350: goja.loadVal({2000T08:00Z}) compiler.go:433: 351: goja._pushArrayItem({}) compiler.go:433: 352: goja.loadVal({946713600000}) compiler.go:433: 353: goja._pushArrayItem({}) compiler.go:433: 354: goja._pushArrayItem({}) compiler.go:433: 355: goja.newArray(2) compiler.go:433: 356: goja.loadVal({2000-01T00:00:00.000-08:00}) compiler.go:433: 357: goja._pushArrayItem({}) compiler.go:433: 358: goja.loadVal({946713600000}) compiler.go:433: 359: goja._pushArrayItem({}) compiler.go:433: 360: goja._pushArrayItem({}) compiler.go:433: 361: goja.newArray(2) compiler.go:433: 362: goja.loadVal({2000-01T08:00:00.001Z}) compiler.go:433: 363: goja._pushArrayItem({}) compiler.go:433: 364: goja.loadVal({946713600001}) compiler.go:433: 365: goja._pushArrayItem({}) compiler.go:433: 366: goja._pushArrayItem({}) compiler.go:433: 367: goja.newArray(2) compiler.go:433: 368: goja.loadVal({2000-01T08:00:00.099Z}) compiler.go:433: 369: goja._pushArrayItem({}) compiler.go:433: 370: goja.loadVal({946713600099}) compiler.go:433: 371: goja._pushArrayItem({}) compiler.go:433: 372: goja._pushArrayItem({}) compiler.go:433: 373: goja.newArray(2) compiler.go:433: 374: goja.loadVal({2000-01T08:00:00.999Z}) compiler.go:433: 375: goja._pushArrayItem({}) compiler.go:433: 376: goja.loadVal({946713600999}) compiler.go:433: 377: goja._pushArrayItem({}) compiler.go:433: 378: goja._pushArrayItem({}) compiler.go:433: 379: goja.newArray(2) compiler.go:433: 380: goja.loadVal({2000-01T00:00:00.001-08:00}) compiler.go:433: 381: goja._pushArrayItem({}) compiler.go:433: 382: goja.loadVal({946713600001}) compiler.go:433: 383: goja._pushArrayItem({}) compiler.go:433: 384: goja._pushArrayItem({}) compiler.go:433: 385: goja.newArray(2) compiler.go:433: 386: goja.loadVal({2000-01-01T24:00Z}) compiler.go:433: 387: goja._pushArrayItem({}) compiler.go:433: 388: goja.loadVal({946771200000}) compiler.go:433: 389: goja._pushArrayItem({}) compiler.go:433: 390: goja._pushArrayItem({}) compiler.go:433: 391: goja.newArray(2) compiler.go:433: 392: goja.loadVal({2000-01-01T24:00:00Z}) compiler.go:433: 393: goja._pushArrayItem({}) compiler.go:433: 394: goja.loadVal({946771200000}) compiler.go:433: 395: goja._pushArrayItem({}) compiler.go:433: 396: goja._pushArrayItem({}) compiler.go:433: 397: goja.newArray(2) compiler.go:433: 398: goja.loadVal({2000-01-01T24:00:00.000Z}) compiler.go:433: 399: goja._pushArrayItem({}) compiler.go:433: 400: goja.loadVal({946771200000}) compiler.go:433: 401: goja._pushArrayItem({}) compiler.go:433: 402: goja._pushArrayItem({}) compiler.go:433: 403: goja.newArray(2) compiler.go:433: 404: goja.loadVal({2000-01-01T24:00:00.000Z}) compiler.go:433: 405: goja._pushArrayItem({}) compiler.go:433: 406: goja.loadVal({946771200000}) compiler.go:433: 407: goja._pushArrayItem({}) compiler.go:433: 408: goja._pushArrayItem({}) compiler.go:433: 409: goja._initValueP({}) compiler.go:433: 410: goja.resolveVar1(testCasesES5MiscNegative) compiler.go:433: 411: goja.newArray(9) compiler.go:433: 412: goja.loadVal({2000-01-01TZ}) compiler.go:433: 413: goja._pushArrayItem({}) compiler.go:433: 414: goja.loadVal({2000-01-01T60Z}) compiler.go:433: 415: goja._pushArrayItem({}) compiler.go:433: 416: goja.loadVal({2000-01-01T60:60Z}) compiler.go:433: 417: goja._pushArrayItem({}) compiler.go:433: 418: goja.loadVal({2000-01-0108:00Z}) compiler.go:433: 419: goja._pushArrayItem({}) compiler.go:433: 420: goja.loadVal({2000-01-01T08Z}) compiler.go:433: 421: goja._pushArrayItem({}) compiler.go:433: 422: goja.loadVal({2000-01-01T24:01}) compiler.go:433: 423: goja._pushArrayItem({}) compiler.go:433: 424: goja.loadVal({2000-01-01T24:00:01}) compiler.go:433: 425: goja._pushArrayItem({}) compiler.go:433: 426: goja.loadVal({2000-01-01T24:00:00.001}) compiler.go:433: 427: goja._pushArrayItem({}) compiler.go:433: 428: goja.loadVal({2000-01-01T24:00:00.999Z}) compiler.go:433: 429: goja._pushArrayItem({}) compiler.go:433: 430: goja._initValueP({}) compiler.go:433: 431: goja.resolveVar1(localOffset) compiler.go:433: 432: goja.loadDynamic(Date) compiler.go:433: 433: goja.loadVal({2000-01-01}) compiler.go:433: 434: goja._new(1) compiler.go:433: 435: goja.getPropCallee(getTimezoneOffset) compiler.go:433: 436: goja.call(0) compiler.go:433: 437: goja.loadVal({1000}) compiler.go:433: 438: goja._mul({}) compiler.go:433: 439: goja.loadVal({60}) compiler.go:433: 440: goja._mul({}) compiler.go:433: 441: goja._initValueP({}) compiler.go:433: 442: goja._loadGlobalObject({}) compiler.go:433: 443: goja.getProp(Intl) compiler.go:433: 444: goja.jne(18) compiler.go:433: 445: goja.newArray(3) compiler.go:433: 446: goja.loadVal({America/Los_Angeles}) compiler.go:433: 447: goja._pushArrayItem({}) compiler.go:433: 448: goja.loadVal({Europe/Berlin}) compiler.go:433: 449: goja._pushArrayItem({}) compiler.go:433: 450: goja.loadVal({Europe/Madrid}) compiler.go:433: 451: goja._pushArrayItem({}) compiler.go:433: 452: goja.getPropCallee(indexOf) compiler.go:433: 453: goja.loadDynamic(Intl) compiler.go:433: 454: goja.getPropCallee(DateTimeFormat) compiler.go:433: 455: goja.call(0) compiler.go:433: 456: goja.getPropCallee(resolvedOptions) compiler.go:433: 457: goja.call(0) compiler.go:433: 458: goja.getProp(timeZone) compiler.go:433: 459: goja.call(1) compiler.go:433: 460: goja.loadVal({-1}) compiler.go:433: 461: goja._op_neq({}) compiler.go:433: 462: goja.jneP(7) compiler.go:433: 463: goja.loadDynamicCallee(assertTrue) compiler.go:433: 464: goja.loadDynamic(localOffset) compiler.go:433: 465: goja.loadVal({0}) compiler.go:433: 466: goja._op_neq({}) compiler.go:433: 467: goja.call(1) compiler.go:433: 468: goja._pop({}) compiler.go:433: 469: goja.resolveVar1(testCasesES2016TZ) compiler.go:433: 470: goja.newArray(6) compiler.go:433: 471: goja.newArray(2) compiler.go:433: 472: goja.loadVal({2000-01-02T00:00}) compiler.go:433: 473: goja._pushArrayItem({}) compiler.go:433: 474: goja.loadVal({946771200000}) compiler.go:433: 475: goja.loadDynamic(localOffset) compiler.go:433: 476: goja._add({}) compiler.go:433: 477: goja._pushArrayItem({}) compiler.go:433: 478: goja._pushArrayItem({}) compiler.go:433: 479: goja.newArray(2) compiler.go:433: 480: goja.loadVal({2000-01-02T00:00:00}) compiler.go:433: 481: goja._pushArrayItem({}) compiler.go:433: 482: goja.loadVal({946771200000}) compiler.go:433: 483: goja.loadDynamic(localOffset) compiler.go:433: 484: goja._add({}) compiler.go:433: 485: goja._pushArrayItem({}) compiler.go:433: 486: goja._pushArrayItem({}) compiler.go:433: 487: goja.newArray(2) compiler.go:433: 488: goja.loadVal({2000-01-02T00:00:00.000}) compiler.go:433: 489: goja._pushArrayItem({}) compiler.go:433: 490: goja.loadVal({946771200000}) compiler.go:433: 491: goja.loadDynamic(localOffset) compiler.go:433: 492: goja._add({}) compiler.go:433: 493: goja._pushArrayItem({}) compiler.go:433: 494: goja._pushArrayItem({}) compiler.go:433: 495: goja.newArray(2) compiler.go:433: 496: goja.loadVal({2000-01-02}) compiler.go:433: 497: goja._pushArrayItem({}) compiler.go:433: 498: goja.loadVal({946771200000}) compiler.go:433: 499: goja._pushArrayItem({}) compiler.go:433: 500: goja._pushArrayItem({}) compiler.go:433: 501: goja.newArray(2) compiler.go:433: 502: goja.loadVal({2000-01-02}) compiler.go:433: 503: goja._pushArrayItem({}) compiler.go:433: 504: goja.loadVal({946771200000}) compiler.go:433: 505: goja._pushArrayItem({}) compiler.go:433: 506: goja._pushArrayItem({}) compiler.go:433: 507: goja.newArray(2) compiler.go:433: 508: goja.loadVal({2000-01-02}) compiler.go:433: 509: goja._pushArrayItem({}) compiler.go:433: 510: goja.loadVal({946771200000}) compiler.go:433: 511: goja._pushArrayItem({}) compiler.go:433: 512: goja._pushArrayItem({}) compiler.go:433: 513: goja._initValueP({}) compiler.go:433: 514: goja.loadDynamic(testCasesUT) compiler.go:433: 515: goja.getPropCallee(forEach) compiler.go:433: 516: goja.loadDynamic(testDateParse) compiler.go:433: 517: goja.call(1) compiler.go:433: 518: goja._pop({}) compiler.go:433: 519: goja.loadDynamic(testCasesGMT) compiler.go:433: 520: goja.getPropCallee(forEach) compiler.go:433: 521: goja.loadDynamic(testDateParse) compiler.go:433: 522: goja.call(1) compiler.go:433: 523: goja._pop({}) compiler.go:433: 524: goja.loadDynamic(testCasesEST) compiler.go:433: 525: goja.getPropCallee(forEach) compiler.go:433: 526: goja.loadDynamic(testDateParse) compiler.go:433: 527: goja.call(1) compiler.go:433: 528: goja._pop({}) compiler.go:433: 529: goja.loadDynamic(testCasesEDT) compiler.go:433: 530: goja.getPropCallee(forEach) compiler.go:433: 531: goja.loadDynamic(testDateParse) compiler.go:433: 532: goja.call(1) compiler.go:433: 533: goja._pop({}) compiler.go:433: 534: goja.loadDynamic(testCasesCST) compiler.go:433: 535: goja.getPropCallee(forEach) compiler.go:433: 536: goja.loadDynamic(testDateParse) compiler.go:433: 537: goja.call(1) compiler.go:433: 538: goja._pop({}) compiler.go:433: 539: goja.loadDynamic(testCasesCDT) compiler.go:433: 540: goja.getPropCallee(forEach) compiler.go:433: 541: goja.loadDynamic(testDateParse) compiler.go:433: 542: goja.call(1) compiler.go:433: 543: goja._pop({}) compiler.go:433: 544: goja.loadDynamic(testCasesMST) compiler.go:433: 545: goja.getPropCallee(forEach) compiler.go:433: 546: goja.loadDynamic(testDateParse) compiler.go:433: 547: goja.call(1) compiler.go:433: 548: goja._pop({}) compiler.go:433: 549: goja.loadDynamic(testCasesMDT) compiler.go:433: 550: goja.getPropCallee(forEach) compiler.go:433: 551: goja.loadDynamic(testDateParse) compiler.go:433: 552: goja.call(1) compiler.go:433: 553: goja._pop({}) compiler.go:433: 554: goja.loadDynamic(testCasesPST) compiler.go:433: 555: goja.getPropCallee(forEach) compiler.go:433: 556: goja.loadDynamic(testDateParse) compiler.go:433: 557: goja.call(1) compiler.go:433: 558: goja._pop({}) compiler.go:433: 559: goja.loadDynamic(testCasesPDT) compiler.go:433: 560: goja.getPropCallee(forEach) compiler.go:433: 561: goja.loadDynamic(testDateParse) compiler.go:433: 562: goja.call(1) compiler.go:433: 563: goja._pop({}) compiler.go:433: 564: goja.loadDynamic(testCasesLocalTime) compiler.go:433: 565: goja.getPropCallee(forEach) compiler.go:433: 566: goja.loadDynamic(testDateParseLocalTime) compiler.go:433: 567: goja.call(1) compiler.go:433: 568: goja._pop({}) compiler.go:433: 569: goja.loadDynamic(testCasesMisc) compiler.go:433: 570: goja.getPropCallee(forEach) compiler.go:433: 571: goja.loadDynamic(testDateParseMisc) compiler.go:433: 572: goja.call(1) compiler.go:433: 573: goja._pop({}) compiler.go:433: 574: goja.loadDynamic(testCasesES5Misc) compiler.go:433: 575: goja.getPropCallee(forEach) compiler.go:433: 576: goja.loadDynamic(testDateParseMisc) compiler.go:433: 577: goja.call(1) compiler.go:433: 578: goja._pop({}) compiler.go:433: 579: goja.loadDynamic(testCasesES5MiscNegative) compiler.go:433: 580: goja.getPropCallee(forEach) compiler.go:433: 581: *goja.newFunc(&{0xc00036caf0 function (s) { assertTrue(isNaN(Date.parse(s)), s + " is not NaN."); } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadDynamicCallee(assertTrue) compiler.go:433: > 2: goja.loadDynamicCallee(isNaN) compiler.go:433: > 3: goja.loadDynamic(Date) compiler.go:433: > 4: goja.getPropCallee(parse) compiler.go:433: > 5: goja.loadStackLex(-1) compiler.go:433: > 6: goja.call(1) compiler.go:433: > 7: goja.call(1) compiler.go:433: > 8: goja.loadStackLex(-1) compiler.go:433: > 9: goja.loadVal({ is not NaN.}) compiler.go:433: > 10: goja._add({}) compiler.go:433: > 11: goja.call(2) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 582: goja.call(1) compiler.go:433: 583: goja._pop({}) compiler.go:433: 584: goja.loadDynamic(testCasesES2016TZ) compiler.go:433: 585: goja.getPropCallee(forEach) compiler.go:433: 586: goja.loadDynamic(testDateParseMisc) compiler.go:433: 587: goja.call(1) compiler.go:433: 588: goja._pop({}) compiler.go:433: 589: goja.resolveVar1(i) compiler.go:433: 590: goja.loadVal({0}) compiler.go:433: 591: goja._initValueP({}) compiler.go:433: 592: goja.loadDynamic(i) compiler.go:433: 593: goja.loadVal({876000}) compiler.go:433: 594: goja._op_lt({}) compiler.go:433: 595: goja.jneP(30) compiler.go:433: 596: goja.resolveVar1(ms) compiler.go:433: 597: goja.loadDynamic(i) compiler.go:433: 598: goja.loadVal({3600000}) compiler.go:433: 599: goja._mul({}) compiler.go:433: 600: goja._initValueP({}) compiler.go:433: 601: goja.resolveVar1(s) compiler.go:433: 602: goja.loadDynamic(Date) compiler.go:433: 603: goja.loadDynamic(ms) compiler.go:433: 604: goja._new(1) compiler.go:433: 605: goja.getPropCallee(toString) compiler.go:433: 606: goja.call(0) compiler.go:433: 607: goja._initValueP({}) compiler.go:433: 608: goja.loadDynamicCallee(assertEquals) compiler.go:433: 609: goja.loadDynamic(ms) compiler.go:433: 610: goja.loadDynamic(Date) compiler.go:433: 611: goja.getPropCallee(parse) compiler.go:433: 612: goja.loadDynamic(s) compiler.go:433: 613: goja.call(1) compiler.go:433: 614: goja.loadVal({parse own: }) compiler.go:433: 615: goja.loadDynamic(s) compiler.go:433: 616: goja._add({}) compiler.go:433: 617: goja.call(3) compiler.go:433: 618: goja._pop({}) compiler.go:433: 619: goja.resolveVar1(i) compiler.go:433: 620: goja._getValue({}) compiler.go:433: 621: goja.loadVal({150}) compiler.go:433: 622: goja._add({}) compiler.go:433: 623: goja._putValueP({}) compiler.go:433: 624: goja.jump(-32) compiler.go:433: 625: goja.resolveVar1(testCasesNegative) compiler.go:433: 626: goja.newArray(6) compiler.go:433: 627: goja.loadVal({May 25 2008 1:30 (PM)) UTC}) compiler.go:433: 628: goja._pushArrayItem({}) compiler.go:433: 629: goja.loadVal({May 25 2008 1:30( )AM (PM)}) compiler.go:433: 630: goja._pushArrayItem({}) compiler.go:433: 631: goja.loadVal({a1}) compiler.go:433: 632: goja._pushArrayItem({}) compiler.go:433: 633: goja.loadVal({nasfdjklsfjoaifg1}) compiler.go:433: 634: goja._pushArrayItem({}) compiler.go:433: 635: goja.loadVal({x_2}) compiler.go:433: 636: goja._pushArrayItem({}) compiler.go:433: 637: goja.loadVal({May 25 2008 AAA (GMT)}) compiler.go:433: 638: goja._pushArrayItem({}) compiler.go:433: 639: goja._initValueP({}) compiler.go:433: 640: goja.loadDynamic(testCasesNegative) compiler.go:433: 641: goja.getPropCallee(forEach) compiler.go:433: 642: *goja.newFunc(&{0xc00036cbe0 function (s) { assertTrue(isNaN(Date.parse(s)), s + " is not NaN."); } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadDynamicCallee(assertTrue) compiler.go:433: > 2: goja.loadDynamicCallee(isNaN) compiler.go:433: > 3: goja.loadDynamic(Date) compiler.go:433: > 4: goja.getPropCallee(parse) compiler.go:433: > 5: goja.loadStackLex(-1) compiler.go:433: > 6: goja.call(1) compiler.go:433: > 7: goja.call(1) compiler.go:433: > 8: goja.loadStackLex(-1) compiler.go:433: > 9: goja.loadVal({ is not NaN.}) compiler.go:433: > 10: goja._add({}) compiler.go:433: > 11: goja.call(2) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 643: goja.call(1) compiler.go:433: 644: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDateParseV8 (0.03s) === RUN TestFuncProto compiler.go:433: 0: *goja.newFunc(&{0xc00036c280 A function A() {} 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.newFunc(&{0xc00036c2d0 B function B() {} 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 2: *goja.bindGlobal(&{[thrown] [A B] [] [] false}) compiler.go:433: 3: goja.loadDynamic(A) compiler.go:433: 4: goja.loadDynamic(Object) compiler.go:433: 5: goja.setPropStrictP(__proto__) compiler.go:433: 6: goja.loadDynamic(A) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja.setPropStrictP(prototype) compiler.go:433: 9: goja.loadDynamic(B) compiler.go:433: 10: goja.loadDynamic(Object) compiler.go:433: 11: goja.getPropCallee(create) compiler.go:433: 12: goja.loadVal({{}}) compiler.go:433: 13: goja.call(1) compiler.go:433: 14: goja.setPropStrictP(__proto__) compiler.go:433: 15: goja.resolveVar1Strict(thrown) compiler.go:433: 16: goja.loadVal({false}) compiler.go:433: 17: goja._initValueP({}) compiler.go:433: 18: goja.try({5 0}) compiler.go:433: 19: goja.loadDynamic(B) compiler.go:433: 20: goja.deletePropStrict(prototype) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.jump(8) compiler.go:433: 23: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 24: goja.resolveVar1Strict(thrown) compiler.go:433: 25: goja.loadStackLex(1) compiler.go:433: 26: goja.loadDynamic(TypeError) compiler.go:433: 27: goja._op_instanceof({}) compiler.go:433: 28: goja._putValueP({}) compiler.go:433: 29: *goja.leaveBlock(&{1 false}) compiler.go:433: 30: goja.leaveTry({}) compiler.go:433: 31: goja.loadDynamic(thrown) compiler.go:433: 32: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFuncProto (0.00s) === RUN TestFuncPrototypeRedefine compiler.go:433: 0: *goja.bindGlobal(&{[] [] [thrown] [] false}) compiler.go:433: 1: goja.loadVal({false}) compiler.go:433: 2: goja.initGlobalP(thrown) compiler.go:433: 3: goja.try({11 0}) compiler.go:433: 4: goja.loadDynamic(Object) compiler.go:433: 5: goja.getPropCallee(defineProperty) compiler.go:433: 6: *goja.newFunc(&{0xc00036c5f0 function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 7: goja.loadVal({prototype}) compiler.go:433: 8: goja._newObject({}) compiler.go:433: 9: *goja.newFunc(&{0xc00036c640 set function(_value) {} 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 10: goja.putProp(set) compiler.go:433: 11: goja.call(3) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: goja.jump(13) compiler.go:433: 14: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 15: goja.loadStackLex(1) compiler.go:433: 16: goja.loadDynamic(TypeError) compiler.go:433: 17: goja._op_instanceof({}) compiler.go:433: 18: goja.jneP(5) compiler.go:433: 19: goja.resolveVar1(thrown) compiler.go:433: 20: goja.loadVal({true}) compiler.go:433: 21: goja._putValueP({}) compiler.go:433: 22: goja.jump(3) compiler.go:433: 23: goja.loadStackLex(1) compiler.go:433: 24: goja._throw({}) compiler.go:433: 25: *goja.leaveBlock(&{1 false}) compiler.go:433: 26: goja.leaveTry({}) compiler.go:433: 27: goja.loadDynamic(thrown) compiler.go:433: 28: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFuncPrototypeRedefine (0.00s) === RUN TestFuncExport === RUN TestFuncExport/regular_function === RUN TestFuncExport/arrow_function === RUN TestFuncExport/method --- PASS: TestFuncExport (0.00s) --- PASS: TestFuncExport/regular_function (0.00s) --- PASS: TestFuncExport/arrow_function (0.00s) --- PASS: TestFuncExport/method (0.00s) === RUN TestFuncWrapUnwrap --- PASS: TestFuncWrapUnwrap (0.00s) === RUN TestWrappedFunc compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [s] false}) compiler.go:433: 1: goja.loadDynamic(assert) compiler.go:433: 2: goja.getPropCallee(sameValue) compiler.go:433: 3: goja.loadDynamicRef(f) compiler.go:433: 4: goja._typeof({}) compiler.go:433: 5: goja.loadVal({function}) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja._pop({}) compiler.go:433: 8: goja.loadDynamic(f) compiler.go:433: 9: goja.getPropCallee(toString) compiler.go:433: 10: goja.call(0) compiler.go:433: 11: goja.initGlobalP(s) compiler.go:433: 12: goja.loadDynamicCallee(assert) compiler.go:433: 13: goja.loadDynamic(s) compiler.go:433: 14: goja.getPropCallee(endsWith) compiler.go:433: 15: goja.loadVal({TestWrappedFunc.func1() { [native code] }}) compiler.go:433: 16: goja.call(1) compiler.go:433: 17: goja.loadDynamic(s) compiler.go:433: 18: goja.call(2) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.loadDynamicCallee(assert) compiler.go:433: 21: goja.loadDynamicCallee(f) compiler.go:433: 22: goja.loadVal({1}) compiler.go:433: 23: goja.loadVal({a}) compiler.go:433: 24: goja.call(2) compiler.go:433: 25: goja.call(1) compiler.go:433: 26: goja._pop({}) compiler.go:433: 27: goja.loadDynamicCallee(assert) compiler.go:433: 28: goja.loadDynamicCallee(f) compiler.go:433: 29: goja.loadVal({0}) compiler.go:433: 30: goja.loadVal({}) compiler.go:433: 31: goja.call(2) compiler.go:433: 32: goja._not({}) compiler.go:433: 33: goja.call(1) compiler.go:433: 34: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestWrappedFunc (0.00s) === RUN TestWrappedFuncErrorPassthrough --- PASS: TestWrappedFuncErrorPassthrough (0.00s) === RUN TestAsyncContextTracker === RUN TestAsyncContextTracker/#00 === NAME TestAsyncContextTracker func_test.go:224: Set 1 func_test.go:237: In line A func_test.go:174: Grab 1 func_test.go:216: Returned 1 func_test.go:181: Resumed &{1 1} func_test.go:237: In line B func_test.go:224: Set 2 func_test.go:237: In line C func_test.go:174: Grab 2 func_test.go:216: Returned 2 func_test.go:200: Exited func_test.go:195: 1 is finished func_test.go:181: Resumed &{2 1} func_test.go:237: In line D func_test.go:200: Exited func_test.go:195: 2 is finished func_test.go:181: Resumed func_test.go:237: In line E func_test.go:200: Exited === RUN TestAsyncContextTracker/#01 === NAME TestAsyncContextTracker func_test.go:224: Set some func_test.go:237: In line A func_test.go:237: In line B func_test.go:174: Grab some func_test.go:237: In line E func_test.go:216: Returned some func_test.go:181: Resumed &{some 1} func_test.go:237: In line C func_test.go:174: Grab some func_test.go:200: Exited func_test.go:181: Resumed &{some 1} func_test.go:237: In line D func_test.go:200: Exited func_test.go:195: some is finished === RUN TestAsyncContextTracker/#02 === NAME TestAsyncContextTracker func_test.go:224: Set Main func_test.go:237: In 0.1 func_test.go:224: Set A func_test.go:237: In 1.1 func_test.go:174: Grab A func_test.go:216: Returned A func_test.go:237: In 3.1 func_test.go:224: Set B func_test.go:237: In 2.1 func_test.go:174: Grab B func_test.go:216: Returned B func_test.go:174: Grab Main func_test.go:174: Grab Main func_test.go:174: Grab Main func_test.go:174: Grab Main func_test.go:216: Returned Main func_test.go:181: Resumed &{A 1} func_test.go:237: In 1.2 func_test.go:200: Exited func_test.go:195: A is finished func_test.go:181: Resumed &{B 1} func_test.go:237: In 2.2 func_test.go:200: Exited func_test.go:195: B is finished func_test.go:181: Resumed &{Main 4} func_test.go:200: Exited func_test.go:181: Resumed &{Main 3} func_test.go:200: Exited func_test.go:181: Resumed &{Main 2} func_test.go:200: Exited func_test.go:181: Resumed &{Main 1} func_test.go:237: In 0.2 func_test.go:200: Exited func_test.go:195: Main is finished --- PASS: TestAsyncContextTracker (0.00s) --- PASS: TestAsyncContextTracker/#00 (0.00s) --- PASS: TestAsyncContextTracker/#01 (0.00s) --- PASS: TestAsyncContextTracker/#02 (0.00s) === RUN TestMapHash --- PASS: TestMapHash (0.00s) === RUN TestOrderedMap --- PASS: TestOrderedMap (0.00s) === RUN TestOrderedMapCollision --- PASS: TestOrderedMapCollision (0.00s) === RUN TestOrderedMapIter --- PASS: TestOrderedMapIter (0.00s) === RUN TestOrderedMapIterVisitAfterReAdd --- PASS: TestOrderedMapIterVisitAfterReAdd (0.00s) === RUN TestOrderedMapIterAddAfterClear --- PASS: TestOrderedMapIterAddAfterClear (0.00s) === RUN TestOrderedMapIterDeleteCurrent --- PASS: TestOrderedMapIterDeleteCurrent (0.00s) === RUN TestDynamicObject compiler.go:433: 0: *goja.bindGlobal(&{[keys key] [] [] [] false}) compiler.go:433: 1: goja.loadDynamicCallee(assert) compiler.go:433: 2: goja.loadDynamic(o) compiler.go:433: 3: goja.loadDynamic(Object) compiler.go:433: 4: goja._op_instanceof({}) compiler.go:433: 5: goja.loadVal({instanceof Object}) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja._pop({}) compiler.go:433: 8: goja.loadDynamicCallee(assert) compiler.go:433: 9: goja.loadDynamic(o) compiler.go:433: 10: goja.loadDynamic(o) compiler.go:433: 11: goja._op_strict_eq({}) compiler.go:433: 12: goja.loadVal({self equality}) compiler.go:433: 13: goja.call(2) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja.loadDynamicCallee(assert) compiler.go:433: 16: goja.loadDynamic(o) compiler.go:433: 17: goja._newObject({}) compiler.go:433: 18: goja._op_strict_neq({}) compiler.go:433: 19: goja.loadVal({non-equality}) compiler.go:433: 20: goja.call(2) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.loadDynamic(o) compiler.go:433: 23: goja.loadVal({42}) compiler.go:433: 24: goja.setPropP(test) compiler.go:433: 25: goja.loadDynamicCallee(assert) compiler.go:433: 26: goja.loadVal({test}) compiler.go:433: 27: goja.loadDynamic(o) compiler.go:433: 28: goja._op_in({}) compiler.go:433: 29: goja.loadVal({'test' in o}) compiler.go:433: 30: goja.call(2) compiler.go:433: 31: goja._pop({}) compiler.go:433: 32: goja.loadDynamicCallee(assert) compiler.go:433: 33: goja.loadDynamicCallee(deepEqual) compiler.go:433: 34: goja.loadDynamic(Object) compiler.go:433: 35: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 36: goja.loadDynamic(o) compiler.go:433: 37: goja.loadVal({test}) compiler.go:433: 38: goja.call(2) compiler.go:433: 39: goja._newObject({}) compiler.go:433: 40: goja.loadVal({42}) compiler.go:433: 41: goja.putProp(value) compiler.go:433: 42: goja.loadVal({true}) compiler.go:433: 43: goja.putProp(writable) compiler.go:433: 44: goja.loadVal({true}) compiler.go:433: 45: goja.putProp(enumerable) compiler.go:433: 46: goja.loadVal({true}) compiler.go:433: 47: goja.putProp(configurable) compiler.go:433: 48: goja.call(2) compiler.go:433: 49: goja.loadVal({prop desc}) compiler.go:433: 50: goja.call(2) compiler.go:433: 51: goja._pop({}) compiler.go:433: 52: goja.loadDynamic(assert) compiler.go:433: 53: goja.getPropCallee(throws) compiler.go:433: 54: goja.loadDynamic(TypeError) compiler.go:433: 55: *goja.newFunc(&{0xc000361130 function() { "use strict"; Object.defineProperty(o, "test1", {value: 0, writable: false, enumerable: false, configurable: true}); } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Object) compiler.go:433: > 2: goja.getPropCallee(defineProperty) compiler.go:433: > 3: goja.loadDynamic(o) compiler.go:433: > 4: goja.loadVal({test1}) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadVal({0}) compiler.go:433: > 7: goja.putProp(value) compiler.go:433: > 8: goja.loadVal({false}) compiler.go:433: > 9: goja.putProp(writable) compiler.go:433: > 10: goja.loadVal({false}) compiler.go:433: > 11: goja.putProp(enumerable) compiler.go:433: > 12: goja.loadVal({true}) compiler.go:433: > 13: goja.putProp(configurable) compiler.go:433: > 14: goja.call(3) compiler.go:433: > 15: goja._pop({}) compiler.go:433: > 16: goja._loadUndef({}) compiler.go:433: > 17: goja._ret({}) compiler.go:433: 56: goja.loadVal({define prop}) compiler.go:433: 57: goja.call(3) compiler.go:433: 58: goja._pop({}) compiler.go:433: 59: goja.resolveVar1(keys) compiler.go:433: 60: goja.newArray(0) compiler.go:433: 61: goja._initValueP({}) compiler.go:433: 62: goja.loadDynamic(o) compiler.go:433: 63: goja._enumerate({}) compiler.go:433: 64: goja.enumNext(10) compiler.go:433: 65: goja.resolveVar1(key) compiler.go:433: 66: goja._enumGet({}) compiler.go:433: 67: goja._putValueP({}) compiler.go:433: 68: goja.loadDynamic(keys) compiler.go:433: 69: goja.getPropCallee(push) compiler.go:433: 70: goja.loadDynamic(key) compiler.go:433: 71: goja.call(1) compiler.go:433: 72: goja._pop({}) compiler.go:433: 73: goja.jump(-9) compiler.go:433: 74: goja._enumPop({}) compiler.go:433: 75: goja.jump(2) compiler.go:433: 76: goja._enumPopClose({}) compiler.go:433: 77: goja.loadDynamicCallee(assert) compiler.go:433: 78: goja.loadDynamicCallee(compareArray) compiler.go:433: 79: goja.loadDynamic(keys) compiler.go:433: 80: goja.newArray(1) compiler.go:433: 81: goja.loadVal({test}) compiler.go:433: 82: goja._pushArrayItem({}) compiler.go:433: 83: goja.call(2) compiler.go:433: 84: goja.loadVal({for-in}) compiler.go:433: 85: goja.call(2) compiler.go:433: 86: goja._pop({}) compiler.go:433: 87: goja.loadDynamicCallee(assert) compiler.go:433: 88: goja.loadDynamic(o) compiler.go:433: 89: goja.deleteProp(test) compiler.go:433: 90: goja.loadVal({delete}) compiler.go:433: 91: goja.call(2) compiler.go:433: 92: goja._pop({}) compiler.go:433: 93: goja.loadDynamicCallee(assert) compiler.go:433: 94: goja.loadVal({test}) compiler.go:433: 95: goja.loadDynamic(o) compiler.go:433: 96: goja._op_in({}) compiler.go:433: 97: goja._not({}) compiler.go:433: 98: goja.loadVal({'test' in o after delete}) compiler.go:433: 99: goja.call(2) compiler.go:433: 100: goja._pop({}) compiler.go:433: 101: goja.loadDynamicCallee(assert) compiler.go:433: 102: goja.loadVal({__proto__}) compiler.go:433: 103: goja.loadDynamic(o) compiler.go:433: 104: goja._op_in({}) compiler.go:433: 105: goja.loadVal({__proto__ in o}) compiler.go:433: 106: goja.call(2) compiler.go:433: 107: goja._pop({}) compiler.go:433: 108: goja.loadDynamic(assert) compiler.go:433: 109: goja.getPropCallee(sameValue) compiler.go:433: 110: goja.loadDynamic(o) compiler.go:433: 111: goja.getProp(__proto__) compiler.go:433: 112: goja.loadDynamic(Object) compiler.go:433: 113: goja.getProp(prototype) compiler.go:433: 114: goja.loadVal({__proto__}) compiler.go:433: 115: goja.call(3) compiler.go:433: 116: goja._pop({}) compiler.go:433: 117: goja.loadDynamic(o) compiler.go:433: 118: goja.loadVal({{}}) compiler.go:433: 119: goja.setPropP(__proto__) compiler.go:433: 120: goja.loadDynamicCallee(assert) compiler.go:433: 121: goja.loadVal({__proto__}) compiler.go:433: 122: goja.loadDynamic(o) compiler.go:433: 123: goja._op_in({}) compiler.go:433: 124: goja._not({}) compiler.go:433: 125: goja.loadVal({__proto__ in o after setting to null}) compiler.go:433: 126: goja.call(2) compiler.go:433: 127: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDynamicObject (0.00s) === RUN TestDynamicObjectCustomProto compiler.go:433: 0: *goja.bindGlobal(&{[proto] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(proto) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: *goja.newFunc(&{0xc000361360 valueOf function() { return this.num; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.getProp(num) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 4: goja.putProp(valueOf) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(proto) compiler.go:433: 7: goja.loadDynamic(Symbol) compiler.go:433: 8: goja.getProp(toStringTag) compiler.go:433: 9: goja.loadVal({GoObject}) compiler.go:433: 10: goja._setElemP({}) compiler.go:433: 11: goja.loadDynamic(Object) compiler.go:433: 12: goja.getPropCallee(setPrototypeOf) compiler.go:433: 13: goja.loadDynamic(o) compiler.go:433: 14: goja.loadDynamic(proto) compiler.go:433: 15: goja.call(2) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadDynamic(o) compiler.go:433: 18: goja.loadVal({41}) compiler.go:433: 19: goja.setPropP(num) compiler.go:433: 20: goja.loadDynamicCallee(assert) compiler.go:433: 21: goja.loadDynamic(o) compiler.go:433: 22: goja.loadDynamic(Object) compiler.go:433: 23: goja._op_instanceof({}) compiler.go:433: 24: goja.loadVal({instanceof}) compiler.go:433: 25: goja.call(2) compiler.go:433: 26: goja._pop({}) compiler.go:433: 27: goja.loadDynamic(assert) compiler.go:433: 28: goja.getPropCallee(sameValue) compiler.go:433: 29: goja.loadDynamic(o) compiler.go:433: 30: goja.loadVal({1}) compiler.go:433: 31: goja._add({}) compiler.go:433: 32: goja.loadVal({42}) compiler.go:433: 33: goja.call(2) compiler.go:433: 34: goja._pop({}) compiler.go:433: 35: goja.loadDynamic(assert) compiler.go:433: 36: goja.getPropCallee(sameValue) compiler.go:433: 37: goja.loadDynamic(o) compiler.go:433: 38: goja.getPropCallee(toString) compiler.go:433: 39: goja.call(0) compiler.go:433: 40: goja.loadVal({[object GoObject]}) compiler.go:433: 41: goja.call(2) compiler.go:433: 42: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDynamicObjectCustomProto (0.00s) === RUN TestDynamicArray compiler.go:433: 0: *goja.bindGlobal(&{[keys key vals val] [] [] [] false}) compiler.go:433: 1: goja.loadDynamicCallee(assert) compiler.go:433: 2: goja.loadDynamic(a) compiler.go:433: 3: goja.loadDynamic(Array) compiler.go:433: 4: goja._op_instanceof({}) compiler.go:433: 5: goja.loadVal({instanceof Array}) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja._pop({}) compiler.go:433: 8: goja.loadDynamicCallee(assert) compiler.go:433: 9: goja.loadDynamic(a) compiler.go:433: 10: goja.loadDynamic(Object) compiler.go:433: 11: goja._op_instanceof({}) compiler.go:433: 12: goja.loadVal({instanceof Object}) compiler.go:433: 13: goja.call(2) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja.loadDynamicCallee(assert) compiler.go:433: 16: goja.loadDynamic(a) compiler.go:433: 17: goja.loadDynamic(a) compiler.go:433: 18: goja._op_strict_eq({}) compiler.go:433: 19: goja.loadVal({self equality}) compiler.go:433: 20: goja.call(2) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.loadDynamicCallee(assert) compiler.go:433: 23: goja.loadDynamic(a) compiler.go:433: 24: goja.newArray(0) compiler.go:433: 25: goja._op_strict_neq({}) compiler.go:433: 26: goja.loadVal({non-equality}) compiler.go:433: 27: goja.call(2) compiler.go:433: 28: goja._pop({}) compiler.go:433: 29: goja.loadDynamicCallee(assert) compiler.go:433: 30: goja.loadDynamic(Array) compiler.go:433: 31: goja.getPropCallee(isArray) compiler.go:433: 32: goja.loadDynamic(a) compiler.go:433: 33: goja.call(1) compiler.go:433: 34: goja.loadVal({isArray()}) compiler.go:433: 35: goja.call(2) compiler.go:433: 36: goja._pop({}) compiler.go:433: 37: goja.loadDynamicCallee(assert) compiler.go:433: 38: goja.loadVal({length}) compiler.go:433: 39: goja.loadDynamic(a) compiler.go:433: 40: goja._op_in({}) compiler.go:433: 41: goja.loadVal({length in a}) compiler.go:433: 42: goja.call(2) compiler.go:433: 43: goja._pop({}) compiler.go:433: 44: goja.loadDynamic(assert) compiler.go:433: 45: goja.getPropCallee(sameValue) compiler.go:433: 46: goja.loadDynamic(a) compiler.go:433: 47: goja.getProp(length) compiler.go:433: 48: goja.loadVal({0}) compiler.go:433: 49: goja.loadVal({len == 0}) compiler.go:433: 50: goja.call(3) compiler.go:433: 51: goja._pop({}) compiler.go:433: 52: goja.loadDynamic(assert) compiler.go:433: 53: goja.getPropCallee(sameValue) compiler.go:433: 54: goja.loadDynamic(a) compiler.go:433: 55: goja.loadVal({0}) compiler.go:433: 56: goja._getElem({}) compiler.go:433: 57: goja.loadDynamic(undefined) compiler.go:433: 58: goja.loadVal({a[0] (1)}) compiler.go:433: 59: goja.call(3) compiler.go:433: 60: goja._pop({}) compiler.go:433: 61: goja.loadDynamic(a) compiler.go:433: 62: goja.loadVal({0}) compiler.go:433: 63: goja.loadVal({0}) compiler.go:433: 64: goja._setElemP({}) compiler.go:433: 65: goja.loadDynamic(assert) compiler.go:433: 66: goja.getPropCallee(sameValue) compiler.go:433: 67: goja.loadDynamic(a) compiler.go:433: 68: goja.loadVal({0}) compiler.go:433: 69: goja._getElem({}) compiler.go:433: 70: goja.loadVal({0}) compiler.go:433: 71: goja.loadVal({a[0] (2)}) compiler.go:433: 72: goja.call(3) compiler.go:433: 73: goja._pop({}) compiler.go:433: 74: goja.loadDynamic(assert) compiler.go:433: 75: goja.getPropCallee(sameValue) compiler.go:433: 76: goja.loadDynamic(a) compiler.go:433: 77: goja.getProp(length) compiler.go:433: 78: goja.loadVal({1}) compiler.go:433: 79: goja.loadVal({length}) compiler.go:433: 80: goja.call(3) compiler.go:433: 81: goja._pop({}) compiler.go:433: 82: goja.loadDynamicCallee(assert) compiler.go:433: 83: goja.loadDynamicCallee(deepEqual) compiler.go:433: 84: goja.loadDynamic(Object) compiler.go:433: 85: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 86: goja.loadDynamic(a) compiler.go:433: 87: goja.loadVal({0}) compiler.go:433: 88: goja.call(2) compiler.go:433: 89: goja._newObject({}) compiler.go:433: 90: goja.loadVal({0}) compiler.go:433: 91: goja.putProp(value) compiler.go:433: 92: goja.loadVal({true}) compiler.go:433: 93: goja.putProp(writable) compiler.go:433: 94: goja.loadVal({true}) compiler.go:433: 95: goja.putProp(enumerable) compiler.go:433: 96: goja.loadVal({true}) compiler.go:433: 97: goja.putProp(configurable) compiler.go:433: 98: goja.call(2) compiler.go:433: 99: goja.loadVal({prop desc}) compiler.go:433: 100: goja.call(2) compiler.go:433: 101: goja._pop({}) compiler.go:433: 102: goja.loadDynamicCallee(assert) compiler.go:433: 103: goja.loadDynamicCallee(deepEqual) compiler.go:433: 104: goja.loadDynamic(Object) compiler.go:433: 105: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 106: goja.loadDynamic(a) compiler.go:433: 107: goja.loadVal({length}) compiler.go:433: 108: goja.call(2) compiler.go:433: 109: goja._newObject({}) compiler.go:433: 110: goja.loadVal({1}) compiler.go:433: 111: goja.putProp(value) compiler.go:433: 112: goja.loadVal({true}) compiler.go:433: 113: goja.putProp(writable) compiler.go:433: 114: goja.loadVal({false}) compiler.go:433: 115: goja.putProp(enumerable) compiler.go:433: 116: goja.loadVal({false}) compiler.go:433: 117: goja.putProp(configurable) compiler.go:433: 118: goja.call(2) compiler.go:433: 119: goja.loadVal({length prop desc}) compiler.go:433: 120: goja.call(2) compiler.go:433: 121: goja._pop({}) compiler.go:433: 122: goja.loadDynamicCallee(assert) compiler.go:433: 123: goja.loadVal({__proto__}) compiler.go:433: 124: goja.loadDynamic(a) compiler.go:433: 125: goja._op_in({}) compiler.go:433: 126: goja.loadVal({__proto__ in a}) compiler.go:433: 127: goja.call(2) compiler.go:433: 128: goja._pop({}) compiler.go:433: 129: goja.loadDynamic(assert) compiler.go:433: 130: goja.getPropCallee(sameValue) compiler.go:433: 131: goja.loadDynamic(a) compiler.go:433: 132: goja.getProp(__proto__) compiler.go:433: 133: goja.loadDynamic(Array) compiler.go:433: 134: goja.getProp(prototype) compiler.go:433: 135: goja.loadVal({__proto__}) compiler.go:433: 136: goja.call(3) compiler.go:433: 137: goja._pop({}) compiler.go:433: 138: goja.loadDynamicCallee(assert) compiler.go:433: 139: goja.loadDynamicCallee(compareArray) compiler.go:433: 140: goja.loadDynamic(Object) compiler.go:433: 141: goja.getPropCallee(keys) compiler.go:433: 142: goja.loadDynamic(a) compiler.go:433: 143: goja.call(1) compiler.go:433: 144: goja.newArray(1) compiler.go:433: 145: goja.loadVal({0}) compiler.go:433: 146: goja._pushArrayItem({}) compiler.go:433: 147: goja.call(2) compiler.go:433: 148: goja.loadVal({Object.keys()}) compiler.go:433: 149: goja.call(2) compiler.go:433: 150: goja._pop({}) compiler.go:433: 151: goja.loadDynamicCallee(assert) compiler.go:433: 152: goja.loadDynamicCallee(compareArray) compiler.go:433: 153: goja.loadDynamic(Reflect) compiler.go:433: 154: goja.getPropCallee(ownKeys) compiler.go:433: 155: goja.loadDynamic(a) compiler.go:433: 156: goja.call(1) compiler.go:433: 157: goja.newArray(2) compiler.go:433: 158: goja.loadVal({0}) compiler.go:433: 159: goja._pushArrayItem({}) compiler.go:433: 160: goja.loadVal({length}) compiler.go:433: 161: goja._pushArrayItem({}) compiler.go:433: 162: goja.call(2) compiler.go:433: 163: goja.loadVal({Reflect.ownKeys()}) compiler.go:433: 164: goja.call(2) compiler.go:433: 165: goja._pop({}) compiler.go:433: 166: goja.loadDynamic(a) compiler.go:433: 167: goja.loadVal({2}) compiler.go:433: 168: goja.setPropP(length) compiler.go:433: 169: goja.loadDynamic(assert) compiler.go:433: 170: goja.getPropCallee(sameValue) compiler.go:433: 171: goja.loadDynamic(a) compiler.go:433: 172: goja.getProp(length) compiler.go:433: 173: goja.loadVal({2}) compiler.go:433: 174: goja.loadVal({length after grow}) compiler.go:433: 175: goja.call(3) compiler.go:433: 176: goja._pop({}) compiler.go:433: 177: goja.loadDynamic(assert) compiler.go:433: 178: goja.getPropCallee(sameValue) compiler.go:433: 179: goja.loadDynamic(a) compiler.go:433: 180: goja.loadVal({1}) compiler.go:433: 181: goja._getElem({}) compiler.go:433: 182: goja.loadDynamic(undefined) compiler.go:433: 183: goja.loadVal({a[1]}) compiler.go:433: 184: goja.call(3) compiler.go:433: 185: goja._pop({}) compiler.go:433: 186: goja.loadDynamic(a) compiler.go:433: 187: goja.loadVal({1}) compiler.go:433: 188: goja.loadVal({1}) compiler.go:433: 189: goja._setElemP({}) compiler.go:433: 190: goja.loadDynamic(assert) compiler.go:433: 191: goja.getPropCallee(sameValue) compiler.go:433: 192: goja.loadDynamic(a) compiler.go:433: 193: goja.loadVal({1}) compiler.go:433: 194: goja._getElem({}) compiler.go:433: 195: goja.loadVal({1}) compiler.go:433: 196: goja.loadVal({a[1] after set}) compiler.go:433: 197: goja.call(3) compiler.go:433: 198: goja._pop({}) compiler.go:433: 199: goja.loadDynamic(a) compiler.go:433: 200: goja.loadVal({1}) compiler.go:433: 201: goja.setPropP(length) compiler.go:433: 202: goja.loadDynamic(assert) compiler.go:433: 203: goja.getPropCallee(sameValue) compiler.go:433: 204: goja.loadDynamic(a) compiler.go:433: 205: goja.getProp(length) compiler.go:433: 206: goja.loadVal({1}) compiler.go:433: 207: goja.loadVal({length after shrink}) compiler.go:433: 208: goja.call(3) compiler.go:433: 209: goja._pop({}) compiler.go:433: 210: goja.loadDynamic(assert) compiler.go:433: 211: goja.getPropCallee(sameValue) compiler.go:433: 212: goja.loadDynamic(a) compiler.go:433: 213: goja.loadVal({1}) compiler.go:433: 214: goja._getElem({}) compiler.go:433: 215: goja.loadDynamic(undefined) compiler.go:433: 216: goja.loadVal({a[1] after shrink}) compiler.go:433: 217: goja.call(3) compiler.go:433: 218: goja._pop({}) compiler.go:433: 219: goja.loadDynamic(a) compiler.go:433: 220: goja.loadVal({2}) compiler.go:433: 221: goja.setPropP(length) compiler.go:433: 222: goja.loadDynamic(assert) compiler.go:433: 223: goja.getPropCallee(sameValue) compiler.go:433: 224: goja.loadDynamic(a) compiler.go:433: 225: goja.getProp(length) compiler.go:433: 226: goja.loadVal({2}) compiler.go:433: 227: goja.loadVal({length after shrink and grow}) compiler.go:433: 228: goja.call(3) compiler.go:433: 229: goja._pop({}) compiler.go:433: 230: goja.loadDynamic(assert) compiler.go:433: 231: goja.getPropCallee(sameValue) compiler.go:433: 232: goja.loadDynamic(a) compiler.go:433: 233: goja.loadVal({1}) compiler.go:433: 234: goja._getElem({}) compiler.go:433: 235: goja.loadDynamic(undefined) compiler.go:433: 236: goja.loadVal({a[1] after grow}) compiler.go:433: 237: goja.call(3) compiler.go:433: 238: goja._pop({}) compiler.go:433: 239: goja.loadDynamic(a) compiler.go:433: 240: goja.loadVal({0}) compiler.go:433: 241: goja.loadVal({3}) compiler.go:433: 242: goja._setElemP({}) compiler.go:433: 243: goja.loadDynamic(a) compiler.go:433: 244: goja.loadVal({1}) compiler.go:433: 245: goja.loadVal({1}) compiler.go:433: 246: goja._setElemP({}) compiler.go:433: 247: goja.loadDynamic(a) compiler.go:433: 248: goja.loadVal({2}) compiler.go:433: 249: goja.loadVal({2}) compiler.go:433: 250: goja._setElemP({}) compiler.go:433: 251: goja.loadDynamic(assert) compiler.go:433: 252: goja.getPropCallee(sameValue) compiler.go:433: 253: goja.loadDynamic(a) compiler.go:433: 254: goja.getProp(length) compiler.go:433: 255: goja.loadVal({3}) compiler.go:433: 256: goja.call(2) compiler.go:433: 257: goja._pop({}) compiler.go:433: 258: goja.resolveVar1(keys) compiler.go:433: 259: goja.newArray(0) compiler.go:433: 260: goja._initValueP({}) compiler.go:433: 261: goja.loadDynamic(a) compiler.go:433: 262: goja._enumerate({}) compiler.go:433: 263: goja.enumNext(10) compiler.go:433: 264: goja.resolveVar1(key) compiler.go:433: 265: goja._enumGet({}) compiler.go:433: 266: goja._putValueP({}) compiler.go:433: 267: goja.loadDynamic(keys) compiler.go:433: 268: goja.getPropCallee(push) compiler.go:433: 269: goja.loadDynamic(key) compiler.go:433: 270: goja.call(1) compiler.go:433: 271: goja._pop({}) compiler.go:433: 272: goja.jump(-9) compiler.go:433: 273: goja._enumPop({}) compiler.go:433: 274: goja.jump(2) compiler.go:433: 275: goja._enumPopClose({}) compiler.go:433: 276: goja.loadDynamicCallee(assert) compiler.go:433: 277: goja.loadDynamicCallee(compareArray) compiler.go:433: 278: goja.loadDynamic(keys) compiler.go:433: 279: goja.newArray(3) compiler.go:433: 280: goja.loadVal({0}) compiler.go:433: 281: goja._pushArrayItem({}) compiler.go:433: 282: goja.loadVal({1}) compiler.go:433: 283: goja._pushArrayItem({}) compiler.go:433: 284: goja.loadVal({2}) compiler.go:433: 285: goja._pushArrayItem({}) compiler.go:433: 286: goja.call(2) compiler.go:433: 287: goja.loadVal({for-in}) compiler.go:433: 288: goja.call(2) compiler.go:433: 289: goja._pop({}) compiler.go:433: 290: goja.resolveVar1(vals) compiler.go:433: 291: goja.newArray(0) compiler.go:433: 292: goja._initValueP({}) compiler.go:433: 293: goja.loadDynamic(a) compiler.go:433: 294: goja._iterateP({}) compiler.go:433: 295: goja.iterNext(10) compiler.go:433: 296: goja.resolveVar1(val) compiler.go:433: 297: goja._enumGet({}) compiler.go:433: 298: goja._putValueP({}) compiler.go:433: 299: goja.loadDynamic(vals) compiler.go:433: 300: goja.getPropCallee(push) compiler.go:433: 301: goja.loadDynamic(val) compiler.go:433: 302: goja.call(1) compiler.go:433: 303: goja._pop({}) compiler.go:433: 304: goja.jump(-9) compiler.go:433: 305: goja._enumPop({}) compiler.go:433: 306: goja.jump(2) compiler.go:433: 307: goja._enumPopClose({}) compiler.go:433: 308: goja.loadDynamicCallee(assert) compiler.go:433: 309: goja.loadDynamicCallee(compareArray) compiler.go:433: 310: goja.loadDynamic(vals) compiler.go:433: 311: goja.newArray(3) compiler.go:433: 312: goja.loadVal({3}) compiler.go:433: 313: goja._pushArrayItem({}) compiler.go:433: 314: goja.loadVal({1}) compiler.go:433: 315: goja._pushArrayItem({}) compiler.go:433: 316: goja.loadVal({2}) compiler.go:433: 317: goja._pushArrayItem({}) compiler.go:433: 318: goja.call(2) compiler.go:433: 319: goja.loadVal({for-of}) compiler.go:433: 320: goja.call(2) compiler.go:433: 321: goja._pop({}) compiler.go:433: 322: goja.loadDynamic(a) compiler.go:433: 323: goja.getPropCallee(sort) compiler.go:433: 324: goja.call(0) compiler.go:433: 325: goja._pop({}) compiler.go:433: 326: goja.loadDynamicCallee(assert) compiler.go:433: 327: goja.loadDynamicCallee(compareArray) compiler.go:433: 328: goja.loadDynamic(a) compiler.go:433: 329: goja.newArray(3) compiler.go:433: 330: goja.loadVal({1}) compiler.go:433: 331: goja._pushArrayItem({}) compiler.go:433: 332: goja.loadVal({2}) compiler.go:433: 333: goja._pushArrayItem({}) compiler.go:433: 334: goja.loadVal({3}) compiler.go:433: 335: goja._pushArrayItem({}) compiler.go:433: 336: goja.call(2) compiler.go:433: 337: goja.loadVal({sort: }) compiler.go:433: 338: goja.loadDynamic(a) compiler.go:433: 339: goja._add({}) compiler.go:433: 340: goja.call(2) compiler.go:433: 341: goja._pop({}) compiler.go:433: 342: goja.loadDynamic(assert) compiler.go:433: 343: goja.getPropCallee(sameValue) compiler.go:433: 344: goja.loadDynamic(a) compiler.go:433: 345: goja.loadVal({1}) compiler.go:433: 346: goja._neg({}) compiler.go:433: 347: goja._getElem({}) compiler.go:433: 348: goja.loadVal({3}) compiler.go:433: 349: goja.call(2) compiler.go:433: 350: goja._pop({}) compiler.go:433: 351: goja.loadDynamic(assert) compiler.go:433: 352: goja.getPropCallee(sameValue) compiler.go:433: 353: goja.loadDynamic(a) compiler.go:433: 354: goja.loadVal({4}) compiler.go:433: 355: goja._neg({}) compiler.go:433: 356: goja._getElem({}) compiler.go:433: 357: goja.loadDynamic(undefined) compiler.go:433: 358: goja.call(2) compiler.go:433: 359: goja._pop({}) compiler.go:433: 360: goja.loadDynamic(assert) compiler.go:433: 361: goja.getPropCallee(throws) compiler.go:433: 362: goja.loadDynamic(TypeError) compiler.go:433: 363: *goja.newFunc(&{0xc0003617c0 function() { "use strict"; delete a.length; } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(a) compiler.go:433: > 2: goja.deletePropStrict(length) compiler.go:433: > 3: goja._pop({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 364: goja.loadVal({delete length}) compiler.go:433: 365: goja.call(3) compiler.go:433: 366: goja._pop({}) compiler.go:433: 367: goja.loadDynamic(assert) compiler.go:433: 368: goja.getPropCallee(throws) compiler.go:433: 369: goja.loadDynamic(TypeError) compiler.go:433: 370: *goja.newFunc(&{0xc000361810 function() { "use strict"; a.test = true; } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(a) compiler.go:433: > 2: goja.loadVal({true}) compiler.go:433: > 3: goja.setPropStrictP(test) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 371: goja.loadVal({set string prop}) compiler.go:433: 372: goja.call(3) compiler.go:433: 373: goja._pop({}) compiler.go:433: 374: goja.loadDynamic(assert) compiler.go:433: 375: goja.getPropCallee(throws) compiler.go:433: 376: goja.loadDynamic(TypeError) compiler.go:433: 377: *goja.newFunc(&{0xc000361860 function() { "use strict"; Object.defineProperty(a, 0, {value: 0, writable: false, enumerable: false, configurable: true}); } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Object) compiler.go:433: > 2: goja.getPropCallee(defineProperty) compiler.go:433: > 3: goja.loadDynamic(a) compiler.go:433: > 4: goja.loadVal({0}) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadVal({0}) compiler.go:433: > 7: goja.putProp(value) compiler.go:433: > 8: goja.loadVal({false}) compiler.go:433: > 9: goja.putProp(writable) compiler.go:433: > 10: goja.loadVal({false}) compiler.go:433: > 11: goja.putProp(enumerable) compiler.go:433: > 12: goja.loadVal({true}) compiler.go:433: > 13: goja.putProp(configurable) compiler.go:433: > 14: goja.call(3) compiler.go:433: > 15: goja._pop({}) compiler.go:433: > 16: goja._loadUndef({}) compiler.go:433: > 17: goja._ret({}) compiler.go:433: 378: goja.loadVal({define prop}) compiler.go:433: 379: goja.call(3) compiler.go:433: 380: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDynamicArray (0.00s) === RUN TestSharedDynamicObject --- PASS: TestSharedDynamicObject (0.01s) === RUN TestSharedDynamicArray --- PASS: TestSharedDynamicArray (0.00s) === RUN TestGoReflectArray --- PASS: TestGoReflectArray (0.00s) === RUN TestGoReflectArraySort --- PASS: TestGoReflectArraySort (0.00s) === RUN TestGoReflectArrayCopyOnChange === RUN TestGoReflectArrayCopyOnChange/[]struct === RUN TestGoReflectArrayCopyOnChange/[]I === RUN TestGoReflectArrayCopyOnChange/[]interface{} --- PASS: TestGoReflectArrayCopyOnChange (0.00s) --- PASS: TestGoReflectArrayCopyOnChange/[]struct (0.00s) --- PASS: TestGoReflectArrayCopyOnChange/[]I (0.00s) --- PASS: TestGoReflectArrayCopyOnChange/[]interface{} (0.00s) === RUN TestCopyOnChangeReflectSlice === RUN TestCopyOnChangeReflectSlice/[]int === RUN TestCopyOnChangeReflectSlice/[]interface{} --- PASS: TestCopyOnChangeReflectSlice (0.00s) --- PASS: TestCopyOnChangeReflectSlice/[]int (0.00s) --- PASS: TestCopyOnChangeReflectSlice/[]interface{} (0.00s) === RUN TestCopyOnChangeSort --- PASS: TestCopyOnChangeSort (0.00s) === RUN TestReflectArrayToString --- PASS: TestReflectArrayToString (0.00s) === RUN TestGoMapReflectGetSet --- PASS: TestGoMapReflectGetSet (0.00s) === RUN TestGoMapReflectIntKey --- PASS: TestGoMapReflectIntKey (0.00s) === RUN TestGoMapReflectDelete --- PASS: TestGoMapReflectDelete (0.00s) === RUN TestGoMapReflectJSON --- PASS: TestGoMapReflectJSON (0.00s) === RUN TestGoMapReflectProto --- PASS: TestGoMapReflectProto (0.00s) === RUN TestGoMapReflectNoMethods --- PASS: TestGoMapReflectNoMethods (0.00s) === RUN TestGoMapReflectWithMethods --- PASS: TestGoMapReflectWithMethods (0.00s) === RUN TestGoMapReflectWithProto compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc00036da90 function() { 'use strict'; var proto = {}; var getterAllowed = false; var setterAllowed = false; var tHolder = "proto t"; Object.defineProperty(proto, "t", { get: function() { if (!getterAllowed) throw new Error("getter is called"); return tHolder; }, set: function(v) { if (!setterAllowed) throw new Error("setter is called"); tHolder = v; } }); var t1Holder; Object.defineProperty(proto, "t1", { get: function() { return t1Holder; }, set: function(v) { t1Holder = v; } }); Object.setPrototypeOf(m, proto); assert.sameValue(m.t, "42"); m.t = 43; assert.sameValue(m.t, "43"); t1Holder = "test"; assert.sameValue(m.t1, "test"); m.t1 = "test1"; assert.sameValue(m.t1, "test1"); delete m.t; getterAllowed = true; assert.sameValue(m.t, "proto t", "after delete"); setterAllowed = true; m.t = true; assert.sameValue(m.t, true, "m.t === true"); assert.sameValue(tHolder, true, "tHolder === true"); Object.preventExtensions(m); assert.throws(TypeError, function() { m.t2 = 1; }); m.t1 = "test2"; assert.sameValue(m.t1, "test2"); } 0 true}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 4 1 0 1 false false}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadVal({false}) compiler.go:433: > 4: goja.initStashP(0) compiler.go:433: > 5: goja.loadVal({false}) compiler.go:433: > 6: goja.initStashP(1) compiler.go:433: > 7: goja.loadVal({proto t}) compiler.go:433: > 8: goja.initStashP(2) compiler.go:433: > 9: goja.loadDynamic(Object) compiler.go:433: > 10: goja.getPropCallee(defineProperty) compiler.go:433: > 11: goja.loadStack(1) compiler.go:433: > 12: goja.loadVal({t}) compiler.go:433: > 13: goja._newObject({}) compiler.go:433: > 14: *goja.newFunc(&{0xc00036dae0 get function() { if (!getterAllowed) throw new Error("getter is called"); return tHolder; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(0) compiler.go:433: >> 2: goja._not({}) compiler.go:433: >> 3: goja.jneP(5) compiler.go:433: >> 4: goja.loadDynamic(Error) compiler.go:433: >> 5: goja.loadVal({getter is called}) compiler.go:433: >> 6: goja._new(1) compiler.go:433: >> 7: goja._throw({}) compiler.go:433: >> 8: goja.loadStash(2) compiler.go:433: >> 9: goja._ret({}) compiler.go:433: > 15: goja.putProp(get) compiler.go:433: > 16: *goja.newFunc(&{0xc00036db30 set function(v) { if (!setterAllowed) throw new Error("setter is called"); tHolder = v; } 1 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: >> 1: goja.loadStash(1) compiler.go:433: >> 2: goja._not({}) compiler.go:433: >> 3: goja.jneP(5) compiler.go:433: >> 4: goja.loadDynamic(Error) compiler.go:433: >> 5: goja.loadVal({setter is called}) compiler.go:433: >> 6: goja._new(1) compiler.go:433: >> 7: goja._throw({}) compiler.go:433: >> 8: goja.loadStackLex(-1) compiler.go:433: >> 9: goja.storeStashP(2) compiler.go:433: >> 10: goja._loadUndef({}) compiler.go:433: >> 11: goja._ret({}) compiler.go:433: > 17: goja.putProp(set) compiler.go:433: > 18: goja.call(3) compiler.go:433: > 19: goja._pop({}) compiler.go:433: > 20: goja.loadDynamic(Object) compiler.go:433: > 21: goja.getPropCallee(defineProperty) compiler.go:433: > 22: goja.loadStack(1) compiler.go:433: > 23: goja.loadVal({t1}) compiler.go:433: > 24: goja._newObject({}) compiler.go:433: > 25: *goja.newFunc(&{0xc00036db80 get function() { return t1Holder; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(3) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 26: goja.putProp(get) compiler.go:433: > 27: *goja.newFunc(&{0xc00036dbd0 set function(v) { t1Holder = v; } 1 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: >> 1: goja.loadStackLex(-1) compiler.go:433: >> 2: goja.storeStashP(3) compiler.go:433: >> 3: goja._loadUndef({}) compiler.go:433: >> 4: goja._ret({}) compiler.go:433: > 28: goja.putProp(set) compiler.go:433: > 29: goja.call(3) compiler.go:433: > 30: goja._pop({}) compiler.go:433: > 31: goja.loadDynamic(Object) compiler.go:433: > 32: goja.getPropCallee(setPrototypeOf) compiler.go:433: > 33: goja.loadDynamic(m) compiler.go:433: > 34: goja.loadStack(1) compiler.go:433: > 35: goja.call(2) compiler.go:433: > 36: goja._pop({}) compiler.go:433: > 37: goja.loadDynamic(assert) compiler.go:433: > 38: goja.getPropCallee(sameValue) compiler.go:433: > 39: goja.loadDynamic(m) compiler.go:433: > 40: goja.getProp(t) compiler.go:433: > 41: goja.loadVal({42}) compiler.go:433: > 42: goja.call(2) compiler.go:433: > 43: goja._pop({}) compiler.go:433: > 44: goja.loadDynamic(m) compiler.go:433: > 45: goja.loadVal({43}) compiler.go:433: > 46: goja.setPropStrictP(t) compiler.go:433: > 47: goja.loadDynamic(assert) compiler.go:433: > 48: goja.getPropCallee(sameValue) compiler.go:433: > 49: goja.loadDynamic(m) compiler.go:433: > 50: goja.getProp(t) compiler.go:433: > 51: goja.loadVal({43}) compiler.go:433: > 52: goja.call(2) compiler.go:433: > 53: goja._pop({}) compiler.go:433: > 54: goja.loadVal({test}) compiler.go:433: > 55: goja.storeStashP(3) compiler.go:433: > 56: goja.loadDynamic(assert) compiler.go:433: > 57: goja.getPropCallee(sameValue) compiler.go:433: > 58: goja.loadDynamic(m) compiler.go:433: > 59: goja.getProp(t1) compiler.go:433: > 60: goja.loadVal({test}) compiler.go:433: > 61: goja.call(2) compiler.go:433: > 62: goja._pop({}) compiler.go:433: > 63: goja.loadDynamic(m) compiler.go:433: > 64: goja.loadVal({test1}) compiler.go:433: > 65: goja.setPropStrictP(t1) compiler.go:433: > 66: goja.loadDynamic(assert) compiler.go:433: > 67: goja.getPropCallee(sameValue) compiler.go:433: > 68: goja.loadDynamic(m) compiler.go:433: > 69: goja.getProp(t1) compiler.go:433: > 70: goja.loadVal({test1}) compiler.go:433: > 71: goja.call(2) compiler.go:433: > 72: goja._pop({}) compiler.go:433: > 73: goja.loadDynamic(m) compiler.go:433: > 74: goja.deletePropStrict(t) compiler.go:433: > 75: goja._pop({}) compiler.go:433: > 76: goja.loadVal({true}) compiler.go:433: > 77: goja.storeStashP(0) compiler.go:433: > 78: goja.loadDynamic(assert) compiler.go:433: > 79: goja.getPropCallee(sameValue) compiler.go:433: > 80: goja.loadDynamic(m) compiler.go:433: > 81: goja.getProp(t) compiler.go:433: > 82: goja.loadVal({proto t}) compiler.go:433: > 83: goja.loadVal({after delete}) compiler.go:433: > 84: goja.call(3) compiler.go:433: > 85: goja._pop({}) compiler.go:433: > 86: goja.loadVal({true}) compiler.go:433: > 87: goja.storeStashP(1) compiler.go:433: > 88: goja.loadDynamic(m) compiler.go:433: > 89: goja.loadVal({true}) compiler.go:433: > 90: goja.setPropStrictP(t) compiler.go:433: > 91: goja.loadDynamic(assert) compiler.go:433: > 92: goja.getPropCallee(sameValue) compiler.go:433: > 93: goja.loadDynamic(m) compiler.go:433: > 94: goja.getProp(t) compiler.go:433: > 95: goja.loadVal({true}) compiler.go:433: > 96: goja.loadVal({m.t === true}) compiler.go:433: > 97: goja.call(3) compiler.go:433: > 98: goja._pop({}) compiler.go:433: > 99: goja.loadDynamic(assert) compiler.go:433: > 100: goja.getPropCallee(sameValue) compiler.go:433: > 101: goja.loadStash(2) compiler.go:433: > 102: goja.loadVal({true}) compiler.go:433: > 103: goja.loadVal({tHolder === true}) compiler.go:433: > 104: goja.call(3) compiler.go:433: > 105: goja._pop({}) compiler.go:433: > 106: goja.loadDynamic(Object) compiler.go:433: > 107: goja.getPropCallee(preventExtensions) compiler.go:433: > 108: goja.loadDynamic(m) compiler.go:433: > 109: goja.call(1) compiler.go:433: > 110: goja._pop({}) compiler.go:433: > 111: goja.loadDynamic(assert) compiler.go:433: > 112: goja.getPropCallee(throws) compiler.go:433: > 113: goja.loadDynamic(TypeError) compiler.go:433: > 114: *goja.newFunc(&{0xc00036dc70 function() { m.t2 = 1; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(m) compiler.go:433: >> 2: goja.loadVal({1}) compiler.go:433: >> 3: goja.setPropStrictP(t2) compiler.go:433: >> 4: goja._loadUndef({}) compiler.go:433: >> 5: goja._ret({}) compiler.go:433: > 115: goja.call(2) compiler.go:433: > 116: goja._pop({}) compiler.go:433: > 117: goja.loadDynamic(m) compiler.go:433: > 118: goja.loadVal({test2}) compiler.go:433: > 119: goja.setPropStrictP(t1) compiler.go:433: > 120: goja.loadDynamic(assert) compiler.go:433: > 121: goja.getPropCallee(sameValue) compiler.go:433: > 122: goja.loadDynamic(m) compiler.go:433: > 123: goja.getProp(t1) compiler.go:433: > 124: goja.loadVal({test2}) compiler.go:433: > 125: goja.call(2) compiler.go:433: > 126: goja._pop({}) compiler.go:433: > 127: goja._loadUndef({}) compiler.go:433: > 128: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestGoMapReflectWithProto (0.00s) === RUN TestGoMapReflectProtoProp compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc0003260a0 function() { "use strict"; var proto = {}; Object.defineProperty(proto, "ro", {value: 42}); Object.setPrototypeOf(m, proto); assert.throws(TypeError, function() { m.ro = 43; }); Object.defineProperty(m, "ro", {value: 43}); assert.sameValue(m.ro, "43"); } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadDynamic(Object) compiler.go:433: > 4: goja.getPropCallee(defineProperty) compiler.go:433: > 5: goja.loadStack(1) compiler.go:433: > 6: goja.loadVal({ro}) compiler.go:433: > 7: goja._newObject({}) compiler.go:433: > 8: goja.loadVal({42}) compiler.go:433: > 9: goja.putProp(value) compiler.go:433: > 10: goja.call(3) compiler.go:433: > 11: goja._pop({}) compiler.go:433: > 12: goja.loadDynamic(Object) compiler.go:433: > 13: goja.getPropCallee(setPrototypeOf) compiler.go:433: > 14: goja.loadDynamic(m) compiler.go:433: > 15: goja.loadStack(1) compiler.go:433: > 16: goja.call(2) compiler.go:433: > 17: goja._pop({}) compiler.go:433: > 18: goja.loadDynamic(assert) compiler.go:433: > 19: goja.getPropCallee(throws) compiler.go:433: > 20: goja.loadDynamic(TypeError) compiler.go:433: > 21: *goja.newFunc(&{0xc0003260f0 function() { m.ro = 43; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(m) compiler.go:433: >> 2: goja.loadVal({43}) compiler.go:433: >> 3: goja.setPropStrictP(ro) compiler.go:433: >> 4: goja._loadUndef({}) compiler.go:433: >> 5: goja._ret({}) compiler.go:433: > 22: goja.call(2) compiler.go:433: > 23: goja._pop({}) compiler.go:433: > 24: goja.loadDynamic(Object) compiler.go:433: > 25: goja.getPropCallee(defineProperty) compiler.go:433: > 26: goja.loadDynamic(m) compiler.go:433: > 27: goja.loadVal({ro}) compiler.go:433: > 28: goja._newObject({}) compiler.go:433: > 29: goja.loadVal({43}) compiler.go:433: > 30: goja.putProp(value) compiler.go:433: > 31: goja.call(3) compiler.go:433: > 32: goja._pop({}) compiler.go:433: > 33: goja.loadDynamic(assert) compiler.go:433: > 34: goja.getPropCallee(sameValue) compiler.go:433: > 35: goja.loadDynamic(m) compiler.go:433: > 36: goja.getProp(ro) compiler.go:433: > 37: goja.loadVal({43}) compiler.go:433: > 38: goja.call(2) compiler.go:433: > 39: goja._pop({}) compiler.go:433: > 40: goja._loadUndef({}) compiler.go:433: > 41: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGoMapReflectProtoProp (0.00s) === RUN TestGoMapReflectUnicode --- PASS: TestGoMapReflectUnicode (0.00s) === RUN TestGoMapReflectStruct --- PASS: TestGoMapReflectStruct (0.00s) === RUN TestGoMapReflectElt compiler.go:433: 0: goja.loadDynamic(a) compiler.go:433: 1: goja.getPropCallee(s) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja.jne(5) compiler.go:433: 4: goja.loadDynamic(a) compiler.go:433: 5: goja.getProp(t) compiler.go:433: 6: goja.loadVal({{}}) compiler.go:433: 7: goja._op_strict_eq({}) compiler.go:433: 8: goja.jne(5) compiler.go:433: 9: goja.loadDynamic(a) compiler.go:433: 10: goja.getProp(t1) compiler.go:433: 11: goja.loadDynamic(undefined) compiler.go:433: 12: goja._op_strict_eq({}) compiler.go:433: 13: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGoMapReflectElt (0.00s) === RUN TestGoMapReflectKeyToString === RUN TestGoMapReflectKeyToString/int === RUN TestGoMapReflectKeyToString/CustomString --- PASS: TestGoMapReflectKeyToString (0.00s) --- PASS: TestGoMapReflectKeyToString/int (0.00s) --- PASS: TestGoMapReflectKeyToString/CustomString (0.00s) === RUN TestGomapProp --- PASS: TestGomapProp (0.00s) === RUN TestGomapEnumerate --- PASS: TestGomapEnumerate (0.00s) === RUN TestGomapDeleteWhileEnumerate --- PASS: TestGomapDeleteWhileEnumerate (0.00s) === RUN TestGomapInstanceOf --- PASS: TestGomapInstanceOf (0.00s) === RUN TestGomapTypeOf --- PASS: TestGomapTypeOf (0.00s) === RUN TestGomapProto --- PASS: TestGomapProto (0.00s) === RUN TestGoMapExtensibility --- PASS: TestGoMapExtensibility (0.00s) === RUN TestGoMapWithProto compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc0003274a0 function() { 'use strict'; var proto = {}; var getterAllowed = false; var setterAllowed = false; var tHolder = "proto t"; Object.defineProperty(proto, "t", { get: function() { if (!getterAllowed) throw new Error("getter is called"); return tHolder; }, set: function(v) { if (!setterAllowed) throw new Error("setter is called"); tHolder = v; } }); var t1Holder; Object.defineProperty(proto, "t1", { get: function() { return t1Holder; }, set: function(v) { t1Holder = v; } }); Object.setPrototypeOf(m, proto); assert.sameValue(m.t, "42"); m.t = 43; assert.sameValue(m.t, 43); t1Holder = "test"; assert.sameValue(m.t1, "test"); m.t1 = "test1"; assert.sameValue(m.t1, "test1"); delete m.t; getterAllowed = true; assert.sameValue(m.t, "proto t", "after delete"); setterAllowed = true; m.t = true; assert.sameValue(m.t, true); assert.sameValue(tHolder, true); Object.preventExtensions(m); assert.throws(TypeError, function() { m.t2 = 1; }); m.t1 = "test2"; assert.sameValue(m.t1, "test2"); } 0 true}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 4 1 0 1 false false}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadVal({false}) compiler.go:433: > 4: goja.initStashP(0) compiler.go:433: > 5: goja.loadVal({false}) compiler.go:433: > 6: goja.initStashP(1) compiler.go:433: > 7: goja.loadVal({proto t}) compiler.go:433: > 8: goja.initStashP(2) compiler.go:433: > 9: goja.loadDynamic(Object) compiler.go:433: > 10: goja.getPropCallee(defineProperty) compiler.go:433: > 11: goja.loadStack(1) compiler.go:433: > 12: goja.loadVal({t}) compiler.go:433: > 13: goja._newObject({}) compiler.go:433: > 14: *goja.newFunc(&{0xc0003274f0 get function() { if (!getterAllowed) throw new Error("getter is called"); return tHolder; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(0) compiler.go:433: >> 2: goja._not({}) compiler.go:433: >> 3: goja.jneP(5) compiler.go:433: >> 4: goja.loadDynamic(Error) compiler.go:433: >> 5: goja.loadVal({getter is called}) compiler.go:433: >> 6: goja._new(1) compiler.go:433: >> 7: goja._throw({}) compiler.go:433: >> 8: goja.loadStash(2) compiler.go:433: >> 9: goja._ret({}) compiler.go:433: > 15: goja.putProp(get) compiler.go:433: > 16: *goja.newFunc(&{0xc000327540 set function(v) { if (!setterAllowed) throw new Error("setter is called"); tHolder = v; } 1 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: >> 1: goja.loadStash(1) compiler.go:433: >> 2: goja._not({}) compiler.go:433: >> 3: goja.jneP(5) compiler.go:433: >> 4: goja.loadDynamic(Error) compiler.go:433: >> 5: goja.loadVal({setter is called}) compiler.go:433: >> 6: goja._new(1) compiler.go:433: >> 7: goja._throw({}) compiler.go:433: >> 8: goja.loadStackLex(-1) compiler.go:433: >> 9: goja.storeStashP(2) compiler.go:433: >> 10: goja._loadUndef({}) compiler.go:433: >> 11: goja._ret({}) compiler.go:433: > 17: goja.putProp(set) compiler.go:433: > 18: goja.call(3) compiler.go:433: > 19: goja._pop({}) compiler.go:433: > 20: goja.loadDynamic(Object) compiler.go:433: > 21: goja.getPropCallee(defineProperty) compiler.go:433: > 22: goja.loadStack(1) compiler.go:433: > 23: goja.loadVal({t1}) compiler.go:433: > 24: goja._newObject({}) compiler.go:433: > 25: *goja.newFunc(&{0xc000327590 get function() { return t1Holder; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(3) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 26: goja.putProp(get) compiler.go:433: > 27: *goja.newFunc(&{0xc0003275e0 set function(v) { t1Holder = v; } 1 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: >> 1: goja.loadStackLex(-1) compiler.go:433: >> 2: goja.storeStashP(3) compiler.go:433: >> 3: goja._loadUndef({}) compiler.go:433: >> 4: goja._ret({}) compiler.go:433: > 28: goja.putProp(set) compiler.go:433: > 29: goja.call(3) compiler.go:433: > 30: goja._pop({}) compiler.go:433: > 31: goja.loadDynamic(Object) compiler.go:433: > 32: goja.getPropCallee(setPrototypeOf) compiler.go:433: > 33: goja.loadDynamic(m) compiler.go:433: > 34: goja.loadStack(1) compiler.go:433: > 35: goja.call(2) compiler.go:433: > 36: goja._pop({}) compiler.go:433: > 37: goja.loadDynamic(assert) compiler.go:433: > 38: goja.getPropCallee(sameValue) compiler.go:433: > 39: goja.loadDynamic(m) compiler.go:433: > 40: goja.getProp(t) compiler.go:433: > 41: goja.loadVal({42}) compiler.go:433: > 42: goja.call(2) compiler.go:433: > 43: goja._pop({}) compiler.go:433: > 44: goja.loadDynamic(m) compiler.go:433: > 45: goja.loadVal({43}) compiler.go:433: > 46: goja.setPropStrictP(t) compiler.go:433: > 47: goja.loadDynamic(assert) compiler.go:433: > 48: goja.getPropCallee(sameValue) compiler.go:433: > 49: goja.loadDynamic(m) compiler.go:433: > 50: goja.getProp(t) compiler.go:433: > 51: goja.loadVal({43}) compiler.go:433: > 52: goja.call(2) compiler.go:433: > 53: goja._pop({}) compiler.go:433: > 54: goja.loadVal({test}) compiler.go:433: > 55: goja.storeStashP(3) compiler.go:433: > 56: goja.loadDynamic(assert) compiler.go:433: > 57: goja.getPropCallee(sameValue) compiler.go:433: > 58: goja.loadDynamic(m) compiler.go:433: > 59: goja.getProp(t1) compiler.go:433: > 60: goja.loadVal({test}) compiler.go:433: > 61: goja.call(2) compiler.go:433: > 62: goja._pop({}) compiler.go:433: > 63: goja.loadDynamic(m) compiler.go:433: > 64: goja.loadVal({test1}) compiler.go:433: > 65: goja.setPropStrictP(t1) compiler.go:433: > 66: goja.loadDynamic(assert) compiler.go:433: > 67: goja.getPropCallee(sameValue) compiler.go:433: > 68: goja.loadDynamic(m) compiler.go:433: > 69: goja.getProp(t1) compiler.go:433: > 70: goja.loadVal({test1}) compiler.go:433: > 71: goja.call(2) compiler.go:433: > 72: goja._pop({}) compiler.go:433: > 73: goja.loadDynamic(m) compiler.go:433: > 74: goja.deletePropStrict(t) compiler.go:433: > 75: goja._pop({}) compiler.go:433: > 76: goja.loadVal({true}) compiler.go:433: > 77: goja.storeStashP(0) compiler.go:433: > 78: goja.loadDynamic(assert) compiler.go:433: > 79: goja.getPropCallee(sameValue) compiler.go:433: > 80: goja.loadDynamic(m) compiler.go:433: > 81: goja.getProp(t) compiler.go:433: > 82: goja.loadVal({proto t}) compiler.go:433: > 83: goja.loadVal({after delete}) compiler.go:433: > 84: goja.call(3) compiler.go:433: > 85: goja._pop({}) compiler.go:433: > 86: goja.loadVal({true}) compiler.go:433: > 87: goja.storeStashP(1) compiler.go:433: > 88: goja.loadDynamic(m) compiler.go:433: > 89: goja.loadVal({true}) compiler.go:433: > 90: goja.setPropStrictP(t) compiler.go:433: > 91: goja.loadDynamic(assert) compiler.go:433: > 92: goja.getPropCallee(sameValue) compiler.go:433: > 93: goja.loadDynamic(m) compiler.go:433: > 94: goja.getProp(t) compiler.go:433: > 95: goja.loadVal({true}) compiler.go:433: > 96: goja.call(2) compiler.go:433: > 97: goja._pop({}) compiler.go:433: > 98: goja.loadDynamic(assert) compiler.go:433: > 99: goja.getPropCallee(sameValue) compiler.go:433: > 100: goja.loadStash(2) compiler.go:433: > 101: goja.loadVal({true}) compiler.go:433: > 102: goja.call(2) compiler.go:433: > 103: goja._pop({}) compiler.go:433: > 104: goja.loadDynamic(Object) compiler.go:433: > 105: goja.getPropCallee(preventExtensions) compiler.go:433: > 106: goja.loadDynamic(m) compiler.go:433: > 107: goja.call(1) compiler.go:433: > 108: goja._pop({}) compiler.go:433: > 109: goja.loadDynamic(assert) compiler.go:433: > 110: goja.getPropCallee(throws) compiler.go:433: > 111: goja.loadDynamic(TypeError) compiler.go:433: > 112: *goja.newFunc(&{0xc000327680 function() { m.t2 = 1; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(m) compiler.go:433: >> 2: goja.loadVal({1}) compiler.go:433: >> 3: goja.setPropStrictP(t2) compiler.go:433: >> 4: goja._loadUndef({}) compiler.go:433: >> 5: goja._ret({}) compiler.go:433: > 113: goja.call(2) compiler.go:433: > 114: goja._pop({}) compiler.go:433: > 115: goja.loadDynamic(m) compiler.go:433: > 116: goja.loadVal({test2}) compiler.go:433: > 117: goja.setPropStrictP(t1) compiler.go:433: > 118: goja.loadDynamic(assert) compiler.go:433: > 119: goja.getPropCallee(sameValue) compiler.go:433: > 120: goja.loadDynamic(m) compiler.go:433: > 121: goja.getProp(t1) compiler.go:433: > 122: goja.loadVal({test2}) compiler.go:433: > 123: goja.call(2) compiler.go:433: > 124: goja._pop({}) compiler.go:433: > 125: goja._loadUndef({}) compiler.go:433: > 126: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestGoMapWithProto (0.00s) === RUN TestGoMapProtoProp compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc0003279a0 function() { "use strict"; var proto = {}; Object.defineProperty(proto, "ro", {value: 42}); Object.setPrototypeOf(m, proto); assert.throws(TypeError, function() { m.ro = 43; }); Object.defineProperty(m, "ro", {value: 43}); assert.sameValue(m.ro, 43); } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadDynamic(Object) compiler.go:433: > 4: goja.getPropCallee(defineProperty) compiler.go:433: > 5: goja.loadStack(1) compiler.go:433: > 6: goja.loadVal({ro}) compiler.go:433: > 7: goja._newObject({}) compiler.go:433: > 8: goja.loadVal({42}) compiler.go:433: > 9: goja.putProp(value) compiler.go:433: > 10: goja.call(3) compiler.go:433: > 11: goja._pop({}) compiler.go:433: > 12: goja.loadDynamic(Object) compiler.go:433: > 13: goja.getPropCallee(setPrototypeOf) compiler.go:433: > 14: goja.loadDynamic(m) compiler.go:433: > 15: goja.loadStack(1) compiler.go:433: > 16: goja.call(2) compiler.go:433: > 17: goja._pop({}) compiler.go:433: > 18: goja.loadDynamic(assert) compiler.go:433: > 19: goja.getPropCallee(throws) compiler.go:433: > 20: goja.loadDynamic(TypeError) compiler.go:433: > 21: *goja.newFunc(&{0xc0003279f0 function() { m.ro = 43; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(m) compiler.go:433: >> 2: goja.loadVal({43}) compiler.go:433: >> 3: goja.setPropStrictP(ro) compiler.go:433: >> 4: goja._loadUndef({}) compiler.go:433: >> 5: goja._ret({}) compiler.go:433: > 22: goja.call(2) compiler.go:433: > 23: goja._pop({}) compiler.go:433: > 24: goja.loadDynamic(Object) compiler.go:433: > 25: goja.getPropCallee(defineProperty) compiler.go:433: > 26: goja.loadDynamic(m) compiler.go:433: > 27: goja.loadVal({ro}) compiler.go:433: > 28: goja._newObject({}) compiler.go:433: > 29: goja.loadVal({43}) compiler.go:433: > 30: goja.putProp(value) compiler.go:433: > 31: goja.call(3) compiler.go:433: > 32: goja._pop({}) compiler.go:433: > 33: goja.loadDynamic(assert) compiler.go:433: > 34: goja.getPropCallee(sameValue) compiler.go:433: > 35: goja.loadDynamic(m) compiler.go:433: > 36: goja.getProp(ro) compiler.go:433: > 37: goja.loadVal({43}) compiler.go:433: > 38: goja.call(2) compiler.go:433: > 39: goja._pop({}) compiler.go:433: > 40: goja._loadUndef({}) compiler.go:433: > 41: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGoMapProtoProp (0.00s) === RUN TestGoMapProtoPropChain compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc000327c20 function() { "use strict"; var p1 = Object.create(null); m.__proto__ = p1; Object.defineProperty(p1, "test", { value: 42 }); Object.defineProperty(m, "test", { value: 43, writable: true, }); var o = Object.create(m); o.test = 44; assert.sameValue(o.test, 44); var sym = Symbol(true); Object.defineProperty(p1, sym, { value: 42 }); Object.defineProperty(m, sym, { value: 43, writable: true, }); o[sym] = 44; assert.sameValue(o[sym], 44); } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{3 0}) compiler.go:433: > 1: goja.loadDynamic(Object) compiler.go:433: > 2: goja.getPropCallee(create) compiler.go:433: > 3: goja.loadVal({{}}) compiler.go:433: > 4: goja.call(1) compiler.go:433: > 5: goja.initStackP(1) compiler.go:433: > 6: goja.loadDynamic(m) compiler.go:433: > 7: goja.loadStack(1) compiler.go:433: > 8: goja.setPropStrictP(__proto__) compiler.go:433: > 9: goja.loadDynamic(Object) compiler.go:433: > 10: goja.getPropCallee(defineProperty) compiler.go:433: > 11: goja.loadStack(1) compiler.go:433: > 12: goja.loadVal({test}) compiler.go:433: > 13: goja._newObject({}) compiler.go:433: > 14: goja.loadVal({42}) compiler.go:433: > 15: goja.putProp(value) compiler.go:433: > 16: goja.call(3) compiler.go:433: > 17: goja._pop({}) compiler.go:433: > 18: goja.loadDynamic(Object) compiler.go:433: > 19: goja.getPropCallee(defineProperty) compiler.go:433: > 20: goja.loadDynamic(m) compiler.go:433: > 21: goja.loadVal({test}) compiler.go:433: > 22: goja._newObject({}) compiler.go:433: > 23: goja.loadVal({43}) compiler.go:433: > 24: goja.putProp(value) compiler.go:433: > 25: goja.loadVal({true}) compiler.go:433: > 26: goja.putProp(writable) compiler.go:433: > 27: goja.call(3) compiler.go:433: > 28: goja._pop({}) compiler.go:433: > 29: goja.loadDynamic(Object) compiler.go:433: > 30: goja.getPropCallee(create) compiler.go:433: > 31: goja.loadDynamic(m) compiler.go:433: > 32: goja.call(1) compiler.go:433: > 33: goja.initStackP(2) compiler.go:433: > 34: goja.loadStack(2) compiler.go:433: > 35: goja.loadVal({44}) compiler.go:433: > 36: goja.setPropStrictP(test) compiler.go:433: > 37: goja.loadDynamic(assert) compiler.go:433: > 38: goja.getPropCallee(sameValue) compiler.go:433: > 39: goja.loadStack(2) compiler.go:433: > 40: goja.getProp(test) compiler.go:433: > 41: goja.loadVal({44}) compiler.go:433: > 42: goja.call(2) compiler.go:433: > 43: goja._pop({}) compiler.go:433: > 44: goja.loadDynamicCallee(Symbol) compiler.go:433: > 45: goja.loadVal({true}) compiler.go:433: > 46: goja.call(1) compiler.go:433: > 47: goja.initStackP(3) compiler.go:433: > 48: goja.loadDynamic(Object) compiler.go:433: > 49: goja.getPropCallee(defineProperty) compiler.go:433: > 50: goja.loadStack(1) compiler.go:433: > 51: goja.loadStack(3) compiler.go:433: > 52: goja._newObject({}) compiler.go:433: > 53: goja.loadVal({42}) compiler.go:433: > 54: goja.putProp(value) compiler.go:433: > 55: goja.call(3) compiler.go:433: > 56: goja._pop({}) compiler.go:433: > 57: goja.loadDynamic(Object) compiler.go:433: > 58: goja.getPropCallee(defineProperty) compiler.go:433: > 59: goja.loadDynamic(m) compiler.go:433: > 60: goja.loadStack(3) compiler.go:433: > 61: goja._newObject({}) compiler.go:433: > 62: goja.loadVal({43}) compiler.go:433: > 63: goja.putProp(value) compiler.go:433: > 64: goja.loadVal({true}) compiler.go:433: > 65: goja.putProp(writable) compiler.go:433: > 66: goja.call(3) compiler.go:433: > 67: goja._pop({}) compiler.go:433: > 68: goja.loadStack(2) compiler.go:433: > 69: goja.loadStack(3) compiler.go:433: > 70: goja.loadVal({44}) compiler.go:433: > 71: goja._setElemStrictP({}) compiler.go:433: > 72: goja.loadDynamic(assert) compiler.go:433: > 73: goja.getPropCallee(sameValue) compiler.go:433: > 74: goja.loadStack(2) compiler.go:433: > 75: goja.loadStack(3) compiler.go:433: > 76: goja._getElem({}) compiler.go:433: > 77: goja.loadVal({44}) compiler.go:433: > 78: goja.call(2) compiler.go:433: > 79: goja._pop({}) compiler.go:433: > 80: goja._loadUndef({}) compiler.go:433: > 81: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGoMapProtoPropChain (0.00s) === RUN TestGoMapUnicode --- PASS: TestGoMapUnicode (0.00s) === RUN TestGoReflectGet --- PASS: TestGoReflectGet (0.00s) === RUN TestGoReflectSet --- PASS: TestGoReflectSet (0.00s) === RUN TestGoReflectEnumerate --- PASS: TestGoReflectEnumerate (0.00s) === RUN TestGoReflectCustomIntUnbox --- PASS: TestGoReflectCustomIntUnbox (0.00s) === RUN TestGoReflectPreserveCustomType --- PASS: TestGoReflectPreserveCustomType (0.00s) === RUN TestGoReflectCustomIntValueOf --- PASS: TestGoReflectCustomIntValueOf (0.00s) === RUN TestGoReflectEqual --- PASS: TestGoReflectEqual (0.00s) === RUN TestGoReflectMethod --- PASS: TestGoReflectMethod (0.00s) === RUN TestGoReflectMethodPtr --- PASS: TestGoReflectMethodPtr (0.00s) === RUN TestGoReflectPtrMethodOnNonPtrValue --- PASS: TestGoReflectPtrMethodOnNonPtrValue (0.00s) === RUN TestGoReflectStructField compiler.go:433: 0: goja.loadDynamic(s) compiler.go:433: 1: goja.getProp(F) compiler.go:433: 2: goja.getPropCallee(Set) compiler.go:433: 3: goja.loadVal({Test}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._pop({}) compiler.go:433: 6: goja.loadDynamic(assert) compiler.go:433: 7: goja.getPropCallee(sameValue) compiler.go:433: 8: goja.loadDynamic(s) compiler.go:433: 9: goja.getProp(F) compiler.go:433: 10: goja.getPropCallee(Method) compiler.go:433: 11: goja.loadVal({}) compiler.go:433: 12: goja.call(1) compiler.go:433: 13: goja.loadVal({Test}) compiler.go:433: 14: goja.loadVal({1}) compiler.go:433: 15: goja.call(3) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadDynamic(s) compiler.go:433: 18: goja.loadVal({true}) compiler.go:433: 19: goja.setPropP(B) compiler.go:433: 20: goja.loadDynamic(assert) compiler.go:433: 21: goja.getPropCallee(sameValue) compiler.go:433: 22: goja.loadDynamic(s) compiler.go:433: 23: goja.getProp(B) compiler.go:433: 24: goja.getPropCallee(Method) compiler.go:433: 25: goja.call(0) compiler.go:433: 26: goja.loadVal({true}) compiler.go:433: 27: goja.loadVal({2}) compiler.go:433: 28: goja.call(3) compiler.go:433: 29: goja._pop({}) compiler.go:433: 30: goja.loadDynamic(assert) compiler.go:433: 31: goja.getPropCallee(sameValue) compiler.go:433: 32: goja.loadDynamic(s) compiler.go:433: 33: goja.getProp(B) compiler.go:433: 34: goja.getPropCallee(toString) compiler.go:433: 35: goja.call(0) compiler.go:433: 36: goja.loadVal({B}) compiler.go:433: 37: goja.loadVal({3}) compiler.go:433: 38: goja.call(3) compiler.go:433: 39: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGoReflectStructField (0.00s) === RUN TestGoReflectProp --- PASS: TestGoReflectProp (0.00s) === RUN TestGoReflectRedefineFieldSuccess --- PASS: TestGoReflectRedefineFieldSuccess (0.00s) === RUN TestGoReflectRedefineFieldNonWritable --- PASS: TestGoReflectRedefineFieldNonWritable (0.00s) === RUN TestGoReflectRedefineFieldConfigurable --- PASS: TestGoReflectRedefineFieldConfigurable (0.00s) === RUN TestGoReflectRedefineMethod --- PASS: TestGoReflectRedefineMethod (0.00s) === RUN TestGoReflectEmbeddedStruct --- PASS: TestGoReflectEmbeddedStruct (0.00s) === RUN TestGoReflectCustomNaming === RUN TestGoReflectCustomNaming/get_property === RUN TestGoReflectCustomNaming/set_property === RUN TestGoReflectCustomNaming/enumerate_properties --- PASS: TestGoReflectCustomNaming (0.00s) --- PASS: TestGoReflectCustomNaming/get_property (0.00s) --- PASS: TestGoReflectCustomNaming/set_property (0.00s) --- PASS: TestGoReflectCustomNaming/enumerate_properties (0.00s) === RUN TestGoReflectCustomObjNaming === RUN TestGoReflectCustomObjNaming/Set_object_in_slice === RUN TestGoReflectCustomObjNaming/Set_object_in_map === RUN TestGoReflectCustomObjNaming/Add_object_to_map --- PASS: TestGoReflectCustomObjNaming (0.00s) --- PASS: TestGoReflectCustomObjNaming/Set_object_in_slice (0.00s) --- PASS: TestGoReflectCustomObjNaming/Set_object_in_map (0.00s) --- PASS: TestGoReflectCustomObjNaming/Add_object_to_map (0.00s) === RUN TestNonStructAnonFields --- PASS: TestNonStructAnonFields (0.00s) === RUN TestStructNonAddressable --- PASS: TestStructNonAddressable (0.00s) === RUN TestHidingAnonField --- PASS: TestHidingAnonField (0.00s) === RUN TestFieldOverriding --- PASS: TestFieldOverriding (0.00s) === RUN TestDefinePropertyUnexportedJsName --- PASS: TestDefinePropertyUnexportedJsName (0.00s) === RUN TestHasOwnPropertyUnexportedJsName --- PASS: TestHasOwnPropertyUnexportedJsName (0.00s) === RUN TestNestedStructSet --- PASS: TestNestedStructSet (0.00s) === RUN TestStructNonAddressableAnonStruct --- PASS: TestStructNonAddressableAnonStruct (0.00s) === RUN TestTagFieldNameMapperInvalidId --- PASS: TestTagFieldNameMapperInvalidId (0.00s) === RUN TestPrimitivePtr --- PASS: TestPrimitivePtr (0.00s) === RUN TestStringer --- PASS: TestStringer (0.00s) === RUN TestGoReflectWithProto compiler.go:433: 0: goja._loadUndef({}) compiler.go:433: 1: *goja.newFunc(&{0xc000485ae0 function() { 'use strict'; var proto = { Field: "protoField", test: 42 }; var test1Holder; Object.defineProperty(proto, "test1", { set: function(v) { test1Holder = v; }, get: function() { return test1Holder; } }); Object.setPrototypeOf(s, proto); assert.sameValue(s.Field, 0, "s.Field"); s.Field = 2; assert.sameValue(s.Field, 2, "s.Field"); assert.sameValue(s.test, 42, "s.test"); assert.throws(TypeError, function() { Object.defineProperty(s, "test", {value: 43}); }); test1Holder = 1; assert.sameValue(s.test1, 1, "s.test1"); s.test1 = 2; assert.sameValue(test1Holder, 2, "test1Holder"); } 0 true}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 1 0 1 false false}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: goja.loadVal({protoField}) compiler.go:433: > 3: goja.putProp(Field) compiler.go:433: > 4: goja.loadVal({42}) compiler.go:433: > 5: goja.putProp(test) compiler.go:433: > 6: goja.initStackP(1) compiler.go:433: > 7: goja.loadDynamic(Object) compiler.go:433: > 8: goja.getPropCallee(defineProperty) compiler.go:433: > 9: goja.loadStack(1) compiler.go:433: > 10: goja.loadVal({test1}) compiler.go:433: > 11: goja._newObject({}) compiler.go:433: > 12: *goja.newFunc(&{0xc000485b30 set function(v) { test1Holder = v; } 1 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: >> 1: goja.loadStackLex(-1) compiler.go:433: >> 2: goja.storeStashP(0) compiler.go:433: >> 3: goja._loadUndef({}) compiler.go:433: >> 4: goja._ret({}) compiler.go:433: > 13: goja.putProp(set) compiler.go:433: > 14: *goja.newFunc(&{0xc000485bd0 get function() { return test1Holder; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStash(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 15: goja.putProp(get) compiler.go:433: > 16: goja.call(3) compiler.go:433: > 17: goja._pop({}) compiler.go:433: > 18: goja.loadDynamic(Object) compiler.go:433: > 19: goja.getPropCallee(setPrototypeOf) compiler.go:433: > 20: goja.loadDynamic(s) compiler.go:433: > 21: goja.loadStack(1) compiler.go:433: > 22: goja.call(2) compiler.go:433: > 23: goja._pop({}) compiler.go:433: > 24: goja.loadDynamic(assert) compiler.go:433: > 25: goja.getPropCallee(sameValue) compiler.go:433: > 26: goja.loadDynamic(s) compiler.go:433: > 27: goja.getProp(Field) compiler.go:433: > 28: goja.loadVal({0}) compiler.go:433: > 29: goja.loadVal({s.Field}) compiler.go:433: > 30: goja.call(3) compiler.go:433: > 31: goja._pop({}) compiler.go:433: > 32: goja.loadDynamic(s) compiler.go:433: > 33: goja.loadVal({2}) compiler.go:433: > 34: goja.setPropStrictP(Field) compiler.go:433: > 35: goja.loadDynamic(assert) compiler.go:433: > 36: goja.getPropCallee(sameValue) compiler.go:433: > 37: goja.loadDynamic(s) compiler.go:433: > 38: goja.getProp(Field) compiler.go:433: > 39: goja.loadVal({2}) compiler.go:433: > 40: goja.loadVal({s.Field}) compiler.go:433: > 41: goja.call(3) compiler.go:433: > 42: goja._pop({}) compiler.go:433: > 43: goja.loadDynamic(assert) compiler.go:433: > 44: goja.getPropCallee(sameValue) compiler.go:433: > 45: goja.loadDynamic(s) compiler.go:433: > 46: goja.getProp(test) compiler.go:433: > 47: goja.loadVal({42}) compiler.go:433: > 48: goja.loadVal({s.test}) compiler.go:433: > 49: goja.call(3) compiler.go:433: > 50: goja._pop({}) compiler.go:433: > 51: goja.loadDynamic(assert) compiler.go:433: > 52: goja.getPropCallee(throws) compiler.go:433: > 53: goja.loadDynamic(TypeError) compiler.go:433: > 54: *goja.newFunc(&{0xc000485c20 function() { Object.defineProperty(s, "test", {value: 43}); } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(Object) compiler.go:433: >> 2: goja.getPropCallee(defineProperty) compiler.go:433: >> 3: goja.loadDynamic(s) compiler.go:433: >> 4: goja.loadVal({test}) compiler.go:433: >> 5: goja._newObject({}) compiler.go:433: >> 6: goja.loadVal({43}) compiler.go:433: >> 7: goja.putProp(value) compiler.go:433: >> 8: goja.call(3) compiler.go:433: >> 9: goja._pop({}) compiler.go:433: >> 10: goja._loadUndef({}) compiler.go:433: >> 11: goja._ret({}) compiler.go:433: > 55: goja.call(2) compiler.go:433: > 56: goja._pop({}) compiler.go:433: > 57: goja.loadVal({1}) compiler.go:433: > 58: goja.storeStashP(0) compiler.go:433: > 59: goja.loadDynamic(assert) compiler.go:433: > 60: goja.getPropCallee(sameValue) compiler.go:433: > 61: goja.loadDynamic(s) compiler.go:433: > 62: goja.getProp(test1) compiler.go:433: > 63: goja.loadVal({1}) compiler.go:433: > 64: goja.loadVal({s.test1}) compiler.go:433: > 65: goja.call(3) compiler.go:433: > 66: goja._pop({}) compiler.go:433: > 67: goja.loadDynamic(s) compiler.go:433: > 68: goja.loadVal({2}) compiler.go:433: > 69: goja.setPropStrictP(test1) compiler.go:433: > 70: goja.loadDynamic(assert) compiler.go:433: > 71: goja.getPropCallee(sameValue) compiler.go:433: > 72: goja.loadStash(0) compiler.go:433: > 73: goja.loadVal({2}) compiler.go:433: > 74: goja.loadVal({test1Holder}) compiler.go:433: > 75: goja.call(3) compiler.go:433: > 76: goja._pop({}) compiler.go:433: > 77: goja._loadUndef({}) compiler.go:433: > 78: goja._ret({}) compiler.go:433: 2: goja.call(0) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestGoReflectWithProto (0.00s) === RUN TestGoReflectSymbols --- PASS: TestGoReflectSymbols (0.00s) === RUN TestGoReflectSymbolEqualityQuirk --- PASS: TestGoReflectSymbolEqualityQuirk (0.00s) === RUN TestGoObj__Proto__ --- PASS: TestGoObj__Proto__ (0.00s) === RUN TestGoReflectUnicodeProps --- PASS: TestGoReflectUnicodeProps (0.00s) === RUN TestGoReflectPreserveType --- PASS: TestGoReflectPreserveType (0.00s) === RUN TestGoReflectCopyOnWrite --- PASS: TestGoReflectCopyOnWrite (0.00s) === RUN TestReflectSetReflectValue --- PASS: TestReflectSetReflectValue (0.00s) === RUN TestReflectOverwriteReflectMap --- PASS: TestReflectOverwriteReflectMap (0.00s) === RUN TestGoReflectToPrimitive === RUN TestGoReflectToPrimitive/Not_Stringers === RUN TestGoReflectToPrimitive/Not_Stringers/Bool === RUN TestGoReflectToPrimitive/Not_Stringers/*Bool === RUN TestGoReflectToPrimitive/Not_Stringers/Int === RUN TestGoReflectToPrimitive/Not_Stringers/*Int === RUN TestGoReflectToPrimitive/Not_Stringers/Uint === RUN TestGoReflectToPrimitive/Not_Stringers/*Uint === RUN TestGoReflectToPrimitive/Not_Stringers/Float === RUN TestGoReflectToPrimitive/Not_Stringers/*Float === RUN TestGoReflectToPrimitive/Not_Stringers/FloatInf === RUN TestGoReflectToPrimitive/Not_Stringers/Empty === RUN TestGoReflectToPrimitive/Stringers === RUN TestGoReflectToPrimitive/Stringers/Bool === RUN TestGoReflectToPrimitive/Stringers/*Bool === RUN TestGoReflectToPrimitive/Stringers/Int === RUN TestGoReflectToPrimitive/Stringers/*Int === RUN TestGoReflectToPrimitive/Stringers/String === RUN TestGoReflectToPrimitive/Stringers/*String --- PASS: TestGoReflectToPrimitive (0.00s) --- PASS: TestGoReflectToPrimitive/Not_Stringers (0.00s) --- PASS: TestGoReflectToPrimitive/Not_Stringers/Bool (0.00s) --- PASS: TestGoReflectToPrimitive/Not_Stringers/*Bool (0.00s) --- PASS: TestGoReflectToPrimitive/Not_Stringers/Int (0.00s) --- PASS: TestGoReflectToPrimitive/Not_Stringers/*Int (0.00s) --- PASS: TestGoReflectToPrimitive/Not_Stringers/Uint (0.00s) --- PASS: TestGoReflectToPrimitive/Not_Stringers/*Uint (0.00s) --- PASS: TestGoReflectToPrimitive/Not_Stringers/Float (0.00s) --- PASS: TestGoReflectToPrimitive/Not_Stringers/*Float (0.00s) --- PASS: TestGoReflectToPrimitive/Not_Stringers/FloatInf (0.00s) --- PASS: TestGoReflectToPrimitive/Not_Stringers/Empty (0.00s) --- PASS: TestGoReflectToPrimitive/Stringers (0.00s) --- PASS: TestGoReflectToPrimitive/Stringers/Bool (0.00s) --- PASS: TestGoReflectToPrimitive/Stringers/*Bool (0.00s) --- PASS: TestGoReflectToPrimitive/Stringers/Int (0.00s) --- PASS: TestGoReflectToPrimitive/Stringers/*Int (0.00s) --- PASS: TestGoReflectToPrimitive/Stringers/String (0.00s) --- PASS: TestGoReflectToPrimitive/Stringers/*String (0.00s) === RUN TestGoReflectFuncWithRuntime --- PASS: TestGoReflectFuncWithRuntime (0.00s) === RUN TestGoReflectDefaultToString --- PASS: TestGoReflectDefaultToString (0.00s) === RUN TestGoReflectUnexportedEmbedStruct === RUN TestGoReflectUnexportedEmbedStruct/foo.privateEmbed === RUN TestGoReflectUnexportedEmbedStruct/foo.A === RUN TestGoReflectUnexportedEmbedStruct/foo.PublicEmbed === RUN TestGoReflectUnexportedEmbedStruct/foo.B === RUN TestGoReflectUnexportedEmbedStruct/foo.PublicEmbed.B === RUN TestGoReflectUnexportedEmbedStruct/foo.privateNested === RUN TestGoReflectUnexportedEmbedStruct/foo.C === RUN TestGoReflectUnexportedEmbedStruct/foo.PublicNested === RUN TestGoReflectUnexportedEmbedStruct/foo.D === RUN TestGoReflectUnexportedEmbedStruct/foo.PublicNested.D === RUN TestGoReflectUnexportedEmbedStruct/foo.e === RUN TestGoReflectUnexportedEmbedStruct/foo.F --- PASS: TestGoReflectUnexportedEmbedStruct (0.00s) --- PASS: TestGoReflectUnexportedEmbedStruct/foo.privateEmbed (0.00s) --- PASS: TestGoReflectUnexportedEmbedStruct/foo.A (0.00s) --- PASS: TestGoReflectUnexportedEmbedStruct/foo.PublicEmbed (0.00s) --- PASS: TestGoReflectUnexportedEmbedStruct/foo.B (0.00s) --- PASS: TestGoReflectUnexportedEmbedStruct/foo.PublicEmbed.B (0.00s) --- PASS: TestGoReflectUnexportedEmbedStruct/foo.privateNested (0.00s) --- PASS: TestGoReflectUnexportedEmbedStruct/foo.C (0.00s) --- PASS: TestGoReflectUnexportedEmbedStruct/foo.PublicNested (0.00s) --- PASS: TestGoReflectUnexportedEmbedStruct/foo.D (0.00s) --- PASS: TestGoReflectUnexportedEmbedStruct/foo.PublicNested.D (0.00s) --- PASS: TestGoReflectUnexportedEmbedStruct/foo.e (0.00s) --- PASS: TestGoReflectUnexportedEmbedStruct/foo.F (0.00s) === RUN TestNestedSliceAddr --- PASS: TestNestedSliceAddr (0.00s) === RUN TestGoSliceReflectBasic --- PASS: TestGoSliceReflectBasic (0.00s) === RUN TestGoSliceReflectIn --- PASS: TestGoSliceReflectIn (0.00s) === RUN TestGoSliceReflectSet --- PASS: TestGoSliceReflectSet (0.00s) === RUN TestGoSliceReflectPush === RUN TestGoSliceReflectPush/Can_push_to_array_by_array_ptr === RUN TestGoSliceReflectPush/Can_push_to_array_by_struct_ptr --- PASS: TestGoSliceReflectPush (0.00s) --- PASS: TestGoSliceReflectPush/Can_push_to_array_by_array_ptr (0.00s) --- PASS: TestGoSliceReflectPush/Can_push_to_array_by_struct_ptr (0.00s) === RUN TestGoSliceReflectStructField --- PASS: TestGoSliceReflectStructField (0.00s) === RUN TestGoSliceReflectExportToStructField --- PASS: TestGoSliceReflectExportToStructField (0.00s) === RUN TestGoSliceReflectProtoMethod --- PASS: TestGoSliceReflectProtoMethod (0.00s) === RUN TestGoSliceReflectMethod --- PASS: TestGoSliceReflectMethod (0.00s) === RUN TestGoSliceReflectGetStr --- PASS: TestGoSliceReflectGetStr (0.00s) === RUN TestGoSliceReflectNilObjectIfaceVal --- PASS: TestGoSliceReflectNilObjectIfaceVal (0.00s) === RUN TestGoSliceReflectSetLength --- PASS: TestGoSliceReflectSetLength (0.00s) === RUN TestGoSliceReflectProto compiler.go:433: 0: *goja.bindGlobal(&{[proto desc v5] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(proto) compiler.go:433: 2: goja.newArray(4) compiler.go:433: 3: goja._loadNil({}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja._loadNil({}) compiler.go:433: 8: goja._pushArrayItem({}) compiler.go:433: 9: goja.loadVal({4}) compiler.go:433: 10: goja._pushArrayItem({}) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(Object) compiler.go:433: 13: goja.getPropCallee(setPrototypeOf) compiler.go:433: 14: goja.loadDynamic(a) compiler.go:433: 15: goja.loadDynamic(proto) compiler.go:433: 16: goja.call(2) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.loadDynamic(assert) compiler.go:433: 19: goja.getPropCallee(sameValue) compiler.go:433: 20: goja.loadDynamic(a) compiler.go:433: 21: goja.loadVal({1}) compiler.go:433: 22: goja._getElem({}) compiler.go:433: 23: goja.loadVal({{}}) compiler.go:433: 24: goja.loadVal({a[1]}) compiler.go:433: 25: goja.call(3) compiler.go:433: 26: goja._pop({}) compiler.go:433: 27: goja.loadDynamic(assert) compiler.go:433: 28: goja.getPropCallee(sameValue) compiler.go:433: 29: goja.loadDynamic(a) compiler.go:433: 30: goja.loadVal({3}) compiler.go:433: 31: goja._getElem({}) compiler.go:433: 32: goja.loadVal({4}) compiler.go:433: 33: goja.loadVal({a[3]}) compiler.go:433: 34: goja.call(3) compiler.go:433: 35: goja._pop({}) compiler.go:433: 36: goja.resolveVar1(desc) compiler.go:433: 37: goja.loadDynamic(Object) compiler.go:433: 38: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 39: goja.loadDynamic(a) compiler.go:433: 40: goja.loadVal({1}) compiler.go:433: 41: goja.call(2) compiler.go:433: 42: goja._initValueP({}) compiler.go:433: 43: goja.loadDynamic(assert) compiler.go:433: 44: goja.getPropCallee(sameValue) compiler.go:433: 45: goja.loadDynamic(desc) compiler.go:433: 46: goja.getProp(value) compiler.go:433: 47: goja.loadVal({{}}) compiler.go:433: 48: goja.loadVal({desc.value}) compiler.go:433: 49: goja.call(3) compiler.go:433: 50: goja._pop({}) compiler.go:433: 51: goja.loadDynamicCallee(assert) compiler.go:433: 52: goja.loadDynamic(desc) compiler.go:433: 53: goja.getProp(writable) compiler.go:433: 54: goja.loadVal({writable}) compiler.go:433: 55: goja.call(2) compiler.go:433: 56: goja._pop({}) compiler.go:433: 57: goja.loadDynamicCallee(assert) compiler.go:433: 58: goja.loadDynamic(desc) compiler.go:433: 59: goja.getProp(enumerable) compiler.go:433: 60: goja.loadVal({enumerable}) compiler.go:433: 61: goja.call(2) compiler.go:433: 62: goja._pop({}) compiler.go:433: 63: goja.loadDynamicCallee(assert) compiler.go:433: 64: goja.loadDynamic(desc) compiler.go:433: 65: goja.getProp(configurable) compiler.go:433: 66: goja._not({}) compiler.go:433: 67: goja.loadVal({configurable}) compiler.go:433: 68: goja.call(2) compiler.go:433: 69: goja._pop({}) compiler.go:433: 70: goja.loadDynamic(Object) compiler.go:433: 71: goja.getPropCallee(defineProperty) compiler.go:433: 72: goja.loadDynamic(proto) compiler.go:433: 73: goja.loadVal({5}) compiler.go:433: 74: goja._newObject({}) compiler.go:433: 75: *goja.newFunc(&{0xc0003f6000 set function(v) { v5 = v; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.resolveVar1(v5) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 76: goja.putProp(set) compiler.go:433: 77: goja.call(3) compiler.go:433: 78: goja._pop({}) compiler.go:433: 79: goja.loadDynamic(a) compiler.go:433: 80: goja.loadVal({5}) compiler.go:433: 81: goja.loadVal({test}) compiler.go:433: 82: goja._setElemP({}) compiler.go:433: 83: goja.loadDynamic(assert) compiler.go:433: 84: goja.getPropCallee(sameValue) compiler.go:433: 85: goja.loadDynamic(v5) compiler.go:433: 86: goja.loadVal({test}) compiler.go:433: 87: goja.loadVal({v5}) compiler.go:433: 88: goja.call(3) compiler.go:433: 89: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGoSliceReflectProto (0.00s) === RUN TestGoSliceReflectProtoProto --- PASS: TestGoSliceReflectProtoProto (0.00s) === RUN TestGoSliceReflectDelete --- PASS: TestGoSliceReflectDelete (0.00s) === RUN TestGoSliceReflectPop --- PASS: TestGoSliceReflectPop (0.00s) === RUN TestGoSliceReflectPopNoPtr --- PASS: TestGoSliceReflectPopNoPtr (0.00s) === RUN TestGoSliceReflectLengthProperty --- PASS: TestGoSliceReflectLengthProperty (0.00s) === RUN TestGoSliceReflectMethods --- PASS: TestGoSliceReflectMethods (0.00s) === RUN TestGoSliceReflectExportAfterGrow --- PASS: TestGoSliceReflectExportAfterGrow (0.00s) === RUN TestGoSliceReflectSort object_goslice_reflect_test.go:462: etcetc --- PASS: TestGoSliceReflectSort (0.00s) === RUN TestGoSliceReflect111 object_goslice_reflect_test.go:480: 21 object_goslice_reflect_test.go:484: 0 --- PASS: TestGoSliceReflect111 (0.00s) === RUN TestGoSliceReflectExternalLenUpdate compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(sameValue) compiler.go:433: 2: goja.loadDynamic(data) compiler.go:433: 3: goja.getProp(length) compiler.go:433: 4: goja.loadVal({1}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja.loadDynamic(data) compiler.go:433: 8: goja.getPropCallee(push) compiler.go:433: 9: goja.loadVal({1}) compiler.go:433: 10: goja.call(1) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.loadDynamic(assert) compiler.go:433: 13: goja.getPropCallee(sameValue) compiler.go:433: 14: goja.loadDynamic(data) compiler.go:433: 15: goja.getProp(length) compiler.go:433: 16: goja.loadVal({2}) compiler.go:433: 17: goja.call(2) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamicCallee(append) compiler.go:433: 20: goja.loadDynamic(data) compiler.go:433: 21: goja.loadVal({2}) compiler.go:433: 22: goja.call(2) compiler.go:433: 23: goja._pop({}) compiler.go:433: 24: goja.loadDynamic(assert) compiler.go:433: 25: goja.getPropCallee(sameValue) compiler.go:433: 26: goja.loadDynamic(data) compiler.go:433: 27: goja.getProp(length) compiler.go:433: 28: goja.loadVal({3}) compiler.go:433: 29: goja.call(2) compiler.go:433: 30: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGoSliceReflectExternalLenUpdate (0.00s) === RUN TestGoSliceBasic --- PASS: TestGoSliceBasic (0.00s) === RUN TestGoSliceIn --- PASS: TestGoSliceIn (0.00s) === RUN TestGoSliceExpand --- PASS: TestGoSliceExpand (0.00s) === RUN TestGoSliceProtoMethod --- PASS: TestGoSliceProtoMethod (0.00s) === RUN TestGoSliceSetLength --- PASS: TestGoSliceSetLength (0.00s) === RUN TestGoSliceProto compiler.go:433: 0: *goja.bindGlobal(&{[proto desc v5] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(proto) compiler.go:433: 2: goja.newArray(4) compiler.go:433: 3: goja._loadNil({}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja._loadNil({}) compiler.go:433: 8: goja._pushArrayItem({}) compiler.go:433: 9: goja.loadVal({4}) compiler.go:433: 10: goja._pushArrayItem({}) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(Object) compiler.go:433: 13: goja.getPropCallee(setPrototypeOf) compiler.go:433: 14: goja.loadDynamic(a) compiler.go:433: 15: goja.loadDynamic(proto) compiler.go:433: 16: goja.call(2) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.loadDynamic(assert) compiler.go:433: 19: goja.getPropCallee(sameValue) compiler.go:433: 20: goja.loadDynamic(a) compiler.go:433: 21: goja.loadVal({1}) compiler.go:433: 22: goja._getElem({}) compiler.go:433: 23: goja.loadVal({{}}) compiler.go:433: 24: goja.loadVal({a[1]}) compiler.go:433: 25: goja.call(3) compiler.go:433: 26: goja._pop({}) compiler.go:433: 27: goja.loadDynamic(assert) compiler.go:433: 28: goja.getPropCallee(sameValue) compiler.go:433: 29: goja.loadDynamic(a) compiler.go:433: 30: goja.loadVal({3}) compiler.go:433: 31: goja._getElem({}) compiler.go:433: 32: goja.loadVal({4}) compiler.go:433: 33: goja.loadVal({a[3]}) compiler.go:433: 34: goja.call(3) compiler.go:433: 35: goja._pop({}) compiler.go:433: 36: goja.resolveVar1(desc) compiler.go:433: 37: goja.loadDynamic(Object) compiler.go:433: 38: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 39: goja.loadDynamic(a) compiler.go:433: 40: goja.loadVal({1}) compiler.go:433: 41: goja.call(2) compiler.go:433: 42: goja._initValueP({}) compiler.go:433: 43: goja.loadDynamic(assert) compiler.go:433: 44: goja.getPropCallee(sameValue) compiler.go:433: 45: goja.loadDynamic(desc) compiler.go:433: 46: goja.getProp(value) compiler.go:433: 47: goja.loadVal({{}}) compiler.go:433: 48: goja.loadVal({desc.value}) compiler.go:433: 49: goja.call(3) compiler.go:433: 50: goja._pop({}) compiler.go:433: 51: goja.loadDynamicCallee(assert) compiler.go:433: 52: goja.loadDynamic(desc) compiler.go:433: 53: goja.getProp(writable) compiler.go:433: 54: goja.loadVal({writable}) compiler.go:433: 55: goja.call(2) compiler.go:433: 56: goja._pop({}) compiler.go:433: 57: goja.loadDynamicCallee(assert) compiler.go:433: 58: goja.loadDynamic(desc) compiler.go:433: 59: goja.getProp(enumerable) compiler.go:433: 60: goja.loadVal({enumerable}) compiler.go:433: 61: goja.call(2) compiler.go:433: 62: goja._pop({}) compiler.go:433: 63: goja.loadDynamicCallee(assert) compiler.go:433: 64: goja.loadDynamic(desc) compiler.go:433: 65: goja.getProp(configurable) compiler.go:433: 66: goja._not({}) compiler.go:433: 67: goja.loadVal({configurable}) compiler.go:433: 68: goja.call(2) compiler.go:433: 69: goja._pop({}) compiler.go:433: 70: goja.loadDynamic(Object) compiler.go:433: 71: goja.getPropCallee(defineProperty) compiler.go:433: 72: goja.loadDynamic(proto) compiler.go:433: 73: goja.loadVal({5}) compiler.go:433: 74: goja._newObject({}) compiler.go:433: 75: *goja.newFunc(&{0xc0003f7770 set function(v) { v5 = v; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.resolveVar1(v5) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja._putValueP({}) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 76: goja.putProp(set) compiler.go:433: 77: goja.call(3) compiler.go:433: 78: goja._pop({}) compiler.go:433: 79: goja.loadDynamic(a) compiler.go:433: 80: goja.loadVal({5}) compiler.go:433: 81: goja.loadVal({test}) compiler.go:433: 82: goja._setElemP({}) compiler.go:433: 83: goja.loadDynamic(assert) compiler.go:433: 84: goja.getPropCallee(sameValue) compiler.go:433: 85: goja.loadDynamic(v5) compiler.go:433: 86: goja.loadVal({test}) compiler.go:433: 87: goja.loadVal({v5}) compiler.go:433: 88: goja.call(3) compiler.go:433: 89: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGoSliceProto (0.00s) === RUN TestGoSliceProtoProto --- PASS: TestGoSliceProtoProto (0.00s) === RUN TestGoSliceDelete --- PASS: TestGoSliceDelete (0.00s) === RUN TestGoSlicePop --- PASS: TestGoSlicePop (0.00s) === RUN TestGoSlicePopNoPtr --- PASS: TestGoSlicePopNoPtr (0.00s) === RUN TestGoSliceShift --- PASS: TestGoSliceShift (0.00s) === RUN TestGoSliceLengthProperty --- PASS: TestGoSliceLengthProperty (0.00s) === RUN TestGoSliceSort --- PASS: TestGoSliceSort (0.00s) === RUN TestGoSliceToString --- PASS: TestGoSliceToString (0.00s) === RUN TestGoSliceExternalLenUpdate compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(sameValue) compiler.go:433: 2: goja.loadDynamic(data) compiler.go:433: 3: goja.getProp(length) compiler.go:433: 4: goja.loadVal({1}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja._pop({}) compiler.go:433: 7: goja.loadDynamic(data) compiler.go:433: 8: goja.getPropCallee(push) compiler.go:433: 9: goja.loadVal({1}) compiler.go:433: 10: goja.call(1) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.loadDynamic(assert) compiler.go:433: 13: goja.getPropCallee(sameValue) compiler.go:433: 14: goja.loadDynamic(data) compiler.go:433: 15: goja.getProp(length) compiler.go:433: 16: goja.loadVal({2}) compiler.go:433: 17: goja.call(2) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamicCallee(append) compiler.go:433: 20: goja.loadDynamic(data) compiler.go:433: 21: goja.loadVal({2}) compiler.go:433: 22: goja.call(2) compiler.go:433: 23: goja._pop({}) compiler.go:433: 24: goja.loadDynamic(assert) compiler.go:433: 25: goja.getPropCallee(sameValue) compiler.go:433: 26: goja.loadDynamic(data) compiler.go:433: 27: goja.getProp(length) compiler.go:433: 28: goja.loadVal({3}) compiler.go:433: 29: goja.call(2) compiler.go:433: 30: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGoSliceExternalLenUpdate (0.00s) === RUN TestDefineProperty --- PASS: TestDefineProperty (0.00s) === RUN TestPropertyOrder compiler.go:433: 0: *goja.bindGlobal(&{[o sym1 sym2 expected actual i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(sym1) compiler.go:433: 5: goja.loadDynamicCallee(Symbol) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja.call(1) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja.resolveVar1(sym2) compiler.go:433: 10: goja.loadDynamicCallee(Symbol) compiler.go:433: 11: goja.loadVal({2}) compiler.go:433: 12: goja.call(1) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.loadDynamic(o) compiler.go:433: 15: goja.loadDynamic(sym2) compiler.go:433: 16: goja.loadVal({1}) compiler.go:433: 17: goja._setElemP({}) compiler.go:433: 18: goja.loadDynamic(o) compiler.go:433: 19: goja.loadVal({4294967294}) compiler.go:433: 20: goja.loadVal({1}) compiler.go:433: 21: goja._setElemP({}) compiler.go:433: 22: goja.loadDynamic(o) compiler.go:433: 23: goja.loadVal({2}) compiler.go:433: 24: goja.loadVal({1}) compiler.go:433: 25: goja._setElemP({}) compiler.go:433: 26: goja.loadDynamic(o) compiler.go:433: 27: goja.loadVal({1}) compiler.go:433: 28: goja.loadVal({1}) compiler.go:433: 29: goja._setElemP({}) compiler.go:433: 30: goja.loadDynamic(o) compiler.go:433: 31: goja.loadVal({0}) compiler.go:433: 32: goja.loadVal({1}) compiler.go:433: 33: goja._setElemP({}) compiler.go:433: 34: goja.loadDynamic(o) compiler.go:433: 35: goja.loadVal({1}) compiler.go:433: 36: goja.setPropP(02) compiler.go:433: 37: goja.loadDynamic(o) compiler.go:433: 38: goja.loadVal({4294967295}) compiler.go:433: 39: goja.loadVal({1}) compiler.go:433: 40: goja._setElemP({}) compiler.go:433: 41: goja.loadDynamic(o) compiler.go:433: 42: goja.loadVal({1}) compiler.go:433: 43: goja.setPropP(01) compiler.go:433: 44: goja.loadDynamic(o) compiler.go:433: 45: goja.loadVal({1}) compiler.go:433: 46: goja.setPropP(00) compiler.go:433: 47: goja.loadDynamic(o) compiler.go:433: 48: goja.loadDynamic(sym1) compiler.go:433: 49: goja.loadVal({1}) compiler.go:433: 50: goja._setElemP({}) compiler.go:433: 51: goja.resolveVar1(expected) compiler.go:433: 52: goja.newArray(10) compiler.go:433: 53: goja.loadVal({0}) compiler.go:433: 54: goja._pushArrayItem({}) compiler.go:433: 55: goja.loadVal({1}) compiler.go:433: 56: goja._pushArrayItem({}) compiler.go:433: 57: goja.loadVal({2}) compiler.go:433: 58: goja._pushArrayItem({}) compiler.go:433: 59: goja.loadVal({4294967294}) compiler.go:433: 60: goja._pushArrayItem({}) compiler.go:433: 61: goja.loadVal({02}) compiler.go:433: 62: goja._pushArrayItem({}) compiler.go:433: 63: goja.loadVal({4294967295}) compiler.go:433: 64: goja._pushArrayItem({}) compiler.go:433: 65: goja.loadVal({01}) compiler.go:433: 66: goja._pushArrayItem({}) compiler.go:433: 67: goja.loadVal({00}) compiler.go:433: 68: goja._pushArrayItem({}) compiler.go:433: 69: goja.loadDynamic(sym2) compiler.go:433: 70: goja._pushArrayItem({}) compiler.go:433: 71: goja.loadDynamic(sym1) compiler.go:433: 72: goja._pushArrayItem({}) compiler.go:433: 73: goja._initValueP({}) compiler.go:433: 74: goja.resolveVar1(actual) compiler.go:433: 75: goja.loadDynamic(Reflect) compiler.go:433: 76: goja.getPropCallee(ownKeys) compiler.go:433: 77: goja.loadDynamic(o) compiler.go:433: 78: goja.call(1) compiler.go:433: 79: goja._initValueP({}) compiler.go:433: 80: goja.loadDynamic(actual) compiler.go:433: 81: goja.getProp(length) compiler.go:433: 82: goja.loadDynamic(expected) compiler.go:433: 83: goja.getProp(length) compiler.go:433: 84: goja._op_strict_neq({}) compiler.go:433: 85: goja.jneP(8) compiler.go:433: 86: goja.loadDynamic(Error) compiler.go:433: 87: goja.loadVal({Unexpected length: }) compiler.go:433: 88: goja.loadDynamic(actual) compiler.go:433: 89: goja.getProp(length) compiler.go:433: 90: goja._add({}) compiler.go:433: 91: goja._new(1) compiler.go:433: 92: goja._throw({}) compiler.go:433: 93: goja.resolveVar1(i) compiler.go:433: 94: goja.loadVal({0}) compiler.go:433: 95: goja._initValueP({}) compiler.go:433: 96: goja._clearResult({}) compiler.go:433: 97: goja.loadDynamic(i) compiler.go:433: 98: goja.loadDynamic(actual) compiler.go:433: 99: goja.getProp(length) compiler.go:433: 100: goja._op_lt({}) compiler.go:433: 101: goja.jneP(24) compiler.go:433: 102: goja._clearResult({}) compiler.go:433: 103: goja._clearResult({}) compiler.go:433: 104: goja.loadDynamic(actual) compiler.go:433: 105: goja.loadDynamic(i) compiler.go:433: 106: goja._getElem({}) compiler.go:433: 107: goja.loadDynamic(expected) compiler.go:433: 108: goja.loadDynamic(i) compiler.go:433: 109: goja._getElem({}) compiler.go:433: 110: goja._op_strict_neq({}) compiler.go:433: 111: goja.jneP(8) compiler.go:433: 112: goja.loadDynamic(Error) compiler.go:433: 113: goja.loadVal({Unexpected list: }) compiler.go:433: 114: goja.loadDynamic(actual) compiler.go:433: 115: goja._add({}) compiler.go:433: 116: goja._new(1) compiler.go:433: 117: goja._throw({}) compiler.go:433: 118: goja.jump(2) compiler.go:433: 119: goja._clearResult({}) compiler.go:433: 120: goja.resolveVar1(i) compiler.go:433: 121: goja._getValue({}) compiler.go:433: 122: goja._inc({}) compiler.go:433: 123: goja._putValueP({}) compiler.go:433: 124: goja.jump(-27) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestPropertyOrder (0.00s) === RUN TestDefinePropertiesSymbol compiler.go:433: 0: *goja.bindGlobal(&{[desc o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(desc) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(desc) compiler.go:433: 5: goja.loadDynamic(Symbol) compiler.go:433: 6: goja.getProp(toStringTag) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja.loadVal({Test}) compiler.go:433: 9: goja.putProp(value) compiler.go:433: 10: goja._setElemP({}) compiler.go:433: 11: goja.resolveVar1(o) compiler.go:433: 12: goja._newObject({}) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.loadDynamic(Object) compiler.go:433: 15: goja.getPropCallee(defineProperties) compiler.go:433: 16: goja.loadDynamic(o) compiler.go:433: 17: goja.loadDynamic(desc) compiler.go:433: 18: goja.call(2) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.loadDynamic(o) compiler.go:433: 21: goja.loadDynamic(Symbol) compiler.go:433: 22: goja.getProp(toStringTag) compiler.go:433: 23: goja._getElem({}) compiler.go:433: 24: goja.loadVal({Test}) compiler.go:433: 25: goja._op_strict_eq({}) compiler.go:433: 26: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDefinePropertiesSymbol (0.00s) === RUN TestObjectShorthandProperties compiler.go:433: 0: *goja.bindGlobal(&{[b a obj] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(b) compiler.go:433: 2: goja.loadVal({1}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(a) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja.loadDynamic(b) compiler.go:433: 7: goja.putProp(b) compiler.go:433: 8: *goja.newMethod(&{{0xc00037f3b0 get get() {return "c"} 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({c}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 9: *goja.defineMethodKeyed(&{get true}) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.loadDynamic(assert) compiler.go:433: 12: goja.getPropCallee(sameValue) compiler.go:433: 13: goja.loadDynamic(a) compiler.go:433: 14: goja.getProp(b) compiler.go:433: 15: goja.loadDynamic(b) compiler.go:433: 16: goja.loadVal({#1}) compiler.go:433: 17: goja.call(3) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamic(assert) compiler.go:433: 20: goja.getPropCallee(sameValue) compiler.go:433: 21: goja.loadDynamic(a) compiler.go:433: 22: goja.getPropCallee(get) compiler.go:433: 23: goja.call(0) compiler.go:433: 24: goja.loadVal({c}) compiler.go:433: 25: goja.loadVal({#2}) compiler.go:433: 26: goja.call(3) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja.resolveVar1(obj) compiler.go:433: 29: goja._newObject({}) compiler.go:433: 30: *goja.newMethod(&{{0xc00037f400 with w\u0069th() { return 42; } 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({42}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 31: *goja.defineMethodKeyed(&{with true}) compiler.go:433: 32: goja._initValueP({}) compiler.go:433: 33: goja.loadDynamic(assert) compiler.go:433: 34: goja.getPropCallee(sameValue) compiler.go:433: 35: goja.loadDynamic(obj) compiler.go:433: 36: goja.getPropCallee(with) compiler.go:433: 37: goja.call(0) compiler.go:433: 38: goja.loadVal({42}) compiler.go:433: 39: goja.loadVal({property exists}) compiler.go:433: 40: goja.call(3) compiler.go:433: 41: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectShorthandProperties (0.00s) === RUN TestObjectAssign compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(sameValue) compiler.go:433: 2: goja.loadDynamic(Object) compiler.go:433: 3: goja.getPropCallee(assign) compiler.go:433: 4: goja._newObject({}) compiler.go:433: 5: goja.loadVal({1}) compiler.go:433: 6: goja.putProp(b) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: *goja.newMethod(&{{0xc00037f7c0 a get a() { Object.defineProperty(this, "b", { value: 3, enumerable: false }); } 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadDynamic(Object) compiler.go:433: > 3: goja.getPropCallee(defineProperty) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: goja.loadVal({b}) compiler.go:433: > 6: goja._newObject({}) compiler.go:433: > 7: goja.loadVal({3}) compiler.go:433: > 8: goja.putProp(value) compiler.go:433: > 9: goja.loadVal({false}) compiler.go:433: > 10: goja.putProp(enumerable) compiler.go:433: > 11: goja.call(3) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja._loadUndef({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 9: *goja.defineGetterKeyed(&{a true}) compiler.go:433: 10: goja.loadVal({2}) compiler.go:433: 11: goja.putProp(b) compiler.go:433: 12: goja.call(2) compiler.go:433: 13: goja.getProp(b) compiler.go:433: 14: goja.loadVal({1}) compiler.go:433: 15: goja.loadVal({#1}) compiler.go:433: 16: goja.call(3) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.loadDynamic(assert) compiler.go:433: 19: goja.getPropCallee(sameValue) compiler.go:433: 20: goja.loadDynamic(Object) compiler.go:433: 21: goja.getPropCallee(assign) compiler.go:433: 22: goja._newObject({}) compiler.go:433: 23: goja.loadVal({1}) compiler.go:433: 24: goja.putProp(b) compiler.go:433: 25: goja._newObject({}) compiler.go:433: 26: *goja.newMethod(&{{0xc00037f810 a get a() { delete this.b; } 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadStack(0) compiler.go:433: > 3: goja.deleteProp(b) compiler.go:433: > 4: goja._pop({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 27: *goja.defineGetterKeyed(&{a true}) compiler.go:433: 28: goja.loadVal({2}) compiler.go:433: 29: goja.putProp(b) compiler.go:433: 30: goja.call(2) compiler.go:433: 31: goja.getProp(b) compiler.go:433: 32: goja.loadVal({1}) compiler.go:433: 33: goja.loadVal({#2}) compiler.go:433: 34: goja.call(3) compiler.go:433: 35: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectAssign (0.00s) === RUN TestExportCircular --- PASS: TestExportCircular (0.00s) === RUN TestExportToCircular --- PASS: TestExportToCircular (0.00s) === RUN TestExportWrappedMap --- PASS: TestExportWrappedMap (0.00s) === RUN TestExportToWrappedMap --- PASS: TestExportToWrappedMap (0.00s) === RUN TestExportToWrappedMapCustom --- PASS: TestExportToWrappedMapCustom (0.00s) === RUN TestExportToSliceNonIterable --- PASS: TestExportToSliceNonIterable (0.00s) === RUN TestRuntime_ExportTo_proxiedIterableToSlice --- PASS: TestRuntime_ExportTo_proxiedIterableToSlice (0.00s) === RUN TestExportArrayToArrayMismatchedLengths --- PASS: TestExportArrayToArrayMismatchedLengths (0.00s) === RUN TestExportIterableToArrayMismatchedLengths --- PASS: TestExportIterableToArrayMismatchedLengths (0.00s) === RUN TestExportArrayLikeToArrayMismatchedLengths --- PASS: TestExportArrayLikeToArrayMismatchedLengths (0.00s) === RUN TestSetForeignReturnValue compiler.go:433: 0: *goja.bindGlobal(&{[array arrayTarget] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(array) compiler.go:433: 2: goja.newArray(3) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja.loadVal({3}) compiler.go:433: 8: goja._pushArrayItem({}) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(arrayTarget) compiler.go:433: 11: goja.loadDynamic(Proxy) compiler.go:433: 12: goja.loadDynamic(array) compiler.go:433: 13: goja._newObject({}) compiler.go:433: 14: goja._new(2) compiler.go:433: 15: goja._initValueP({}) compiler.go:433: 16: goja.loadDynamic(Object) compiler.go:433: 17: goja.getPropCallee(preventExtensions) compiler.go:433: 18: goja.loadDynamic(array) compiler.go:433: 19: goja.call(1) compiler.go:433: 20: goja._pop({}) compiler.go:433: 21: goja.loadDynamic(Reflect) compiler.go:433: 22: goja.getPropCallee(set) compiler.go:433: 23: goja.loadDynamic(arrayTarget) compiler.go:433: 24: goja.loadVal({foo}) compiler.go:433: 25: goja.loadVal({2}) compiler.go:433: 26: goja.call(3) compiler.go:433: 27: goja._not({}) compiler.go:433: 28: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSetForeignReturnValue (0.00s) === RUN TestDefinePropertiesUndefinedVal compiler.go:433: 0: *goja.bindGlobal(&{[target sym getOwnKeys proxy] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(target) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(sym) compiler.go:433: 5: goja.loadDynamicCallee(Symbol) compiler.go:433: 6: goja.call(0) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.loadDynamic(target) compiler.go:433: 9: goja.loadDynamic(sym) compiler.go:433: 10: goja.loadVal({1}) compiler.go:433: 11: goja._setElemP({}) compiler.go:433: 12: goja.loadDynamic(target) compiler.go:433: 13: goja.loadVal({2}) compiler.go:433: 14: goja.setPropP(foo) compiler.go:433: 15: goja.loadDynamic(target) compiler.go:433: 16: goja.loadVal({0}) compiler.go:433: 17: goja.loadVal({3}) compiler.go:433: 18: goja._setElemP({}) compiler.go:433: 19: goja.resolveVar1(getOwnKeys) compiler.go:433: 20: goja.newArray(0) compiler.go:433: 21: goja._initValueP({}) compiler.go:433: 22: goja.resolveVar1(proxy) compiler.go:433: 23: goja.loadDynamic(Proxy) compiler.go:433: 24: goja.loadDynamic(target) compiler.go:433: 25: goja._newObject({}) compiler.go:433: 26: *goja.newFunc(&{0xc00036c870 getOwnPropertyDescriptor function(_target, key) { getOwnKeys.push(key); } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadDynamic(getOwnKeys) compiler.go:433: > 2: goja.getPropCallee(push) compiler.go:433: > 3: goja.loadStackLex(-2) compiler.go:433: > 4: goja.call(1) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 27: goja.putProp(getOwnPropertyDescriptor) compiler.go:433: 28: goja._new(2) compiler.go:433: 29: goja._initValueP({}) compiler.go:433: 30: goja.loadDynamic(Object) compiler.go:433: 31: goja.getPropCallee(defineProperties) compiler.go:433: 32: goja._newObject({}) compiler.go:433: 33: goja.loadDynamic(proxy) compiler.go:433: 34: goja.call(2) compiler.go:433: 35: goja._pop({}) compiler.go:433: 36: goja.loadVal({true}) compiler.go:433: 37: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDefinePropertiesUndefinedVal (0.00s) === RUN TestObjectEquality compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(sameValue) compiler.go:433: 2: goja.newArray(1) compiler.go:433: 3: goja.loadDynamic(s) compiler.go:433: 4: goja.getProp(F) compiler.go:433: 5: goja._pushArrayItem({}) compiler.go:433: 6: goja.getPropCallee(indexOf) compiler.go:433: 7: goja.loadDynamic(s) compiler.go:433: 8: goja.getProp(F) compiler.go:433: 9: goja.call(1) compiler.go:433: 10: goja.loadVal({0}) compiler.go:433: 11: goja.loadVal({indexOf}) compiler.go:433: 12: goja.call(3) compiler.go:433: 13: goja._pop({}) compiler.go:433: 14: goja.loadDynamicCallee(assert) compiler.go:433: 15: goja.newArray(1) compiler.go:433: 16: goja.loadDynamic(s) compiler.go:433: 17: goja.getProp(F) compiler.go:433: 18: goja._pushArrayItem({}) compiler.go:433: 19: goja.getPropCallee(includes) compiler.go:433: 20: goja.loadDynamic(s) compiler.go:433: 21: goja.getProp(F) compiler.go:433: 22: goja.call(1) compiler.go:433: 23: goja.call(1) compiler.go:433: 24: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjectEquality (0.00s) === RUN TestProfiler --- PASS: TestProfiler (0.22s) === RUN TestProfiler1 profiler_test.go:58: This test takes too long with race detector enabled and is non-deterministic. It's left here mostly for documentation purposes. --- SKIP: TestProfiler1 (0.00s) === RUN TestRegexp1 compiler.go:433: 0: *goja.bindGlobal(&{[r m] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(r) compiler.go:433: 2: goja.loadDynamic(RegExp) compiler.go:433: 3: goja.loadVal({(['"])(.*?)\1}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(m) compiler.go:433: 7: goja.loadDynamic(r) compiler.go:433: 8: goja.getPropCallee(exec) compiler.go:433: 9: goja.loadVal({'test'}) compiler.go:433: 10: goja.call(1) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(m) compiler.go:433: 13: goja.loadVal({{}}) compiler.go:433: 14: goja._op_strict_neq({}) compiler.go:433: 15: goja.jne(5) compiler.go:433: 16: goja.loadDynamic(m) compiler.go:433: 17: goja.getProp(length) compiler.go:433: 18: goja.loadVal({3}) compiler.go:433: 19: goja._op_eq({}) compiler.go:433: 20: goja.jne(6) compiler.go:433: 21: goja.loadDynamic(m) compiler.go:433: 22: goja.loadVal({2}) compiler.go:433: 23: goja._getElem({}) compiler.go:433: 24: goja.loadVal({test}) compiler.go:433: 25: goja._op_strict_eq({}) compiler.go:433: 26: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexp1 (0.00s) === RUN TestRegexp2 compiler.go:433: 0: *goja.bindGlobal(&{[r m] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(r) compiler.go:433: 2: goja.loadDynamic(RegExp) compiler.go:433: 3: goja.loadVal({(['"])(.*?)['"]}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(m) compiler.go:433: 7: goja.loadDynamic(r) compiler.go:433: 8: goja.getPropCallee(exec) compiler.go:433: 9: goja.loadVal({'test'}) compiler.go:433: 10: goja.call(1) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(m) compiler.go:433: 13: goja.loadVal({{}}) compiler.go:433: 14: goja._op_strict_neq({}) compiler.go:433: 15: goja.jne(5) compiler.go:433: 16: goja.loadDynamic(m) compiler.go:433: 17: goja.getProp(length) compiler.go:433: 18: goja.loadVal({3}) compiler.go:433: 19: goja._op_eq({}) compiler.go:433: 20: goja.jne(6) compiler.go:433: 21: goja.loadDynamic(m) compiler.go:433: 22: goja.loadVal({2}) compiler.go:433: 23: goja._getElem({}) compiler.go:433: 24: goja.loadVal({test}) compiler.go:433: 25: goja._op_strict_eq({}) compiler.go:433: 26: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexp2 (0.00s) === RUN TestRegexpLiteral compiler.go:433: 0: *goja.bindGlobal(&{[r m] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(r) compiler.go:433: 2: *goja.newRegexp(&{0xc00025b800 (['\"])(.*?)\1}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(m) compiler.go:433: 5: goja.loadDynamic(r) compiler.go:433: 6: goja.getPropCallee(exec) compiler.go:433: 7: goja.loadVal({'test'}) compiler.go:433: 8: goja.call(1) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(m) compiler.go:433: 11: goja.loadVal({{}}) compiler.go:433: 12: goja._op_strict_neq({}) compiler.go:433: 13: goja.jne(5) compiler.go:433: 14: goja.loadDynamic(m) compiler.go:433: 15: goja.getProp(length) compiler.go:433: 16: goja.loadVal({3}) compiler.go:433: 17: goja._op_eq({}) compiler.go:433: 18: goja.jne(6) compiler.go:433: 19: goja.loadDynamic(m) compiler.go:433: 20: goja.loadVal({2}) compiler.go:433: 21: goja._getElem({}) compiler.go:433: 22: goja.loadVal({test}) compiler.go:433: 23: goja._op_strict_eq({}) compiler.go:433: 24: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpLiteral (0.00s) === RUN TestRegexpRe2Unicode compiler.go:433: 0: *goja.bindGlobal(&{[r m] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(r) compiler.go:433: 2: *goja.newRegexp(&{0xc00027d170 [65279 40 1090 1077 1089 1090 41]}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(m) compiler.go:433: 5: goja.loadDynamic(r) compiler.go:433: 6: goja.getPropCallee(exec) compiler.go:433: 7: goja.loadVal({[65279 39 1058 1077 1089 1090 39]}) compiler.go:433: 8: goja.call(1) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(m) compiler.go:433: 11: goja.loadVal({{}}) compiler.go:433: 12: goja._op_strict_neq({}) compiler.go:433: 13: goja.jne(5) compiler.go:433: 14: goja.loadDynamic(m) compiler.go:433: 15: goja.getProp(length) compiler.go:433: 16: goja.loadVal({2}) compiler.go:433: 17: goja._op_eq({}) compiler.go:433: 18: goja.jne(6) compiler.go:433: 19: goja.loadDynamic(m) compiler.go:433: 20: goja.loadVal({1}) compiler.go:433: 21: goja._getElem({}) compiler.go:433: 22: goja.loadVal({[65279 1058 1077 1089 1090]}) compiler.go:433: 23: goja._op_strict_eq({}) compiler.go:433: 24: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpRe2Unicode (0.00s) === RUN TestRegexpRe2UnicodeTarget compiler.go:433: 0: *goja.bindGlobal(&{[r m] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(r) compiler.go:433: 2: *goja.newRegexp(&{0xc00028ea50 (['\"])(.*?)['\"]}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(m) compiler.go:433: 5: goja.loadDynamic(r) compiler.go:433: 6: goja.getPropCallee(exec) compiler.go:433: 7: goja.loadVal({[65279 39 1058 1077 1089 1090 39]}) compiler.go:433: 8: goja.call(1) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(m) compiler.go:433: 11: goja.loadVal({{}}) compiler.go:433: 12: goja._op_strict_neq({}) compiler.go:433: 13: goja.jne(5) compiler.go:433: 14: goja.loadDynamic(m) compiler.go:433: 15: goja.getProp(length) compiler.go:433: 16: goja.loadVal({3}) compiler.go:433: 17: goja._op_eq({}) compiler.go:433: 18: goja.jne(6) compiler.go:433: 19: goja.loadDynamic(m) compiler.go:433: 20: goja.loadVal({2}) compiler.go:433: 21: goja._getElem({}) compiler.go:433: 22: goja.loadVal({[65279 1058 1077 1089 1090]}) compiler.go:433: 23: goja._op_strict_eq({}) compiler.go:433: 24: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpRe2UnicodeTarget (0.00s) === RUN TestRegexpRegexp2Unicode compiler.go:433: 0: *goja.bindGlobal(&{[r m] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(r) compiler.go:433: 2: *goja.newRegexp(&{0xc000310390 [65279 40 91 39 92 34 93 41 40 1090 1077 1089 1090 41 92 49]}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(m) compiler.go:433: 5: goja.loadDynamic(r) compiler.go:433: 6: goja.getPropCallee(exec) compiler.go:433: 7: goja.loadVal({[65279 39 1058 1077 1089 1090 39]}) compiler.go:433: 8: goja.call(1) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(m) compiler.go:433: 11: goja.loadVal({{}}) compiler.go:433: 12: goja._op_strict_neq({}) compiler.go:433: 13: goja.jne(5) compiler.go:433: 14: goja.loadDynamic(m) compiler.go:433: 15: goja.getProp(length) compiler.go:433: 16: goja.loadVal({3}) compiler.go:433: 17: goja._op_eq({}) compiler.go:433: 18: goja.jne(6) compiler.go:433: 19: goja.loadDynamic(m) compiler.go:433: 20: goja.loadVal({2}) compiler.go:433: 21: goja._getElem({}) compiler.go:433: 22: goja.loadVal({[65279 1058 1077 1089 1090]}) compiler.go:433: 23: goja._op_strict_eq({}) compiler.go:433: 24: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpRegexp2Unicode (0.00s) === RUN TestRegexpRegexp2UnicodeTarget compiler.go:433: 0: *goja.bindGlobal(&{[r m] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(r) compiler.go:433: 2: *goja.newRegexp(&{0xc000311d10 (['\"])(.*?)\1}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(m) compiler.go:433: 5: goja.loadDynamic(r) compiler.go:433: 6: goja.getPropCallee(exec) compiler.go:433: 7: goja.loadVal({[65279 39 1058 1077 1089 1090 39]}) compiler.go:433: 8: goja.call(1) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(m) compiler.go:433: 11: goja.loadVal({{}}) compiler.go:433: 12: goja._op_strict_neq({}) compiler.go:433: 13: goja.jne(5) compiler.go:433: 14: goja.loadDynamic(m) compiler.go:433: 15: goja.getProp(length) compiler.go:433: 16: goja.loadVal({3}) compiler.go:433: 17: goja._op_eq({}) compiler.go:433: 18: goja.jne(6) compiler.go:433: 19: goja.loadDynamic(m) compiler.go:433: 20: goja.loadVal({2}) compiler.go:433: 21: goja._getElem({}) compiler.go:433: 22: goja.loadVal({[65279 1058 1077 1089 1090]}) compiler.go:433: 23: goja._op_strict_eq({}) compiler.go:433: 24: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpRegexp2UnicodeTarget (0.00s) === RUN TestRegexpRe2Whitespace compiler.go:433: 0: goja.loadVal({[65279 8192 8193 8194 8203]}) compiler.go:433: 1: goja.getPropCallee(replace) compiler.go:433: 2: *goja.newRegexp(&{0xc000325500 \s+}) compiler.go:433: 3: goja.loadVal({}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja.loadVal({[65279 8203]}) compiler.go:433: 6: goja._op_strict_eq({}) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpRe2Whitespace (0.00s) === RUN TestRegexpRegexp2Whitespace compiler.go:433: 0: goja.loadVal({[65279 65 8192 8193 8194 65 8203]}) compiler.go:433: 1: goja.getPropCallee(replace) compiler.go:433: 2: *goja.newRegexp(&{0xc000332ff0 (A)\s+\1}) compiler.go:433: 3: goja.loadVal({}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja.loadVal({[65279 8203]}) compiler.go:433: 6: goja._op_strict_eq({}) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpRegexp2Whitespace (0.00s) === RUN TestEmptyCharClassRe2 compiler.go:433: 0: *goja.newRegexp(&{0xc000346900 []}) compiler.go:433: 1: goja.getPropCallee(test) compiler.go:433: 2: goja.loadVal({}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEmptyCharClassRe2 (0.00s) === RUN TestNegatedEmptyCharClassRe2 compiler.go:433: 0: *goja.newRegexp(&{0xc000347c80 [^]}) compiler.go:433: 1: goja.getPropCallee(test) compiler.go:433: 2: goja.loadVal({}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNegatedEmptyCharClassRe2 (0.00s) === RUN TestEmptyCharClassRegexp2 compiler.go:433: 0: *goja.newRegexp(&{0xc00035d0e0 ([])\1}) compiler.go:433: 1: goja.getPropCallee(test) compiler.go:433: 2: goja.loadVal({}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEmptyCharClassRegexp2 (0.00s) === RUN TestRegexp2Negate compiler.go:433: 0: *goja.newRegexp(&{0xc000368570 ([\D1])\1}) compiler.go:433: 1: goja.getPropCallee(test) compiler.go:433: 2: goja.loadVal({aa}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexp2Negate (0.00s) === RUN TestAlternativeRe2 compiler.go:433: 0: *goja.newRegexp(&{0xc0003699b0 ()|}) compiler.go:433: 1: goja.getPropCallee(exec) compiler.go:433: 2: goja.loadVal({}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja.loadVal({{}}) compiler.go:433: 5: goja._op_strict_neq({}) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestAlternativeRe2 (0.00s) === RUN TestRegexpReplaceGlobal compiler.go:433: 0: goja.loadVal({QBZPbage y_cynprubyqre}) compiler.go:433: 1: goja.getPropCallee(replace) compiler.go:433: 2: *goja.newRegexp(&{0xc000386ed0 ^\s*|\s*$}) compiler.go:433: 3: goja.loadVal({}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpReplaceGlobal (0.00s) === RUN TestRegexpNumCaptures compiler.go:433: 0: goja.loadVal({Fubpxjnir Synfu 9.0 e115}) compiler.go:433: 1: goja.getPropCallee(replace) compiler.go:433: 2: *goja.newRegexp(&{0xc0003b47b0 ([a-zA-Z]|\s)+}) compiler.go:433: 3: goja.loadVal({}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpNumCaptures (0.00s) === RUN TestRegexpNumCaptures1 compiler.go:433: 0: goja.loadVal({Fubpxjnir Sy fu 9.0 e115}) compiler.go:433: 1: goja.getPropCallee(replace) compiler.go:433: 2: *goja.newRegexp(&{0xc0003bc090 ^.*\s+(\S+\s+\S+$)}) compiler.go:433: 3: goja.loadVal({}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpNumCaptures1 (0.00s) === RUN TestRegexpSInClass compiler.go:433: 0: *goja.newRegexp(&{0xc0003bd8f0 [\S]}) compiler.go:433: 1: goja.getPropCallee(test) compiler.go:433: 2: goja.loadVal({[65279 8232]}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpSInClass (0.00s) === RUN TestRegexpDotMatchCR compiler.go:433: 0: *goja.newRegexp(&{0xc0003d4cf0 .}) compiler.go:433: 1: goja.getPropCallee(test) compiler.go:433: 2: goja.loadVal({ }) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpDotMatchCR (0.00s) === RUN TestRegexpDotMatchCRInGroup compiler.go:433: 0: *goja.newRegexp(&{0xc0003ea0f0 (.)}) compiler.go:433: 1: goja.getPropCallee(test) compiler.go:433: 2: goja.loadVal({ }) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpDotMatchCRInGroup (0.00s) === RUN TestRegexpDotMatchLF compiler.go:433: 0: *goja.newRegexp(&{0xc0003eb470 .}) compiler.go:433: 1: goja.getPropCallee(test) compiler.go:433: 2: goja.loadVal({ }) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpDotMatchLF (0.00s) === RUN TestRegexpSplitWithBackRef compiler.go:433: 0: goja.loadVal({a++b+-c}) compiler.go:433: 1: goja.getPropCallee(split) compiler.go:433: 2: *goja.newRegexp(&{0xc0003fc990 ([+-])\1}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja.getPropCallee(join) compiler.go:433: 5: goja.loadVal({ $$ }) compiler.go:433: 6: goja.call(1) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpSplitWithBackRef (0.00s) === RUN TestEscapeNonASCII compiler.go:433: 0: *goja.newRegexp(&{0xc00040e450 [65279 92 10835]}) compiler.go:433: 1: goja.getPropCallee(test) compiler.go:433: 2: goja.loadVal({[65279 10835]}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestEscapeNonASCII (0.00s) === RUN TestRegexpUTF16 compiler.go:433: 0: *goja.bindGlobal(&{[str re cu xx pattern] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(str) compiler.go:433: 2: goja.loadVal({[65279 55296 56320]}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamicCallee(assert) compiler.go:433: 5: *goja.newRegexp(&{0xc000418f00 \uD800}) compiler.go:433: 6: goja.getPropCallee(test) compiler.go:433: 7: goja.loadDynamic(str) compiler.go:433: 8: goja.call(1) compiler.go:433: 9: goja.loadVal({#1}) compiler.go:433: 10: goja.call(2) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.loadDynamicCallee(assert) compiler.go:433: 13: *goja.newRegexp(&{0xc000418fc0 \uD800}) compiler.go:433: 14: goja.getPropCallee(test) compiler.go:433: 15: goja.loadDynamic(str) compiler.go:433: 16: goja.call(1) compiler.go:433: 17: goja.loadVal({#2}) compiler.go:433: 18: goja.call(2) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.loadDynamicCallee(assert) compiler.go:433: 21: *goja.newRegexp(&{0xc000419080 [65279 55296 56320]}) compiler.go:433: 22: goja.getPropCallee(test) compiler.go:433: 23: goja.loadDynamic(str) compiler.go:433: 24: goja.call(1) compiler.go:433: 25: goja.loadVal({#3}) compiler.go:433: 26: goja.call(2) compiler.go:433: 27: goja._pop({}) compiler.go:433: 28: goja.resolveVar1(re) compiler.go:433: 29: *goja.newRegexp(&{0xc000419110 \uD800}) compiler.go:433: 30: goja._initValueP({}) compiler.go:433: 31: goja.loadDynamicCallee(assert) compiler.go:433: 32: goja.loadDynamicCallee(compareArray) compiler.go:433: 33: goja.loadDynamic(str) compiler.go:433: 34: goja.getPropCallee(replace) compiler.go:433: 35: goja.loadDynamic(re) compiler.go:433: 36: goja.loadVal({X}) compiler.go:433: 37: goja.call(2) compiler.go:433: 38: goja.newArray(2) compiler.go:433: 39: goja.loadVal({X}) compiler.go:433: 40: goja._pushArrayItem({}) compiler.go:433: 41: goja.loadVal({[65279 56320]}) compiler.go:433: 42: goja._pushArrayItem({}) compiler.go:433: 43: goja.call(2) compiler.go:433: 44: goja.loadVal({#4}) compiler.go:433: 45: goja.call(2) compiler.go:433: 46: goja._pop({}) compiler.go:433: 47: goja.loadDynamicCallee(assert) compiler.go:433: 48: goja.loadDynamicCallee(compareArray) compiler.go:433: 49: goja.loadDynamic(str) compiler.go:433: 50: goja.getPropCallee(split) compiler.go:433: 51: goja.loadDynamic(re) compiler.go:433: 52: goja.call(1) compiler.go:433: 53: goja.newArray(2) compiler.go:433: 54: goja.loadVal({}) compiler.go:433: 55: goja._pushArrayItem({}) compiler.go:433: 56: goja.loadVal({[65279 56320]}) compiler.go:433: 57: goja._pushArrayItem({}) compiler.go:433: 58: goja.call(2) compiler.go:433: 59: goja.loadVal({#5}) compiler.go:433: 60: goja.call(2) compiler.go:433: 61: goja._pop({}) compiler.go:433: 62: goja.loadDynamicCallee(assert) compiler.go:433: 63: goja.loadDynamicCallee(compareArray) compiler.go:433: 64: goja.loadVal({[65279 97 55296 56320 98]}) compiler.go:433: 65: goja.getPropCallee(split) compiler.go:433: 66: *goja.newRegexp(&{0xc000419230 \uD800}) compiler.go:433: 67: goja.call(1) compiler.go:433: 68: goja.newArray(2) compiler.go:433: 69: goja.loadVal({a}) compiler.go:433: 70: goja._pushArrayItem({}) compiler.go:433: 71: goja.loadVal({[65279 56320 98]}) compiler.go:433: 72: goja._pushArrayItem({}) compiler.go:433: 73: goja.call(2) compiler.go:433: 74: goja.loadVal({#6}) compiler.go:433: 75: goja.call(2) compiler.go:433: 76: goja._pop({}) compiler.go:433: 77: goja.loadDynamicCallee(assert) compiler.go:433: 78: goja.loadDynamicCallee(compareArray) compiler.go:433: 79: goja.loadVal({[65279 97 55296 56320 98]}) compiler.go:433: 80: goja.getPropCallee(split) compiler.go:433: 81: *goja.newRegexp(&{0xc0004192f0 (?:)}) compiler.go:433: 82: goja.call(1) compiler.go:433: 83: goja.newArray(4) compiler.go:433: 84: goja.loadVal({a}) compiler.go:433: 85: goja._pushArrayItem({}) compiler.go:433: 86: goja.loadVal({[65279 55296]}) compiler.go:433: 87: goja._pushArrayItem({}) compiler.go:433: 88: goja.loadVal({[65279 56320]}) compiler.go:433: 89: goja._pushArrayItem({}) compiler.go:433: 90: goja.loadVal({b}) compiler.go:433: 91: goja._pushArrayItem({}) compiler.go:433: 92: goja.call(2) compiler.go:433: 93: goja.loadVal({#7}) compiler.go:433: 94: goja.call(2) compiler.go:433: 95: goja._pop({}) compiler.go:433: 96: goja.loadDynamicCallee(assert) compiler.go:433: 97: goja.loadDynamicCallee(compareArray) compiler.go:433: 98: goja.loadVal({[65279 48 128]}) compiler.go:433: 99: goja.getPropCallee(split) compiler.go:433: 100: *goja.newRegexp(&{0xc0004193b0 (0){0}}) compiler.go:433: 101: goja.call(1) compiler.go:433: 102: goja.newArray(3) compiler.go:433: 103: goja.loadVal({0}) compiler.go:433: 104: goja._pushArrayItem({}) compiler.go:433: 105: goja.loadDynamic(undefined) compiler.go:433: 106: goja._pushArrayItem({}) compiler.go:433: 107: goja.loadVal({[65279 128]}) compiler.go:433: 108: goja._pushArrayItem({}) compiler.go:433: 109: goja.call(2) compiler.go:433: 110: goja.loadVal({#7+}) compiler.go:433: 111: goja.call(2) compiler.go:433: 112: goja._pop({}) compiler.go:433: 113: goja.resolveVar1(re) compiler.go:433: 114: *goja.newRegexp(&{0xc000419470 (?=)a}) compiler.go:433: 115: goja._putValueP({}) compiler.go:433: 116: goja.loadDynamic(assert) compiler.go:433: 117: goja.getPropCallee(sameValue) compiler.go:433: 118: goja.loadDynamic(re) compiler.go:433: 119: goja.getPropCallee(exec) compiler.go:433: 120: goja.loadVal({[65279 55357 56834 97]}) compiler.go:433: 121: goja.call(1) compiler.go:433: 122: goja.getProp(index) compiler.go:433: 123: goja.loadVal({2}) compiler.go:433: 124: goja.loadVal({#8}) compiler.go:433: 125: goja.call(3) compiler.go:433: 126: goja._pop({}) compiler.go:433: 127: goja.loadDynamic(assert) compiler.go:433: 128: goja.getPropCallee(sameValue) compiler.go:433: 129: *goja.newRegexp(&{0xc000419680 .}) compiler.go:433: 130: goja.getPropCallee(exec) compiler.go:433: 131: goja.loadVal({[65279 55357 56834]}) compiler.go:433: 132: goja.call(1) compiler.go:433: 133: goja.loadVal({0}) compiler.go:433: 134: goja._getElem({}) compiler.go:433: 135: goja.loadVal({[65279 55357]}) compiler.go:433: 136: goja.loadVal({#9}) compiler.go:433: 137: goja.call(3) compiler.go:433: 138: goja._pop({}) compiler.go:433: 139: goja.loadDynamicCallee(assert) compiler.go:433: 140: goja.loadDynamicCallee(RegExp) compiler.go:433: 141: goja.loadVal({[65279 55296]}) compiler.go:433: 142: goja.call(1) compiler.go:433: 143: goja.getPropCallee(test) compiler.go:433: 144: goja.loadVal({[65279 55296]}) compiler.go:433: 145: goja.call(1) compiler.go:433: 146: goja.loadVal({#10}) compiler.go:433: 147: goja.call(2) compiler.go:433: 148: goja._pop({}) compiler.go:433: 149: goja.resolveVar1(cu) compiler.go:433: 150: goja.loadVal({55296}) compiler.go:433: 151: goja._initValueP({}) compiler.go:433: 152: goja.resolveVar1(xx) compiler.go:433: 153: goja.loadVal({a\}) compiler.go:433: 154: goja.loadDynamic(String) compiler.go:433: 155: goja.getPropCallee(fromCharCode) compiler.go:433: 156: goja.loadDynamic(cu) compiler.go:433: 157: goja.call(1) compiler.go:433: 158: goja._add({}) compiler.go:433: 159: goja._initValueP({}) compiler.go:433: 160: goja.resolveVar1(pattern) compiler.go:433: 161: goja.loadDynamicCallee(eval) compiler.go:433: 162: goja.loadVal({/}) compiler.go:433: 163: goja.loadDynamic(xx) compiler.go:433: 164: goja._add({}) compiler.go:433: 165: goja.loadVal({/}) compiler.go:433: 166: goja._add({}) compiler.go:433: 167: goja.callEval(1) compiler.go:433: 168: goja._initValueP({}) compiler.go:433: 169: goja.loadDynamic(assert) compiler.go:433: 170: goja.getPropCallee(sameValue) compiler.go:433: 171: goja.loadDynamic(pattern) compiler.go:433: 172: goja.getProp(source) compiler.go:433: 173: goja.loadVal({a\\\ud800}) compiler.go:433: 174: goja.loadVal({Code unit: }) compiler.go:433: 175: goja.loadDynamic(cu) compiler.go:433: 176: goja.getPropCallee(toString) compiler.go:433: 177: goja.loadVal({16}) compiler.go:433: 178: goja.call(1) compiler.go:433: 179: goja._add({}) compiler.go:433: 180: goja.loadVal({#11}) compiler.go:433: 181: goja.call(4) compiler.go:433: 182: goja._pop({}) compiler.go:433: 183: goja.loadDynamicCallee(assert) compiler.go:433: 184: goja.loadDynamic(pattern) compiler.go:433: 185: goja.getPropCallee(test) compiler.go:433: 186: goja.loadVal({[65279 97 92 55296]}) compiler.go:433: 187: goja.call(1) compiler.go:433: 188: goja.loadVal({#12}) compiler.go:433: 189: goja.call(2) compiler.go:433: 190: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpUTF16 (0.00s) === RUN TestRegexpUnicode compiler.go:433: 0: *goja.bindGlobal(&{[re] [] [] [] false}) compiler.go:433: 1: goja.loadDynamicCallee(assert) compiler.go:433: 2: *goja.newRegexp(&{0xc0004a4270 \uD800}) compiler.go:433: 3: goja.getPropCallee(test) compiler.go:433: 4: goja.loadVal({[65279 55296 56320]}) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja._not({}) compiler.go:433: 7: goja.loadVal({#1}) compiler.go:433: 8: goja.call(2) compiler.go:433: 9: goja._pop({}) compiler.go:433: 10: goja.loadDynamicCallee(assert) compiler.go:433: 11: *goja.newRegexp(&{0xc0004a4390 \uFFFD}) compiler.go:433: 12: goja.getPropCallee(test) compiler.go:433: 13: goja.loadVal({[65279 55296 56320]}) compiler.go:433: 14: goja.call(1) compiler.go:433: 15: goja._not({}) compiler.go:433: 16: goja.loadVal({#2}) compiler.go:433: 17: goja.call(2) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamicCallee(assert) compiler.go:433: 20: *goja.newRegexp(&{0xc0004a4450 \uD800\uDC00}) compiler.go:433: 21: goja.getPropCallee(test) compiler.go:433: 22: goja.loadVal({[65279 55296 56320]}) compiler.go:433: 23: goja.call(1) compiler.go:433: 24: goja.loadVal({#3}) compiler.go:433: 25: goja.call(2) compiler.go:433: 26: goja._pop({}) compiler.go:433: 27: goja.loadDynamicCallee(assert) compiler.go:433: 28: *goja.newRegexp(&{0xc0004a4510 \uD800}) compiler.go:433: 29: goja.getPropCallee(test) compiler.go:433: 30: goja.loadVal({[65279 55296]}) compiler.go:433: 31: goja.call(1) compiler.go:433: 32: goja.loadVal({#4}) compiler.go:433: 33: goja.call(2) compiler.go:433: 34: goja._pop({}) compiler.go:433: 35: goja.loadDynamicCallee(assert) compiler.go:433: 36: goja.loadDynamicCallee(compareArray) compiler.go:433: 37: goja.loadVal({[65279 97 55296 56320 98]}) compiler.go:433: 38: goja.getPropCallee(split) compiler.go:433: 39: *goja.newRegexp(&{0xc0004a4600 \uD800}) compiler.go:433: 40: goja.call(1) compiler.go:433: 41: goja.newArray(1) compiler.go:433: 42: goja.loadVal({[65279 97 55296 56320 98]}) compiler.go:433: 43: goja._pushArrayItem({}) compiler.go:433: 44: goja.call(2) compiler.go:433: 45: goja.loadVal({#5}) compiler.go:433: 46: goja.call(2) compiler.go:433: 47: goja._pop({}) compiler.go:433: 48: goja.loadDynamicCallee(assert) compiler.go:433: 49: goja.loadDynamicCallee(compareArray) compiler.go:433: 50: goja.loadVal({[65279 97 55296 56320 98]}) compiler.go:433: 51: goja.getPropCallee(split) compiler.go:433: 52: *goja.newRegexp(&{0xc0004a46c0 (?:)}) compiler.go:433: 53: goja.call(1) compiler.go:433: 54: goja.newArray(3) compiler.go:433: 55: goja.loadVal({a}) compiler.go:433: 56: goja._pushArrayItem({}) compiler.go:433: 57: goja.loadVal({[65279 55296 56320]}) compiler.go:433: 58: goja._pushArrayItem({}) compiler.go:433: 59: goja.loadVal({b}) compiler.go:433: 60: goja._pushArrayItem({}) compiler.go:433: 61: goja.call(2) compiler.go:433: 62: goja.loadVal({#6}) compiler.go:433: 63: goja.call(2) compiler.go:433: 64: goja._pop({}) compiler.go:433: 65: goja.loadDynamicCallee(assert) compiler.go:433: 66: goja.loadDynamicCallee(compareArray) compiler.go:433: 67: goja.loadVal({[65279 48 128]}) compiler.go:433: 68: goja.getPropCallee(split) compiler.go:433: 69: *goja.newRegexp(&{0xc0004a4780 (0){0}}) compiler.go:433: 70: goja.call(1) compiler.go:433: 71: goja.newArray(3) compiler.go:433: 72: goja.loadVal({0}) compiler.go:433: 73: goja._pushArrayItem({}) compiler.go:433: 74: goja.loadDynamic(undefined) compiler.go:433: 75: goja._pushArrayItem({}) compiler.go:433: 76: goja.loadVal({[65279 128]}) compiler.go:433: 77: goja._pushArrayItem({}) compiler.go:433: 78: goja.call(2) compiler.go:433: 79: goja.loadVal({#7}) compiler.go:433: 80: goja.call(2) compiler.go:433: 81: goja._pop({}) compiler.go:433: 82: goja.resolveVar1(re) compiler.go:433: 83: goja.loadDynamicCallee(eval) compiler.go:433: 84: goja.loadVal({/}) compiler.go:433: 85: *goja.newRegexp(&{0xc0004a4840 \ud834\udf06}) compiler.go:433: 86: goja.getProp(source) compiler.go:433: 87: goja._add({}) compiler.go:433: 88: goja.loadVal({/u}) compiler.go:433: 89: goja._add({}) compiler.go:433: 90: goja.callEval(1) compiler.go:433: 91: goja._initValueP({}) compiler.go:433: 92: goja.loadDynamicCallee(assert) compiler.go:433: 93: goja.loadDynamic(re) compiler.go:433: 94: goja.getPropCallee(test) compiler.go:433: 95: goja.loadVal({[65279 55348 57094]}) compiler.go:433: 96: goja.call(1) compiler.go:433: 97: goja.loadVal({#9}) compiler.go:433: 98: goja.call(2) compiler.go:433: 99: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpUnicode (0.00s) === RUN TestConvertRegexpToUnicode --- PASS: TestConvertRegexpToUnicode (0.00s) === RUN TestConvertRegexpToUtf16 --- PASS: TestConvertRegexpToUtf16 (0.00s) === RUN TestEscapeInvalidUtf16 --- PASS: TestEscapeInvalidUtf16 (0.00s) === RUN TestRegexpAssertion compiler.go:433: 0: *goja.bindGlobal(&{[res] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(res) compiler.go:433: 2: goja.loadVal({aaa}) compiler.go:433: 3: goja.getPropCallee(match) compiler.go:433: 4: *goja.newRegexp(&{0xc000292f60 ^a}) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(res) compiler.go:433: 8: goja.getProp(length) compiler.go:433: 9: goja.loadVal({1}) compiler.go:433: 10: goja._op_strict_eq({}) compiler.go:433: 11: goja.jeq(6) compiler.go:433: 12: goja.loadDynamic(res) compiler.go:433: 13: goja.loadVal({0}) compiler.go:433: 14: goja._getElem({}) compiler.go:433: 15: goja.loadVal({a}) compiler.go:433: 16: goja._op_strict_eq({}) compiler.go:433: 17: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpAssertion (0.00s) === RUN TestRegexpUnicodeAdvanceStringIndex compiler.go:433: 0: *goja.bindGlobal(&{[origExec re str iterator matches v] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(origExec) compiler.go:433: 2: goja.loadDynamic(RegExp) compiler.go:433: 3: goja.getProp(prototype) compiler.go:433: 4: goja.getProp(exec) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(RegExp) compiler.go:433: 7: goja.getProp(prototype) compiler.go:433: 8: *goja.newFunc(&{0xc0003610e0 function(s) { return origExec.call(this, s); } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.loadDynamic(origExec) compiler.go:433: > 3: goja.getPropCallee(call) compiler.go:433: > 4: goja.loadStack(0) compiler.go:433: > 5: goja.loadStackLex(-1) compiler.go:433: > 6: goja.call(2) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 9: goja.setPropP(exec) compiler.go:433: 10: goja.resolveVar1(re) compiler.go:433: 11: *goja.newRegexp(&{0xc0004d4ae0 (?:)}) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.resolveVar1(str) compiler.go:433: 14: goja.loadVal({[65279 97 55296 56320 98]}) compiler.go:433: 15: goja._initValueP({}) compiler.go:433: 16: goja.loadDynamicCallee(assert) compiler.go:433: 17: goja.loadDynamicCallee(compareArray) compiler.go:433: 18: goja.loadDynamic(str) compiler.go:433: 19: goja.getPropCallee(split) compiler.go:433: 20: goja.loadDynamic(re) compiler.go:433: 21: goja.call(1) compiler.go:433: 22: goja.newArray(3) compiler.go:433: 23: goja.loadVal({a}) compiler.go:433: 24: goja._pushArrayItem({}) compiler.go:433: 25: goja.loadVal({[65279 55296 56320]}) compiler.go:433: 26: goja._pushArrayItem({}) compiler.go:433: 27: goja.loadVal({b}) compiler.go:433: 28: goja._pushArrayItem({}) compiler.go:433: 29: goja.call(2) compiler.go:433: 30: goja.loadVal({#1}) compiler.go:433: 31: goja.call(2) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja.loadDynamic(re) compiler.go:433: 34: goja.loadVal({3}) compiler.go:433: 35: goja.setPropP(lastIndex) compiler.go:433: 36: goja.loadDynamic(assert) compiler.go:433: 37: goja.getPropCallee(sameValue) compiler.go:433: 38: goja.loadDynamic(re) compiler.go:433: 39: goja.getPropCallee(exec) compiler.go:433: 40: goja.loadDynamic(str) compiler.go:433: 41: goja.call(1) compiler.go:433: 42: goja.getProp(index) compiler.go:433: 43: goja.loadVal({3}) compiler.go:433: 44: goja.loadVal({#2}) compiler.go:433: 45: goja.call(3) compiler.go:433: 46: goja._pop({}) compiler.go:433: 47: goja.loadDynamic(re) compiler.go:433: 48: goja.loadVal({2}) compiler.go:433: 49: goja.setPropP(lastIndex) compiler.go:433: 50: goja.loadDynamic(assert) compiler.go:433: 51: goja.getPropCallee(sameValue) compiler.go:433: 52: goja.loadDynamic(re) compiler.go:433: 53: goja.getPropCallee(exec) compiler.go:433: 54: goja.loadDynamic(str) compiler.go:433: 55: goja.call(1) compiler.go:433: 56: goja.getProp(index) compiler.go:433: 57: goja.loadVal({1}) compiler.go:433: 58: goja.loadVal({#3}) compiler.go:433: 59: goja.call(3) compiler.go:433: 60: goja._pop({}) compiler.go:433: 61: goja.loadDynamic(re) compiler.go:433: 62: goja.loadVal({4}) compiler.go:433: 63: goja.setPropP(lastIndex) compiler.go:433: 64: goja.loadDynamic(assert) compiler.go:433: 65: goja.getPropCallee(sameValue) compiler.go:433: 66: goja.loadDynamic(re) compiler.go:433: 67: goja.getPropCallee(exec) compiler.go:433: 68: goja.loadDynamic(str) compiler.go:433: 69: goja.call(1) compiler.go:433: 70: goja.getProp(index) compiler.go:433: 71: goja.loadVal({4}) compiler.go:433: 72: goja.loadVal({#4}) compiler.go:433: 73: goja.call(3) compiler.go:433: 74: goja._pop({}) compiler.go:433: 75: goja.loadDynamic(re) compiler.go:433: 76: goja.loadVal({5}) compiler.go:433: 77: goja.setPropP(lastIndex) compiler.go:433: 78: goja.loadDynamic(assert) compiler.go:433: 79: goja.getPropCallee(sameValue) compiler.go:433: 80: goja.loadDynamic(re) compiler.go:433: 81: goja.getPropCallee(exec) compiler.go:433: 82: goja.loadDynamic(str) compiler.go:433: 83: goja.call(1) compiler.go:433: 84: goja.loadVal({{}}) compiler.go:433: 85: goja.loadVal({#5}) compiler.go:433: 86: goja.call(3) compiler.go:433: 87: goja._pop({}) compiler.go:433: 88: goja.resolveVar1(iterator) compiler.go:433: 89: goja.loadDynamic(str) compiler.go:433: 90: goja.getPropCallee(matchAll) compiler.go:433: 91: goja.loadDynamic(re) compiler.go:433: 92: goja.call(1) compiler.go:433: 93: goja._initValueP({}) compiler.go:433: 94: goja.resolveVar1(matches) compiler.go:433: 95: goja.newArray(0) compiler.go:433: 96: goja._initValueP({}) compiler.go:433: 97: goja.loadDynamic(iterator) compiler.go:433: 98: goja._iterateP({}) compiler.go:433: 99: goja.iterNext(10) compiler.go:433: 100: goja.resolveVar1(v) compiler.go:433: 101: goja._enumGet({}) compiler.go:433: 102: goja._putValueP({}) compiler.go:433: 103: goja.loadDynamic(matches) compiler.go:433: 104: goja.getPropCallee(push) compiler.go:433: 105: goja.loadDynamic(v) compiler.go:433: 106: goja.call(1) compiler.go:433: 107: goja._pop({}) compiler.go:433: 108: goja.jump(-9) compiler.go:433: 109: goja._enumPop({}) compiler.go:433: 110: goja.jump(2) compiler.go:433: 111: goja._enumPopClose({}) compiler.go:433: 112: goja.loadDynamic(assert) compiler.go:433: 113: goja.getPropCallee(sameValue) compiler.go:433: 114: goja.loadDynamic(matches) compiler.go:433: 115: goja.getProp(length) compiler.go:433: 116: goja.loadVal({4}) compiler.go:433: 117: goja.loadVal({#6}) compiler.go:433: 118: goja.call(3) compiler.go:433: 119: goja._pop({}) compiler.go:433: 120: goja.loadDynamic(assert) compiler.go:433: 121: goja.getPropCallee(sameValue) compiler.go:433: 122: goja.loadDynamic(matches) compiler.go:433: 123: goja.loadVal({0}) compiler.go:433: 124: goja._getElem({}) compiler.go:433: 125: goja.getProp(index) compiler.go:433: 126: goja.loadVal({0}) compiler.go:433: 127: goja.loadVal({#7 index}) compiler.go:433: 128: goja.call(3) compiler.go:433: 129: goja._pop({}) compiler.go:433: 130: goja.loadDynamic(assert) compiler.go:433: 131: goja.getPropCallee(sameValue) compiler.go:433: 132: goja.loadDynamic(matches) compiler.go:433: 133: goja.loadVal({0}) compiler.go:433: 134: goja._getElem({}) compiler.go:433: 135: goja.loadVal({0}) compiler.go:433: 136: goja._getElem({}) compiler.go:433: 137: goja.loadVal({}) compiler.go:433: 138: goja.loadVal({#7 value}) compiler.go:433: 139: goja.call(3) compiler.go:433: 140: goja._pop({}) compiler.go:433: 141: goja.loadDynamic(assert) compiler.go:433: 142: goja.getPropCallee(sameValue) compiler.go:433: 143: goja.loadDynamic(matches) compiler.go:433: 144: goja.loadVal({1}) compiler.go:433: 145: goja._getElem({}) compiler.go:433: 146: goja.getProp(index) compiler.go:433: 147: goja.loadVal({1}) compiler.go:433: 148: goja.loadVal({#8 index}) compiler.go:433: 149: goja.call(3) compiler.go:433: 150: goja._pop({}) compiler.go:433: 151: goja.loadDynamic(assert) compiler.go:433: 152: goja.getPropCallee(sameValue) compiler.go:433: 153: goja.loadDynamic(matches) compiler.go:433: 154: goja.loadVal({1}) compiler.go:433: 155: goja._getElem({}) compiler.go:433: 156: goja.loadVal({0}) compiler.go:433: 157: goja._getElem({}) compiler.go:433: 158: goja.loadVal({}) compiler.go:433: 159: goja.loadVal({#8 value}) compiler.go:433: 160: goja.call(3) compiler.go:433: 161: goja._pop({}) compiler.go:433: 162: goja.loadDynamic(assert) compiler.go:433: 163: goja.getPropCallee(sameValue) compiler.go:433: 164: goja.loadDynamic(matches) compiler.go:433: 165: goja.loadVal({2}) compiler.go:433: 166: goja._getElem({}) compiler.go:433: 167: goja.getProp(index) compiler.go:433: 168: goja.loadVal({3}) compiler.go:433: 169: goja.loadVal({#9 index}) compiler.go:433: 170: goja.call(3) compiler.go:433: 171: goja._pop({}) compiler.go:433: 172: goja.loadDynamic(assert) compiler.go:433: 173: goja.getPropCallee(sameValue) compiler.go:433: 174: goja.loadDynamic(matches) compiler.go:433: 175: goja.loadVal({2}) compiler.go:433: 176: goja._getElem({}) compiler.go:433: 177: goja.loadVal({0}) compiler.go:433: 178: goja._getElem({}) compiler.go:433: 179: goja.loadVal({}) compiler.go:433: 180: goja.loadVal({#9 value}) compiler.go:433: 181: goja.call(3) compiler.go:433: 182: goja._pop({}) compiler.go:433: 183: goja.loadDynamic(assert) compiler.go:433: 184: goja.getPropCallee(sameValue) compiler.go:433: 185: goja.loadDynamic(matches) compiler.go:433: 186: goja.loadVal({3}) compiler.go:433: 187: goja._getElem({}) compiler.go:433: 188: goja.getProp(index) compiler.go:433: 189: goja.loadVal({4}) compiler.go:433: 190: goja.loadVal({#10 index}) compiler.go:433: 191: goja.call(3) compiler.go:433: 192: goja._pop({}) compiler.go:433: 193: goja.loadDynamic(assert) compiler.go:433: 194: goja.getPropCallee(sameValue) compiler.go:433: 195: goja.loadDynamic(matches) compiler.go:433: 196: goja.loadVal({3}) compiler.go:433: 197: goja._getElem({}) compiler.go:433: 198: goja.loadVal({0}) compiler.go:433: 199: goja._getElem({}) compiler.go:433: 200: goja.loadVal({}) compiler.go:433: 201: goja.loadVal({#10 value}) compiler.go:433: 202: goja.call(3) compiler.go:433: 203: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpUnicodeAdvanceStringIndex (0.00s) === RUN TestRegexpInit compiler.go:433: 0: goja.loadDynamicCallee(RegExp) compiler.go:433: 1: goja.loadVal({.}) compiler.go:433: 2: goja.call(1) compiler.go:433: 3: goja.getProp(lastIndex) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpInit (0.00s) === RUN TestRegexpToString compiler.go:433: 0: goja.loadDynamic(RegExp) compiler.go:433: 1: goja.getProp(prototype) compiler.go:433: 2: goja.getProp(toString) compiler.go:433: 3: goja.getPropCallee(call) compiler.go:433: 4: goja._newObject({}) compiler.go:433: 5: goja.loadVal({foo}) compiler.go:433: 6: goja.putProp(source) compiler.go:433: 7: goja.loadVal({bar}) compiler.go:433: 8: goja.putProp(flags) compiler.go:433: 9: goja.call(1) compiler.go:433: 10: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpToString (0.00s) === RUN TestRegexpEscapeSource compiler.go:433: 0: *goja.newRegexp(&{0xc00059bd10 href="(.+?)(\/.*\/\S+?)\/"}) compiler.go:433: 1: goja.getProp(source) compiler.go:433: 2: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpEscapeSource (0.00s) === RUN TestRegexpConsecutiveMatchCache --- PASS: TestRegexpConsecutiveMatchCache (0.00s) === RUN TestRegexpMatchAll --- PASS: TestRegexpMatchAll (0.00s) === RUN TestRegexpOverrideSpecies compiler.go:433: 0: goja.loadDynamic(Object) compiler.go:433: 1: goja.getPropCallee(defineProperty) compiler.go:433: 2: goja.loadDynamic(RegExp) compiler.go:433: 3: goja.loadDynamic(Symbol) compiler.go:433: 4: goja.getProp(species) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja.loadVal({true}) compiler.go:433: 7: goja.putProp(configurable) compiler.go:433: 8: *goja.newFunc(&{0xc00036c4b0 value function() { throw "passed"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({passed}) compiler.go:433: > 2: goja._throw({}) compiler.go:433: > 3: goja._loadUndef({}) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 9: goja.putProp(value) compiler.go:433: 10: goja.call(3) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.try({12 0}) compiler.go:433: 13: goja._clearResult({}) compiler.go:433: 14: goja.loadVal({ab}) compiler.go:433: 15: goja.getPropCallee(split) compiler.go:433: 16: *goja.newRegexp(&{0xc00051fc50 a}) compiler.go:433: 17: goja.call(1) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.loadDynamic(Error) compiler.go:433: 20: goja.loadVal({Expected error}) compiler.go:433: 21: goja._new(1) compiler.go:433: 22: goja._throw({}) compiler.go:433: 23: goja.jump(12) compiler.go:433: 24: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 25: goja._clearResult({}) compiler.go:433: 26: goja.loadStackLex(1) compiler.go:433: 27: goja.loadVal({passed}) compiler.go:433: 28: goja._op_strict_neq({}) compiler.go:433: 29: goja.jneP(4) compiler.go:433: 30: goja.loadStackLex(1) compiler.go:433: 31: goja._throw({}) compiler.go:433: 32: goja.jump(2) compiler.go:433: 33: goja._clearResult({}) compiler.go:433: 34: *goja.leaveBlock(&{1 false}) compiler.go:433: 35: goja.leaveTry({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpOverrideSpecies (0.00s) === RUN TestRegexpSymbolMatchAllCallsIsRegexp compiler.go:433: 0: *goja.bindGlobal(&{[a] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.loadDynamic(Object) compiler.go:433: 3: goja._new(0) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.loadDynamic(Object) compiler.go:433: 6: goja.getPropCallee(defineProperty) compiler.go:433: 7: goja.loadDynamic(a) compiler.go:433: 8: goja.loadDynamic(Symbol) compiler.go:433: 9: goja.getProp(match) compiler.go:433: 10: goja._newObject({}) compiler.go:433: 11: *goja.newFunc(&{0xc00036c780 get function() { throw "passed"; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({passed}) compiler.go:433: > 2: goja._throw({}) compiler.go:433: > 3: goja._loadUndef({}) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 12: goja.putProp(get) compiler.go:433: 13: goja.call(3) compiler.go:433: 14: goja._pop({}) compiler.go:433: 15: goja.try({17 0}) compiler.go:433: 16: goja._clearResult({}) compiler.go:433: 17: goja.loadDynamic(RegExp) compiler.go:433: 18: goja.getProp(prototype) compiler.go:433: 19: goja.loadDynamic(Symbol) compiler.go:433: 20: goja.getProp(matchAll) compiler.go:433: 21: goja._getElem({}) compiler.go:433: 22: goja.getPropCallee(call) compiler.go:433: 23: goja.loadDynamic(a) compiler.go:433: 24: goja.loadVal({}) compiler.go:433: 25: goja.call(2) compiler.go:433: 26: goja._pop({}) compiler.go:433: 27: goja.loadDynamic(Error) compiler.go:433: 28: goja.loadVal({Expected error}) compiler.go:433: 29: goja._new(1) compiler.go:433: 30: goja._throw({}) compiler.go:433: 31: goja.jump(12) compiler.go:433: 32: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 33: goja._clearResult({}) compiler.go:433: 34: goja.loadStackLex(1) compiler.go:433: 35: goja.loadVal({passed}) compiler.go:433: 36: goja._op_strict_neq({}) compiler.go:433: 37: goja.jneP(4) compiler.go:433: 38: goja.loadStackLex(1) compiler.go:433: 39: goja._throw({}) compiler.go:433: 40: goja.jump(2) compiler.go:433: 41: goja._clearResult({}) compiler.go:433: 42: *goja.leaveBlock(&{1 false}) compiler.go:433: 43: goja.leaveTry({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpSymbolMatchAllCallsIsRegexp (0.00s) === RUN TestRegexpMatchAllConstructor compiler.go:433: 0: *goja.bindGlobal(&{[callCount callArgs regexp obj str iter first second] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(callCount) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(regexp) compiler.go:433: 5: *goja.newRegexp(&{0xc0003e1ef0 \d}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(obj) compiler.go:433: 8: goja._newObject({}) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(Object) compiler.go:433: 11: goja.getPropCallee(defineProperty) compiler.go:433: 12: goja.loadDynamic(obj) compiler.go:433: 13: goja.loadDynamic(Symbol) compiler.go:433: 14: goja.getProp(species) compiler.go:433: 15: goja._newObject({}) compiler.go:433: 16: *goja.newFunc(&{0xc00036caf0 value function() { callCount++; callArgs = arguments; return /\w/g; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 0 1 0 1 true false}) compiler.go:433: > 1: goja.createArgsMapped(0) compiler.go:433: > 2: goja.initStack1P(1) compiler.go:433: > 3: goja.resolveVar1(callCount) compiler.go:433: > 4: goja._getValue({}) compiler.go:433: > 5: goja._inc({}) compiler.go:433: > 6: goja._putValueP({}) compiler.go:433: > 7: goja.resolveVar1(callArgs) compiler.go:433: > 8: goja.loadStack1(1) compiler.go:433: > 9: goja._putValueP({}) compiler.go:433: > 10: *goja.newRegexp(&{0xc00040e180 \w}) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 17: goja.putProp(value) compiler.go:433: 18: goja.call(3) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.loadDynamic(regexp) compiler.go:433: 21: goja.loadDynamic(obj) compiler.go:433: 22: goja.setPropP(constructor) compiler.go:433: 23: goja.resolveVar1(str) compiler.go:433: 24: goja.loadVal({a*b}) compiler.go:433: 25: goja._initValueP({}) compiler.go:433: 26: goja.resolveVar1(iter) compiler.go:433: 27: goja.loadDynamic(regexp) compiler.go:433: 28: goja.loadDynamic(Symbol) compiler.go:433: 29: goja.getProp(matchAll) compiler.go:433: 30: goja._getElemCallee({}) compiler.go:433: 31: goja.loadDynamic(str) compiler.go:433: 32: goja.call(1) compiler.go:433: 33: goja._initValueP({}) compiler.go:433: 34: goja.loadDynamic(assert) compiler.go:433: 35: goja.getPropCallee(sameValue) compiler.go:433: 36: goja.loadDynamic(callCount) compiler.go:433: 37: goja.loadVal({1}) compiler.go:433: 38: goja.call(2) compiler.go:433: 39: goja._pop({}) compiler.go:433: 40: goja.loadDynamic(assert) compiler.go:433: 41: goja.getPropCallee(sameValue) compiler.go:433: 42: goja.loadDynamic(callArgs) compiler.go:433: 43: goja.getProp(length) compiler.go:433: 44: goja.loadVal({2}) compiler.go:433: 45: goja.call(2) compiler.go:433: 46: goja._pop({}) compiler.go:433: 47: goja.loadDynamic(assert) compiler.go:433: 48: goja.getPropCallee(sameValue) compiler.go:433: 49: goja.loadDynamic(callArgs) compiler.go:433: 50: goja.loadVal({0}) compiler.go:433: 51: goja._getElem({}) compiler.go:433: 52: goja.loadDynamic(regexp) compiler.go:433: 53: goja.call(2) compiler.go:433: 54: goja._pop({}) compiler.go:433: 55: goja.loadDynamic(assert) compiler.go:433: 56: goja.getPropCallee(sameValue) compiler.go:433: 57: goja.loadDynamic(callArgs) compiler.go:433: 58: goja.loadVal({1}) compiler.go:433: 59: goja._getElem({}) compiler.go:433: 60: goja.loadVal({u}) compiler.go:433: 61: goja.call(2) compiler.go:433: 62: goja._pop({}) compiler.go:433: 63: goja.resolveVar1(first) compiler.go:433: 64: goja.loadDynamic(iter) compiler.go:433: 65: goja.getPropCallee(next) compiler.go:433: 66: goja.call(0) compiler.go:433: 67: goja._initValueP({}) compiler.go:433: 68: goja.loadDynamic(assert) compiler.go:433: 69: goja.getPropCallee(sameValue) compiler.go:433: 70: goja.loadDynamic(first) compiler.go:433: 71: goja.getProp(done) compiler.go:433: 72: goja.loadVal({false}) compiler.go:433: 73: goja.call(2) compiler.go:433: 74: goja._pop({}) compiler.go:433: 75: goja.loadDynamic(assert) compiler.go:433: 76: goja.getPropCallee(sameValue) compiler.go:433: 77: goja.loadDynamic(first) compiler.go:433: 78: goja.getProp(value) compiler.go:433: 79: goja.getProp(length) compiler.go:433: 80: goja.loadVal({1}) compiler.go:433: 81: goja.call(2) compiler.go:433: 82: goja._pop({}) compiler.go:433: 83: goja.loadDynamic(assert) compiler.go:433: 84: goja.getPropCallee(sameValue) compiler.go:433: 85: goja.loadDynamic(first) compiler.go:433: 86: goja.getProp(value) compiler.go:433: 87: goja.loadVal({0}) compiler.go:433: 88: goja._getElem({}) compiler.go:433: 89: goja.loadVal({a}) compiler.go:433: 90: goja.call(2) compiler.go:433: 91: goja._pop({}) compiler.go:433: 92: goja.resolveVar1(second) compiler.go:433: 93: goja.loadDynamic(iter) compiler.go:433: 94: goja.getPropCallee(next) compiler.go:433: 95: goja.call(0) compiler.go:433: 96: goja._initValueP({}) compiler.go:433: 97: goja.loadDynamic(assert) compiler.go:433: 98: goja.getPropCallee(sameValue) compiler.go:433: 99: goja.loadDynamic(second) compiler.go:433: 100: goja.getProp(done) compiler.go:433: 101: goja.loadVal({true}) compiler.go:433: 102: goja.call(2) compiler.go:433: 103: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestRegexpMatchAllConstructor (0.00s) === RUN TestRegexp2InvalidEscape compiler.go:433: 0: *goja.newRegexp(&{0xc00027fa10 (?=)\x0}) compiler.go:433: 1: goja.getPropCallee(test) compiler.go:433: 2: goja.loadVal({x0}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexp2InvalidEscape (0.00s) === RUN TestRegexpUnicodeEmptyMatch compiler.go:433: 0: *goja.newRegexp(&{0xc000286f00 (0)0|}) compiler.go:433: 1: goja.getPropCallee(exec) compiler.go:433: 2: goja.loadVal({[65279 48 239]}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja.getProp(length) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja._op_strict_eq({}) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpUnicodeEmptyMatch (0.00s) === RUN TestRegexpInvalidGroup compiler.go:433: 0: goja.newArray(2) compiler.go:433: 1: goja.loadVal({?}) compiler.go:433: 2: goja._pushArrayItem({}) compiler.go:433: 3: goja.loadVal({(?)}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.getPropCallee(forEach) compiler.go:433: 6: *goja.newFunc(&{0xc00036d1d0 function(s) { assert.throws(SyntaxError, function() {new RegExp(s)}, s); } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 0 1 1 true false}) compiler.go:433: > 1: goja.loadDynamic(assert) compiler.go:433: > 2: goja.getPropCallee(throws) compiler.go:433: > 3: goja.loadDynamic(SyntaxError) compiler.go:433: > 4: *goja.newFunc(&{0xc00036d220 function() {new RegExp(s)} 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadDynamic(RegExp) compiler.go:433: >> 2: goja.loadStashLex(0) compiler.go:433: >> 3: goja._new(1) compiler.go:433: >> 4: goja._pop({}) compiler.go:433: >> 5: goja._loadUndef({}) compiler.go:433: >> 6: goja._ret({}) compiler.go:433: > 5: goja.loadStashLex(0) compiler.go:433: > 6: goja.call(3) compiler.go:433: > 7: goja._pop({}) compiler.go:433: > 8: goja._loadUndef({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 7: goja.call(1) compiler.go:433: 8: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestRegexpInvalidGroup (0.00s) === RUN TestRegexpLookbehindAssertion compiler.go:433: 0: *goja.bindGlobal(&{[re] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(re) compiler.go:433: 2: *goja.newRegexp(&{0xc0002ab500 (?<=Jack|Tom)Sprat}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamicCallee(assert) compiler.go:433: 5: goja.loadDynamic(re) compiler.go:433: 6: goja.getPropCallee(test) compiler.go:433: 7: goja.loadVal({JackSprat}) compiler.go:433: 8: goja.call(1) compiler.go:433: 9: goja.loadVal({#1}) compiler.go:433: 10: goja.call(2) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.loadDynamicCallee(assert) compiler.go:433: 13: goja.loadDynamic(re) compiler.go:433: 14: goja.getPropCallee(test) compiler.go:433: 15: goja.loadVal({JohnSprat}) compiler.go:433: 16: goja.call(1) compiler.go:433: 17: goja._not({}) compiler.go:433: 18: goja.loadVal({#2}) compiler.go:433: 19: goja.call(2) compiler.go:433: 20: goja._pop({}) compiler.go:433: 21: goja.resolveVar1(re) compiler.go:433: 22: *goja.newRegexp(&{0xc0002ab6e0 (? { new RegExp("(?<=a)\\u{6_5}", "u"); } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(RegExp) compiler.go:433: > 2: goja.loadVal({(?<=a)\u{6_5}}) compiler.go:433: > 3: goja.loadVal({u}) compiler.go:433: > 4: goja._new(2) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 20: goja.call(2) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.loadDynamic(assert) compiler.go:433: 23: goja.getPropCallee(throws) compiler.go:433: 24: goja.loadDynamic(SyntaxError) compiler.go:433: 25: *goja.newArrowFunc(&{{0xc00036dd10 () => { new RegExp("a\\u{6_5}", "u"); } 0 false}}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(RegExp) compiler.go:433: > 2: goja.loadVal({a\u{6_5}}) compiler.go:433: > 3: goja.loadVal({u}) compiler.go:433: > 4: goja._new(2) compiler.go:433: > 5: goja._pop({}) compiler.go:433: > 6: goja._loadUndef({}) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 26: goja.call(2) compiler.go:433: 27: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpNumSeparators (0.00s) === RUN TestRegexpUnicodeEscape compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(sameValue) compiler.go:433: 2: goja.loadVal({u{0_2}}) compiler.go:433: 3: goja.getPropCallee(match) compiler.go:433: 4: *goja.newRegexp(&{0xc0002e9740 \u{0_2}}) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja.loadVal({0}) compiler.go:433: 7: goja._getElem({}) compiler.go:433: 8: goja.loadVal({u{0_2}}) compiler.go:433: 9: goja.call(2) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.loadDynamic(assert) compiler.go:433: 12: goja.getPropCallee(sameValue) compiler.go:433: 13: goja.loadVal({uu}) compiler.go:433: 14: goja.getPropCallee(match) compiler.go:433: 15: *goja.newRegexp(&{0xc0002e9860 \u{2}}) compiler.go:433: 16: goja.call(1) compiler.go:433: 17: goja.loadVal({0}) compiler.go:433: 18: goja._getElem({}) compiler.go:433: 19: goja.loadVal({}) compiler.go:433: 20: goja.call(2) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.loadDynamic(assert) compiler.go:433: 23: goja.getPropCallee(sameValue) compiler.go:433: 24: goja.loadVal({uu}) compiler.go:433: 25: goja.getPropCallee(match) compiler.go:433: 26: *goja.newRegexp(&{0xc0002e9980 \u{2}}) compiler.go:433: 27: goja.call(1) compiler.go:433: 28: goja.loadVal({0}) compiler.go:433: 29: goja._getElem({}) compiler.go:433: 30: goja.loadVal({uu}) compiler.go:433: 31: goja.call(2) compiler.go:433: 32: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestRegexpUnicodeEscape (0.00s) === RUN TestGlobalObjectProto compiler.go:433: 0: goja._loadGlobalObject({}) compiler.go:433: 1: goja.loadDynamic(Object) compiler.go:433: 2: goja._op_instanceof({}) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestGlobalObjectProto (0.00s) === RUN TestUnicodeString compiler.go:433: 0: *goja.bindGlobal(&{[s] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(s) compiler.go:433: 2: goja.loadVal({[65279 1058 1077 1089 1090]}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(s) compiler.go:433: 5: goja.getProp(length) compiler.go:433: 6: goja.loadVal({4}) compiler.go:433: 7: goja._op_strict_eq({}) compiler.go:433: 8: goja.jne(6) compiler.go:433: 9: goja.loadDynamic(s) compiler.go:433: 10: goja.loadVal({1}) compiler.go:433: 11: goja._getElem({}) compiler.go:433: 12: goja.loadVal({[65279 1077]}) compiler.go:433: 13: goja._op_strict_eq({}) compiler.go:433: 14: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestUnicodeString (0.00s) === RUN Test2TierHierarchyProp compiler.go:433: 0: *goja.bindGlobal(&{[a b c] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(Object) compiler.go:433: 5: goja.getPropCallee(defineProperty) compiler.go:433: 6: goja.loadDynamic(a) compiler.go:433: 7: goja.loadVal({test}) compiler.go:433: 8: goja._newObject({}) compiler.go:433: 9: goja.loadVal({42}) compiler.go:433: 10: goja.putProp(value) compiler.go:433: 11: goja.loadVal({false}) compiler.go:433: 12: goja.putProp(writable) compiler.go:433: 13: goja.loadVal({false}) compiler.go:433: 14: goja.putProp(enumerable) compiler.go:433: 15: goja.loadVal({true}) compiler.go:433: 16: goja.putProp(configurable) compiler.go:433: 17: goja.call(3) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.resolveVar1(b) compiler.go:433: 20: goja.loadDynamic(Object) compiler.go:433: 21: goja.getPropCallee(create) compiler.go:433: 22: goja.loadDynamic(a) compiler.go:433: 23: goja.call(1) compiler.go:433: 24: goja._initValueP({}) compiler.go:433: 25: goja.resolveVar1(c) compiler.go:433: 26: goja.loadDynamic(Object) compiler.go:433: 27: goja.getPropCallee(create) compiler.go:433: 28: goja.loadDynamic(b) compiler.go:433: 29: goja.call(1) compiler.go:433: 30: goja._initValueP({}) compiler.go:433: 31: goja.loadDynamic(c) compiler.go:433: 32: goja.loadVal({43}) compiler.go:433: 33: goja.setPropP(test) compiler.go:433: 34: goja.loadDynamic(c) compiler.go:433: 35: goja.getProp(test) compiler.go:433: 36: goja.loadVal({42}) compiler.go:433: 37: goja._op_strict_eq({}) compiler.go:433: 38: goja.jne(6) compiler.go:433: 39: goja.loadDynamic(b) compiler.go:433: 40: goja.getPropCallee(hasOwnProperty) compiler.go:433: 41: goja.loadVal({test}) compiler.go:433: 42: goja.call(1) compiler.go:433: 43: goja._not({}) compiler.go:433: 44: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: Test2TierHierarchyProp (0.00s) === RUN TestConstStringIter compiler.go:433: 0: *goja.bindGlobal(&{[count i j] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(count) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadVal({1234}) compiler.go:433: 5: goja._enumerate({}) compiler.go:433: 6: goja.enumNext(19) compiler.go:433: 7: goja.resolveVar1(i) compiler.go:433: 8: goja._enumGet({}) compiler.go:433: 9: goja._putValueP({}) compiler.go:433: 10: goja.loadVal({1234567}) compiler.go:433: 11: goja._enumerate({}) compiler.go:433: 12: goja.enumNext(9) compiler.go:433: 13: goja.resolveVar1(j) compiler.go:433: 14: goja._enumGet({}) compiler.go:433: 15: goja._putValueP({}) compiler.go:433: 16: goja.resolveVar1(count) compiler.go:433: 17: goja._getValue({}) compiler.go:433: 18: goja._inc({}) compiler.go:433: 19: goja._putValueP({}) compiler.go:433: 20: goja.jump(-8) compiler.go:433: 21: goja._enumPop({}) compiler.go:433: 22: goja.jump(2) compiler.go:433: 23: goja._enumPopClose({}) compiler.go:433: 24: goja.jump(-18) compiler.go:433: 25: goja._enumPop({}) compiler.go:433: 26: goja.jump(2) compiler.go:433: 27: goja._enumPopClose({}) compiler.go:433: 28: goja.loadDynamic(count) compiler.go:433: 29: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestConstStringIter (0.00s) === RUN TestUnicodeConcat compiler.go:433: 0: *goja.bindGlobal(&{[s s1 s2] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(s) compiler.go:433: 2: goja.loadVal({[65279 1090 1077 1089 1090]}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(s1) compiler.go:433: 5: goja.loadVal({test}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(s2) compiler.go:433: 8: goja.loadVal({[65279 1072 1073 1074 1075 1076]}) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.loadDynamic(s) compiler.go:433: 11: goja.getPropCallee(concat) compiler.go:433: 12: goja.loadDynamic(s1) compiler.go:433: 13: goja.call(1) compiler.go:433: 14: goja.loadVal({[65279 1090 1077 1089 1090 116 101 115 116]}) compiler.go:433: 15: goja._op_strict_eq({}) compiler.go:433: 16: goja.jne(8) compiler.go:433: 17: goja.loadDynamic(s) compiler.go:433: 18: goja.getPropCallee(concat) compiler.go:433: 19: goja.loadDynamic(s1) compiler.go:433: 20: goja.loadDynamic(s2) compiler.go:433: 21: goja.call(2) compiler.go:433: 22: goja.loadVal({[65279 1090 1077 1089 1090 116 101 115 116 1072 1073 1074 1075 1076]}) compiler.go:433: 23: goja._op_strict_eq({}) compiler.go:433: 24: goja.jne(8) compiler.go:433: 25: goja.loadDynamic(s1) compiler.go:433: 26: goja.getPropCallee(concat) compiler.go:433: 27: goja.loadDynamic(s) compiler.go:433: 28: goja.loadDynamic(s2) compiler.go:433: 29: goja.call(2) compiler.go:433: 30: goja.loadVal({[65279 116 101 115 116 1090 1077 1089 1090 1072 1073 1074 1075 1076]}) compiler.go:433: 31: goja._op_strict_eq({}) compiler.go:433: 32: goja.jne(7) compiler.go:433: 33: goja.loadDynamic(s) compiler.go:433: 34: goja.getPropCallee(concat) compiler.go:433: 35: goja.loadDynamic(s2) compiler.go:433: 36: goja.call(1) compiler.go:433: 37: goja.loadVal({[65279 1090 1077 1089 1090 1072 1073 1074 1075 1076]}) compiler.go:433: 38: goja._op_strict_eq({}) compiler.go:433: 39: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestUnicodeConcat (0.00s) === RUN TestIndexOf compiler.go:433: 0: goja.loadVal({abc}) compiler.go:433: 1: goja.getPropCallee(indexOf) compiler.go:433: 2: goja.loadVal({}) compiler.go:433: 3: goja.loadVal({4}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestIndexOf (0.00s) === RUN TestUnicodeIndexOf compiler.go:433: 0: goja.loadVal({[65279 1072 1073 1074 1075 1076]}) compiler.go:433: 1: goja.getPropCallee(indexOf) compiler.go:433: 2: goja.loadVal({[65279 1074 1075]}) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja.loadVal({2}) compiler.go:433: 6: goja._op_strict_eq({}) compiler.go:433: 7: goja.jne(7) compiler.go:433: 8: goja.loadVal({[65279 20013 22269]}) compiler.go:433: 9: goja.getPropCallee(indexOf) compiler.go:433: 10: goja.loadVal({[65279 22269]}) compiler.go:433: 11: goja.call(1) compiler.go:433: 12: goja.loadVal({1}) compiler.go:433: 13: goja._op_strict_eq({}) compiler.go:433: 14: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestUnicodeIndexOf (0.00s) === RUN TestLastIndexOf compiler.go:433: 0: goja.loadVal({abcabab}) compiler.go:433: 1: goja.getPropCallee(lastIndexOf) compiler.go:433: 2: goja.loadVal({ab}) compiler.go:433: 3: goja.loadVal({3}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestLastIndexOf (0.00s) === RUN TestUnicodeLastIndexOf compiler.go:433: 0: goja.loadVal({[65279 1072 1073 1074 1072 1073 1072 1073]}) compiler.go:433: 1: goja.getPropCallee(lastIndexOf) compiler.go:433: 2: goja.loadVal({[65279 1072 1073]}) compiler.go:433: 3: goja.loadVal({3}) compiler.go:433: 4: goja.call(2) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestUnicodeLastIndexOf (0.00s) === RUN TestUnicodeLastIndexOf1 compiler.go:433: 0: goja.loadVal({[65279 97 98 42896 99 100 101]}) compiler.go:433: 1: goja.getPropCallee(lastIndexOf) compiler.go:433: 2: goja.loadVal({cd}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestUnicodeLastIndexOf1 (0.00s) === RUN TestNumber compiler.go:433: 0: goja.loadDynamic(Number) compiler.go:433: 1: goja.loadVal({1.0011112213314416e+17}) compiler.go:433: 2: goja._new(1) compiler.go:433: 3: goja.getPropCallee(toString) compiler.go:433: 4: goja.call(0) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNumber (0.00s) === RUN TestFractionalNumberToStringRadix compiler.go:433: 0: goja.loadDynamic(Number) compiler.go:433: 1: goja.loadVal({123.456}) compiler.go:433: 2: goja._new(1) compiler.go:433: 3: goja.getPropCallee(toString) compiler.go:433: 4: goja.loadVal({36}) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFractionalNumberToStringRadix (0.00s) === RUN TestNumberFormatRounding compiler.go:433: 0: *goja.bindGlobal(&{[n] [] [] [] false}) compiler.go:433: 1: goja.loadDynamic(assert) compiler.go:433: 2: goja.getPropCallee(sameValue) compiler.go:433: 3: goja.loadVal({123.456}) compiler.go:433: 4: goja.getPropCallee(toExponential) compiler.go:433: 5: goja.loadDynamic(undefined) compiler.go:433: 6: goja.call(1) compiler.go:433: 7: goja.loadVal({1.23456e+2}) compiler.go:433: 8: goja.loadVal({undefined}) compiler.go:433: 9: goja.call(3) compiler.go:433: 10: goja._pop({}) compiler.go:433: 11: goja.loadDynamic(assert) compiler.go:433: 12: goja.getPropCallee(sameValue) compiler.go:433: 13: goja.loadVal({1e-06}) compiler.go:433: 14: goja.getPropCallee(toPrecision) compiler.go:433: 15: goja.loadVal({2}) compiler.go:433: 16: goja.call(1) compiler.go:433: 17: goja.loadVal({0.0000010}) compiler.go:433: 18: goja.call(2) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.loadDynamic(assert) compiler.go:433: 21: goja.getPropCallee(sameValue) compiler.go:433: 22: goja.loadVal({7}) compiler.go:433: 23: goja._neg({}) compiler.go:433: 24: goja.getPropCallee(toPrecision) compiler.go:433: 25: goja.loadVal({1}) compiler.go:433: 26: goja.call(1) compiler.go:433: 27: goja.loadVal({-7}) compiler.go:433: 28: goja.call(2) compiler.go:433: 29: goja._pop({}) compiler.go:433: 30: goja.loadDynamic(assert) compiler.go:433: 31: goja.getPropCallee(sameValue) compiler.go:433: 32: goja.loadVal({42}) compiler.go:433: 33: goja._neg({}) compiler.go:433: 34: goja.getPropCallee(toPrecision) compiler.go:433: 35: goja.loadVal({1}) compiler.go:433: 36: goja.call(1) compiler.go:433: 37: goja.loadVal({-4e+1}) compiler.go:433: 38: goja.call(2) compiler.go:433: 39: goja._pop({}) compiler.go:433: 40: goja.loadDynamic(assert) compiler.go:433: 41: goja.getPropCallee(sameValue) compiler.go:433: 42: goja.loadVal({1e-06}) compiler.go:433: 43: goja.getPropCallee(toPrecision) compiler.go:433: 44: goja.loadVal({1}) compiler.go:433: 45: goja.call(1) compiler.go:433: 46: goja.loadVal({0.000001}) compiler.go:433: 47: goja.call(2) compiler.go:433: 48: goja._pop({}) compiler.go:433: 49: goja.loadDynamic(assert) compiler.go:433: 50: goja.getPropCallee(sameValue) compiler.go:433: 51: goja.loadVal({123.456}) compiler.go:433: 52: goja.getPropCallee(toPrecision) compiler.go:433: 53: goja.loadVal({1}) compiler.go:433: 54: goja.call(1) compiler.go:433: 55: goja.loadVal({1e+2}) compiler.go:433: 56: goja.loadVal({1}) compiler.go:433: 57: goja.call(3) compiler.go:433: 58: goja._pop({}) compiler.go:433: 59: goja.loadDynamic(assert) compiler.go:433: 60: goja.getPropCallee(sameValue) compiler.go:433: 61: goja.loadVal({123.456}) compiler.go:433: 62: goja.getPropCallee(toPrecision) compiler.go:433: 63: goja.loadVal({2}) compiler.go:433: 64: goja.call(1) compiler.go:433: 65: goja.loadVal({1.2e+2}) compiler.go:433: 66: goja.loadVal({2}) compiler.go:433: 67: goja.call(3) compiler.go:433: 68: goja._pop({}) compiler.go:433: 69: goja.resolveVar1(n) compiler.go:433: 70: goja.loadDynamic(Number) compiler.go:433: 71: goja.loadVal({0.000000000000000000001}) compiler.go:433: 72: goja._new(1) compiler.go:433: 73: goja._initValueP({}) compiler.go:433: 74: goja.loadDynamic(assert) compiler.go:433: 75: goja.getPropCallee(sameValue) compiler.go:433: 76: goja.loadDynamic(n) compiler.go:433: 77: goja.getPropCallee(toPrecision) compiler.go:433: 78: goja.loadVal({1}) compiler.go:433: 79: goja.call(1) compiler.go:433: 80: goja.loadVal({1e-21}) compiler.go:433: 81: goja.call(2) compiler.go:433: 82: goja._pop({}) compiler.go:433: 83: goja.loadDynamic(assert) compiler.go:433: 84: goja.getPropCallee(sameValue) compiler.go:433: 85: goja.loadVal({25}) compiler.go:433: 86: goja.getPropCallee(toExponential) compiler.go:433: 87: goja.loadVal({0}) compiler.go:433: 88: goja.call(1) compiler.go:433: 89: goja.loadVal({3e+1}) compiler.go:433: 90: goja.call(2) compiler.go:433: 91: goja._pop({}) compiler.go:433: 92: goja.loadDynamic(assert) compiler.go:433: 93: goja.getPropCallee(sameValue) compiler.go:433: 94: goja.loadVal({25}) compiler.go:433: 95: goja._neg({}) compiler.go:433: 96: goja.getPropCallee(toExponential) compiler.go:433: 97: goja.loadVal({0}) compiler.go:433: 98: goja.call(1) compiler.go:433: 99: goja.loadVal({-3e+1}) compiler.go:433: 100: goja.call(2) compiler.go:433: 101: goja._pop({}) compiler.go:433: 102: goja.loadDynamic(assert) compiler.go:433: 103: goja.getPropCallee(sameValue) compiler.go:433: 104: goja.loadVal({12345}) compiler.go:433: 105: goja.getPropCallee(toExponential) compiler.go:433: 106: goja.loadVal({3}) compiler.go:433: 107: goja.call(1) compiler.go:433: 108: goja.loadVal({1.235e+4}) compiler.go:433: 109: goja.call(2) compiler.go:433: 110: goja._pop({}) compiler.go:433: 111: goja.loadDynamic(assert) compiler.go:433: 112: goja.getPropCallee(sameValue) compiler.go:433: 113: goja.loadVal({25.5}) compiler.go:433: 114: goja.getPropCallee(toFixed) compiler.go:433: 115: goja.loadVal({0}) compiler.go:433: 116: goja.call(1) compiler.go:433: 117: goja.loadVal({26}) compiler.go:433: 118: goja.call(2) compiler.go:433: 119: goja._pop({}) compiler.go:433: 120: goja.loadDynamic(assert) compiler.go:433: 121: goja.getPropCallee(sameValue) compiler.go:433: 122: goja.loadVal({25.5}) compiler.go:433: 123: goja._neg({}) compiler.go:433: 124: goja.getPropCallee(toFixed) compiler.go:433: 125: goja.loadVal({0}) compiler.go:433: 126: goja.call(1) compiler.go:433: 127: goja.loadVal({-26}) compiler.go:433: 128: goja.call(2) compiler.go:433: 129: goja._pop({}) compiler.go:433: 130: goja.loadDynamic(assert) compiler.go:433: 131: goja.getPropCallee(sameValue) compiler.go:433: 132: goja.loadVal({99.9}) compiler.go:433: 133: goja.getPropCallee(toFixed) compiler.go:433: 134: goja.loadVal({0}) compiler.go:433: 135: goja.call(1) compiler.go:433: 136: goja.loadVal({100}) compiler.go:433: 137: goja.call(2) compiler.go:433: 138: goja._pop({}) compiler.go:433: 139: goja.loadDynamic(assert) compiler.go:433: 140: goja.getPropCallee(sameValue) compiler.go:433: 141: goja.loadVal({99.99}) compiler.go:433: 142: goja.getPropCallee(toFixed) compiler.go:433: 143: goja.loadVal({1}) compiler.go:433: 144: goja.call(1) compiler.go:433: 145: goja.loadVal({100.0}) compiler.go:433: 146: goja.call(2) compiler.go:433: 147: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNumberFormatRounding (0.00s) === RUN TestBinOctalNumbers compiler.go:433: 0: goja.loadVal({7}) compiler.go:433: 1: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestBinOctalNumbers (0.00s) === RUN TestSetFunc --- PASS: TestSetFunc (0.00s) === RUN TestRecursiveRun --- PASS: TestRecursiveRun (0.00s) === RUN TestRecursiveRunWithNArgs --- PASS: TestRecursiveRunWithNArgs (0.00s) === RUN TestRecursiveRunCallee --- PASS: TestRecursiveRunCallee (0.00s) === RUN TestObjectGetSet --- PASS: TestObjectGetSet (0.00s) === RUN TestThrowFromNativeFunc --- PASS: TestThrowFromNativeFunc (0.00s) === RUN TestSetGoFunc --- PASS: TestSetGoFunc (0.00s) === RUN TestSetFuncVariadic --- PASS: TestSetFuncVariadic (0.00s) === RUN TestSetFuncVariadicFuncArg --- PASS: TestSetFuncVariadicFuncArg (0.00s) === RUN TestArgsKeys compiler.go:433: 0: *goja.newFunc(&{0xc000326ff0 testArgs2 function testArgs2(x, y, z) { // Properties of the arguments object are enumerable. return Object.keys(arguments); } 3 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 3 1 3 1 true false}) compiler.go:433: > 1: goja.createArgsMapped(3) compiler.go:433: > 2: goja.initStack1P(1) compiler.go:433: > 3: goja.loadDynamic(Object) compiler.go:433: > 4: goja.getPropCallee(keys) compiler.go:433: > 5: goja.loadStack1(1) compiler.go:433: > 6: goja.call(1) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [testArgs2] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(testArgs2) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.loadVal({2}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja.getProp(length) compiler.go:433: 7: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestArgsKeys (0.00s) === RUN TestIPowOverflow compiler.go:433: 0: goja.loadDynamic(assert) compiler.go:433: 1: goja.getPropCallee(sameValue) compiler.go:433: 2: goja.loadDynamic(Math) compiler.go:433: 3: goja.getPropCallee(pow) compiler.go:433: 4: goja.loadVal({65536}) compiler.go:433: 5: goja.loadVal({6}) compiler.go:433: 6: goja.call(2) compiler.go:433: 7: goja.loadVal({7.922816251426434e+28}) compiler.go:433: 8: goja.call(2) compiler.go:433: 9: goja._pop({}) compiler.go:433: 10: goja.loadDynamic(assert) compiler.go:433: 11: goja.getPropCallee(sameValue) compiler.go:433: 12: goja.loadDynamic(Math) compiler.go:433: 13: goja.getPropCallee(pow) compiler.go:433: 14: goja.loadVal({10}) compiler.go:433: 15: goja.loadVal({19}) compiler.go:433: 16: goja.call(2) compiler.go:433: 17: goja.loadVal({1e+19}) compiler.go:433: 18: goja.call(2) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.loadDynamic(assert) compiler.go:433: 21: goja.getPropCallee(sameValue) compiler.go:433: 22: goja.loadDynamic(Math) compiler.go:433: 23: goja.getPropCallee(pow) compiler.go:433: 24: goja.loadVal({2097151}) compiler.go:433: 25: goja.loadVal({3}) compiler.go:433: 26: goja.call(2) compiler.go:433: 27: goja.loadVal({9.223358842721534e+18}) compiler.go:433: 28: goja.call(2) compiler.go:433: 29: goja._pop({}) compiler.go:433: 30: goja.loadDynamic(assert) compiler.go:433: 31: goja.getPropCallee(sameValue) compiler.go:433: 32: goja.loadDynamic(Math) compiler.go:433: 33: goja.getPropCallee(pow) compiler.go:433: 34: goja.loadVal({2097152}) compiler.go:433: 35: goja.loadVal({3}) compiler.go:433: 36: goja.call(2) compiler.go:433: 37: goja.loadVal({9.223372036854776e+18}) compiler.go:433: 38: goja.call(2) compiler.go:433: 39: goja._pop({}) compiler.go:433: 40: goja.loadDynamic(assert) compiler.go:433: 41: goja.getPropCallee(sameValue) compiler.go:433: 42: goja.loadDynamic(Math) compiler.go:433: 43: goja.getPropCallee(pow) compiler.go:433: 44: goja.loadVal({2097151}) compiler.go:433: 45: goja._neg({}) compiler.go:433: 46: goja.loadVal({3}) compiler.go:433: 47: goja.call(2) compiler.go:433: 48: goja.loadVal({9.223358842721534e+18}) compiler.go:433: 49: goja._neg({}) compiler.go:433: 50: goja.call(2) compiler.go:433: 51: goja._pop({}) compiler.go:433: 52: goja.loadDynamic(assert) compiler.go:433: 53: goja.getPropCallee(sameValue) compiler.go:433: 54: goja.loadDynamic(Math) compiler.go:433: 55: goja.getPropCallee(pow) compiler.go:433: 56: goja.loadVal({2097152}) compiler.go:433: 57: goja._neg({}) compiler.go:433: 58: goja.loadVal({3}) compiler.go:433: 59: goja.call(2) compiler.go:433: 60: goja.loadVal({9.223372036854776e+18}) compiler.go:433: 61: goja._neg({}) compiler.go:433: 62: goja.call(2) compiler.go:433: 63: goja._pop({}) compiler.go:433: 64: goja.loadDynamic(assert) compiler.go:433: 65: goja.getPropCallee(sameValue) compiler.go:433: 66: goja.loadDynamic(Math) compiler.go:433: 67: goja.getPropCallee(pow) compiler.go:433: 68: goja.loadVal({9007199254740992}) compiler.go:433: 69: goja.loadVal({0}) compiler.go:433: 70: goja.call(2) compiler.go:433: 71: goja.loadVal({1}) compiler.go:433: 72: goja.call(2) compiler.go:433: 73: goja._pop({}) compiler.go:433: 74: goja.loadDynamic(assert) compiler.go:433: 75: goja.getPropCallee(sameValue) compiler.go:433: 76: goja.loadDynamic(Math) compiler.go:433: 77: goja.getPropCallee(pow) compiler.go:433: 78: goja.loadVal({9007199254740992}) compiler.go:433: 79: goja._neg({}) compiler.go:433: 80: goja.loadVal({0}) compiler.go:433: 81: goja.call(2) compiler.go:433: 82: goja.loadVal({1}) compiler.go:433: 83: goja.call(2) compiler.go:433: 84: goja._pop({}) compiler.go:433: 85: goja.loadDynamic(assert) compiler.go:433: 86: goja.getPropCallee(sameValue) compiler.go:433: 87: goja.loadDynamic(Math) compiler.go:433: 88: goja.getPropCallee(pow) compiler.go:433: 89: goja.loadVal({0}) compiler.go:433: 90: goja.loadVal({0}) compiler.go:433: 91: goja.call(2) compiler.go:433: 92: goja.loadVal({1}) compiler.go:433: 93: goja.call(2) compiler.go:433: 94: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestIPowOverflow (0.00s) === RUN TestIPow --- PASS: TestIPow (0.00s) === RUN TestInterrupt --- PASS: TestInterrupt (0.20s) === RUN TestRuntime_ExportToNumbers === RUN TestRuntime_ExportToNumbers/int8/no_overflow === RUN TestRuntime_ExportToNumbers/int8/overflow === RUN TestRuntime_ExportToNumbers/int64/uint64 === RUN TestRuntime_ExportToNumbers/int8/float === RUN TestRuntime_ExportToNumbers/int8/object === RUN TestRuntime_ExportToNumbers/int/object_cust_valueOf === RUN TestRuntime_ExportToNumbers/float32/no_trunc === RUN TestRuntime_ExportToNumbers/float32/trunc === RUN TestRuntime_ExportToNumbers/float64 === RUN TestRuntime_ExportToNumbers/float32/object === RUN TestRuntime_ExportToNumbers/float64/object --- PASS: TestRuntime_ExportToNumbers (0.00s) --- PASS: TestRuntime_ExportToNumbers/int8/no_overflow (0.00s) --- PASS: TestRuntime_ExportToNumbers/int8/overflow (0.00s) --- PASS: TestRuntime_ExportToNumbers/int64/uint64 (0.00s) --- PASS: TestRuntime_ExportToNumbers/int8/float (0.00s) --- PASS: TestRuntime_ExportToNumbers/int8/object (0.00s) --- PASS: TestRuntime_ExportToNumbers/int/object_cust_valueOf (0.00s) --- PASS: TestRuntime_ExportToNumbers/float32/no_trunc (0.00s) --- PASS: TestRuntime_ExportToNumbers/float32/trunc (0.00s) --- PASS: TestRuntime_ExportToNumbers/float64 (0.00s) --- PASS: TestRuntime_ExportToNumbers/float32/object (0.00s) --- PASS: TestRuntime_ExportToNumbers/float64/object (0.00s) === RUN TestRuntime_ExportToSlice --- PASS: TestRuntime_ExportToSlice (0.00s) === RUN TestRuntime_ExportToMap --- PASS: TestRuntime_ExportToMap (0.00s) === RUN TestRuntime_ExportToMap1 --- PASS: TestRuntime_ExportToMap1 (0.00s) === RUN TestRuntime_ExportToStruct --- PASS: TestRuntime_ExportToStruct (0.00s) === RUN TestRuntime_ExportToStructPtr --- PASS: TestRuntime_ExportToStructPtr (0.00s) === RUN TestRuntime_ExportToStructAnonymous --- PASS: TestRuntime_ExportToStructAnonymous (0.00s) === RUN TestRuntime_ExportToStructFromPtr --- PASS: TestRuntime_ExportToStructFromPtr (0.00s) === RUN TestRuntime_ExportToStructWithPtrValues --- PASS: TestRuntime_ExportToStructWithPtrValues (0.00s) === RUN TestRuntime_ExportToTime --- PASS: TestRuntime_ExportToTime (0.00s) === RUN TestRuntime_ExportTo_funcVariadic === RUN TestRuntime_ExportTo_funcVariadic/no_args === RUN TestRuntime_ExportTo_funcVariadic/non-variadic_args === RUN TestRuntime_ExportTo_funcVariadic/non-variadic_and_variadic_args --- PASS: TestRuntime_ExportTo_funcVariadic (0.00s) --- PASS: TestRuntime_ExportTo_funcVariadic/no_args (0.00s) --- PASS: TestRuntime_ExportTo_funcVariadic/non-variadic_args (0.00s) --- PASS: TestRuntime_ExportTo_funcVariadic/non-variadic_and_variadic_args (0.00s) === RUN TestRuntime_ExportToFuncFail --- PASS: TestRuntime_ExportToFuncFail (0.00s) === RUN TestRuntime_ExportToCallable --- PASS: TestRuntime_ExportToCallable (0.00s) === RUN TestRuntime_ExportToObject --- PASS: TestRuntime_ExportToObject (0.00s) === RUN TestRuntime_SetGlobalObject --- PASS: TestRuntime_SetGlobalObject (0.00s) === RUN TestRuntime_SetGlobalObject_Proxy --- PASS: TestRuntime_SetGlobalObject_Proxy (0.00s) === RUN TestGoFuncError --- PASS: TestGoFuncError (0.00s) === RUN TestToValueNil --- PASS: TestToValueNil (0.00s) === RUN TestToValueFloat --- PASS: TestToValueFloat (0.00s) === RUN TestToValueInterface --- PASS: TestToValueInterface (0.00s) === RUN TestJSONEscape compiler.go:433: 0: *goja.bindGlobal(&{[a] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.loadVal({\+1}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(JSON) compiler.go:433: 5: goja.getPropCallee(stringify) compiler.go:433: 6: goja.loadDynamic(a) compiler.go:433: 7: goja.call(1) compiler.go:433: 8: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestJSONEscape (0.00s) === RUN TestJSONObjectInArray compiler.go:433: 0: *goja.bindGlobal(&{[a] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.loadVal({[{"a":1},{"a":2}]}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.loadDynamic(JSON) compiler.go:433: 5: goja.getPropCallee(stringify) compiler.go:433: 6: goja.loadDynamic(JSON) compiler.go:433: 7: goja.getPropCallee(parse) compiler.go:433: 8: goja.loadDynamic(a) compiler.go:433: 9: goja.call(1) compiler.go:433: 10: goja.call(1) compiler.go:433: 11: goja.loadDynamic(a) compiler.go:433: 12: goja._op_eq({}) compiler.go:433: 13: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestJSONObjectInArray (0.00s) === RUN TestJSONQuirkyNumbers compiler.go:433: 0: *goja.bindGlobal(&{[s] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(s) compiler.go:433: 2: goja.loadDynamic(JSON) compiler.go:433: 3: goja.getPropCallee(stringify) compiler.go:433: 4: goja.loadDynamic(NaN) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja._putValueP({}) compiler.go:433: 7: goja.loadDynamic(s) compiler.go:433: 8: goja.loadVal({null}) compiler.go:433: 9: goja._op_neq({}) compiler.go:433: 10: goja.jneP(7) compiler.go:433: 11: goja.loadDynamic(Error) compiler.go:433: 12: goja.loadVal({NaN: }) compiler.go:433: 13: goja.loadDynamic(s) compiler.go:433: 14: goja._add({}) compiler.go:433: 15: goja._new(1) compiler.go:433: 16: goja._throw({}) compiler.go:433: 17: goja.resolveVar1(s) compiler.go:433: 18: goja.loadDynamic(JSON) compiler.go:433: 19: goja.getPropCallee(stringify) compiler.go:433: 20: goja.loadDynamic(Infinity) compiler.go:433: 21: goja.call(1) compiler.go:433: 22: goja._putValueP({}) compiler.go:433: 23: goja.loadDynamic(s) compiler.go:433: 24: goja.loadVal({null}) compiler.go:433: 25: goja._op_neq({}) compiler.go:433: 26: goja.jneP(7) compiler.go:433: 27: goja.loadDynamic(Error) compiler.go:433: 28: goja.loadVal({Infinity: }) compiler.go:433: 29: goja.loadDynamic(s) compiler.go:433: 30: goja._add({}) compiler.go:433: 31: goja._new(1) compiler.go:433: 32: goja._throw({}) compiler.go:433: 33: goja.resolveVar1(s) compiler.go:433: 34: goja.loadDynamic(JSON) compiler.go:433: 35: goja.getPropCallee(stringify) compiler.go:433: 36: goja.loadDynamic(Infinity) compiler.go:433: 37: goja._neg({}) compiler.go:433: 38: goja.call(1) compiler.go:433: 39: goja._putValueP({}) compiler.go:433: 40: goja._clearResult({}) compiler.go:433: 41: goja.loadDynamic(s) compiler.go:433: 42: goja.loadVal({null}) compiler.go:433: 43: goja._op_neq({}) compiler.go:433: 44: goja.jneP(8) compiler.go:433: 45: goja.loadDynamic(Error) compiler.go:433: 46: goja.loadVal({-Infinity: }) compiler.go:433: 47: goja.loadDynamic(s) compiler.go:433: 48: goja._add({}) compiler.go:433: 49: goja._new(1) compiler.go:433: 50: goja._throw({}) compiler.go:433: 51: goja.jump(2) compiler.go:433: 52: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestJSONQuirkyNumbers (0.00s) === RUN TestJSONNil --- PASS: TestJSONNil (0.00s) === RUN TestJsonEncodable --- PASS: TestJsonEncodable (0.00s) === RUN TestSortComparatorReturnValues compiler.go:433: 0: *goja.bindGlobal(&{[a i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.newArray(0) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(i) compiler.go:433: 5: goja.loadVal({0}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.loadDynamic(i) compiler.go:433: 8: goja.loadVal({12}) compiler.go:433: 9: goja._op_lt({}) compiler.go:433: 10: goja.jneP(10) compiler.go:433: 11: goja.loadDynamic(a) compiler.go:433: 12: goja.loadDynamic(i) compiler.go:433: 13: goja.loadDynamic(i) compiler.go:433: 14: goja._setElemP({}) compiler.go:433: 15: goja.resolveVar1(i) compiler.go:433: 16: goja._getValue({}) compiler.go:433: 17: goja._inc({}) compiler.go:433: 18: goja._putValueP({}) compiler.go:433: 19: goja.jump(-12) compiler.go:433: 20: goja.loadDynamic(a) compiler.go:433: 21: goja.getPropCallee(sort) compiler.go:433: 22: *goja.newFunc(&{0xc0004854a0 function(x, y) { return y - x } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadStackLex(-2) compiler.go:433: > 2: goja.loadStackLex(-1) compiler.go:433: > 3: goja._sub({}) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 23: goja.call(1) compiler.go:433: 24: goja._pop({}) compiler.go:433: 25: goja.resolveVar1(i) compiler.go:433: 26: goja.loadVal({0}) compiler.go:433: 27: goja._initValueP({}) compiler.go:433: 28: goja._clearResult({}) compiler.go:433: 29: goja.loadDynamic(i) compiler.go:433: 30: goja.loadVal({12}) compiler.go:433: 31: goja._op_lt({}) compiler.go:433: 32: goja.jneP(30) compiler.go:433: 33: goja._clearResult({}) compiler.go:433: 34: goja._clearResult({}) compiler.go:433: 35: goja.loadDynamic(a) compiler.go:433: 36: goja.loadDynamic(i) compiler.go:433: 37: goja._getElem({}) compiler.go:433: 38: goja.loadVal({11}) compiler.go:433: 39: goja.loadDynamic(i) compiler.go:433: 40: goja._sub({}) compiler.go:433: 41: goja._op_strict_neq({}) compiler.go:433: 42: goja.jneP(14) compiler.go:433: 43: goja.loadDynamic(Error) compiler.go:433: 44: goja.loadVal({Value at index }) compiler.go:433: 45: goja.loadDynamic(i) compiler.go:433: 46: goja._add({}) compiler.go:433: 47: goja.loadVal({ is incorrect: }) compiler.go:433: 48: goja._add({}) compiler.go:433: 49: goja.loadDynamic(a) compiler.go:433: 50: goja.loadDynamic(i) compiler.go:433: 51: goja._getElem({}) compiler.go:433: 52: goja._add({}) compiler.go:433: 53: goja._new(1) compiler.go:433: 54: goja._throw({}) compiler.go:433: 55: goja.jump(2) compiler.go:433: 56: goja._clearResult({}) compiler.go:433: 57: goja.resolveVar1(i) compiler.go:433: 58: goja._getValue({}) compiler.go:433: 59: goja._inc({}) compiler.go:433: 60: goja._putValueP({}) compiler.go:433: 61: goja.jump(-32) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSortComparatorReturnValues (0.00s) === RUN TestSortComparatorReturnValueFloats compiler.go:433: 0: *goja.bindGlobal(&{[a i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.newArray(5) compiler.go:433: 3: goja.loadVal({5.97}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.loadVal({9.91}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja.loadVal({4.13}) compiler.go:433: 8: goja._pushArrayItem({}) compiler.go:433: 9: goja.loadVal({9.28}) compiler.go:433: 10: goja._pushArrayItem({}) compiler.go:433: 11: goja.loadVal({3.29}) compiler.go:433: 12: goja._pushArrayItem({}) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.loadDynamic(a) compiler.go:433: 15: goja.getPropCallee(sort) compiler.go:433: 16: *goja.newFunc(&{0xc000485770 function(a, b) { return a - b; } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.loadStackLex(-2) compiler.go:433: > 3: goja._sub({}) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 17: goja.call(1) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.resolveVar1(i) compiler.go:433: 20: goja.loadVal({1}) compiler.go:433: 21: goja._initValueP({}) compiler.go:433: 22: goja._clearResult({}) compiler.go:433: 23: goja.loadDynamic(i) compiler.go:433: 24: goja.loadDynamic(a) compiler.go:433: 25: goja.getProp(length) compiler.go:433: 26: goja._op_lt({}) compiler.go:433: 27: goja.jneP(26) compiler.go:433: 28: goja._clearResult({}) compiler.go:433: 29: goja._clearResult({}) compiler.go:433: 30: goja.loadDynamic(a) compiler.go:433: 31: goja.loadDynamic(i) compiler.go:433: 32: goja._getElem({}) compiler.go:433: 33: goja.loadDynamic(a) compiler.go:433: 34: goja.loadDynamic(i) compiler.go:433: 35: goja.loadVal({1}) compiler.go:433: 36: goja._sub({}) compiler.go:433: 37: goja._getElem({}) compiler.go:433: 38: goja._op_lt({}) compiler.go:433: 39: goja.jneP(8) compiler.go:433: 40: goja.loadDynamic(Error) compiler.go:433: 41: goja.loadVal({Array is not sorted: }) compiler.go:433: 42: goja.loadDynamic(a) compiler.go:433: 43: goja._add({}) compiler.go:433: 44: goja._new(1) compiler.go:433: 45: goja._throw({}) compiler.go:433: 46: goja.jump(2) compiler.go:433: 47: goja._clearResult({}) compiler.go:433: 48: goja.resolveVar1(i) compiler.go:433: 49: goja._getValue({}) compiler.go:433: 50: goja._inc({}) compiler.go:433: 51: goja._putValueP({}) compiler.go:433: 52: goja.jump(-29) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSortComparatorReturnValueFloats (0.00s) === RUN TestSortComparatorReturnValueNegZero compiler.go:433: 0: *goja.bindGlobal(&{[a i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.newArray(2) compiler.go:433: 3: goja.loadVal({2}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja.loadVal({1}) compiler.go:433: 6: goja._pushArrayItem({}) compiler.go:433: 7: goja._initValueP({}) compiler.go:433: 8: goja.loadDynamic(a) compiler.go:433: 9: goja.getPropCallee(sort) compiler.go:433: 10: *goja.newFunc(&{0xc000485a90 function(a, b) { return a > b ? 0 : -0; } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 2}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.loadStackLex(-2) compiler.go:433: > 3: goja._op_gt({}) compiler.go:433: > 4: goja.jneP(3) compiler.go:433: > 5: goja.loadVal({0}) compiler.go:433: > 6: goja.jump(3) compiler.go:433: > 7: goja.loadVal({0}) compiler.go:433: > 8: goja._neg({}) compiler.go:433: > 9: goja._ret({}) compiler.go:433: 11: goja.call(1) compiler.go:433: 12: goja._pop({}) compiler.go:433: 13: goja.resolveVar1(i) compiler.go:433: 14: goja.loadVal({1}) compiler.go:433: 15: goja._initValueP({}) compiler.go:433: 16: goja._clearResult({}) compiler.go:433: 17: goja.loadDynamic(i) compiler.go:433: 18: goja.loadDynamic(a) compiler.go:433: 19: goja.getProp(length) compiler.go:433: 20: goja._op_lt({}) compiler.go:433: 21: goja.jneP(26) compiler.go:433: 22: goja._clearResult({}) compiler.go:433: 23: goja._clearResult({}) compiler.go:433: 24: goja.loadDynamic(a) compiler.go:433: 25: goja.loadDynamic(i) compiler.go:433: 26: goja._getElem({}) compiler.go:433: 27: goja.loadDynamic(a) compiler.go:433: 28: goja.loadDynamic(i) compiler.go:433: 29: goja.loadVal({1}) compiler.go:433: 30: goja._sub({}) compiler.go:433: 31: goja._getElem({}) compiler.go:433: 32: goja._op_lt({}) compiler.go:433: 33: goja.jneP(8) compiler.go:433: 34: goja.loadDynamic(Error) compiler.go:433: 35: goja.loadVal({Array is not sorted: }) compiler.go:433: 36: goja.loadDynamic(a) compiler.go:433: 37: goja._add({}) compiler.go:433: 38: goja._new(1) compiler.go:433: 39: goja._throw({}) compiler.go:433: 40: goja.jump(2) compiler.go:433: 41: goja._clearResult({}) compiler.go:433: 42: goja.resolveVar1(i) compiler.go:433: 43: goja._getValue({}) compiler.go:433: 44: goja._inc({}) compiler.go:433: 45: goja._putValueP({}) compiler.go:433: 46: goja.jump(-29) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSortComparatorReturnValueNegZero (0.00s) === RUN TestNilApplyArg compiler.go:433: 0: *goja.newFunc(&{0xc000484280 x function x(a, b) { return a === undefined && b === 1; } 2 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 2}) compiler.go:433: > 1: goja._loadCallee({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja._loadCallee({}) compiler.go:433: > 4: goja.initStackP(1) compiler.go:433: > 5: goja.loadStackLex(-1) compiler.go:433: > 6: goja.loadDynamic(undefined) compiler.go:433: > 7: goja._op_strict_eq({}) compiler.go:433: > 8: goja.jne(4) compiler.go:433: > 9: goja.loadStackLex(-2) compiler.go:433: > 10: goja.loadVal({1}) compiler.go:433: > 11: goja._op_strict_eq({}) compiler.go:433: > 12: goja._ret({}) compiler.go:433: 1: goja.getPropCallee(apply) compiler.go:433: 2: goja._loadGlobalObject({}) compiler.go:433: 3: goja.newArray(2) compiler.go:433: 4: goja._loadNil({}) compiler.go:433: 5: goja._pushArrayItem({}) compiler.go:433: 6: goja.loadVal({1}) compiler.go:433: 7: goja._pushArrayItem({}) compiler.go:433: 8: goja.call(2) compiler.go:433: 9: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNilApplyArg (0.00s) === RUN TestNilCallArg --- PASS: TestNilCallArg (0.00s) === RUN TestNullCallArg --- PASS: TestNullCallArg (0.00s) === RUN TestObjectKeys --- PASS: TestObjectKeys (0.00s) === RUN TestReflectCallExtraArgs --- PASS: TestReflectCallExtraArgs (0.00s) === RUN TestReflectCallNotEnoughArgs --- PASS: TestReflectCallNotEnoughArgs (0.00s) === RUN TestReflectCallVariadic --- PASS: TestReflectCallVariadic (0.00s) === RUN TestReflectNullValueArgument --- PASS: TestReflectNullValueArgument (0.00s) === RUN TestNativeConstruct --- PASS: TestNativeConstruct (0.00s) === RUN TestCreateObject --- PASS: TestCreateObject (0.00s) === RUN TestInterruptInWrappedFunction --- PASS: TestInterruptInWrappedFunction (0.01s) === RUN TestInterruptInWrappedFunction2 --- PASS: TestInterruptInWrappedFunction2 (0.00s) === RUN TestInterruptInWrappedFunction2Recover --- PASS: TestInterruptInWrappedFunction2Recover (0.00s) === RUN TestInterruptInWrappedFunctionExpectInteruptError --- PASS: TestInterruptInWrappedFunctionExpectInteruptError (0.00s) === RUN TestInterruptInWrappedFunctionExpectStackOverflowError --- PASS: TestInterruptInWrappedFunctionExpectStackOverflowError (0.00s) === RUN TestInterruptWithPromises runtime_test.go:1892: abort this at :3:23(3) --- PASS: TestInterruptWithPromises (0.00s) === RUN TestRunLoopPreempt --- PASS: TestRunLoopPreempt (0.10s) === RUN TestNaN --- PASS: TestNaN (0.00s) === RUN TestInf --- PASS: TestInf (0.00s) === RUN TestRuntimeNew --- PASS: TestRuntimeNew (0.00s) === RUN TestAutoBoxing compiler.go:433: 0: *goja.newFunc(&{0xc000326280 f function f() { 'use strict'; var a = 1; var thrown1 = false; var thrown2 = false; try { a.test = 42; } catch (e) { thrown1 = e instanceof TypeError; } try { a["test1"] = 42; } catch (e) { thrown2 = e instanceof TypeError; } return thrown1 && thrown2; } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{3 0}) compiler.go:433: > 1: goja.loadVal({1}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja.loadVal({false}) compiler.go:433: > 4: goja.initStackP(2) compiler.go:433: > 5: goja.loadVal({false}) compiler.go:433: > 6: goja.initStackP(3) compiler.go:433: > 7: goja.try({5 0}) compiler.go:433: > 8: goja.loadStack(1) compiler.go:433: > 9: goja.loadVal({42}) compiler.go:433: > 10: goja.setPropStrictP(test) compiler.go:433: > 11: goja.jump(7) compiler.go:433: > 12: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 13: goja.loadStackLex(4) compiler.go:433: > 14: goja.loadDynamic(TypeError) compiler.go:433: > 15: goja._op_instanceof({}) compiler.go:433: > 16: goja.storeStackP(2) compiler.go:433: > 17: *goja.leaveBlock(&{1 false}) compiler.go:433: > 18: goja.leaveTry({}) compiler.go:433: > 19: goja.try({5 0}) compiler.go:433: > 20: goja.loadStack(1) compiler.go:433: > 21: goja.loadVal({42}) compiler.go:433: > 22: goja.setPropStrictP(test1) compiler.go:433: > 23: goja.jump(7) compiler.go:433: > 24: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: > 25: goja.loadStackLex(4) compiler.go:433: > 26: goja.loadDynamic(TypeError) compiler.go:433: > 27: goja._op_instanceof({}) compiler.go:433: > 28: goja.storeStackP(3) compiler.go:433: > 29: *goja.leaveBlock(&{1 false}) compiler.go:433: > 30: goja.leaveTry({}) compiler.go:433: > 31: goja.loadStack(2) compiler.go:433: > 32: goja.jne(2) compiler.go:433: > 33: goja.loadStack(3) compiler.go:433: > 34: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[a] [f] [] [] false}) compiler.go:433: 2: goja.resolveVar1(a) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja._initValueP({}) compiler.go:433: 5: goja.loadDynamic(a) compiler.go:433: 6: goja.loadVal({42}) compiler.go:433: 7: goja.setPropP(test) compiler.go:433: 8: goja.loadDynamic(a) compiler.go:433: 9: goja.loadVal({42}) compiler.go:433: 10: goja.setPropP(test1) compiler.go:433: 11: goja.loadDynamic(a) compiler.go:433: 12: goja.getProp(test) compiler.go:433: 13: goja.loadDynamic(undefined) compiler.go:433: 14: goja._op_strict_eq({}) compiler.go:433: 15: goja.jne(5) compiler.go:433: 16: goja.loadDynamic(a) compiler.go:433: 17: goja.getProp(test1) compiler.go:433: 18: goja.loadDynamic(undefined) compiler.go:433: 19: goja._op_strict_eq({}) compiler.go:433: 20: goja.jne(3) compiler.go:433: 21: goja.loadDynamicCallee(f) compiler.go:433: 22: goja.call(0) compiler.go:433: 23: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestAutoBoxing (0.00s) === RUN TestProtoGetter compiler.go:433: 0: goja._newObject({}) compiler.go:433: 1: goja.getProp(__proto__) compiler.go:433: 2: goja.loadDynamic(Object) compiler.go:433: 3: goja.getProp(prototype) compiler.go:433: 4: goja._op_strict_eq({}) compiler.go:433: 5: goja.jne(6) compiler.go:433: 6: goja.newArray(0) compiler.go:433: 7: goja.getProp(__proto__) compiler.go:433: 8: goja.loadDynamic(Array) compiler.go:433: 9: goja.getProp(prototype) compiler.go:433: 10: goja._op_strict_eq({}) compiler.go:433: 11: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestProtoGetter (0.00s) === RUN TestSymbol1 compiler.go:433: 0: goja.loadDynamic(Symbol) compiler.go:433: 1: goja.getProp(toPrimitive) compiler.go:433: 2: goja.loadDynamic(Symbol) compiler.go:433: 3: goja.getProp(toPrimitive) compiler.go:433: 4: goja._getElemCallee({}) compiler.go:433: 5: goja.call(0) compiler.go:433: 6: goja.loadDynamic(Symbol) compiler.go:433: 7: goja.getProp(toPrimitive) compiler.go:433: 8: goja._op_strict_eq({}) compiler.go:433: 9: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestSymbol1 (0.00s) === RUN TestFreezeSymbol compiler.go:433: 0: *goja.bindGlobal(&{[s o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(s) compiler.go:433: 2: goja.loadDynamicCallee(Symbol) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(o) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja.loadDynamic(o) compiler.go:433: 10: goja.loadDynamic(s) compiler.go:433: 11: goja.loadVal({42}) compiler.go:433: 12: goja._setElemP({}) compiler.go:433: 13: goja.loadDynamic(Object) compiler.go:433: 14: goja.getPropCallee(freeze) compiler.go:433: 15: goja.loadDynamic(o) compiler.go:433: 16: goja.call(1) compiler.go:433: 17: goja._pop({}) compiler.go:433: 18: goja.loadDynamic(o) compiler.go:433: 19: goja.loadDynamic(s) compiler.go:433: 20: goja.loadVal({43}) compiler.go:433: 21: goja._setElemP({}) compiler.go:433: 22: goja.loadDynamic(o) compiler.go:433: 23: goja.loadDynamic(s) compiler.go:433: 24: goja._getElem({}) compiler.go:433: 25: goja.loadVal({42}) compiler.go:433: 26: goja._op_strict_eq({}) compiler.go:433: 27: goja.jne(5) compiler.go:433: 28: goja.loadDynamic(Object) compiler.go:433: 29: goja.getPropCallee(isFrozen) compiler.go:433: 30: goja.loadDynamic(o) compiler.go:433: 31: goja.call(1) compiler.go:433: 32: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestFreezeSymbol (0.00s) === RUN TestToPropertyKey compiler.go:433: 0: *goja.bindGlobal(&{[sym callCount wrapper o wrapper1 a] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(sym) compiler.go:433: 2: goja.loadDynamicCallee(Symbol) compiler.go:433: 3: goja.loadVal({42}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(callCount) compiler.go:433: 7: goja.loadVal({0}) compiler.go:433: 8: goja._initValueP({}) compiler.go:433: 9: goja.resolveVar1(wrapper) compiler.go:433: 10: goja._newObject({}) compiler.go:433: 11: *goja.newFunc(&{0xc000326af0 toString function() { callCount += 1; return sym; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(callCount) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({1}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamic(sym) compiler.go:433: > 7: goja._ret({}) compiler.go:433: 12: goja.putProp(toString) compiler.go:433: 13: *goja.newFunc(&{0xc000326b40 valueOf function() { $ERROR("valueOf() called"); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamicCallee($ERROR) compiler.go:433: > 2: goja.loadVal({valueOf() called}) compiler.go:433: > 3: goja.call(1) compiler.go:433: > 4: goja._pop({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 14: goja.putProp(valueOf) compiler.go:433: 15: goja._initValueP({}) compiler.go:433: 16: goja.resolveVar1(o) compiler.go:433: 17: goja._newObject({}) compiler.go:433: 18: goja._initValueP({}) compiler.go:433: 19: goja.loadDynamic(o) compiler.go:433: 20: goja.loadDynamic(wrapper) compiler.go:433: 21: *goja.newFunc(&{0xc000326b90 function() { return "test" } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadVal({test}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 22: goja._setElemP({}) compiler.go:433: 23: goja.loadDynamic(assert) compiler.go:433: 24: goja.getPropCallee(sameValue) compiler.go:433: 25: goja.loadDynamic(o) compiler.go:433: 26: goja.loadDynamic(wrapper) compiler.go:433: 27: goja._getElem({}) compiler.go:433: 28: goja.loadDynamic(o) compiler.go:433: 29: goja.loadDynamic(sym) compiler.go:433: 30: goja._getElem({}) compiler.go:433: 31: goja.loadVal({o[wrapper] === o[sym]}) compiler.go:433: 32: goja.call(3) compiler.go:433: 33: goja._pop({}) compiler.go:433: 34: goja.loadDynamic(assert) compiler.go:433: 35: goja.getPropCallee(sameValue) compiler.go:433: 36: goja.loadDynamic(o) compiler.go:433: 37: goja.loadDynamic(wrapper) compiler.go:433: 38: goja._getElemCallee({}) compiler.go:433: 39: goja.call(0) compiler.go:433: 40: goja.loadVal({test}) compiler.go:433: 41: goja.loadVal({o[wrapper]()}) compiler.go:433: 42: goja.call(3) compiler.go:433: 43: goja._pop({}) compiler.go:433: 44: goja.loadDynamic(assert) compiler.go:433: 45: goja.getPropCallee(sameValue) compiler.go:433: 46: goja.loadDynamic(o) compiler.go:433: 47: goja.loadDynamic(sym) compiler.go:433: 48: goja._getElemCallee({}) compiler.go:433: 49: goja.call(0) compiler.go:433: 50: goja.loadVal({test}) compiler.go:433: 51: goja.loadVal({o[sym]()}) compiler.go:433: 52: goja.call(3) compiler.go:433: 53: goja._pop({}) compiler.go:433: 54: goja.resolveVar1(wrapper1) compiler.go:433: 55: goja._newObject({}) compiler.go:433: 56: goja._initValueP({}) compiler.go:433: 57: goja.loadDynamic(wrapper1) compiler.go:433: 58: goja.loadDynamic(Symbol) compiler.go:433: 59: goja.getProp(toPrimitive) compiler.go:433: 60: *goja.newFunc(&{0xc000326c80 function(hint) { if (hint === "string" || hint === "default") { return "1"; } if (hint === "number") { return 2; } $ERROR("Unknown hint value "+hint); } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja.loadVal({string}) compiler.go:433: > 3: goja._op_strict_eq({}) compiler.go:433: > 4: goja.jeq(4) compiler.go:433: > 5: goja.loadStackLex(-1) compiler.go:433: > 6: goja.loadVal({default}) compiler.go:433: > 7: goja._op_strict_eq({}) compiler.go:433: > 8: goja.jneP(3) compiler.go:433: > 9: goja.loadVal({1}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: > 11: goja.loadStackLex(-1) compiler.go:433: > 12: goja.loadVal({number}) compiler.go:433: > 13: goja._op_strict_eq({}) compiler.go:433: > 14: goja.jneP(3) compiler.go:433: > 15: goja.loadVal({2}) compiler.go:433: > 16: goja._ret({}) compiler.go:433: > 17: goja.loadDynamicCallee($ERROR) compiler.go:433: > 18: goja.loadVal({Unknown hint value }) compiler.go:433: > 19: goja.loadStackLex(-1) compiler.go:433: > 20: goja._add({}) compiler.go:433: > 21: goja.call(1) compiler.go:433: > 22: goja._pop({}) compiler.go:433: > 23: goja._loadUndef({}) compiler.go:433: > 24: goja._ret({}) compiler.go:433: 61: goja._setElemP({}) compiler.go:433: 62: goja.resolveVar1(a) compiler.go:433: 63: goja.newArray(0) compiler.go:433: 64: goja._initValueP({}) compiler.go:433: 65: goja.loadDynamic(a) compiler.go:433: 66: goja.loadDynamic(wrapper1) compiler.go:433: 67: goja.loadVal({42}) compiler.go:433: 68: goja._setElemP({}) compiler.go:433: 69: goja.loadDynamic(assert) compiler.go:433: 70: goja.getPropCallee(sameValue) compiler.go:433: 71: goja.loadDynamic(a) compiler.go:433: 72: goja.loadVal({1}) compiler.go:433: 73: goja._getElem({}) compiler.go:433: 74: goja.loadVal({42}) compiler.go:433: 75: goja.loadVal({a[1]}) compiler.go:433: 76: goja.call(3) compiler.go:433: 77: goja._pop({}) compiler.go:433: 78: goja.loadDynamic(assert) compiler.go:433: 79: goja.getPropCallee(sameValue) compiler.go:433: 80: goja.loadDynamic(a) compiler.go:433: 81: goja.loadVal({1}) compiler.go:433: 82: goja._getElem({}) compiler.go:433: 83: goja.loadDynamic(a) compiler.go:433: 84: goja.loadDynamic(wrapper1) compiler.go:433: 85: goja._getElem({}) compiler.go:433: 86: goja.loadVal({a[1] === a[wrapper1]}) compiler.go:433: 87: goja.call(3) compiler.go:433: 88: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestToPropertyKey (0.00s) === RUN TestPrimThisValue compiler.go:433: 0: *goja.newFunc(&{0xc000326ff0 t function t() { 'use strict'; Boolean.prototype.toString = function() { return typeof this; }; assert.sameValue(true.toLocaleString(), "boolean"); Boolean.prototype[Symbol.iterator] = function() { return [typeof this][Symbol.iterator](); } var s = new Set(true); assert.sameValue(s.size, 1, "size"); assert.sameValue(s.has("boolean"), true, "s.has('boolean')"); } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja.loadDynamic(Boolean) compiler.go:433: > 2: goja.getProp(prototype) compiler.go:433: > 3: *goja.newFunc(&{0xc000327040 function() { return typeof this; } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStack(0) compiler.go:433: >> 2: goja._typeof({}) compiler.go:433: >> 3: goja._ret({}) compiler.go:433: > 4: goja.setPropStrictP(toString) compiler.go:433: > 5: goja.loadDynamic(assert) compiler.go:433: > 6: goja.getPropCallee(sameValue) compiler.go:433: > 7: goja.loadVal({true}) compiler.go:433: > 8: goja.getPropCallee(toLocaleString) compiler.go:433: > 9: goja.call(0) compiler.go:433: > 10: goja.loadVal({boolean}) compiler.go:433: > 11: goja.call(2) compiler.go:433: > 12: goja._pop({}) compiler.go:433: > 13: goja.loadDynamic(Boolean) compiler.go:433: > 14: goja.getProp(prototype) compiler.go:433: > 15: goja.loadDynamic(Symbol) compiler.go:433: > 16: goja.getProp(iterator) compiler.go:433: > 17: *goja.newFunc(&{0xc000327090 function() { return [typeof this][Symbol.iterator](); } 0 true}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.newArray(1) compiler.go:433: >> 2: goja.loadStack(0) compiler.go:433: >> 3: goja._typeof({}) compiler.go:433: >> 4: goja._pushArrayItem({}) compiler.go:433: >> 5: goja.loadDynamic(Symbol) compiler.go:433: >> 6: goja.getProp(iterator) compiler.go:433: >> 7: goja._getElemCallee({}) compiler.go:433: >> 8: goja.call(0) compiler.go:433: >> 9: goja._ret({}) compiler.go:433: > 18: goja._setElemStrictP({}) compiler.go:433: > 19: goja.loadDynamic(Set) compiler.go:433: > 20: goja.loadVal({true}) compiler.go:433: > 21: goja._new(1) compiler.go:433: > 22: goja.initStackP(1) compiler.go:433: > 23: goja.loadDynamic(assert) compiler.go:433: > 24: goja.getPropCallee(sameValue) compiler.go:433: > 25: goja.loadStack(1) compiler.go:433: > 26: goja.getProp(size) compiler.go:433: > 27: goja.loadVal({1}) compiler.go:433: > 28: goja.loadVal({size}) compiler.go:433: > 29: goja.call(3) compiler.go:433: > 30: goja._pop({}) compiler.go:433: > 31: goja.loadDynamic(assert) compiler.go:433: > 32: goja.getPropCallee(sameValue) compiler.go:433: > 33: goja.loadStack(1) compiler.go:433: > 34: goja.getPropCallee(has) compiler.go:433: > 35: goja.loadVal({boolean}) compiler.go:433: > 36: goja.call(1) compiler.go:433: > 37: goja.loadVal({true}) compiler.go:433: > 38: goja.loadVal({s.has('boolean')}) compiler.go:433: > 39: goja.call(3) compiler.go:433: > 40: goja._pop({}) compiler.go:433: > 41: goja._loadUndef({}) compiler.go:433: > 42: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [t] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(t) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestPrimThisValue (0.00s) === RUN TestPrimThisValueGetter compiler.go:433: 0: *goja.newFunc(&{0xc0003274f0 t function t() { 'use strict'; Object.defineProperty(Boolean.prototype, "toString", { get: function() { var v = typeof this; return function() { return v; }; } }); assert.sameValue(true.toLocaleString(), "boolean"); } 0 true}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Object) compiler.go:433: > 2: goja.getPropCallee(defineProperty) compiler.go:433: > 3: goja.loadDynamic(Boolean) compiler.go:433: > 4: goja.getProp(prototype) compiler.go:433: > 5: goja.loadVal({toString}) compiler.go:433: > 6: goja._newObject({}) compiler.go:433: > 7: *goja.newFunc(&{0xc000327540 get function() { var v = typeof this; return function() { return v; }; } 0 true}) compiler.go:433: >> 0: *goja.enterFunc(&{map[] 1 0 0 1 false false}) compiler.go:433: >> 1: goja.loadStack(0) compiler.go:433: >> 2: goja._typeof({}) compiler.go:433: >> 3: goja.initStashP(0) compiler.go:433: >> 4: *goja.newFunc(&{0xc000327590 function() { return v; } 0 true}) compiler.go:433: >>> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >>> 1: goja.loadStash(0) compiler.go:433: >>> 2: goja._ret({}) compiler.go:433: >> 5: goja._ret({}) compiler.go:433: > 8: goja.putProp(get) compiler.go:433: > 9: goja.call(3) compiler.go:433: > 10: goja._pop({}) compiler.go:433: > 11: goja.loadDynamic(assert) compiler.go:433: > 12: goja.getPropCallee(sameValue) compiler.go:433: > 13: goja.loadVal({true}) compiler.go:433: > 14: goja.getPropCallee(toLocaleString) compiler.go:433: > 15: goja.call(0) compiler.go:433: > 16: goja.loadVal({boolean}) compiler.go:433: > 17: goja.call(2) compiler.go:433: > 18: goja._pop({}) compiler.go:433: > 19: goja._loadUndef({}) compiler.go:433: > 20: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [t] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(t) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestPrimThisValueGetter (0.00s) === RUN TestObjSetSym compiler.go:433: 0: *goja.bindGlobal(&{[sym p1 p2 o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1Strict(sym) compiler.go:433: 2: goja.loadDynamicCallee(Symbol) compiler.go:433: 3: goja.loadVal({true}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1Strict(p1) compiler.go:433: 7: goja.loadDynamic(Object) compiler.go:433: 8: goja.getPropCallee(create) compiler.go:433: 9: goja.loadVal({{}}) compiler.go:433: 10: goja.call(1) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.resolveVar1Strict(p2) compiler.go:433: 13: goja.loadDynamic(Object) compiler.go:433: 14: goja.getPropCallee(create) compiler.go:433: 15: goja.loadDynamic(p1) compiler.go:433: 16: goja.call(1) compiler.go:433: 17: goja._initValueP({}) compiler.go:433: 18: goja.loadDynamic(Object) compiler.go:433: 19: goja.getPropCallee(defineProperty) compiler.go:433: 20: goja.loadDynamic(p1) compiler.go:433: 21: goja.loadDynamic(sym) compiler.go:433: 22: goja._newObject({}) compiler.go:433: 23: goja.loadVal({42}) compiler.go:433: 24: goja.putProp(value) compiler.go:433: 25: goja.call(3) compiler.go:433: 26: goja._pop({}) compiler.go:433: 27: goja.loadDynamic(Object) compiler.go:433: 28: goja.getPropCallee(defineProperty) compiler.go:433: 29: goja.loadDynamic(p2) compiler.go:433: 30: goja.loadDynamic(sym) compiler.go:433: 31: goja._newObject({}) compiler.go:433: 32: goja.loadVal({43}) compiler.go:433: 33: goja.putProp(value) compiler.go:433: 34: goja.loadVal({true}) compiler.go:433: 35: goja.putProp(writable) compiler.go:433: 36: goja.call(3) compiler.go:433: 37: goja._pop({}) compiler.go:433: 38: goja.resolveVar1Strict(o) compiler.go:433: 39: goja.loadDynamic(Object) compiler.go:433: 40: goja.getPropCallee(create) compiler.go:433: 41: goja.loadDynamic(p2) compiler.go:433: 42: goja.call(1) compiler.go:433: 43: goja._initValueP({}) compiler.go:433: 44: goja.loadDynamic(o) compiler.go:433: 45: goja.loadDynamic(sym) compiler.go:433: 46: goja.loadVal({44}) compiler.go:433: 47: goja._setElemStrictP({}) compiler.go:433: 48: goja.loadDynamic(o) compiler.go:433: 49: goja.loadDynamic(sym) compiler.go:433: 50: goja._getElem({}) compiler.go:433: 51: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjSetSym (0.00s) === RUN TestObjSet compiler.go:433: 0: *goja.bindGlobal(&{[p1 p2 o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1Strict(p1) compiler.go:433: 2: goja.loadDynamic(Object) compiler.go:433: 3: goja.getPropCallee(create) compiler.go:433: 4: goja.loadVal({{}}) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1Strict(p2) compiler.go:433: 8: goja.loadDynamic(Object) compiler.go:433: 9: goja.getPropCallee(create) compiler.go:433: 10: goja.loadDynamic(p1) compiler.go:433: 11: goja.call(1) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.loadDynamic(Object) compiler.go:433: 14: goja.getPropCallee(defineProperty) compiler.go:433: 15: goja.loadDynamic(p1) compiler.go:433: 16: goja.loadVal({test}) compiler.go:433: 17: goja._newObject({}) compiler.go:433: 18: goja.loadVal({42}) compiler.go:433: 19: goja.putProp(value) compiler.go:433: 20: goja.call(3) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.loadDynamic(Object) compiler.go:433: 23: goja.getPropCallee(defineProperty) compiler.go:433: 24: goja.loadDynamic(p2) compiler.go:433: 25: goja.loadVal({test}) compiler.go:433: 26: goja._newObject({}) compiler.go:433: 27: goja.loadVal({43}) compiler.go:433: 28: goja.putProp(value) compiler.go:433: 29: goja.loadVal({true}) compiler.go:433: 30: goja.putProp(writable) compiler.go:433: 31: goja.call(3) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja.resolveVar1Strict(o) compiler.go:433: 34: goja.loadDynamic(Object) compiler.go:433: 35: goja.getPropCallee(create) compiler.go:433: 36: goja.loadDynamic(p2) compiler.go:433: 37: goja.call(1) compiler.go:433: 38: goja._initValueP({}) compiler.go:433: 39: goja.loadDynamic(o) compiler.go:433: 40: goja.loadVal({44}) compiler.go:433: 41: goja.setPropStrictP(test) compiler.go:433: 42: goja.loadDynamic(o) compiler.go:433: 43: goja.getProp(test) compiler.go:433: 44: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestObjSet (0.00s) === RUN TestToValueNilValue --- PASS: TestToValueNilValue (0.00s) === RUN TestDateConversion --- PASS: TestDateConversion (0.00s) === RUN TestNativeCtorNewTarget compiler.go:433: 0: *goja.newFunc(&{0xc000484fa0 NewTarget function NewTarget() { } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[o] [NewTarget] [] [] false}) compiler.go:433: 2: goja.resolveVar1(o) compiler.go:433: 3: goja.loadDynamic(Reflect) compiler.go:433: 4: goja.getPropCallee(construct) compiler.go:433: 5: goja.loadDynamic(Number) compiler.go:433: 6: goja.newArray(1) compiler.go:433: 7: goja.loadVal({1}) compiler.go:433: 8: goja._pushArrayItem({}) compiler.go:433: 9: goja.loadDynamic(NewTarget) compiler.go:433: 10: goja.call(3) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.loadDynamic(o) compiler.go:433: 13: goja.getProp(__proto__) compiler.go:433: 14: goja.loadDynamic(NewTarget) compiler.go:433: 15: goja.getProp(prototype) compiler.go:433: 16: goja._op_strict_eq({}) compiler.go:433: 17: goja.jne(6) compiler.go:433: 18: goja.loadDynamic(o) compiler.go:433: 19: goja.getPropCallee(toString) compiler.go:433: 20: goja.call(0) compiler.go:433: 21: goja.loadVal({[object Number]}) compiler.go:433: 22: goja._op_strict_eq({}) compiler.go:433: 23: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNativeCtorNewTarget (0.00s) === RUN TestNativeCtorNonNewCall --- PASS: TestNativeCtorNonNewCall (0.00s) === RUN TestRuntime_SetParserOptions_Eval --- PASS: TestRuntime_SetParserOptions_Eval (0.00s) === RUN TestNativeCallWithRuntimeParameter --- PASS: TestNativeCallWithRuntimeParameter (0.00s) === RUN TestNestedEnumerate compiler.go:433: 0: *goja.bindGlobal(&{[o res i j k] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({true}) compiler.go:433: 4: goja.putProp(baz) compiler.go:433: 5: goja.loadVal({true}) compiler.go:433: 6: goja.putProp(foo) compiler.go:433: 7: goja.loadVal({true}) compiler.go:433: 8: goja.putProp(bar) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(res) compiler.go:433: 11: goja.loadVal({}) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.loadDynamic(o) compiler.go:433: 14: goja._enumerate({}) compiler.go:433: 15: goja.enumNext(72) compiler.go:433: 16: goja.resolveVar1(i) compiler.go:433: 17: goja._enumGet({}) compiler.go:433: 18: goja._putValueP({}) compiler.go:433: 19: goja.loadDynamic(o) compiler.go:433: 20: goja.deleteProp(baz) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.loadDynamic(Object) compiler.go:433: 23: goja.getPropCallee(defineProperty) compiler.go:433: 24: goja.loadDynamic(o) compiler.go:433: 25: goja.loadVal({hidden}) compiler.go:433: 26: goja._newObject({}) compiler.go:433: 27: goja.loadVal({true}) compiler.go:433: 28: goja.putProp(value) compiler.go:433: 29: goja.loadVal({true}) compiler.go:433: 30: goja.putProp(configurable) compiler.go:433: 31: goja.call(3) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja.loadDynamic(o) compiler.go:433: 34: goja._enumerate({}) compiler.go:433: 35: goja.enumNext(48) compiler.go:433: 36: goja.resolveVar1(j) compiler.go:433: 37: goja._enumGet({}) compiler.go:433: 38: goja._putValueP({}) compiler.go:433: 39: goja.loadDynamic(Object) compiler.go:433: 40: goja.getPropCallee(defineProperty) compiler.go:433: 41: goja.loadDynamic(o) compiler.go:433: 42: goja.loadVal({0}) compiler.go:433: 43: goja._newObject({}) compiler.go:433: 44: goja.loadVal({true}) compiler.go:433: 45: goja.putProp(value) compiler.go:433: 46: goja.loadVal({true}) compiler.go:433: 47: goja.putProp(configurable) compiler.go:433: 48: goja.call(3) compiler.go:433: 49: goja._pop({}) compiler.go:433: 50: goja.loadDynamic(Object) compiler.go:433: 51: goja.getPropCallee(defineProperty) compiler.go:433: 52: goja.loadDynamic(o) compiler.go:433: 53: goja.loadVal({1}) compiler.go:433: 54: goja._newObject({}) compiler.go:433: 55: goja.loadVal({true}) compiler.go:433: 56: goja.putProp(value) compiler.go:433: 57: goja.loadVal({true}) compiler.go:433: 58: goja.putProp(configurable) compiler.go:433: 59: goja.call(3) compiler.go:433: 60: goja._pop({}) compiler.go:433: 61: goja.loadDynamic(o) compiler.go:433: 62: goja._enumerate({}) compiler.go:433: 63: goja.enumNext(5) compiler.go:433: 64: goja.resolveVar1(k) compiler.go:433: 65: goja._enumGet({}) compiler.go:433: 66: goja._putValueP({}) compiler.go:433: 67: goja.jump(-4) compiler.go:433: 68: goja._enumPop({}) compiler.go:433: 69: goja.jump(2) compiler.go:433: 70: goja._enumPopClose({}) compiler.go:433: 71: goja.resolveVar1(res) compiler.go:433: 72: goja._getValue({}) compiler.go:433: 73: goja.loadDynamic(i) compiler.go:433: 74: goja.loadVal({-}) compiler.go:433: 75: goja._add({}) compiler.go:433: 76: goja.loadDynamic(j) compiler.go:433: 77: goja._add({}) compiler.go:433: 78: goja.loadVal({ }) compiler.go:433: 79: goja._add({}) compiler.go:433: 80: goja._add({}) compiler.go:433: 81: goja._putValueP({}) compiler.go:433: 82: goja.jump(-47) compiler.go:433: 83: goja._enumPop({}) compiler.go:433: 84: goja.jump(2) compiler.go:433: 85: goja._enumPopClose({}) compiler.go:433: 86: goja.jump(-71) compiler.go:433: 87: goja._enumPop({}) compiler.go:433: 88: goja.jump(2) compiler.go:433: 89: goja._enumPopClose({}) compiler.go:433: 90: goja.loadDynamicCallee(assert) compiler.go:433: 91: goja.loadDynamicCallee(compareArray) compiler.go:433: 92: goja.loadDynamic(Reflect) compiler.go:433: 93: goja.getPropCallee(ownKeys) compiler.go:433: 94: goja.loadDynamic(o) compiler.go:433: 95: goja.call(1) compiler.go:433: 96: goja.newArray(5) compiler.go:433: 97: goja.loadVal({0}) compiler.go:433: 98: goja._pushArrayItem({}) compiler.go:433: 99: goja.loadVal({1}) compiler.go:433: 100: goja._pushArrayItem({}) compiler.go:433: 101: goja.loadVal({foo}) compiler.go:433: 102: goja._pushArrayItem({}) compiler.go:433: 103: goja.loadVal({bar}) compiler.go:433: 104: goja._pushArrayItem({}) compiler.go:433: 105: goja.loadVal({hidden}) compiler.go:433: 106: goja._pushArrayItem({}) compiler.go:433: 107: goja.call(2) compiler.go:433: 108: goja.loadVal({keys}) compiler.go:433: 109: goja.call(2) compiler.go:433: 110: goja._pop({}) compiler.go:433: 111: goja.loadDynamic(res) compiler.go:433: 112: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNestedEnumerate (0.00s) === RUN TestAbandonedEnumerate compiler.go:433: 0: *goja.bindGlobal(&{[o res i j] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(o) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({true}) compiler.go:433: 4: goja.putProp(baz) compiler.go:433: 5: goja.loadVal({true}) compiler.go:433: 6: goja.putProp(foo) compiler.go:433: 7: goja.loadVal({true}) compiler.go:433: 8: goja.putProp(bar) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(res) compiler.go:433: 11: goja.loadVal({}) compiler.go:433: 12: goja._initValueP({}) compiler.go:433: 13: goja.loadDynamic(o) compiler.go:433: 14: goja._enumerate({}) compiler.go:433: 15: goja.enumNext(30) compiler.go:433: 16: goja.resolveVar1(i) compiler.go:433: 17: goja._enumGet({}) compiler.go:433: 18: goja._putValueP({}) compiler.go:433: 19: goja.loadDynamic(o) compiler.go:433: 20: goja.deleteProp(baz) compiler.go:433: 21: goja._pop({}) compiler.go:433: 22: goja.loadDynamic(o) compiler.go:433: 23: goja._enumerate({}) compiler.go:433: 24: goja.enumNext(17) compiler.go:433: 25: goja.resolveVar1(j) compiler.go:433: 26: goja._enumGet({}) compiler.go:433: 27: goja._putValueP({}) compiler.go:433: 28: goja.resolveVar1(res) compiler.go:433: 29: goja._getValue({}) compiler.go:433: 30: goja.loadDynamic(i) compiler.go:433: 31: goja.loadVal({-}) compiler.go:433: 32: goja._add({}) compiler.go:433: 33: goja.loadDynamic(j) compiler.go:433: 34: goja._add({}) compiler.go:433: 35: goja.loadVal({ }) compiler.go:433: 36: goja._add({}) compiler.go:433: 37: goja._add({}) compiler.go:433: 38: goja._putValueP({}) compiler.go:433: 39: goja.jump(4) compiler.go:433: 40: goja.jump(-16) compiler.go:433: 41: goja._enumPop({}) compiler.go:433: 42: goja.jump(2) compiler.go:433: 43: goja._enumPopClose({}) compiler.go:433: 44: goja.jump(-29) compiler.go:433: 45: goja._enumPop({}) compiler.go:433: 46: goja.jump(2) compiler.go:433: 47: goja._enumPopClose({}) compiler.go:433: 48: goja.loadDynamic(res) compiler.go:433: 49: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestAbandonedEnumerate (0.00s) === RUN TestIterCloseThrows compiler.go:433: 0: *goja.bindGlobal(&{[returnCount iterable iterator i] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(returnCount) compiler.go:433: 2: goja.loadVal({0}) compiler.go:433: 3: goja._initValueP({}) compiler.go:433: 4: goja.resolveVar1(iterable) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(iterator) compiler.go:433: 8: goja._newObject({}) compiler.go:433: 9: *goja.newFunc(&{0xc0003f6000 next function() { return { value: true }; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._newObject({}) compiler.go:433: > 2: goja.loadVal({true}) compiler.go:433: > 3: goja.putProp(value) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 10: goja.putProp(next) compiler.go:433: 11: *goja.newFunc(&{0xc0003f60a0 return function() { returnCount += 1; throw new Error(); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.resolveVar1(returnCount) compiler.go:433: > 2: goja._getValue({}) compiler.go:433: > 3: goja.loadVal({1}) compiler.go:433: > 4: goja._add({}) compiler.go:433: > 5: goja._putValueP({}) compiler.go:433: > 6: goja.loadDynamic(Error) compiler.go:433: > 7: goja._new(0) compiler.go:433: > 8: goja._throw({}) compiler.go:433: > 9: goja._loadUndef({}) compiler.go:433: > 10: goja._ret({}) compiler.go:433: 12: goja.putProp(return) compiler.go:433: 13: goja._initValueP({}) compiler.go:433: 14: goja.loadDynamic(iterable) compiler.go:433: 15: goja.loadDynamic(Symbol) compiler.go:433: 16: goja.getProp(iterator) compiler.go:433: 17: *goja.newFunc(&{0xc0003f60f0 function() { return iterator; } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(iterator) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 18: goja._setElemP({}) compiler.go:433: 19: goja.try({13 0}) compiler.go:433: 20: goja.loadDynamic(iterable) compiler.go:433: 21: goja._iterateP({}) compiler.go:433: 22: goja.iterNext(6) compiler.go:433: 23: goja.resolveVar1(i) compiler.go:433: 24: goja._enumGet({}) compiler.go:433: 25: goja._putValueP({}) compiler.go:433: 26: goja.jump(4) compiler.go:433: 27: goja.jump(-5) compiler.go:433: 28: goja._enumPop({}) compiler.go:433: 29: goja.jump(2) compiler.go:433: 30: goja._enumPopClose({}) compiler.go:433: 31: goja.jump(3) compiler.go:433: 32: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 33: *goja.leaveBlock(&{1 false}) compiler.go:433: 34: goja.leaveTry({}) compiler.go:433: 35: goja.loadDynamic(returnCount) compiler.go:433: 36: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestIterCloseThrows (0.00s) === RUN TestDeclareGlobalFunc compiler.go:433: 0: *goja.bindGlobal(&{[initial desc] [] [] [] false}) compiler.go:433: 1: goja.loadDynamic(Object) compiler.go:433: 2: goja.getPropCallee(defineProperty) compiler.go:433: 3: goja._loadGlobalObject({}) compiler.go:433: 4: goja.loadVal({f}) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja.loadVal({true}) compiler.go:433: 7: goja.putProp(enumerable) compiler.go:433: 8: goja.loadVal({true}) compiler.go:433: 9: goja.putProp(writable) compiler.go:433: 10: goja.loadVal({false}) compiler.go:433: 11: goja.putProp(configurable) compiler.go:433: 12: goja.call(3) compiler.go:433: 13: goja._pop({}) compiler.go:433: 14: goja._loadUndef({}) compiler.go:433: 15: goja.loadDynamic(eval) compiler.go:433: 16: goja.loadVal({initial = f; function f() { return 2222; }}) compiler.go:433: 17: goja.call(1) compiler.go:433: 18: goja._pop({}) compiler.go:433: 19: goja.resolveVar1(desc) compiler.go:433: 20: goja.loadDynamic(Object) compiler.go:433: 21: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 22: goja._loadGlobalObject({}) compiler.go:433: 23: goja.loadVal({f}) compiler.go:433: 24: goja.call(2) compiler.go:433: 25: goja._initValueP({}) compiler.go:433: 26: goja.loadDynamicCallee(assert) compiler.go:433: 27: goja.loadDynamic(desc) compiler.go:433: 28: goja.getProp(enumerable) compiler.go:433: 29: goja.loadVal({enumerable}) compiler.go:433: 30: goja.call(2) compiler.go:433: 31: goja._pop({}) compiler.go:433: 32: goja.loadDynamicCallee(assert) compiler.go:433: 33: goja.loadDynamic(desc) compiler.go:433: 34: goja.getProp(writable) compiler.go:433: 35: goja.loadVal({writable}) compiler.go:433: 36: goja.call(2) compiler.go:433: 37: goja._pop({}) compiler.go:433: 38: goja.loadDynamicCallee(assert) compiler.go:433: 39: goja.loadDynamic(desc) compiler.go:433: 40: goja.getProp(configurable) compiler.go:433: 41: goja._not({}) compiler.go:433: 42: goja.loadVal({configurable}) compiler.go:433: 43: goja.call(2) compiler.go:433: 44: goja._pop({}) compiler.go:433: 45: goja.loadDynamic(assert) compiler.go:433: 46: goja.getPropCallee(sameValue) compiler.go:433: 47: goja.loadDynamicCallee(initial) compiler.go:433: 48: goja.call(0) compiler.go:433: 49: goja.loadVal({2222}) compiler.go:433: 50: goja.call(2) compiler.go:433: 51: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDeclareGlobalFunc (0.00s) === RUN TestStackOverflowError --- PASS: TestStackOverflowError (0.00s) === RUN TestStacktraceLocationThrowFromCatch --- PASS: TestStacktraceLocationThrowFromCatch (0.00s) === RUN TestErrorStackRethrow compiler.go:433: 0: *goja.newFunc(&{0xc0003f6e10 f function f(e) { throw e; } 1 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja.loadStackLex(-1) compiler.go:433: > 2: goja._throw({}) compiler.go:433: > 3: goja._loadUndef({}) compiler.go:433: > 4: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [f] [] [] false}) compiler.go:433: 2: goja.try({8 0}) compiler.go:433: 3: goja._clearResult({}) compiler.go:433: 4: goja.loadDynamicCallee(f) compiler.go:433: 5: goja.loadDynamic(Error) compiler.go:433: 6: goja._new(0) compiler.go:433: 7: goja.call(1) compiler.go:433: 8: goja._saveResult({}) compiler.go:433: 9: goja.jump(18) compiler.go:433: 10: *goja.enterBlock(&{map[] 0 0}) compiler.go:433: 11: goja.loadDynamicCallee(assertStack) compiler.go:433: 12: goja.loadStackLex(1) compiler.go:433: 13: goja.newArray(1) compiler.go:433: 14: goja.newArray(4) compiler.go:433: 15: goja.loadVal({test.js}) compiler.go:433: 16: goja._pushArrayItem({}) compiler.go:433: 17: goja.loadVal({}) compiler.go:433: 18: goja._pushArrayItem({}) compiler.go:433: 19: goja.loadVal({6}) compiler.go:433: 20: goja._pushArrayItem({}) compiler.go:433: 21: goja.loadVal({5}) compiler.go:433: 22: goja._pushArrayItem({}) compiler.go:433: 23: goja._pushArrayItem({}) compiler.go:433: 24: goja.call(2) compiler.go:433: 25: goja._saveResult({}) compiler.go:433: 26: *goja.leaveBlock(&{1 false}) compiler.go:433: 27: goja.leaveTry({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestErrorStackRethrow (0.00s) === RUN TestStacktraceLocationThrowFromGo --- PASS: TestStacktraceLocationThrowFromGo (0.00s) === RUN TestStacktraceLocationThrowNativeInTheMiddle --- PASS: TestStacktraceLocationThrowNativeInTheMiddle (0.00s) === RUN TestStrToInt64 --- PASS: TestStrToInt64 (0.00s) === RUN TestStrToInt32 --- PASS: TestStrToInt32 (0.00s) === RUN TestDestructSymbol compiler.go:433: 0: *goja.bindGlobal(&{[S s rest] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(S) compiler.go:433: 2: goja.loadDynamicCallee(Symbol) compiler.go:433: 3: goja.loadVal({S}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja._newObject({}) compiler.go:433: 7: goja.loadDynamic(S) compiler.go:433: 8: goja._toPropertyKey({}) compiler.go:433: 9: goja.loadVal({true}) compiler.go:433: 10: goja._setElem1({}) compiler.go:433: 11: goja.loadVal({1}) compiler.go:433: 12: goja.putProp(test) compiler.go:433: 13: goja._createDestructSrc({}) compiler.go:433: 14: goja._dup({}) compiler.go:433: 15: goja.loadDynamic(S) compiler.go:433: 16: goja._toPropertyKey({}) compiler.go:433: 17: goja.resolveVar1(s) compiler.go:433: 18: goja._getKey({}) compiler.go:433: 19: goja._putValueP({}) compiler.go:433: 20: goja.resolveVar1(rest) compiler.go:433: 21: goja._copyRest({}) compiler.go:433: 22: goja._putValueP({}) compiler.go:433: 23: goja._pop({}) compiler.go:433: 24: goja._pop({}) compiler.go:433: 25: goja.loadDynamic(assert) compiler.go:433: 26: goja.getPropCallee(sameValue) compiler.go:433: 27: goja.loadDynamic(s) compiler.go:433: 28: goja.loadVal({true}) compiler.go:433: 29: goja.loadVal({S}) compiler.go:433: 30: goja.call(3) compiler.go:433: 31: goja._pop({}) compiler.go:433: 32: goja.loadDynamicCallee(assert) compiler.go:433: 33: goja.loadDynamicCallee(deepEqual) compiler.go:433: 34: goja.loadDynamic(rest) compiler.go:433: 35: goja._newObject({}) compiler.go:433: 36: goja.loadVal({1}) compiler.go:433: 37: goja.putProp(test) compiler.go:433: 38: goja.call(2) compiler.go:433: 39: goja.loadVal({rest}) compiler.go:433: 40: goja.call(2) compiler.go:433: 41: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDestructSymbol (0.00s) === RUN TestAccessorFuncName compiler.go:433: 0: *goja.bindGlobal(&{[] [] [prop] [namedSym emptyStrSym anonSym o] false}) compiler.go:433: 1: goja.loadDynamicCallee(Symbol) compiler.go:433: 2: goja.loadVal({test262}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja.initGlobalP(namedSym) compiler.go:433: 5: goja.loadDynamicCallee(Symbol) compiler.go:433: 6: goja.loadVal({}) compiler.go:433: 7: goja.call(1) compiler.go:433: 8: goja.initGlobalP(emptyStrSym) compiler.go:433: 9: goja.loadDynamicCallee(Symbol) compiler.go:433: 10: goja.call(0) compiler.go:433: 11: goja.initGlobalP(anonSym) compiler.go:433: 12: goja._newObject({}) compiler.go:433: 13: *goja.newMethod(&{{0xc000360640 id get id() {} 0 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 14: *goja.defineGetterKeyed(&{id true}) compiler.go:433: 15: goja.loadDynamic(anonSym) compiler.go:433: 16: goja._toPropertyKey({}) compiler.go:433: 17: *goja.newMethod(&{{0xc000360690 get [anonSym]() {} 0 false} 2}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 18: *goja.defineGetter(&{true}) compiler.go:433: 19: goja.loadDynamic(namedSym) compiler.go:433: 20: goja._toPropertyKey({}) compiler.go:433: 21: *goja.newMethod(&{{0xc0003606e0 get [namedSym]() {} 0 false} 2}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 22: *goja.defineGetter(&{true}) compiler.go:433: 23: goja.loadDynamic(emptyStrSym) compiler.go:433: 24: goja._toPropertyKey({}) compiler.go:433: 25: *goja.newMethod(&{{0xc000360730 get [emptyStrSym]() {} 0 false} 2}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 26: *goja.defineGetter(&{true}) compiler.go:433: 27: *goja.newMethod(&{{0xc000360780 id set id(v) {} 1 false} 1}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 28: *goja.defineSetterKeyed(&{id true}) compiler.go:433: 29: goja.loadDynamic(anonSym) compiler.go:433: 30: goja._toPropertyKey({}) compiler.go:433: 31: *goja.newMethod(&{{0xc0003607d0 set [anonSym](v) {} 1 false} 2}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 32: *goja.defineSetter(&{true}) compiler.go:433: 33: goja.loadDynamic(namedSym) compiler.go:433: 34: goja._toPropertyKey({}) compiler.go:433: 35: *goja.newMethod(&{{0xc000360820 set [namedSym](v) {} 1 false} 2}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 36: *goja.defineSetter(&{true}) compiler.go:433: 37: goja.loadDynamic(emptyStrSym) compiler.go:433: 38: goja._toPropertyKey({}) compiler.go:433: 39: *goja.newMethod(&{{0xc000360870 set [emptyStrSym](v) {} 1 false} 2}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 1}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 40: *goja.defineSetter(&{true}) compiler.go:433: 41: goja.initGlobalP(o) compiler.go:433: 42: goja._loadUndef({}) compiler.go:433: 43: goja.initGlobalP(prop) compiler.go:433: 44: goja.resolveVar1(prop) compiler.go:433: 45: goja.loadDynamic(Object) compiler.go:433: 46: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 47: goja.loadDynamic(o) compiler.go:433: 48: goja.loadVal({id}) compiler.go:433: 49: goja.call(2) compiler.go:433: 50: goja._putValueP({}) compiler.go:433: 51: goja.loadDynamic(assert) compiler.go:433: 52: goja.getPropCallee(sameValue) compiler.go:433: 53: goja.loadDynamic(prop) compiler.go:433: 54: goja.getProp(get) compiler.go:433: 55: goja.getProp(name) compiler.go:433: 56: goja.loadVal({get id}) compiler.go:433: 57: goja.call(2) compiler.go:433: 58: goja._pop({}) compiler.go:433: 59: goja.loadDynamic(assert) compiler.go:433: 60: goja.getPropCallee(sameValue) compiler.go:433: 61: goja.loadDynamic(prop) compiler.go:433: 62: goja.getProp(set) compiler.go:433: 63: goja.getProp(name) compiler.go:433: 64: goja.loadVal({set id}) compiler.go:433: 65: goja.call(2) compiler.go:433: 66: goja._pop({}) compiler.go:433: 67: goja.resolveVar1(prop) compiler.go:433: 68: goja.loadDynamic(Object) compiler.go:433: 69: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 70: goja.loadDynamic(o) compiler.go:433: 71: goja.loadDynamic(anonSym) compiler.go:433: 72: goja.call(2) compiler.go:433: 73: goja._putValueP({}) compiler.go:433: 74: goja.loadDynamic(assert) compiler.go:433: 75: goja.getPropCallee(sameValue) compiler.go:433: 76: goja.loadDynamic(prop) compiler.go:433: 77: goja.getProp(get) compiler.go:433: 78: goja.getProp(name) compiler.go:433: 79: goja.loadVal({get }) compiler.go:433: 80: goja.call(2) compiler.go:433: 81: goja._pop({}) compiler.go:433: 82: goja.loadDynamic(assert) compiler.go:433: 83: goja.getPropCallee(sameValue) compiler.go:433: 84: goja.loadDynamic(prop) compiler.go:433: 85: goja.getProp(set) compiler.go:433: 86: goja.getProp(name) compiler.go:433: 87: goja.loadVal({set }) compiler.go:433: 88: goja.call(2) compiler.go:433: 89: goja._pop({}) compiler.go:433: 90: goja.resolveVar1(prop) compiler.go:433: 91: goja.loadDynamic(Object) compiler.go:433: 92: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 93: goja.loadDynamic(o) compiler.go:433: 94: goja.loadDynamic(emptyStrSym) compiler.go:433: 95: goja.call(2) compiler.go:433: 96: goja._putValueP({}) compiler.go:433: 97: goja.loadDynamic(assert) compiler.go:433: 98: goja.getPropCallee(sameValue) compiler.go:433: 99: goja.loadDynamic(prop) compiler.go:433: 100: goja.getProp(get) compiler.go:433: 101: goja.getProp(name) compiler.go:433: 102: goja.loadVal({get []}) compiler.go:433: 103: goja.call(2) compiler.go:433: 104: goja._pop({}) compiler.go:433: 105: goja.loadDynamic(assert) compiler.go:433: 106: goja.getPropCallee(sameValue) compiler.go:433: 107: goja.loadDynamic(prop) compiler.go:433: 108: goja.getProp(set) compiler.go:433: 109: goja.getProp(name) compiler.go:433: 110: goja.loadVal({set []}) compiler.go:433: 111: goja.call(2) compiler.go:433: 112: goja._pop({}) compiler.go:433: 113: goja.resolveVar1(prop) compiler.go:433: 114: goja.loadDynamic(Object) compiler.go:433: 115: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 116: goja.loadDynamic(o) compiler.go:433: 117: goja.loadDynamic(namedSym) compiler.go:433: 118: goja.call(2) compiler.go:433: 119: goja._putValueP({}) compiler.go:433: 120: goja.loadDynamic(assert) compiler.go:433: 121: goja.getPropCallee(sameValue) compiler.go:433: 122: goja.loadDynamic(prop) compiler.go:433: 123: goja.getProp(get) compiler.go:433: 124: goja.getProp(name) compiler.go:433: 125: goja.loadVal({get [test262]}) compiler.go:433: 126: goja.call(2) compiler.go:433: 127: goja._pop({}) compiler.go:433: 128: goja.loadDynamic(assert) compiler.go:433: 129: goja.getPropCallee(sameValue) compiler.go:433: 130: goja.loadDynamic(prop) compiler.go:433: 131: goja.getProp(set) compiler.go:433: 132: goja.getProp(name) compiler.go:433: 133: goja.loadVal({set [test262]}) compiler.go:433: 134: goja.call(2) compiler.go:433: 135: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestAccessorFuncName (0.00s) === RUN TestCoverFuncName compiler.go:433: 0: *goja.bindGlobal(&{[namedSym anonSym o] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(namedSym) compiler.go:433: 2: goja.loadDynamicCallee(Symbol) compiler.go:433: 3: goja.loadVal({}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(anonSym) compiler.go:433: 7: goja.loadDynamicCallee(Symbol) compiler.go:433: 8: goja.call(0) compiler.go:433: 9: goja._initValueP({}) compiler.go:433: 10: goja.resolveVar1(o) compiler.go:433: 11: goja._newObject({}) compiler.go:433: 12: *goja.newFunc(&{0xc000360d20 function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 13: goja.putProp(xId) compiler.go:433: 14: *goja.newFunc(&{0xc000360d70 id function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 15: goja.putProp(id) compiler.go:433: 16: *goja.newFunc(&{0xc000360dc0 x function x() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{1 0}) compiler.go:433: > 1: goja._loadCallee({}) compiler.go:433: > 2: goja.initStackP(1) compiler.go:433: > 3: goja._loadCallee({}) compiler.go:433: > 4: goja.initStackP(1) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 17: goja.putProp(id1) compiler.go:433: 18: goja.loadDynamic(anonSym) compiler.go:433: 19: goja._toPropertyKey({}) compiler.go:433: 20: *goja.newFunc(&{0xc000360e10 function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 21: goja._setElem1Named({}) compiler.go:433: 22: goja.loadDynamic(namedSym) compiler.go:433: 23: goja._toPropertyKey({}) compiler.go:433: 24: *goja.newFunc(&{0xc000360e60 function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 25: goja._setElem1Named({}) compiler.go:433: 26: goja._putValueP({}) compiler.go:433: 27: goja.loadDynamicCallee(assert) compiler.go:433: 28: goja.loadDynamic(o) compiler.go:433: 29: goja.getProp(xId) compiler.go:433: 30: goja.getProp(name) compiler.go:433: 31: goja.loadVal({xId}) compiler.go:433: 32: goja._op_strict_neq({}) compiler.go:433: 33: goja.call(1) compiler.go:433: 34: goja._pop({}) compiler.go:433: 35: goja.loadDynamic(assert) compiler.go:433: 36: goja.getPropCallee(sameValue) compiler.go:433: 37: goja.loadDynamic(o) compiler.go:433: 38: goja.getProp(id1) compiler.go:433: 39: goja.getProp(name) compiler.go:433: 40: goja.loadVal({x}) compiler.go:433: 41: goja.call(2) compiler.go:433: 42: goja._pop({}) compiler.go:433: 43: goja.loadDynamic(assert) compiler.go:433: 44: goja.getPropCallee(sameValue) compiler.go:433: 45: goja.loadDynamic(o) compiler.go:433: 46: goja.getProp(id) compiler.go:433: 47: goja.getProp(name) compiler.go:433: 48: goja.loadVal({id}) compiler.go:433: 49: goja.loadVal({via IdentifierName}) compiler.go:433: 50: goja.call(3) compiler.go:433: 51: goja._pop({}) compiler.go:433: 52: goja.loadDynamic(assert) compiler.go:433: 53: goja.getPropCallee(sameValue) compiler.go:433: 54: goja.loadDynamic(o) compiler.go:433: 55: goja.loadDynamic(anonSym) compiler.go:433: 56: goja._getElem({}) compiler.go:433: 57: goja.getProp(name) compiler.go:433: 58: goja.loadVal({}) compiler.go:433: 59: goja.loadVal({via anonymous Symbol}) compiler.go:433: 60: goja.call(3) compiler.go:433: 61: goja._pop({}) compiler.go:433: 62: goja.loadDynamic(assert) compiler.go:433: 63: goja.getPropCallee(sameValue) compiler.go:433: 64: goja.loadDynamic(o) compiler.go:433: 65: goja.loadDynamic(namedSym) compiler.go:433: 66: goja._getElem({}) compiler.go:433: 67: goja.getProp(name) compiler.go:433: 68: goja.loadVal({[]}) compiler.go:433: 69: goja.loadVal({via Symbol}) compiler.go:433: 70: goja.call(3) compiler.go:433: 71: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestCoverFuncName (0.00s) === RUN TestAnonFuncName compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [d] false}) compiler.go:433: 1: goja.loadDynamic(Object) compiler.go:433: 2: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 3: *goja.newFunc(&{0xc0003610e0 function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 4: goja.loadVal({name}) compiler.go:433: 5: goja.call(2) compiler.go:433: 6: goja.initGlobalP(d) compiler.go:433: 7: goja.loadDynamic(d) compiler.go:433: 8: goja.loadDynamic(undefined) compiler.go:433: 9: goja._op_strict_neq({}) compiler.go:433: 10: goja.jne(5) compiler.go:433: 11: goja.loadDynamic(d) compiler.go:433: 12: goja.getProp(value) compiler.go:433: 13: goja.loadVal({}) compiler.go:433: 14: goja._op_strict_eq({}) compiler.go:433: 15: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestAnonFuncName (0.00s) === RUN TestStringToBytesConversion --- PASS: TestStringToBytesConversion (0.00s) === RUN TestPromiseAll compiler.go:433: 0: *goja.bindGlobal(&{[p1 p2 p3 callCount currentThis nextThis afterNextThis] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(p1) compiler.go:433: 2: goja.loadDynamic(Promise) compiler.go:433: 3: *goja.newFunc(&{0xc000361590 function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.resolveVar1(p2) compiler.go:433: 7: goja.loadDynamic(Promise) compiler.go:433: 8: *goja.newFunc(&{0xc0003615e0 function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 9: goja._new(1) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.resolveVar1(p3) compiler.go:433: 12: goja.loadDynamic(Promise) compiler.go:433: 13: *goja.newFunc(&{0xc000361630 function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 14: goja._new(1) compiler.go:433: 15: goja._initValueP({}) compiler.go:433: 16: goja.resolveVar1(callCount) compiler.go:433: 17: goja.loadVal({0}) compiler.go:433: 18: goja._initValueP({}) compiler.go:433: 19: goja.resolveVar1(currentThis) compiler.go:433: 20: goja.loadDynamic(p1) compiler.go:433: 21: goja._initValueP({}) compiler.go:433: 22: goja.resolveVar1(nextThis) compiler.go:433: 23: goja.loadDynamic(p2) compiler.go:433: 24: goja._initValueP({}) compiler.go:433: 25: goja.resolveVar1(afterNextThis) compiler.go:433: 26: goja.loadDynamic(p3) compiler.go:433: 27: goja._initValueP({}) compiler.go:433: 28: goja.loadDynamic(p1) compiler.go:433: 29: goja.loadDynamic(p2) compiler.go:433: 30: goja.loadDynamic(p3) compiler.go:433: 31: *goja.newFunc(&{0xc000361680 function(a, b) { assert.sameValue(typeof a, 'function', 'type of first argument'); assert.sameValue( a.length, 1, 'ES6 25.4.1.3.2: The length property of a promise resolve function is 1.' ); assert.sameValue(typeof b, 'function', 'type of second argument'); assert.sameValue( b.length, 1, 'ES6 25.4.1.3.1: The length property of a promise reject function is 1.' ); assert.sameValue(arguments.length, 2, '"then"" invoked with two arguments'); assert.sameValue(this, currentThis, '"this" value'); currentThis = nextThis; nextThis = afterNextThis; afterNextThis = null; callCount += 1; } 2 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 2 1 2 1 true false}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.createArgsMapped(2) compiler.go:433: > 3: goja.initStack1P(1) compiler.go:433: > 4: goja.loadDynamic(assert) compiler.go:433: > 5: goja.getPropCallee(sameValue) compiler.go:433: > 6: goja.loadStashLex(0) compiler.go:433: > 7: goja._typeof({}) compiler.go:433: > 8: goja.loadVal({function}) compiler.go:433: > 9: goja.loadVal({type of first argument}) compiler.go:433: > 10: goja.call(3) compiler.go:433: > 11: goja._pop({}) compiler.go:433: > 12: goja.loadDynamic(assert) compiler.go:433: > 13: goja.getPropCallee(sameValue) compiler.go:433: > 14: goja.loadStashLex(0) compiler.go:433: > 15: goja.getProp(length) compiler.go:433: > 16: goja.loadVal({1}) compiler.go:433: > 17: goja.loadVal({ES6 25.4.1.3.2: The length property of a promise resolve function is 1.}) compiler.go:433: > 18: goja.call(3) compiler.go:433: > 19: goja._pop({}) compiler.go:433: > 20: goja.loadDynamic(assert) compiler.go:433: > 21: goja.getPropCallee(sameValue) compiler.go:433: > 22: goja.loadStashLex(1) compiler.go:433: > 23: goja._typeof({}) compiler.go:433: > 24: goja.loadVal({function}) compiler.go:433: > 25: goja.loadVal({type of second argument}) compiler.go:433: > 26: goja.call(3) compiler.go:433: > 27: goja._pop({}) compiler.go:433: > 28: goja.loadDynamic(assert) compiler.go:433: > 29: goja.getPropCallee(sameValue) compiler.go:433: > 30: goja.loadStashLex(1) compiler.go:433: > 31: goja.getProp(length) compiler.go:433: > 32: goja.loadVal({1}) compiler.go:433: > 33: goja.loadVal({ES6 25.4.1.3.1: The length property of a promise reject function is 1.}) compiler.go:433: > 34: goja.call(3) compiler.go:433: > 35: goja._pop({}) compiler.go:433: > 36: goja.loadDynamic(assert) compiler.go:433: > 37: goja.getPropCallee(sameValue) compiler.go:433: > 38: goja.loadStack1(1) compiler.go:433: > 39: goja.getProp(length) compiler.go:433: > 40: goja.loadVal({2}) compiler.go:433: > 41: goja.loadVal({"then"" invoked with two arguments}) compiler.go:433: > 42: goja.call(3) compiler.go:433: > 43: goja._pop({}) compiler.go:433: > 44: goja.loadDynamic(assert) compiler.go:433: > 45: goja.getPropCallee(sameValue) compiler.go:433: > 46: goja.loadStack(0) compiler.go:433: > 47: goja.loadDynamic(currentThis) compiler.go:433: > 48: goja.loadVal({"this" value}) compiler.go:433: > 49: goja.call(3) compiler.go:433: > 50: goja._pop({}) compiler.go:433: > 51: goja.resolveVar1(currentThis) compiler.go:433: > 52: goja.loadDynamic(nextThis) compiler.go:433: > 53: goja._putValueP({}) compiler.go:433: > 54: goja.resolveVar1(nextThis) compiler.go:433: > 55: goja.loadDynamic(afterNextThis) compiler.go:433: > 56: goja._putValueP({}) compiler.go:433: > 57: goja.resolveVar1(afterNextThis) compiler.go:433: > 58: goja.loadVal({{}}) compiler.go:433: > 59: goja._putValueP({}) compiler.go:433: > 60: goja.resolveVar1(callCount) compiler.go:433: > 61: goja._getValue({}) compiler.go:433: > 62: goja.loadVal({1}) compiler.go:433: > 63: goja._add({}) compiler.go:433: > 64: goja._putValueP({}) compiler.go:433: > 65: goja._loadUndef({}) compiler.go:433: > 66: goja._ret({}) compiler.go:433: 32: goja.setProp(then) compiler.go:433: 33: goja.setProp(then) compiler.go:433: 34: goja.setPropP(then) compiler.go:433: 35: goja.loadDynamic(Promise) compiler.go:433: 36: goja.getPropCallee(all) compiler.go:433: 37: goja.newArray(3) compiler.go:433: 38: goja.loadDynamic(p1) compiler.go:433: 39: goja._pushArrayItem({}) compiler.go:433: 40: goja.loadDynamic(p2) compiler.go:433: 41: goja._pushArrayItem({}) compiler.go:433: 42: goja.loadDynamic(p3) compiler.go:433: 43: goja._pushArrayItem({}) compiler.go:433: 44: goja.call(1) compiler.go:433: 45: goja._pop({}) compiler.go:433: 46: goja.loadDynamic(assert) compiler.go:433: 47: goja.getPropCallee(sameValue) compiler.go:433: 48: goja.loadDynamic(callCount) compiler.go:433: 49: goja.loadVal({3}) compiler.go:433: 50: goja.loadVal({"then"" invoked once for every iterated value}) compiler.go:433: 51: goja.call(3) compiler.go:433: 52: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 3 --- PASS: TestPromiseAll (0.00s) === RUN TestPromiseExport --- PASS: TestPromiseExport (0.00s) === RUN TestErrorStack compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [err stack] false}) compiler.go:433: 1: goja.loadDynamic(Error) compiler.go:433: 2: goja.loadVal({test}) compiler.go:433: 3: goja._new(1) compiler.go:433: 4: goja.initGlobalP(err) compiler.go:433: 5: goja.loadVal({stack}) compiler.go:433: 6: goja.loadDynamic(err) compiler.go:433: 7: goja._op_in({}) compiler.go:433: 8: goja._not({}) compiler.go:433: 9: goja.jneP(5) compiler.go:433: 10: goja.loadDynamic(Error) compiler.go:433: 11: goja.loadVal({in}) compiler.go:433: 12: goja._new(1) compiler.go:433: 13: goja._throw({}) compiler.go:433: 14: goja.loadDynamic(Reflect) compiler.go:433: 15: goja.getPropCallee(ownKeys) compiler.go:433: 16: goja.loadDynamic(err) compiler.go:433: 17: goja.call(1) compiler.go:433: 18: goja.loadVal({0}) compiler.go:433: 19: goja._getElem({}) compiler.go:433: 20: goja.loadVal({stack}) compiler.go:433: 21: goja._op_strict_neq({}) compiler.go:433: 22: goja.jneP(5) compiler.go:433: 23: goja.loadDynamic(Error) compiler.go:433: 24: goja.loadVal({property order}) compiler.go:433: 25: goja._new(1) compiler.go:433: 26: goja._throw({}) compiler.go:433: 27: goja.loadDynamic(err) compiler.go:433: 28: goja.getProp(stack) compiler.go:433: 29: goja.initGlobalP(stack) compiler.go:433: 30: goja.loadDynamic(stack) compiler.go:433: 31: goja.loadVal({Error: test at test.js:2:14(3) }) compiler.go:433: 32: goja._op_strict_neq({}) compiler.go:433: 33: goja.jneP(5) compiler.go:433: 34: goja.loadDynamic(Error) compiler.go:433: 35: goja.loadDynamic(stack) compiler.go:433: 36: goja._new(1) compiler.go:433: 37: goja._throw({}) compiler.go:433: 38: goja.loadDynamic(err) compiler.go:433: 39: goja.deleteProp(stack) compiler.go:433: 40: goja._pop({}) compiler.go:433: 41: goja._clearResult({}) compiler.go:433: 42: goja.loadVal({stack}) compiler.go:433: 43: goja.loadDynamic(err) compiler.go:433: 44: goja._op_in({}) compiler.go:433: 45: goja.jneP(6) compiler.go:433: 46: goja.loadDynamic(Error) compiler.go:433: 47: goja.loadVal({stack still in err after delete}) compiler.go:433: 48: goja._new(1) compiler.go:433: 49: goja._throw({}) compiler.go:433: 50: goja.jump(2) compiler.go:433: 51: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestErrorStack (0.00s) === RUN TestErrorFormatSymbols --- PASS: TestErrorFormatSymbols (0.00s) === RUN TestPanicPassthrough --- PASS: TestPanicPassthrough (0.00s) === RUN TestSuspendResumeRelStackLen --- PASS: TestSuspendResumeRelStackLen (0.00s) === RUN TestSuspendResumeStacks --- PASS: TestSuspendResumeStacks (0.00s) === RUN TestNestedTopLevelConstructorCall --- PASS: TestNestedTopLevelConstructorCall (0.00s) === RUN TestNestedTopLevelConstructorPanicAsync --- PASS: TestNestedTopLevelConstructorPanicAsync (0.00s) === RUN TestAsyncFuncThrow --- PASS: TestAsyncFuncThrow (0.00s) === RUN TestAsyncStacktrace --- PASS: TestAsyncStacktrace (0.00s) === RUN TestPanicPropagation --- PASS: TestPanicPropagation (0.00s) === RUN TestAwaitInParameters --- PASS: TestAwaitInParameters (0.00s) === RUN TestDestructAssignToSymbol compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [s target] false}) compiler.go:433: 1: goja.loadDynamicCallee(Symbol) compiler.go:433: 2: goja.loadVal({s}) compiler.go:433: 3: goja.call(1) compiler.go:433: 4: goja.initGlobalP(s) compiler.go:433: 5: goja._newObject({}) compiler.go:433: 6: goja.initGlobalP(target) compiler.go:433: 7: goja._newObject({}) compiler.go:433: 8: goja.loadVal({42}) compiler.go:433: 9: goja.putProp(a) compiler.go:433: 10: goja._checkObjectCoercible({}) compiler.go:433: 11: goja._dup({}) compiler.go:433: 12: goja.loadVal({a}) compiler.go:433: 13: goja._toPropertyKey({}) compiler.go:433: 14: goja.loadDynamic(target) compiler.go:433: 15: goja.loadDynamic(s) compiler.go:433: 16: goja._getElemRef({}) compiler.go:433: 17: goja._getKey({}) compiler.go:433: 18: goja._putValueP({}) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.loadDynamic(assert) compiler.go:433: 21: goja.getPropCallee(sameValue) compiler.go:433: 22: goja.loadDynamic(target) compiler.go:433: 23: goja.loadDynamic(s) compiler.go:433: 24: goja._getElem({}) compiler.go:433: 25: goja.loadVal({42}) compiler.go:433: 26: goja.call(2) compiler.go:433: 27: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestDestructAssignToSymbol (0.00s) === RUN TestToNumber compiler.go:433: 0: *goja.bindGlobal(&{[] [] [a] [] false}) compiler.go:433: 1: goja.loadDynamicCallee(assert) compiler.go:433: 2: goja.loadDynamicCallee(isNaN) compiler.go:433: 3: goja.loadDynamicCallee(Number) compiler.go:433: 4: goja.loadVal({+}) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja.call(1) compiler.go:433: 7: goja.call(1) compiler.go:433: 8: goja._pop({}) compiler.go:433: 9: goja.loadDynamicCallee(assert) compiler.go:433: 10: goja.loadDynamicCallee(isNaN) compiler.go:433: 11: goja.loadDynamicCallee(Number) compiler.go:433: 12: goja.loadVal({++}) compiler.go:433: 13: goja.call(1) compiler.go:433: 14: goja.call(1) compiler.go:433: 15: goja.call(1) compiler.go:433: 16: goja._pop({}) compiler.go:433: 17: goja.loadDynamicCallee(assert) compiler.go:433: 18: goja.loadDynamicCallee(isNaN) compiler.go:433: 19: goja.loadDynamicCallee(Number) compiler.go:433: 20: goja.loadVal({-}) compiler.go:433: 21: goja.call(1) compiler.go:433: 22: goja.call(1) compiler.go:433: 23: goja.call(1) compiler.go:433: 24: goja._pop({}) compiler.go:433: 25: goja.loadDynamicCallee(assert) compiler.go:433: 26: goja.loadDynamicCallee(isNaN) compiler.go:433: 27: goja.loadDynamicCallee(Number) compiler.go:433: 28: goja.loadVal({0xfp1}) compiler.go:433: 29: goja.call(1) compiler.go:433: 30: goja.call(1) compiler.go:433: 31: goja.call(1) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja.loadDynamicCallee(assert) compiler.go:433: 34: goja.loadDynamicCallee(isNaN) compiler.go:433: 35: goja.loadDynamicCallee(Number) compiler.go:433: 36: goja.loadVal({0Xfp1}) compiler.go:433: 37: goja.call(1) compiler.go:433: 38: goja.call(1) compiler.go:433: 39: goja.call(1) compiler.go:433: 40: goja._pop({}) compiler.go:433: 41: goja.loadDynamicCallee(assert) compiler.go:433: 42: goja.loadDynamicCallee(isNaN) compiler.go:433: 43: goja.loadDynamicCallee(Number) compiler.go:433: 44: goja.loadVal({+0xfp1}) compiler.go:433: 45: goja.call(1) compiler.go:433: 46: goja.call(1) compiler.go:433: 47: goja.call(1) compiler.go:433: 48: goja._pop({}) compiler.go:433: 49: goja.loadDynamicCallee(assert) compiler.go:433: 50: goja.loadDynamicCallee(isNaN) compiler.go:433: 51: goja.loadDynamicCallee(Number) compiler.go:433: 52: goja.loadVal({ +0xfp1}) compiler.go:433: 53: goja.call(1) compiler.go:433: 54: goja.call(1) compiler.go:433: 55: goja.call(1) compiler.go:433: 56: goja._pop({}) compiler.go:433: 57: goja.loadDynamicCallee(assert) compiler.go:433: 58: goja.loadDynamicCallee(isNaN) compiler.go:433: 59: goja.loadDynamicCallee(Number) compiler.go:433: 60: goja.loadVal({ + 0xfp1}) compiler.go:433: 61: goja.call(1) compiler.go:433: 62: goja.call(1) compiler.go:433: 63: goja.call(1) compiler.go:433: 64: goja._pop({}) compiler.go:433: 65: goja.loadDynamicCallee(assert) compiler.go:433: 66: goja.loadDynamicCallee(isNaN) compiler.go:433: 67: goja.loadDynamicCallee(Number) compiler.go:433: 68: goja.loadVal({ 0xfp1}) compiler.go:433: 69: goja.call(1) compiler.go:433: 70: goja.call(1) compiler.go:433: 71: goja.call(1) compiler.go:433: 72: goja._pop({}) compiler.go:433: 73: goja.loadDynamicCallee(assert) compiler.go:433: 74: goja.loadDynamicCallee(isNaN) compiler.go:433: 75: goja.loadDynamicCallee(Number) compiler.go:433: 76: goja.loadVal({-0xfp1}) compiler.go:433: 77: goja.call(1) compiler.go:433: 78: goja.call(1) compiler.go:433: 79: goja.call(1) compiler.go:433: 80: goja._pop({}) compiler.go:433: 81: goja.loadDynamicCallee(assert) compiler.go:433: 82: goja.loadDynamicCallee(isNaN) compiler.go:433: 83: goja.loadDynamicCallee(Number) compiler.go:433: 84: goja.loadVal({- 0xfp1}) compiler.go:433: 85: goja.call(1) compiler.go:433: 86: goja.call(1) compiler.go:433: 87: goja.call(1) compiler.go:433: 88: goja._pop({}) compiler.go:433: 89: goja.loadDynamicCallee(assert) compiler.go:433: 90: goja.loadDynamicCallee(isNaN) compiler.go:433: 91: goja.loadDynamicCallee(Number) compiler.go:433: 92: goja.loadVal({ - 0xfp1}) compiler.go:433: 93: goja.call(1) compiler.go:433: 94: goja.call(1) compiler.go:433: 95: goja.call(1) compiler.go:433: 96: goja._pop({}) compiler.go:433: 97: goja.loadDynamic(assert) compiler.go:433: 98: goja.getPropCallee(sameValue) compiler.go:433: 99: goja.loadDynamicCallee(Number) compiler.go:433: 100: goja.loadVal({0.}) compiler.go:433: 101: goja.call(1) compiler.go:433: 102: goja.loadVal({0}) compiler.go:433: 103: goja.call(2) compiler.go:433: 104: goja._pop({}) compiler.go:433: 105: goja.loadDynamic(assert) compiler.go:433: 106: goja.getPropCallee(sameValue) compiler.go:433: 107: goja.loadDynamicCallee(Number) compiler.go:433: 108: goja.loadVal({ }) compiler.go:433: 109: goja.call(1) compiler.go:433: 110: goja.loadVal({0}) compiler.go:433: 111: goja.call(2) compiler.go:433: 112: goja._pop({}) compiler.go:433: 113: goja.loadDynamic(assert) compiler.go:433: 114: goja.getPropCallee(sameValue) compiler.go:433: 115: goja.loadDynamicCallee(Number) compiler.go:433: 116: goja.loadVal({ Infinity}) compiler.go:433: 117: goja.call(1) compiler.go:433: 118: goja.loadDynamic(Infinity) compiler.go:433: 119: goja.call(2) compiler.go:433: 120: goja._pop({}) compiler.go:433: 121: goja.newArray(1) compiler.go:433: 122: goja.loadVal({1}) compiler.go:433: 123: goja._pushArrayItem({}) compiler.go:433: 124: goja.initGlobalP(a) compiler.go:433: 125: goja.loadDynamic(assert) compiler.go:433: 126: goja.getPropCallee(sameValue) compiler.go:433: 127: goja.loadVal({1}) compiler.go:433: 128: goja.loadDynamic(a) compiler.go:433: 129: goja.getPropCallee(at) compiler.go:433: 130: goja.loadVal({0xfp1}) compiler.go:433: 131: goja.call(1) compiler.go:433: 132: goja.call(2) compiler.go:433: 133: goja._pop({}) compiler.go:433: 134: goja.loadDynamic(assert) compiler.go:433: 135: goja.getPropCallee(sameValue) compiler.go:433: 136: goja.loadVal({1}) compiler.go:433: 137: goja.loadDynamic(a) compiler.go:433: 138: goja.getPropCallee(at) compiler.go:433: 139: goja.loadVal({ 0xfp1}) compiler.go:433: 140: goja.call(1) compiler.go:433: 141: goja.call(2) compiler.go:433: 142: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestToNumber (0.00s) === RUN TestToValueNilBigInt compiler.go:433: 0: goja.loadDynamic(n) compiler.go:433: 1: goja.loadVal({0xc000422200}) compiler.go:433: 2: goja._op_strict_eq({}) compiler.go:433: 3: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestToValueNilBigInt (0.00s) === RUN TestClassReexport compiler.go:433: 0: *goja.bindGlobal(&{[] [] [C] [c] false}) compiler.go:433: 1: goja.jump(1) compiler.go:433: 2: *goja.newClass(&{0xc00036c460 C class C { constructor() { this.test = true; } } [] [] 0 0 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadStack(0) compiler.go:433: > 2: goja.loadVal({true}) compiler.go:433: > 3: goja.setPropStrictP(test) compiler.go:433: > 4: goja._loadUndef({}) compiler.go:433: > 5: goja._ret({}) compiler.go:433: 3: goja._endVariadic({}) compiler.go:433: 4: goja.initGlobalP(C) compiler.go:433: 5: goja.loadDynamic(m) compiler.go:433: 6: goja.loadDynamic(C) compiler.go:433: 7: goja.setPropP(C) compiler.go:433: 8: goja.loadDynamic(m) compiler.go:433: 9: goja.getProp(C) compiler.go:433: 10: goja._new(0) compiler.go:433: 11: goja.initGlobalP(c) compiler.go:433: 12: goja.loadDynamic(c) compiler.go:433: 13: goja.loadDynamic(C) compiler.go:433: 14: goja._op_instanceof({}) compiler.go:433: 15: goja.jne(3) compiler.go:433: 16: goja.loadDynamic(c) compiler.go:433: 17: goja.getProp(test) compiler.go:433: 18: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestClassReexport (0.00s) === RUN TestStringOOBProperties compiler.go:433: 0: *goja.bindGlobal(&{[string] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(string) compiler.go:433: 2: goja.loadDynamic(String) compiler.go:433: 3: goja.loadVal({str}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(string) compiler.go:433: 7: goja.loadVal({4}) compiler.go:433: 8: goja.loadVal({1}) compiler.go:433: 9: goja._setElemP({}) compiler.go:433: 10: goja.loadDynamic(string) compiler.go:433: 11: goja.loadVal({4}) compiler.go:433: 12: goja._getElem({}) compiler.go:433: 13: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestStringOOBProperties (0.00s) === RUN TestImportedString --- PASS: TestImportedString (0.02s) === RUN TestStringFromUTF16 --- PASS: TestStringFromUTF16 (0.00s) === RUN TestStringBuilder === RUN TestStringBuilder/writeUTF8String-switch --- PASS: TestStringBuilder (0.00s) --- PASS: TestStringBuilder/writeUTF8String-switch (0.00s) === RUN TestTC39 tc39_test.go:718: If you want to run tc39 tests, download them from https://github.com/tc39/test262 and put into testdata/test262. See .tc39_test262_checkout.sh for the latest working commit id. (stat testdata/test262: no such file or directory) --- SKIP: TestTC39 (0.00s) === RUN TestUint16ArrayObject --- PASS: TestUint16ArrayObject (0.00s) === RUN TestArrayBufferGoWrapper --- PASS: TestArrayBufferGoWrapper (0.00s) === RUN TestTypedArrayIdx compiler.go:433: 0: *goja.bindGlobal(&{[a] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.loadDynamic(Uint8Array) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(a) compiler.go:433: 7: goja.loadVal({4294967297}) compiler.go:433: 8: goja._getElem({}) compiler.go:433: 9: goja.loadDynamic(undefined) compiler.go:433: 10: goja._op_strict_neq({}) compiler.go:433: 11: goja.jneP(5) compiler.go:433: 12: goja.loadDynamic(Error) compiler.go:433: 13: goja.loadVal({4294967297}) compiler.go:433: 14: goja._new(1) compiler.go:433: 15: goja._throw({}) compiler.go:433: 16: goja.loadDynamic(a) compiler.go:433: 17: goja.loadVal({8}) compiler.go:433: 18: goja.setPropP(Infinity) compiler.go:433: 19: goja.loadDynamic(a) compiler.go:433: 20: goja.getProp(Infinity) compiler.go:433: 21: goja.loadDynamic(undefined) compiler.go:433: 22: goja._op_strict_neq({}) compiler.go:433: 23: goja.jneP(5) compiler.go:433: 24: goja.loadDynamic(Error) compiler.go:433: 25: goja.loadVal({Infinity}) compiler.go:433: 26: goja._new(1) compiler.go:433: 27: goja._throw({}) compiler.go:433: 28: goja.loadDynamic(a) compiler.go:433: 29: goja.loadVal({1}) compiler.go:433: 30: goja.setPropP(NaN) compiler.go:433: 31: goja.loadDynamic(a) compiler.go:433: 32: goja.getProp(NaN) compiler.go:433: 33: goja.loadDynamic(undefined) compiler.go:433: 34: goja._op_strict_neq({}) compiler.go:433: 35: goja.jneP(5) compiler.go:433: 36: goja.loadDynamic(Error) compiler.go:433: 37: goja.loadVal({NaN}) compiler.go:433: 38: goja._new(1) compiler.go:433: 39: goja._throw({}) compiler.go:433: 40: goja.loadDynamic(a) compiler.go:433: 41: goja.loadVal({00}) compiler.go:433: 42: goja.setPropP(00) compiler.go:433: 43: goja.loadDynamic(a) compiler.go:433: 44: goja.getProp(00) compiler.go:433: 45: goja.loadVal({00}) compiler.go:433: 46: goja._op_strict_neq({}) compiler.go:433: 47: goja.jneP(5) compiler.go:433: 48: goja.loadDynamic(Error) compiler.go:433: 49: goja.loadVal({00}) compiler.go:433: 50: goja._new(1) compiler.go:433: 51: goja._throw({}) compiler.go:433: 52: goja.loadDynamic(a) compiler.go:433: 53: goja.loadVal({1e-3}) compiler.go:433: 54: goja.setPropP(1e-3) compiler.go:433: 55: goja.loadDynamic(a) compiler.go:433: 56: goja.getProp(1e-3) compiler.go:433: 57: goja.loadVal({1e-3}) compiler.go:433: 58: goja._op_strict_neq({}) compiler.go:433: 59: goja.jneP(5) compiler.go:433: 60: goja.loadDynamic(Error) compiler.go:433: 61: goja.loadVal({1e-3}) compiler.go:433: 62: goja._new(1) compiler.go:433: 63: goja._throw({}) compiler.go:433: 64: goja.loadDynamic(a) compiler.go:433: 65: goja.getProp(0.001) compiler.go:433: 66: goja.loadDynamic(undefined) compiler.go:433: 67: goja._op_strict_neq({}) compiler.go:433: 68: goja.jneP(5) compiler.go:433: 69: goja.loadDynamic(Error) compiler.go:433: 70: goja.loadVal({0.001}) compiler.go:433: 71: goja._new(1) compiler.go:433: 72: goja._throw({}) compiler.go:433: 73: goja.loadDynamic(a) compiler.go:433: 74: goja.loadVal({88}) compiler.go:433: 75: goja.setPropP(-0) compiler.go:433: 76: goja.loadDynamic(a) compiler.go:433: 77: goja.getProp(-0) compiler.go:433: 78: goja.loadDynamic(undefined) compiler.go:433: 79: goja._op_strict_neq({}) compiler.go:433: 80: goja.jneP(5) compiler.go:433: 81: goja.loadDynamic(Error) compiler.go:433: 82: goja.loadVal({-0}) compiler.go:433: 83: goja._new(1) compiler.go:433: 84: goja._throw({}) compiler.go:433: 85: goja.loadDynamic(a) compiler.go:433: 86: goja.loadVal({0}) compiler.go:433: 87: goja._getElem({}) compiler.go:433: 88: goja.loadVal({0}) compiler.go:433: 89: goja._op_strict_neq({}) compiler.go:433: 90: goja.jneP(5) compiler.go:433: 91: goja.loadDynamic(Error) compiler.go:433: 92: goja.loadVal({0}) compiler.go:433: 93: goja._new(1) compiler.go:433: 94: goja._throw({}) compiler.go:433: 95: goja.loadDynamic(a) compiler.go:433: 96: goja.loadVal({1}) compiler.go:433: 97: goja.setPropP(9007199254740992) compiler.go:433: 98: goja.loadDynamic(a) compiler.go:433: 99: goja.getProp(9007199254740992) compiler.go:433: 100: goja.loadDynamic(undefined) compiler.go:433: 101: goja._op_strict_neq({}) compiler.go:433: 102: goja.jneP(5) compiler.go:433: 103: goja.loadDynamic(Error) compiler.go:433: 104: goja.loadVal({9007199254740992}) compiler.go:433: 105: goja._new(1) compiler.go:433: 106: goja._throw({}) compiler.go:433: 107: goja.loadDynamic(a) compiler.go:433: 108: goja.loadVal({1}) compiler.go:433: 109: goja.setPropP(-9007199254740992) compiler.go:433: 110: goja.loadDynamic(a) compiler.go:433: 111: goja.getProp(-9007199254740992) compiler.go:433: 112: goja.loadDynamic(undefined) compiler.go:433: 113: goja._op_strict_neq({}) compiler.go:433: 114: goja.jneP(5) compiler.go:433: 115: goja.loadDynamic(Error) compiler.go:433: 116: goja.loadVal({-9007199254740992}) compiler.go:433: 117: goja._new(1) compiler.go:433: 118: goja._throw({}) compiler.go:433: 119: goja.loadDynamic(a) compiler.go:433: 120: goja.loadVal({1}) compiler.go:433: 121: goja.setPropP(9007199254740993) compiler.go:433: 122: goja.loadDynamic(a) compiler.go:433: 123: goja.getProp(9007199254740993) compiler.go:433: 124: goja.loadVal({1}) compiler.go:433: 125: goja._op_strict_neq({}) compiler.go:433: 126: goja.jneP(5) compiler.go:433: 127: goja.loadDynamic(Error) compiler.go:433: 128: goja.loadVal({9007199254740993}) compiler.go:433: 129: goja._new(1) compiler.go:433: 130: goja._throw({}) compiler.go:433: 131: goja.loadDynamic(a) compiler.go:433: 132: goja.loadVal({1}) compiler.go:433: 133: goja.setPropP(-9007199254740993) compiler.go:433: 134: goja.loadDynamic(a) compiler.go:433: 135: goja.getProp(-9007199254740993) compiler.go:433: 136: goja.loadVal({1}) compiler.go:433: 137: goja._op_strict_neq({}) compiler.go:433: 138: goja.jneP(5) compiler.go:433: 139: goja.loadDynamic(Error) compiler.go:433: 140: goja.loadVal({-9007199254740993}) compiler.go:433: 141: goja._new(1) compiler.go:433: 142: goja._throw({}) compiler.go:433: 143: goja.loadDynamic(a) compiler.go:433: 144: goja.loadVal({1}) compiler.go:433: 145: goja.setPropP(9007199254740994) compiler.go:433: 146: goja.loadDynamic(a) compiler.go:433: 147: goja.getProp(9007199254740994) compiler.go:433: 148: goja.loadDynamic(undefined) compiler.go:433: 149: goja._op_strict_neq({}) compiler.go:433: 150: goja.jneP(5) compiler.go:433: 151: goja.loadDynamic(Error) compiler.go:433: 152: goja.loadVal({9007199254740994}) compiler.go:433: 153: goja._new(1) compiler.go:433: 154: goja._throw({}) compiler.go:433: 155: goja.loadDynamic(a) compiler.go:433: 156: goja.loadVal({1}) compiler.go:433: 157: goja.setPropP(-9007199254740994) compiler.go:433: 158: goja._clearResult({}) compiler.go:433: 159: goja.loadDynamic(a) compiler.go:433: 160: goja.getProp(-9007199254740994) compiler.go:433: 161: goja.loadDynamic(undefined) compiler.go:433: 162: goja._op_strict_neq({}) compiler.go:433: 163: goja.jneP(6) compiler.go:433: 164: goja.loadDynamic(Error) compiler.go:433: 165: goja.loadVal({-9007199254740994}) compiler.go:433: 166: goja._new(1) compiler.go:433: 167: goja._throw({}) compiler.go:433: 168: goja.jump(2) compiler.go:433: 169: goja._clearResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArrayIdx (0.00s) === RUN TestTypedArraySetDetachedBuffer compiler.go:433: 0: *goja.bindGlobal(&{[] [] [sample] [] false}) compiler.go:433: 1: goja.loadDynamic(Uint8Array) compiler.go:433: 2: goja.newArray(1) compiler.go:433: 3: goja.loadVal({42}) compiler.go:433: 4: goja._pushArrayItem({}) compiler.go:433: 5: goja._new(1) compiler.go:433: 6: goja.initGlobalP(sample) compiler.go:433: 7: goja.loadDynamicCallee($DETACHBUFFER) compiler.go:433: 8: goja.loadDynamic(sample) compiler.go:433: 9: goja.getProp(buffer) compiler.go:433: 10: goja.call(1) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.loadDynamic(sample) compiler.go:433: 13: goja.loadVal({0}) compiler.go:433: 14: goja.loadVal({1}) compiler.go:433: 15: goja._setElemP({}) compiler.go:433: 16: goja.loadDynamic(assert) compiler.go:433: 17: goja.getPropCallee(sameValue) compiler.go:433: 18: goja.loadDynamic(sample) compiler.go:433: 19: goja.loadVal({0}) compiler.go:433: 20: goja._getElem({}) compiler.go:433: 21: goja.loadDynamic(undefined) compiler.go:433: 22: goja.loadVal({sample[0] = 1 is undefined}) compiler.go:433: 23: goja.call(3) compiler.go:433: 24: goja._pop({}) compiler.go:433: 25: goja.loadDynamic(sample) compiler.go:433: 26: goja.loadVal({1}) compiler.go:433: 27: goja.setPropP(1.1) compiler.go:433: 28: goja.loadDynamic(assert) compiler.go:433: 29: goja.getPropCallee(sameValue) compiler.go:433: 30: goja.loadDynamic(sample) compiler.go:433: 31: goja.getProp(1.1) compiler.go:433: 32: goja.loadDynamic(undefined) compiler.go:433: 33: goja.loadVal({sample['1.1'] = 1 is undefined}) compiler.go:433: 34: goja.call(3) compiler.go:433: 35: goja._pop({}) compiler.go:433: 36: goja.loadDynamic(sample) compiler.go:433: 37: goja.loadVal({1}) compiler.go:433: 38: goja.setPropP(-0) compiler.go:433: 39: goja.loadDynamic(assert) compiler.go:433: 40: goja.getPropCallee(sameValue) compiler.go:433: 41: goja.loadDynamic(sample) compiler.go:433: 42: goja.getProp(-0) compiler.go:433: 43: goja.loadDynamic(undefined) compiler.go:433: 44: goja.loadVal({sample['-0'] = 1 is undefined}) compiler.go:433: 45: goja.call(3) compiler.go:433: 46: goja._pop({}) compiler.go:433: 47: goja.loadDynamic(sample) compiler.go:433: 48: goja.loadVal({1}) compiler.go:433: 49: goja.setPropP(-1) compiler.go:433: 50: goja.loadDynamic(assert) compiler.go:433: 51: goja.getPropCallee(sameValue) compiler.go:433: 52: goja.loadDynamic(sample) compiler.go:433: 53: goja.getProp(-1) compiler.go:433: 54: goja.loadDynamic(undefined) compiler.go:433: 55: goja.loadVal({sample['-1'] = 1 is undefined}) compiler.go:433: 56: goja.call(3) compiler.go:433: 57: goja._pop({}) compiler.go:433: 58: goja.loadDynamic(sample) compiler.go:433: 59: goja.loadVal({1}) compiler.go:433: 60: goja.setPropP(1) compiler.go:433: 61: goja.loadDynamic(assert) compiler.go:433: 62: goja.getPropCallee(sameValue) compiler.go:433: 63: goja.loadDynamic(sample) compiler.go:433: 64: goja.getProp(1) compiler.go:433: 65: goja.loadDynamic(undefined) compiler.go:433: 66: goja.loadVal({sample['1'] = 1 is undefined}) compiler.go:433: 67: goja.call(3) compiler.go:433: 68: goja._pop({}) compiler.go:433: 69: goja.loadDynamic(sample) compiler.go:433: 70: goja.loadVal({1}) compiler.go:433: 71: goja.setPropP(2) compiler.go:433: 72: goja.loadDynamic(assert) compiler.go:433: 73: goja.getPropCallee(sameValue) compiler.go:433: 74: goja.loadDynamic(sample) compiler.go:433: 75: goja.getProp(2) compiler.go:433: 76: goja.loadDynamic(undefined) compiler.go:433: 77: goja.loadVal({sample['2'] = 1 is undefined}) compiler.go:433: 78: goja.call(3) compiler.go:433: 79: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArraySetDetachedBuffer (0.00s) === RUN TestTypedArrayDefinePropDetachedBuffer compiler.go:433: 0: *goja.bindGlobal(&{[desc obj] [] [sample] [] false}) compiler.go:433: 1: goja.resolveVar1(desc) compiler.go:433: 2: goja._newObject({}) compiler.go:433: 3: goja.loadVal({0}) compiler.go:433: 4: goja.putProp(value) compiler.go:433: 5: goja.loadVal({false}) compiler.go:433: 6: goja.putProp(configurable) compiler.go:433: 7: goja.loadVal({true}) compiler.go:433: 8: goja.putProp(enumerable) compiler.go:433: 9: goja.loadVal({true}) compiler.go:433: 10: goja.putProp(writable) compiler.go:433: 11: goja._initValueP({}) compiler.go:433: 12: goja.resolveVar1(obj) compiler.go:433: 13: goja._newObject({}) compiler.go:433: 14: *goja.newFunc(&{0xc00017ce10 valueOf function() { throw new Error("valueOf() was called"); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Error) compiler.go:433: > 2: goja.loadVal({valueOf() was called}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 15: goja.putProp(valueOf) compiler.go:433: 16: goja._initValueP({}) compiler.go:433: 17: goja.loadDynamic(Uint8Array) compiler.go:433: 18: goja.loadVal({42}) compiler.go:433: 19: goja._new(1) compiler.go:433: 20: goja.initGlobalP(sample) compiler.go:433: 21: goja.loadDynamicCallee($DETACHBUFFER) compiler.go:433: 22: goja.loadDynamic(sample) compiler.go:433: 23: goja.getProp(buffer) compiler.go:433: 24: goja.call(1) compiler.go:433: 25: goja._pop({}) compiler.go:433: 26: goja.loadDynamic(assert) compiler.go:433: 27: goja.getPropCallee(sameValue) compiler.go:433: 28: goja.loadDynamic(Reflect) compiler.go:433: 29: goja.getPropCallee(defineProperty) compiler.go:433: 30: goja.loadDynamic(sample) compiler.go:433: 31: goja.loadVal({0}) compiler.go:433: 32: goja.loadDynamic(desc) compiler.go:433: 33: goja.call(3) compiler.go:433: 34: goja.loadVal({false}) compiler.go:433: 35: goja.loadVal({Reflect.defineProperty(sample, "0", {value: 0, configurable: false, enumerable: true, writable: true} ) must return false}) compiler.go:433: 36: goja.call(3) compiler.go:433: 37: goja._pop({}) compiler.go:433: 38: goja.loadDynamic(assert) compiler.go:433: 39: goja.getPropCallee(sameValue) compiler.go:433: 40: goja.loadDynamic(Reflect) compiler.go:433: 41: goja.getPropCallee(defineProperty) compiler.go:433: 42: goja.loadDynamic(sample) compiler.go:433: 43: goja.loadVal({-1}) compiler.go:433: 44: goja.loadDynamic(desc) compiler.go:433: 45: goja.call(3) compiler.go:433: 46: goja.loadVal({false}) compiler.go:433: 47: goja.loadVal({Reflect.defineProperty(sample, "-1", {value: 0, configurable: false, enumerable: true, writable: true} ) must return false}) compiler.go:433: 48: goja.call(3) compiler.go:433: 49: goja._pop({}) compiler.go:433: 50: goja.loadDynamic(assert) compiler.go:433: 51: goja.getPropCallee(sameValue) compiler.go:433: 52: goja.loadDynamic(Reflect) compiler.go:433: 53: goja.getPropCallee(defineProperty) compiler.go:433: 54: goja.loadDynamic(sample) compiler.go:433: 55: goja.loadVal({1.1}) compiler.go:433: 56: goja.loadDynamic(desc) compiler.go:433: 57: goja.call(3) compiler.go:433: 58: goja.loadVal({false}) compiler.go:433: 59: goja.loadVal({Reflect.defineProperty(sample, "1.1", {value: 0, configurable: false, enumerable: true, writable: true} ) must return false}) compiler.go:433: 60: goja.call(3) compiler.go:433: 61: goja._pop({}) compiler.go:433: 62: goja.loadDynamic(assert) compiler.go:433: 63: goja.getPropCallee(sameValue) compiler.go:433: 64: goja.loadDynamic(Reflect) compiler.go:433: 65: goja.getPropCallee(defineProperty) compiler.go:433: 66: goja.loadDynamic(sample) compiler.go:433: 67: goja.loadVal({-0}) compiler.go:433: 68: goja.loadDynamic(desc) compiler.go:433: 69: goja.call(3) compiler.go:433: 70: goja.loadVal({false}) compiler.go:433: 71: goja.loadVal({Reflect.defineProperty(sample, "-0", {value: 0, configurable: false, enumerable: true, writable: true} ) must return false}) compiler.go:433: 72: goja.call(3) compiler.go:433: 73: goja._pop({}) compiler.go:433: 74: goja.loadDynamic(assert) compiler.go:433: 75: goja.getPropCallee(sameValue) compiler.go:433: 76: goja.loadDynamic(Reflect) compiler.go:433: 77: goja.getPropCallee(defineProperty) compiler.go:433: 78: goja.loadDynamic(sample) compiler.go:433: 79: goja.loadVal({2}) compiler.go:433: 80: goja._newObject({}) compiler.go:433: 81: goja.loadVal({true}) compiler.go:433: 82: goja.putProp(configurable) compiler.go:433: 83: goja.loadVal({true}) compiler.go:433: 84: goja.putProp(enumerable) compiler.go:433: 85: goja.loadVal({true}) compiler.go:433: 86: goja.putProp(writable) compiler.go:433: 87: goja.loadDynamic(obj) compiler.go:433: 88: goja.putProp(value) compiler.go:433: 89: goja.call(3) compiler.go:433: 90: goja.loadVal({false}) compiler.go:433: 91: goja.loadVal({Reflect.defineProperty(sample, "2", {configurable: true, enumerable: true, writable: true, value: obj}) must return false}) compiler.go:433: 92: goja.call(3) compiler.go:433: 93: goja._pop({}) compiler.go:433: 94: goja.loadDynamic(assert) compiler.go:433: 95: goja.getPropCallee(sameValue) compiler.go:433: 96: goja.loadDynamic(Reflect) compiler.go:433: 97: goja.getPropCallee(defineProperty) compiler.go:433: 98: goja.loadDynamic(sample) compiler.go:433: 99: goja.loadVal({3}) compiler.go:433: 100: goja._newObject({}) compiler.go:433: 101: goja.loadVal({false}) compiler.go:433: 102: goja.putProp(configurable) compiler.go:433: 103: goja.loadVal({false}) compiler.go:433: 104: goja.putProp(enumerable) compiler.go:433: 105: goja.loadVal({true}) compiler.go:433: 106: goja.putProp(writable) compiler.go:433: 107: goja.loadDynamic(obj) compiler.go:433: 108: goja.putProp(value) compiler.go:433: 109: goja.call(3) compiler.go:433: 110: goja.loadVal({false}) compiler.go:433: 111: goja.loadVal({Reflect.defineProperty(sample, "3", {configurable: false, enumerable: false, writable: true, value: obj}) must return false}) compiler.go:433: 112: goja.call(3) compiler.go:433: 113: goja._pop({}) compiler.go:433: 114: goja.loadDynamic(assert) compiler.go:433: 115: goja.getPropCallee(sameValue) compiler.go:433: 116: goja.loadDynamic(Reflect) compiler.go:433: 117: goja.getPropCallee(defineProperty) compiler.go:433: 118: goja.loadDynamic(sample) compiler.go:433: 119: goja.loadVal({4}) compiler.go:433: 120: goja._newObject({}) compiler.go:433: 121: goja.loadVal({false}) compiler.go:433: 122: goja.putProp(writable) compiler.go:433: 123: goja.loadVal({false}) compiler.go:433: 124: goja.putProp(configurable) compiler.go:433: 125: goja.loadVal({true}) compiler.go:433: 126: goja.putProp(enumerable) compiler.go:433: 127: goja.loadDynamic(obj) compiler.go:433: 128: goja.putProp(value) compiler.go:433: 129: goja.call(3) compiler.go:433: 130: goja.loadVal({false}) compiler.go:433: 131: goja.loadVal({Reflect.defineProperty("new TA(42)", "4", {writable: false, configurable: false, enumerable: true, value: obj}) must return false}) compiler.go:433: 132: goja.call(3) compiler.go:433: 133: goja._pop({}) compiler.go:433: 134: goja.loadDynamic(assert) compiler.go:433: 135: goja.getPropCallee(sameValue) compiler.go:433: 136: goja.loadDynamic(Reflect) compiler.go:433: 137: goja.getPropCallee(defineProperty) compiler.go:433: 138: goja.loadDynamic(sample) compiler.go:433: 139: goja.loadVal({42}) compiler.go:433: 140: goja.loadDynamic(desc) compiler.go:433: 141: goja.call(3) compiler.go:433: 142: goja.loadVal({false}) compiler.go:433: 143: goja.loadVal({Reflect.defineProperty(sample, "42", {value: 0, configurable: false, enumerable: true, writable: true} ) must return false}) compiler.go:433: 144: goja.call(3) compiler.go:433: 145: goja._pop({}) compiler.go:433: 146: goja.loadDynamic(assert) compiler.go:433: 147: goja.getPropCallee(sameValue) compiler.go:433: 148: goja.loadDynamic(Reflect) compiler.go:433: 149: goja.getPropCallee(defineProperty) compiler.go:433: 150: goja.loadDynamic(sample) compiler.go:433: 151: goja.loadVal({43}) compiler.go:433: 152: goja.loadDynamic(desc) compiler.go:433: 153: goja.call(3) compiler.go:433: 154: goja.loadVal({false}) compiler.go:433: 155: goja.loadVal({Reflect.defineProperty(sample, "43", {value: 0, configurable: false, enumerable: true, writable: true} ) must return false}) compiler.go:433: 156: goja.call(3) compiler.go:433: 157: goja._pop({}) compiler.go:433: 158: goja.loadDynamic(assert) compiler.go:433: 159: goja.getPropCallee(sameValue) compiler.go:433: 160: goja.loadDynamic(Reflect) compiler.go:433: 161: goja.getPropCallee(defineProperty) compiler.go:433: 162: goja.loadDynamic(sample) compiler.go:433: 163: goja.loadVal({5}) compiler.go:433: 164: goja._newObject({}) compiler.go:433: 165: *goja.newFunc(&{0xc00017ce60 get function() {} 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja._loadUndef({}) compiler.go:433: > 2: goja._ret({}) compiler.go:433: 166: goja.putProp(get) compiler.go:433: 167: goja.call(3) compiler.go:433: 168: goja.loadVal({false}) compiler.go:433: 169: goja.loadVal({Reflect.defineProperty(sample, "5", {get: function() {}}) must return false}) compiler.go:433: 170: goja.call(3) compiler.go:433: 171: goja._pop({}) compiler.go:433: 172: goja.loadDynamic(assert) compiler.go:433: 173: goja.getPropCallee(sameValue) compiler.go:433: 174: goja.loadDynamic(Reflect) compiler.go:433: 175: goja.getPropCallee(defineProperty) compiler.go:433: 176: goja.loadDynamic(sample) compiler.go:433: 177: goja.loadVal({6}) compiler.go:433: 178: goja._newObject({}) compiler.go:433: 179: goja.loadVal({false}) compiler.go:433: 180: goja.putProp(configurable) compiler.go:433: 181: goja.loadVal({true}) compiler.go:433: 182: goja.putProp(enumerable) compiler.go:433: 183: goja.loadVal({true}) compiler.go:433: 184: goja.putProp(writable) compiler.go:433: 185: goja.call(3) compiler.go:433: 186: goja.loadVal({false}) compiler.go:433: 187: goja.loadVal({Reflect.defineProperty(sample, "6", {configurable: false, enumerable: true, writable: true}) must return false}) compiler.go:433: 188: goja.call(3) compiler.go:433: 189: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArrayDefinePropDetachedBuffer (0.00s) === RUN TestTypedArrayDefineProperty compiler.go:433: 0: *goja.bindGlobal(&{[a sample] [] [descriptor0] [] false}) compiler.go:433: 1: goja.resolveVar1(a) compiler.go:433: 2: goja.loadDynamic(Uint8Array) compiler.go:433: 3: goja.loadVal({1}) compiler.go:433: 4: goja._new(1) compiler.go:433: 5: goja._initValueP({}) compiler.go:433: 6: goja.loadDynamic(assert) compiler.go:433: 7: goja.getPropCallee(throws) compiler.go:433: 8: goja.loadDynamic(TypeError) compiler.go:433: 9: *goja.newFunc(&{0xc00017d310 function() { Object.defineProperty(a, "1", {value: 1}); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Object) compiler.go:433: > 2: goja.getPropCallee(defineProperty) compiler.go:433: > 3: goja.loadDynamic(a) compiler.go:433: > 4: goja.loadVal({1}) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadVal({1}) compiler.go:433: > 7: goja.putProp(value) compiler.go:433: > 8: goja.call(3) compiler.go:433: > 9: goja._pop({}) compiler.go:433: > 10: goja._loadUndef({}) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 10: goja.call(2) compiler.go:433: 11: goja._pop({}) compiler.go:433: 12: goja.loadDynamic(assert) compiler.go:433: 13: goja.getPropCallee(sameValue) compiler.go:433: 14: goja.loadDynamic(Reflect) compiler.go:433: 15: goja.getPropCallee(defineProperty) compiler.go:433: 16: goja.loadDynamic(a) compiler.go:433: 17: goja.loadVal({1}) compiler.go:433: 18: goja._newObject({}) compiler.go:433: 19: goja.loadVal({1}) compiler.go:433: 20: goja.putProp(value) compiler.go:433: 21: goja.call(3) compiler.go:433: 22: goja.loadVal({false}) compiler.go:433: 23: goja.loadVal({1}) compiler.go:433: 24: goja.call(3) compiler.go:433: 25: goja._pop({}) compiler.go:433: 26: goja.loadDynamic(assert) compiler.go:433: 27: goja.getPropCallee(throws) compiler.go:433: 28: goja.loadDynamic(TypeError) compiler.go:433: 29: *goja.newFunc(&{0xc00017d360 function() { Object.defineProperty(a, "Infinity", {value: 8}); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Object) compiler.go:433: > 2: goja.getPropCallee(defineProperty) compiler.go:433: > 3: goja.loadDynamic(a) compiler.go:433: > 4: goja.loadVal({Infinity}) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadVal({8}) compiler.go:433: > 7: goja.putProp(value) compiler.go:433: > 8: goja.call(3) compiler.go:433: > 9: goja._pop({}) compiler.go:433: > 10: goja._loadUndef({}) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 30: goja.call(2) compiler.go:433: 31: goja._pop({}) compiler.go:433: 32: goja.loadDynamic(assert) compiler.go:433: 33: goja.getPropCallee(sameValue) compiler.go:433: 34: goja.loadDynamic(Reflect) compiler.go:433: 35: goja.getPropCallee(defineProperty) compiler.go:433: 36: goja.loadDynamic(a) compiler.go:433: 37: goja.loadVal({Infinity}) compiler.go:433: 38: goja._newObject({}) compiler.go:433: 39: goja.loadVal({8}) compiler.go:433: 40: goja.putProp(value) compiler.go:433: 41: goja.call(3) compiler.go:433: 42: goja.loadVal({false}) compiler.go:433: 43: goja.loadVal({Infinity}) compiler.go:433: 44: goja.call(3) compiler.go:433: 45: goja._pop({}) compiler.go:433: 46: goja.loadDynamic(Object) compiler.go:433: 47: goja.getPropCallee(defineProperty) compiler.go:433: 48: goja.loadDynamic(a) compiler.go:433: 49: goja.loadVal({test}) compiler.go:433: 50: goja._newObject({}) compiler.go:433: 51: goja.loadVal({passed}) compiler.go:433: 52: goja.putProp(value) compiler.go:433: 53: goja.call(3) compiler.go:433: 54: goja._pop({}) compiler.go:433: 55: goja.loadDynamic(assert) compiler.go:433: 56: goja.getPropCallee(sameValue) compiler.go:433: 57: goja.loadDynamic(a) compiler.go:433: 58: goja.getProp(test) compiler.go:433: 59: goja.loadVal({passed}) compiler.go:433: 60: goja.loadVal({string property}) compiler.go:433: 61: goja.call(3) compiler.go:433: 62: goja._pop({}) compiler.go:433: 63: goja.loadDynamic(assert) compiler.go:433: 64: goja.getPropCallee(throws) compiler.go:433: 65: goja.loadDynamic(TypeError) compiler.go:433: 66: *goja.newFunc(&{0xc00017d3b0 function() { Object.defineProperty(a, "0", {value: 1, writable: false}); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Object) compiler.go:433: > 2: goja.getPropCallee(defineProperty) compiler.go:433: > 3: goja.loadDynamic(a) compiler.go:433: > 4: goja.loadVal({0}) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: goja.loadVal({1}) compiler.go:433: > 7: goja.putProp(value) compiler.go:433: > 8: goja.loadVal({false}) compiler.go:433: > 9: goja.putProp(writable) compiler.go:433: > 10: goja.call(3) compiler.go:433: > 11: goja._pop({}) compiler.go:433: > 12: goja._loadUndef({}) compiler.go:433: > 13: goja._ret({}) compiler.go:433: 67: goja.loadVal({define non-writable}) compiler.go:433: 68: goja.call(3) compiler.go:433: 69: goja._pop({}) compiler.go:433: 70: goja.loadDynamic(assert) compiler.go:433: 71: goja.getPropCallee(throws) compiler.go:433: 72: goja.loadDynamic(TypeError) compiler.go:433: 73: *goja.newFunc(&{0xc00017d400 function() { Object.defineProperty(a, "0", {get() { return 1; }}); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Object) compiler.go:433: > 2: goja.getPropCallee(defineProperty) compiler.go:433: > 3: goja.loadDynamic(a) compiler.go:433: > 4: goja.loadVal({0}) compiler.go:433: > 5: goja._newObject({}) compiler.go:433: > 6: *goja.newMethod(&{{0xc00017d450 get get() { return 1; } 0 false} 1}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadVal({1}) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 7: *goja.defineMethodKeyed(&{get true}) compiler.go:433: > 8: goja.call(3) compiler.go:433: > 9: goja._pop({}) compiler.go:433: > 10: goja._loadUndef({}) compiler.go:433: > 11: goja._ret({}) compiler.go:433: 74: goja.loadVal({define accessor}) compiler.go:433: 75: goja.call(3) compiler.go:433: 76: goja._pop({}) compiler.go:433: 77: goja.resolveVar1(sample) compiler.go:433: 78: goja.loadDynamic(Uint8Array) compiler.go:433: 79: goja.newArray(2) compiler.go:433: 80: goja.loadVal({42}) compiler.go:433: 81: goja._pushArrayItem({}) compiler.go:433: 82: goja.loadVal({42}) compiler.go:433: 83: goja._pushArrayItem({}) compiler.go:433: 84: goja._new(1) compiler.go:433: 85: goja._initValueP({}) compiler.go:433: 86: goja.loadDynamic(assert) compiler.go:433: 87: goja.getPropCallee(sameValue) compiler.go:433: 88: goja.loadDynamic(Reflect) compiler.go:433: 89: goja.getPropCallee(defineProperty) compiler.go:433: 90: goja.loadDynamic(sample) compiler.go:433: 91: goja.loadVal({0}) compiler.go:433: 92: goja._newObject({}) compiler.go:433: 93: goja.loadVal({8}) compiler.go:433: 94: goja.putProp(value) compiler.go:433: 95: goja.loadVal({true}) compiler.go:433: 96: goja.putProp(configurable) compiler.go:433: 97: goja.loadVal({true}) compiler.go:433: 98: goja.putProp(enumerable) compiler.go:433: 99: goja.loadVal({true}) compiler.go:433: 100: goja.putProp(writable) compiler.go:433: 101: goja.call(3) compiler.go:433: 102: goja.loadVal({true}) compiler.go:433: 103: goja.call(2) compiler.go:433: 104: goja._pop({}) compiler.go:433: 105: goja.loadDynamic(assert) compiler.go:433: 106: goja.getPropCallee(sameValue) compiler.go:433: 107: goja.loadDynamic(sample) compiler.go:433: 108: goja.loadVal({0}) compiler.go:433: 109: goja._getElem({}) compiler.go:433: 110: goja.loadVal({8}) compiler.go:433: 111: goja.loadVal({property value was set}) compiler.go:433: 112: goja.call(3) compiler.go:433: 113: goja._pop({}) compiler.go:433: 114: goja.loadDynamic(Object) compiler.go:433: 115: goja.getPropCallee(getOwnPropertyDescriptor) compiler.go:433: 116: goja.loadDynamic(sample) compiler.go:433: 117: goja.loadVal({0}) compiler.go:433: 118: goja.call(2) compiler.go:433: 119: goja.initGlobalP(descriptor0) compiler.go:433: 120: goja.loadDynamic(assert) compiler.go:433: 121: goja.getPropCallee(sameValue) compiler.go:433: 122: goja.loadDynamic(descriptor0) compiler.go:433: 123: goja.getProp(value) compiler.go:433: 124: goja.loadVal({8}) compiler.go:433: 125: goja.call(2) compiler.go:433: 126: goja._pop({}) compiler.go:433: 127: goja.loadDynamic(assert) compiler.go:433: 128: goja.getPropCallee(sameValue) compiler.go:433: 129: goja.loadDynamic(descriptor0) compiler.go:433: 130: goja.getProp(configurable) compiler.go:433: 131: goja.loadVal({true}) compiler.go:433: 132: goja.loadVal({configurable}) compiler.go:433: 133: goja.call(3) compiler.go:433: 134: goja._pop({}) compiler.go:433: 135: goja.loadDynamic(assert) compiler.go:433: 136: goja.getPropCallee(sameValue) compiler.go:433: 137: goja.loadDynamic(descriptor0) compiler.go:433: 138: goja.getProp(enumerable) compiler.go:433: 139: goja.loadVal({true}) compiler.go:433: 140: goja.call(2) compiler.go:433: 141: goja._pop({}) compiler.go:433: 142: goja.loadDynamic(assert) compiler.go:433: 143: goja.getPropCallee(sameValue) compiler.go:433: 144: goja.loadDynamic(descriptor0) compiler.go:433: 145: goja.getProp(writable) compiler.go:433: 146: goja.loadVal({true}) compiler.go:433: 147: goja.call(2) compiler.go:433: 148: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArrayDefineProperty (0.00s) === RUN TestTypedArrayGetInvalidIndex compiler.go:433: 0: *goja.bindGlobal(&{[TypedArray proto a] [] [] [] false}) compiler.go:433: 1: goja.resolveVar1(TypedArray) compiler.go:433: 2: goja.loadDynamic(Object) compiler.go:433: 3: goja.getPropCallee(getPrototypeOf) compiler.go:433: 4: goja.loadDynamic(Int8Array) compiler.go:433: 5: goja.call(1) compiler.go:433: 6: goja._initValueP({}) compiler.go:433: 7: goja.resolveVar1(proto) compiler.go:433: 8: goja.loadDynamic(TypedArray) compiler.go:433: 9: goja.getProp(prototype) compiler.go:433: 10: goja._initValueP({}) compiler.go:433: 11: goja.loadDynamic(Object) compiler.go:433: 12: goja.getPropCallee(defineProperty) compiler.go:433: 13: goja.loadDynamic(proto) compiler.go:433: 14: goja.loadVal({1}) compiler.go:433: 15: goja._newObject({}) compiler.go:433: 16: *goja.newFunc(&{0xc00017d680 get function() { throw new Error("OrdinaryGet was called!"); } 0 false}) compiler.go:433: > 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: > 1: goja.loadDynamic(Error) compiler.go:433: > 2: goja.loadVal({OrdinaryGet was called!}) compiler.go:433: > 3: goja._new(1) compiler.go:433: > 4: goja._throw({}) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: goja._ret({}) compiler.go:433: 17: goja.putProp(get) compiler.go:433: 18: goja.call(3) compiler.go:433: 19: goja._pop({}) compiler.go:433: 20: goja.resolveVar1(a) compiler.go:433: 21: goja.loadDynamic(Uint8Array) compiler.go:433: 22: goja.loadVal({1}) compiler.go:433: 23: goja._new(1) compiler.go:433: 24: goja._initValueP({}) compiler.go:433: 25: goja.loadDynamic(assert) compiler.go:433: 26: goja.getPropCallee(sameValue) compiler.go:433: 27: goja.loadDynamic(a) compiler.go:433: 28: goja.loadVal({1}) compiler.go:433: 29: goja._getElem({}) compiler.go:433: 30: goja.loadDynamic(undefined) compiler.go:433: 31: goja.call(2) compiler.go:433: 32: goja._pop({}) compiler.go:433: 33: goja.loadDynamic(assert) compiler.go:433: 34: goja.getPropCallee(sameValue) compiler.go:433: 35: goja.loadDynamic(a) compiler.go:433: 36: goja.getProp(1) compiler.go:433: 37: goja.loadDynamic(undefined) compiler.go:433: 38: goja.call(2) compiler.go:433: 39: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestTypedArrayGetInvalidIndex (0.00s) === RUN TestExportArrayBufferToBytes --- PASS: TestExportArrayBufferToBytes (0.00s) === RUN TestTypedArrayExport === RUN TestTypedArrayExport/uint8 === RUN TestTypedArrayExport/uint8-slice === RUN TestTypedArrayExport/int8 === RUN TestTypedArrayExport/uint16 === RUN TestTypedArrayExport/int16 === RUN TestTypedArrayExport/uint32 === RUN TestTypedArrayExport/int32 === RUN TestTypedArrayExport/float32 === RUN TestTypedArrayExport/float64 === RUN TestTypedArrayExport/bigint64 === RUN TestTypedArrayExport/biguint64 --- PASS: TestTypedArrayExport (0.00s) --- PASS: TestTypedArrayExport/uint8 (0.00s) --- PASS: TestTypedArrayExport/uint8-slice (0.00s) --- PASS: TestTypedArrayExport/int8 (0.00s) --- PASS: TestTypedArrayExport/uint16 (0.00s) --- PASS: TestTypedArrayExport/int16 (0.00s) --- PASS: TestTypedArrayExport/uint32 (0.00s) --- PASS: TestTypedArrayExport/int32 (0.00s) --- PASS: TestTypedArrayExport/float32 (0.00s) --- PASS: TestTypedArrayExport/float64 (0.00s) --- PASS: TestTypedArrayExport/bigint64 (0.00s) --- PASS: TestTypedArrayExport/biguint64 (0.00s) === RUN TestTaggedTemplateArgExport --- PASS: TestTaggedTemplateArgExport (0.00s) === RUN TestVM1 --- PASS: TestVM1 (0.00s) === RUN TestEvalVar compiler.go:433: 0: *goja.newFunc(&{0xc0003809b0 test function test() { var a; return eval("var a = 'yes'; var z = 'no'; a;") === "yes" && a === "yes"; } 0 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[ this:1073741824 a:1073741825 arguments:1073741826] 3 0 0 1 true true}) compiler.go:433: > 1: goja._boxThis({}) compiler.go:433: > 2: goja.initStash(0) compiler.go:433: > 3: goja.createArgsMapped(0) compiler.go:433: > 4: goja.initStashP(2) compiler.go:433: > 5: goja.loadDynamicCallee(eval) compiler.go:433: > 6: goja.loadVal({var a = 'yes'; var z = 'no'; a;}) compiler.go:433: > 7: goja.callEval(1) compiler.go:433: > 8: goja.loadVal({yes}) compiler.go:433: > 9: goja._op_strict_eq({}) compiler.go:433: > 10: goja.jne(4) compiler.go:433: > 11: goja.loadStash(1) compiler.go:433: > 12: goja.loadVal({yes}) compiler.go:433: > 13: goja._op_strict_eq({}) compiler.go:433: > 14: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [test] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(test) compiler.go:433: 3: goja.call(0) compiler.go:433: 4: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 1 --- PASS: TestEvalVar (0.00s) === RUN TestResolveMixedStack1 compiler.go:433: 0: *goja.newFunc(&{0xc000380d70 test function test(arg) { var a = 1; var scope = {}; (function() {return arg})(); // move arguments to stash with (scope) { a++; // resolveMixedStack1 here return a + arg; } } 1 false}) compiler.go:433: > 0: *goja.enterFunc(&{map[] 1 2 1 1 true false}) compiler.go:433: > 1: goja.loadVal({1}) compiler.go:433: > 2: goja.initStack1P(1) compiler.go:433: > 3: goja._newObject({}) compiler.go:433: > 4: goja.initStack1P(2) compiler.go:433: > 5: goja._loadUndef({}) compiler.go:433: > 6: *goja.newFunc(&{0xc000380dc0 function() {return arg} 0 false}) compiler.go:433: >> 0: *goja.enterFuncStashless(&{0 0}) compiler.go:433: >> 1: goja.loadStashLex(0) compiler.go:433: >> 2: goja._ret({}) compiler.go:433: > 7: goja.call(0) compiler.go:433: > 8: goja._pop({}) compiler.go:433: > 9: goja.loadStack1(2) compiler.go:433: > 10: goja._enterWith({}) compiler.go:433: > 11: *goja.resolveMixedStack1(&{a 1 0 1 false}) compiler.go:433: > 12: goja._getValue({}) compiler.go:433: > 13: goja._inc({}) compiler.go:433: > 14: goja._putValueP({}) compiler.go:433: > 15: *goja.loadMixedStack1(&{a 1 1 false}) compiler.go:433: > 16: *goja.loadMixedLex(&{arg 16777216 false}) compiler.go:433: > 17: goja._add({}) compiler.go:433: > 18: goja._ret({}) compiler.go:433: > 19: goja._leaveWith({}) compiler.go:433: > 20: goja._loadUndef({}) compiler.go:433: > 21: goja._ret({}) compiler.go:433: 1: *goja.bindGlobal(&{[] [test] [] [] false}) compiler.go:433: 2: goja.loadDynamicCallee(test) compiler.go:433: 3: goja.loadVal({40}) compiler.go:433: 4: goja.call(1) compiler.go:433: 5: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 2 --- PASS: TestResolveMixedStack1 (0.00s) === RUN TestNewArrayFromIterClosed compiler.go:433: 0: *goja.bindGlobal(&{[] [] [] [a other] false}) compiler.go:433: 1: goja.newArray(0) compiler.go:433: 2: goja._iterate({}) compiler.go:433: 3: goja.iterGetNextOrUndef({}) compiler.go:433: 4: goja.initGlobalP(a) compiler.go:433: 5: goja._newArrayFromIter({}) compiler.go:433: 6: goja.initGlobalP(other) compiler.go:433: 7: goja._pop({}) compiler.go:433: 8: goja.loadDynamic(assert) compiler.go:433: 9: goja.getPropCallee(sameValue) compiler.go:433: 10: goja.loadDynamic(a) compiler.go:433: 11: goja.loadDynamic(undefined) compiler.go:433: 12: goja.call(2) compiler.go:433: 13: goja._pop({}) compiler.go:433: 14: goja.loadDynamicCallee(assert) compiler.go:433: 15: goja.loadDynamic(Array) compiler.go:433: 16: goja.getPropCallee(isArray) compiler.go:433: 17: goja.loadDynamic(other) compiler.go:433: 18: goja.call(1) compiler.go:433: 19: goja.call(1) compiler.go:433: 20: goja._pop({}) compiler.go:433: 21: goja.loadDynamic(assert) compiler.go:433: 22: goja.getPropCallee(sameValue) compiler.go:433: 23: goja.loadDynamic(other) compiler.go:433: 24: goja.getProp(length) compiler.go:433: 25: goja.loadVal({0}) compiler.go:433: 26: goja.call(2) compiler.go:433: 27: goja._saveResult({}) compiler_test.go:190: stack size: 0 compiler_test.go:191: stashAllocs: 0 --- PASS: TestNewArrayFromIterClosed (0.00s) === RUN ExampleObject_Export_map --- PASS: ExampleObject_Export_map (0.00s) === RUN ExampleRuntime_ExportTo_mapToMap --- PASS: ExampleRuntime_ExportTo_mapToMap (0.00s) === RUN ExampleRuntime_ExportTo_mapToSlice --- PASS: ExampleRuntime_ExportTo_mapToSlice (0.00s) === RUN ExampleRuntime_ExportTo_mapToTypedSlice --- PASS: ExampleRuntime_ExportTo_mapToTypedSlice (0.00s) === RUN ExampleRuntime_ExportTo_setToMap --- PASS: ExampleRuntime_ExportTo_setToMap (0.00s) === RUN ExampleRuntime_ExportTo_setToSlice --- PASS: ExampleRuntime_ExportTo_setToSlice (0.00s) === RUN ExampleAssertConstructor --- PASS: ExampleAssertConstructor (0.00s) === RUN ExampleTagFieldNameMapper --- PASS: ExampleTagFieldNameMapper (0.00s) === RUN ExampleUncapFieldNameMapper --- PASS: ExampleUncapFieldNameMapper (0.00s) === RUN ExampleRuntime_ExportTo_iterableToSlice --- PASS: ExampleRuntime_ExportTo_iterableToSlice (0.00s) === RUN ExampleRuntime_ExportTo_arrayLikeToSlice --- PASS: ExampleRuntime_ExportTo_arrayLikeToSlice (0.00s) === RUN ExampleObject_Delete --- PASS: ExampleObject_Delete (0.00s) === RUN ExampleObject_GetOwnPropertyNames --- PASS: ExampleObject_GetOwnPropertyNames (0.00s) === RUN ExampleRuntime_Set_lexical --- PASS: ExampleRuntime_Set_lexical (0.00s) === RUN ExampleRuntime_ExportTo_func --- PASS: ExampleRuntime_ExportTo_func (0.00s) === RUN ExampleRuntime_ExportTo_funcThrow --- PASS: ExampleRuntime_ExportTo_funcThrow (0.00s) === RUN ExampleRuntime_ExportTo_funcVariadic --- PASS: ExampleRuntime_ExportTo_funcVariadic (0.00s) === RUN ExampleAssertFunction --- PASS: ExampleAssertFunction (0.00s) === RUN ExampleNewSymbol --- PASS: ExampleNewSymbol (0.00s) === RUN ExampleObject_SetSymbol --- PASS: ExampleObject_SetSymbol (0.00s) === RUN ExampleRuntime_NewArray --- PASS: ExampleRuntime_NewArray (0.00s) === RUN ExampleRuntime_SetParserOptions --- PASS: ExampleRuntime_SetParserOptions (0.00s) === RUN ExampleRuntime_ForOf --- PASS: ExampleRuntime_ForOf (0.00s) PASS ok github.com/dop251/goja 1.018s ? github.com/dop251/goja/ast [no test files] === RUN TestPosition --- PASS: TestPosition (0.00s) === RUN TestFileConcurrency --- PASS: TestFileConcurrency (0.00s) === RUN TestGetSourceFilename --- PASS: TestGetSourceFilename (0.00s) PASS ok github.com/dop251/goja/file 0.003s === RUN TestFToBaseStr --- PASS: TestFToBaseStr (0.00s) === RUN TestDtostr === RUN TestDtostr/#00 === PAUSE TestDtostr/#00 === RUN TestDtostr/#01 === PAUSE TestDtostr/#01 === RUN TestDtostr/#02 === PAUSE TestDtostr/#02 === RUN TestDtostr/#03 === PAUSE TestDtostr/#03 === RUN TestDtostr/#04 === PAUSE TestDtostr/#04 === RUN TestDtostr/#05 === PAUSE TestDtostr/#05 === RUN TestDtostr/#06 === PAUSE TestDtostr/#06 === RUN TestDtostr/#07 === PAUSE TestDtostr/#07 === RUN TestDtostr/#08 === PAUSE TestDtostr/#08 === RUN TestDtostr/#09 === PAUSE TestDtostr/#09 === RUN TestDtostr/#10 === PAUSE TestDtostr/#10 === RUN TestDtostr/#11 === PAUSE TestDtostr/#11 === RUN TestDtostr/#12 === PAUSE TestDtostr/#12 === RUN TestDtostr/#13 === PAUSE TestDtostr/#13 === RUN TestDtostr/#14 === PAUSE TestDtostr/#14 === RUN TestDtostr/#15 === PAUSE TestDtostr/#15 === RUN TestDtostr/#16 === PAUSE TestDtostr/#16 === CONT TestDtostr/#00 === CONT TestDtostr/#09 === CONT TestDtostr/#05 === CONT TestDtostr/#04 === CONT TestDtostr/#08 === CONT TestDtostr/#03 === CONT TestDtostr/#07 === CONT TestDtostr/#06 === CONT TestDtostr/#02 === CONT TestDtostr/#12 === CONT TestDtostr/#01 === CONT TestDtostr/#11 === CONT TestDtostr/#15 === CONT TestDtostr/#10 === CONT TestDtostr/#16 === CONT TestDtostr/#14 === CONT TestDtostr/#13 --- PASS: TestDtostr (0.00s) --- PASS: TestDtostr/#00 (0.00s) --- PASS: TestDtostr/#05 (0.00s) --- PASS: TestDtostr/#09 (0.00s) --- PASS: TestDtostr/#04 (0.00s) --- PASS: TestDtostr/#08 (0.00s) --- PASS: TestDtostr/#07 (0.00s) --- PASS: TestDtostr/#03 (0.00s) --- PASS: TestDtostr/#06 (0.00s) --- PASS: TestDtostr/#02 (0.00s) --- PASS: TestDtostr/#01 (0.00s) --- PASS: TestDtostr/#11 (0.00s) --- PASS: TestDtostr/#12 (0.00s) --- PASS: TestDtostr/#10 (0.00s) --- PASS: TestDtostr/#15 (0.00s) --- PASS: TestDtostr/#16 (0.00s) --- PASS: TestDtostr/#14 (0.00s) --- PASS: TestDtostr/#13 (0.00s) PASS ok github.com/dop251/goja/ftoa 0.005s ? github.com/dop251/goja/ftoa/internal/fast [no test files] === RUN TestLexer --- PASS: TestLexer (0.00s) === RUN TestParserAST --- PASS: TestParserAST (0.00s) === RUN TestParseFile --- PASS: TestParseFile (0.00s) === RUN TestParseFunction --- PASS: TestParseFunction (0.00s) === RUN TestParserErr --- PASS: TestParserErr (0.00s) === RUN TestParser --- PASS: TestParser (0.00s) === RUN TestParseDestruct --- PASS: TestParseDestruct (0.00s) === RUN Test_parseStringLiteral --- PASS: Test_parseStringLiteral (0.00s) === RUN Test_parseNumberLiteral --- PASS: Test_parseNumberLiteral (0.00s) === RUN TestPosition --- PASS: TestPosition (0.00s) === RUN TestExtractSourceMapLine --- PASS: TestExtractSourceMapLine (0.00s) === RUN TestSourceMapOptions --- PASS: TestSourceMapOptions (0.00s) === RUN TestParseTemplateCharacters --- PASS: TestParseTemplateCharacters (0.00s) === RUN TestParseTemplateLiteral --- PASS: TestParseTemplateLiteral (0.00s) === RUN TestParseTemplateLiteralWithTail --- PASS: TestParseTemplateLiteralWithTail (0.00s) === RUN TestRegExp --- PASS: TestRegExp (0.00s) === RUN TestTransformRegExp --- PASS: TestTransformRegExp (0.00s) PASS ok github.com/dop251/goja/parser 0.008s ? github.com/dop251/goja/token [no test files] === RUN TestString_AsUtf16 --- PASS: TestString_AsUtf16 (0.00s) PASS ok github.com/dop251/goja/unistring 0.004s create-stamp debian/debhelper-build-stamp dh_testroot -O--buildsystem=golang dh_prep -O--buildsystem=golang dh_auto_install --destdir=debian/golang-github-dop251-goja-dev/ -O--buildsystem=golang dh_installdocs -O--buildsystem=golang dh_installchangelogs -O--buildsystem=golang dh_installsystemduser -O--buildsystem=golang dh_lintian -O--buildsystem=golang dh_perl -O--buildsystem=golang dh_link -O--buildsystem=golang dh_strip_nondeterminism -O--buildsystem=golang dh_compress -O--buildsystem=golang dh_fixperms -O--buildsystem=golang dh_missing -O--buildsystem=golang dh_installdeb -O--buildsystem=golang dh_golang -O--buildsystem=golang dh_gencontrol -O--buildsystem=golang dpkg-gencontrol: warning: Depends field of package golang-github-dop251-goja-dev: substitution variable ${shlibs:Depends} used, but is not defined dh_md5sums -O--buildsystem=golang dh_builddeb -O--buildsystem=golang dpkg-deb: building package 'golang-github-dop251-goja-dev' in '../golang-github-dop251-goja-dev_0.0~git20250630.0.58d95d8-1_all.deb'. dpkg-genbuildinfo --build=binary -O../golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1_amd64.buildinfo dpkg-genchanges --build=binary -O../golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1_amd64.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration 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/3109515 and its subdirectories I: Current time: Tue Sep 22 06:36:06 -12 2026 I: pbuilder-time-stamp: 1790102166 Wed Aug 20 12:13:07 UTC 2025 I: 1st build successful. Starting 2nd build on remote node infom01-amd64.debian.net. Wed Aug 20 12:13:07 UTC 2025 I: Preparing to do remote build '2' on infom01-amd64.debian.net. Wed Aug 20 12:14:45 UTC 2025 I: Deleting $TMPDIR on infom01-amd64.debian.net. Wed Aug 20 12:14:45 UTC 2025 I: golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1_amd64.changes: Format: 1.8 Date: Sun, 17 Aug 2025 11:02:55 -0500 Source: golang-github-dop251-goja Binary: golang-github-dop251-goja-dev Architecture: all Version: 0.0~git20250630.0.58d95d8-1 Distribution: unstable Urgency: medium Maintainer: Debian Go Packaging Team Changed-By: Stephen Gelman Description: golang-github-dop251-goja-dev - ECMAScript 5.1(+) implementation written in Go Closes: 1106271 Changes: golang-github-dop251-goja (0.0~git20250630.0.58d95d8-1) unstable; urgency=medium . * Team upload. * New upstream release (Closes: #1106271) * Update debhelper to 13 * Update Standards-Version to 4.7.2 * Update copyright dates * Small lintian-overrides cleanup Checksums-Sha1: 1e1674158361a80e159b7ee7b5fc206cfd1562c7 301188 golang-github-dop251-goja-dev_0.0~git20250630.0.58d95d8-1_all.deb 80b5b0febe0f98ed89753e7111f7fe061e42e1c1 5535 golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1_amd64.buildinfo Checksums-Sha256: 7bc706bf0884bf29d1f5c8de3f523c17b225e42e01542b1403a9fdb6ffd497cf 301188 golang-github-dop251-goja-dev_0.0~git20250630.0.58d95d8-1_all.deb e4454c63e585388f666174e01ace04ae46edc785ba7d44af1ab7fb45dc93a990 5535 golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1_amd64.buildinfo Files: d2f7ccc5ba795a7b7f823492e8069b59 301188 golang optional golang-github-dop251-goja-dev_0.0~git20250630.0.58d95d8-1_all.deb 9c8bf8712d33b5deaa5e9dd145520244 5535 golang optional golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1_amd64.buildinfo Wed Aug 20 12:14:46 UTC 2025 I: diffoscope 303 will be used to compare the two builds: Running as unit: rb-diffoscope-amd64_36-77200.service; invocation ID: c639004549294246bf3d36e847855941 # Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.OAhwcQVz/golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.OAhwcQVz/golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.OAhwcQVz/golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.OAhwcQVz/b1/golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1_amd64.changes /srv/reproducible-results/rbuild-debian/r-b-build.OAhwcQVz/b2/golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1_amd64.changes ## command (total time: 0.000s) 0.000s 1 call cmp (internal) ## has_same_content_as (total time: 0.000s) 0.000s 1 call diffoscope.comparators.binary.FilesystemFile ## main (total time: 0.003s) 0.003s 2 calls outputs 0.000s 1 call cleanup Finished with result: success Main processes terminated with: code=exited, status=0/SUCCESS Service runtime: 210ms CPU time consumed: 174ms Memory peak: 18.7M (swap: 0B) Wed Aug 20 12:15:35 UTC 2025 I: diffoscope 303 found no differences in the changes files, and a .buildinfo file also exists. Wed Aug 20 12:15:35 UTC 2025 I: golang-github-dop251-goja from forky built successfully and reproducibly on amd64. Wed Aug 20 12:15:36 UTC 2025 I: Removing signed golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1_amd64.buildinfo.asc files: removed './b1/golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1_amd64.buildinfo.asc' removed './b2/golang-github-dop251-goja_0.0~git20250630.0.58d95d8-1_amd64.buildinfo.asc'