Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Changelog

## [0.6.1] - 2026-10-15

### Fixed
- Class fields of a class with an implicit constructor were not initialized when a subclass constructed it (`class B extends A { x = 1 }`, `class C extends B {}`, `new C().x` was `undefined`). Effect's `Data.TaggedError` classes lost their `_tag`, so `Effect.catchTag` never matched
- A short-circuited optional chain stored in a binding, passed as an argument or returned (`const v = a?.b`) was not strictly equal to `undefined` when read from code compiled by the bytecode VM, so `v === undefined` was `false`
- Parentheses now end an optional chain. A short-circuit of `a?.b` no longer skipped the rest of `(a?.b).c`, `(a?.b)()` or `delete (a?.b).c`, which now throw a `TypeError` like V8. `` (a?.b)`t` ``, `(a?.b).c = 1` and `(a?.b).c++` were rejected as syntax errors and now parse
- Optional chains are rejected as destructuring assignment targets (`[a?.b] = []`, `({ x: (a?.b) } = {})`), as the spec requires
- A method call on `null` or `undefined` in the tree-walker said "Cannot convert undefined to object"; it now says "Cannot read properties of undefined (reading 'name')", like V8 and the bytecode VM
- `EstreeSerializer` emits ESTree's `ChainExpression` around each optional chain, ending where parentheses close it, matching `@babel/parser`'s `estree` output

### Added
- Effect 4 (`effect` 4.0.5) in the popular-packages suite, byte-equal with Node: 205 libraries

## [0.6.0] - 2026-10-15

### Added
Expand Down
48 changes: 24 additions & 24 deletions COMPAT.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
Generated from a completed `test262` pass. Do not edit by hand.

- Refresh: `./bin/compat-report`
- Snapshot time: `2026-10-15T07:00:43+00:00`
- Chunk size: `25`
- Snapshot time: `2026-10-15T09:00:12+00:00`
- Chunk size: `250`
- Timeout: `300s`
- Jobs: `4`
- Jobs: `8`
- Groups: `159`
- Test files: `50506`
- Git: `main` @ `73b9ef12` (dirty)
- Git: `test/popular-effect-4` @ `79d1bf6` (dirty)

## Summary

Expand Down Expand Up @@ -196,26 +196,26 @@ Generated from a completed `test262` pass. Do not edit by hand.

| Group | Kind | Duration | Files | Sample |
|---|---|---:|---:|---|
| staging/sm | NORMAL | 97.210s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-3-of-8.js` |
| staging/sm | NORMAL | 97.063s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-4-of-8.js` |
| staging/sm | NORMAL | 96.587s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-7-of-8.js` |
| staging/sm | NORMAL | 95.757s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-2-of-8.js` |
| staging/sm | NORMAL | 94.823s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-8-of-8.js` |
| staging/sm | NORMAL | 89.580s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-5-of-8.js` |
| staging/sm | NORMAL | 76.576s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-1-of-8.js` |
| staging/sm | NORMAL | 74.883s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-6-of-8.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 55.091s | 5 | `test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Cased_Letter.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Close_Punctuation.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Connector_Punctuation.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Control.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Currency_Symbol.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 54.946s | 5 | `test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Mark.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Math_Symbol.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Letter.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Symbol.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Nonspacing_Mark.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 54.752s | 5 | `test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Punctuation.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Paragraph_Separator.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Private_Use.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Punctuation.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 54.349s | 5 | `test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Separator.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Space_Separator.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Spacing_Mark.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 53.598s | 5 | `test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Dash_Punctuation.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Decimal_Number.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Enclosing_Mark.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Final_Punctuation.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Format.js` |
| staging/sm | NORMAL | 53.299s | 1 | `test262/test/staging/sm/TypedArray/sort_large_countingsort.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 52.619s | 5 | `test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Number.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Open_Punctuation.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Number.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 51.270s | 5 | `test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Initial_Punctuation.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter_Number.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Line_Separator.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Lowercase_Letter.js` |
| staging/sm | NORMAL | 47.068s | 1 | `test262/test/staging/sm/TypedArray/element-setting-converts-using-ToNumber.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 46.011s | 5 | `test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Le.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Tham.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Viet.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Takri.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tamil.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 45.346s | 5 | `test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sinhala.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sogdian.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sora_Sompeng.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Soyombo.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sundanese.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 45.069s | 5 | `test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Marchen.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Masaram_Gondi.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Medefaidrin.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meetei_Mayek.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mende_Kikakui.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 242.052s | 104 | `test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Yi.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Zanabazar_Square.js`<br>...<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nag_Mundari.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nandinagari.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 187.951s | 105 | `test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_New_Tai_Lue.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Newa.js`<br>...<br>`test262/test/built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-u.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 159.097s | 62 | `test262/test/built-ins/RegExp/property-escapes/generated/ASCII.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/ASCII_Hex_Digit.js`<br>...<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Titlecase_Letter.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 158.016s | 63 | `test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Uppercase_Letter.js`<br>...<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Glagolitic.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gothic.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 156.964s | 62 | `test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Grantha.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Greek.js`<br>...<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Newa.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Nko.js` |
| built-ins/RegExp/property-escapes/generated | NORMAL | 155.852s | 63 | `test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Nushu.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Nyiakeng_Puachue_Hmong.js`<br>...<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Warang_Citi.js`<br>`test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Yezidi.js` |
| staging/sm | NORMAL | 66.263s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-3-of-8.js` |
| staging/sm | NORMAL | 65.741s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-7-of-8.js` |
| staging/sm | NORMAL | 65.501s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-2-of-8.js` |
| staging/sm | NORMAL | 64.831s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-5-of-8.js` |
| staging/sm | NORMAL | 64.287s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-8-of-8.js` |
| staging/sm | NORMAL | 56.967s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-4-of-8.js` |
| staging/sm | NORMAL | 55.580s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-6-of-8.js` |
| staging/sm | NORMAL | 54.320s | 250 | `test262/test/staging/sm/Proxy/regress-bug1062349.js`<br>`test262/test/staging/sm/Proxy/regress-bug950407.js`<br>...<br>`test262/test/staging/sm/TypedArray/object-defineproperty.js`<br>`test262/test/staging/sm/TypedArray/of.js` |
| staging/sm | NORMAL | 50.157s | 1 | `test262/test/staging/sm/Date/dst-offset-caching-1-of-8.js` |
| intl402 | NORMAL | 47.529s | 22 | `test262/test/intl402/constructors-string-and-single-element-array.js`<br>`test262/test/intl402/constructors-taint-Object-prototype-2.js`<br>...<br>`test262/test/intl402/supportedLocalesOf-throws-if-element-not-string-or-object.js`<br>`test262/test/intl402/supportedLocalesOf-unicode-extensions-ignored.js` |
| staging/sm | NORMAL | 42.604s | 250 | `test262/test/staging/sm/extensions/function-caller-skips-eval-frames.js`<br>`test262/test/staging/sm/extensions/function-properties.js`<br>...<br>`test262/test/staging/sm/regress/regress-554955-6.js`<br>`test262/test/staging/sm/regress/regress-559402-1.js` |
| staging/sm | NORMAL | 40.491s | 250 | `test262/test/staging/sm/TypedArray/prototype-constructor-identity.js`<br>`test262/test/staging/sm/TypedArray/seal-and-freeze.js`<br>...<br>`test262/test/staging/sm/extensions/extension-methods-reject-null-undefined-this.js`<br>`test262/test/staging/sm/extensions/for-loop-with-lexical-declaration-and-nested-function-statement.js` |
| staging/sm | NORMAL | 36.177s | 1 | `test262/test/staging/sm/TypedArray/sort_large_countingsort.js` |
| built-ins/decodeURI | NORMAL | 32.058s | 1 | `test262/test/built-ins/decodeURI/S15.1.3.1_A2.5_T1.js` |

## Runner Caveats

Expand Down
Loading
Loading