Skip to content

conformance: test_gap_6301_event_target_subclass regressed on main (untriaged, inside required conformance-smoke-complete) — fixed 07-13, red again by 07-31 #7178

Closed

Description

@proggeramlug

test_gap_6301_event_target_subclass is failing on main (pass -> parity_fail per the harness log) and is not in test-parity/known_failures.json — an untriaged regression of a test that was fixed on 2026-07-13 by 81ab8e5d6 (issue #6301, native-base EventTarget subclassing).

Why it matters more than a normal red

It fails inside conformance-smoke (4), which feeds conformance-smoke-complete — a required status check. An untriaged regression in a required context blocks every PR (or trains people to admin-bypass, which is worse).

Independent confirmations

What's needed

  1. Bisect between 81ab8e5d6 (fix landed, green) and ff85fd483 (confirmed red) — the window is ~2.5 weeks of merges.
  2. Native-base subclassing is a documented weak family (5 defects, keyed on literal extends names) — the regression likely rode in on one of the globalThis/proto/builtin-install changes in that window.
  3. Until fixed: either triage into known_failures.json with provenance (issue # + date, per the test-parity: audit known_failures.json — every entry needs an issue # and date #797 skip-list policy) to unblock the required context honestly, or fix it. Leaving it untriaged-and-red in a required context is the worst of both.

Activity

  1. proggeramlug commented on Aug 7, 2026

    @proggeramlug
    ContributorAuthor

    Already fixed — no further code change needed

    This is the same regression as #7518 (same failing gap test, same class Bus extends EventTarget shape). It was fixed and closed by #7520 on 2026-08-06 (6a051ec18), five days after this issue was opened. #7520 closed #7518 but never closed this one.

    Root cause (from #7520 / #7518)

    c6ed8175d (#6853, 2026-07-30) added "EventTarget" to builtin_constructor_spec_length so EventTarget.length === 0 like Node. That flipped an incidental gate in try_dispatch_value_called_proto_method: constructors that share the globalThis no-op thunk were only excluded because they had no recorded .length. With a length recorded, js_fetch_or_value_super(<EventTarget>, this, …) re-dispatched as bus.EventTarget() and threw TypeError: EventTarget is not a function.

    Fix on main

    #7520 makes the exclusion explicit and table-driven via is_global_this_builtin_constructor_name / GLOBAL_THIS_BUILTIN_CONSTRUCTORS, and adds a per-PR unit test (global_builtin_constructor_values_are_not_redispatched_by_name) so a future .length addition cannot re-open the hole.

    Re-verified on current origin/main (6fb58cdea)

    • test_gap_6301_event_target_subclass is byte-identical to node --experimental-strip-types (Node 26.5.1), exit 0 on both sides.
    • Unit test global_builtin_constructor_values_are_not_redispatched_by_name passes.
    • Not present in test-parity/known_failures.json.

    Closing as completed. No PR required.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions