Skip to content

feat(wintertc): migrate abort, encoding and url from boa_runtime - #5463

Open
KaustubhOG wants to merge 3 commits into
boa-dev:mainfrom
KaustubhOG:feat/wintertc-migrate-encoding-url-abort
Open

feat(wintertc): migrate abort, encoding and url from boa_runtime#5463
KaustubhOG wants to merge 3 commits into
boa-dev:mainfrom
KaustubhOG:feat/wintertc-migrate-encoding-url-abort

Conversation

@KaustubhOG

Copy link
Copy Markdown
Contributor

Part of the TC55 migration (#4988), following the move + re-export pattern from #5418.

Clubs the three remaining standalone modules, which are mutually independent and each a mechanical move. They are three separate commits, so I can split them into individual PRs if you prefer. After this, fetch is the only module left.

Changes:

Line counts (before and after, in both locations):

File boa_runtime (before) boa_wintertc before boa_wintertc after
abort/mod.rs 236 (deleted) 23 (stub) 242
abort/tests.rs 327 (deleted) 0 (did not exist) 327
encoding/mod.rs (was text/mod.rs) 268 (deleted) 27 (stub) 280
encoding/encodings.rs 81 (deleted) 0 (did not exist) 81
encoding/tests.rs 478 (deleted) 0 (did not exist) 478
url/mod.rs (was url.rs) 247 (deleted) 25 (stub) 268
url/tests.rs 113 (deleted) 0 (did not exist) 113

Moves `abort` into `boa_wintertc` following the move + re-export pattern
established by boa-dev#5418, and points `boa_runtime` at it.

The module is unconditional in `boa_wintertc` — `AbortController` and
`AbortSignal` are TC55 APIs in their own right, so they should not depend on
the `fetch` feature. `boa_runtime` keeps its historical `fetch` gate on the
re-export so its public API is unchanged.
Moves `boa_runtime::text` into `boa_wintertc::encoding`, the name the TC55
skeleton reserved for the Encoding Standard APIs, and points `boa_runtime` at
it. `boa_runtime::text` stays as a re-export under its historical name, so the
public API is unchanged.

`bytemuck` moves to `boa_wintertc` along with the module (it was its only
user), as does the `test-case` dev-dependency.
Moves `url` into `boa_wintertc` and points `boa_runtime` at it. The only
addition to the module is a free `register` entry point wrapping
`Url::register`, matching the signature `boa_wintertc::register` expects.

The `url` crate moves with the module, so `boa_runtime`'s `url` feature now
just forwards to `boa_wintertc/url`. It stays a dev-dependency of
`boa_runtime` because the `fetch` e2e tests use it directly.
@KaustubhOG
KaustubhOG requested a review from a team as a code owner July 26, 2026 19:55
@github-actions github-actions Bot added the Waiting On Review Waiting on reviews from the maintainers label Jul 26, 2026
@github-actions github-actions Bot added this to the v1.0.0 milestone Jul 26, 2026
@github-actions github-actions Bot added C-Dependencies Pull requests that update a dependency file C-Tests Issues and PRs related to the tests. C-Runtime Issues and PRs related to Boa's runtime features labels Jul 26, 2026
@github-actions

Copy link
Copy Markdown

Test262 conformance changes

Test result main count PR count difference
Total 53,125 53,125 0
Passed 51,073 51,073 0
Ignored 1,482 1,482 0
Failed 570 570 0
Panics 0 0 0
Conformance 96.14% 96.14% 0.00%

Tested main commit: 4fc75c6ae9d85f2b8065c6716f88e9b35318438c
Tested PR commit: 1fdc24f138f360050d789f8c9454822a4f7a0b39
Compare commits: 4fc75c6...1fdc24f

@codecov

codecov Bot commented Jul 26, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 88.23529% with 18 lines in your changes missing coverage. Please review.
✅ Project coverage is 62.89%. Comparing base (6ddc2b4) to head (1fdc24f).
⚠️ Report is 1012 commits behind head on main.

Files with missing lines Patch % Lines
core/wintertc/src/abort/mod.rs 88.88% 9 Missing ⚠️
core/wintertc/src/encoding/mod.rs 86.95% 9 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##             main    #5463       +/-   ##
===========================================
+ Coverage   47.24%   62.89%   +15.64%     
===========================================
  Files         476      527       +51     
  Lines       46892    59020    +12128     
===========================================
+ Hits        22154    37120    +14966     
+ Misses      24738    21900     -2838     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Comment thread core/runtime/src/lib.rs
Comment on lines +100 to +108
//! - `abort` — `AbortController` and `AbortSignal` (requires the `fetch` feature)
//! - [`base64`] — `atob` and `btoa`
//! - [`clone`] — `structuredClone`
//! - [`console`] — the `console` object
//! - [`microtask`] — `queueMicrotask`
//! - [`interval`] — the timer APIs (`setTimeout`, `clearTimeout`, `setInterval`, `clearInterval`),
//! kept under their historical `interval` name
//! - [`microtask`] — `queueMicrotask`
//! - [`text`] — `TextEncoder` and `TextDecoder`, kept under their historical `text` name
//! - `url` — the `URL` class (requires the `url` feature)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing doc links for url and abort. Is that intentional?

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

Labels

C-Dependencies Pull requests that update a dependency file C-Runtime Issues and PRs related to Boa's runtime features C-Tests Issues and PRs related to the tests. Waiting On Review Waiting on reviews from the maintainers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants