Skip to content

Meta: Upgrade ESMeta to v0.8.1 - #3962

Open
arcde40 wants to merge 2 commits into
tc39:mainfrom
arcde40:update-esmeta
Open

Meta: Upgrade ESMeta to v0.8.1#3962
arcde40 wants to merge 2 commits into
tc39:mainfrom
arcde40:update-esmeta

Conversation

@arcde40

@arcde40 arcde40 commented Aug 28, 2026

Copy link
Copy Markdown

This PR updates the version of ESMeta to v0.8.0 with the following key updates:

This version removes SnapToInteger from esmeta-ignore.json, but newly adds five algorithms:

  • BigIntBitwiseOp
  • DecimalEscape[0,1].CapturingGroupNumber
  • INTRINSICS.Function.prototype.bind
  • TimeString
  • TimeZoneString

All of them are false alarms in newly supported features, caused by a limitation in the current type inference: integer and range constraints are over-approximated to Math through arithmetic operations. For example, in BigIntBitwiseOp, the arguments to BinaryAnd/BinaryOr/BinaryXor are always 0 or 1 by modulo 2, but inferred as Math rather than Int[0, 1].

@gibson042 gibson042 added the ready to merge Editors believe this PR needs no further reviews, and is ready to land. label Aug 28, 2026
@ljharb ljharb added meta request preview ask the bot to trigger a PR preview labels Aug 29, 2026
@ljharb

ljharb commented Aug 29, 2026

Copy link
Copy Markdown
Member

@arcde40 would you please register as a contributor?

@github-actions github-actions Bot removed the request preview ask the bot to trigger a PR preview label Aug 29, 2026
@github-actions

Copy link
Copy Markdown

The rendered spec preview for this PR is available as a single page at https://tc39.es/ecma262/pr/3962 and as multiple pages at https://tc39.es/ecma262/pr/3962/multipage .

@jhnaldo

jhnaldo commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

The esmeta typecheck failure here comes from a type inference bug in ESMeta v0.8.0: integer types were over-approximated to Math, so ten spurious alarms cascaded out of ToAbsoluteIndex, ToClampedIndex, and ArraySpeciesCreate. es-meta/esmeta#366 fixes it, released as v0.8.1, and all ten alarms are gone, so none of them need an esmeta-ignore.json entry.

@arcde40 could you update this PR to v0.8.1? It is three lines:

--- a/.github/workflows/esmeta-installer/action.yml
+++ b/.github/workflows/esmeta-installer/action.yml
@@ -13,8 +13,8 @@ runs:
     - name: set esmeta version and path
       shell: bash
       run: |
-        # v0.8.0
-        echo "ESMETA_VERSION=12e35a2478d9553ebc64d4d79d4b8dd57df973c6" >> $GITHUB_ENV
+        # v0.8.1
+        echo "ESMETA_VERSION=1db8ac10c6fb57d81dbaafbb3648440fa8f8be01" >> $GITHUB_ENV
         echo "ESMETA_HOME=vendor/esmeta" >> $GITHUB_ENV
--- a/esmeta-ignore.json
+++ b/esmeta-ignore.json
@@ -12,7 +12,7 @@
   "GetViewByteLength",
-  "INTRINSICS.Function.prototype.bind",
+  "IncrementModuleAsyncEvaluationCount",
   "Record[SourceTextModuleRecord].ExecuteModule",

INTRINSICS.Function.prototype.bind type-checks on the current base, so its entry is dropped (the failing job asks for that too). IncrementModuleAsyncEvaluationCount replaces it: another false alarm of the same class, where a non-negative count is inferred as Int instead of Int[0+].

Please also retitle the PR and the commit message to v0.8.1.

@linusg linusg removed the ready to merge Editors believe this PR needs no further reviews, and is ready to land. label Aug 29, 2026
arcde40 added a commit to arcde40/ecma262 that referenced this pull request Aug 30, 2026
@arcde40 arcde40 changed the title Meta: Upgrade ESMeta to v0.8.0 Meta: Upgrade ESMeta to v0.8.1 Aug 30, 2026
@arcde40

arcde40 commented Aug 30, 2026

Copy link
Copy Markdown
Author

Thanks for the review! I've updated ESMeta to v0.8.1 and submitted the contributor registration.

Sorry for the noise earlier. I accidentally left some merge conflict markers in and force-pushed a fix, so it should be clean now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants