Skip to content

feat: implement Ephemeron API and Trace trait additions for boa integration - #94

Open
shruti2522 wants to merge 3 commits into
boa-dev:mainfrom
shruti2522:api
Open

feat: implement Ephemeron API and Trace trait additions for boa integration#94
shruti2522 wants to merge 3 commits into
boa-dev:mainfrom
shruti2522:api

Conversation

@shruti2522

@shruti2522 shruti2522 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

related to boa-dev/boa#5460, it uncovered some major api gap in our oscars branded api, this pr aims to fill those gaps.
Implement some missing APIs and trait bounds needed to get boa compiling against oscars's null collector.

  • Ephemeron APIs: added key() value(), and has_value() so boa can build a bridging WeakMap implementation. these currently just act as wrappers that always return Some since the null collector never frees anything. I have added TODOs to hook these into the finalization pass when we move to mark_sweep_branded.
  • relaxed the trait bounds on Ephemeron's key type and PoolPointer to ?Sized to support dyn Trace objects in boa_engine
  • added Trace implementations for std::sync::atomic::Atomic* tuples, and various std collections
  • added optional git/crates.io dependencies for boa_string1, icu_locale_core, either and arrayvec. Since orphan rules prevent boa_engine from implementing oscars::Trace on foreign types, we have to implement them here behind feature flags

@shruti2522
shruti2522 marked this pull request as ready for review July 27, 2026 21:45
@shruti2522
shruti2522 marked this pull request as draft July 27, 2026 21:45
@shruti2522
shruti2522 marked this pull request as ready for review July 28, 2026 17:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant