Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependency of async-gc helper on cleanupSome functionality #3920

Open
ptomato opened this issue Sep 12, 2023 · 1 comment
Open

Dependency of async-gc helper on cleanupSome functionality #3920

ptomato opened this issue Sep 12, 2023 · 1 comment

Comments

@ptomato
Copy link
Contributor

ptomato commented Sep 12, 2023

The async-gc helper uses FinalizationRegistry.prototype.cleanupSome. Probably at the time the helper was written (2019), this feature was part of a stage 3 proposal, but it was split off, demoted to stage 2 in the meantime, and stalled. It's probably not desirable to have part of the test harness depend on a stage 2 proposal which may only slowly (if ever) advance to stage 3.

Outside of the tests for FinalizationRegistry.prototype.cleanupSome itself, the helper is used in 3 tests:

It's not clear to me whether any of the tests that use this harness helper are actually regularly executed. test262.fyi results show only passing results for SpiderMonkey, Serenity LibJS, and GraalVM. It could be that any test using this helper is in practice a coverage gap for most implementations due to being skipped, or marked as expected-fail.

I don't know about the official implementation status of cleanupSome, but as far as I can tell from looking for its presence in a recently updated esvu installation:

  • engine262: feature flag exists but does not define method
  • JavaScriptCore: no
  • QuickJS: no
  • Serenity LibJS: yes
  • SpiderMonkey: yes
  • V8: behind flag
  • XS: yes

The resolution of this issue should be to create a PR removing cleanupSome from the test corpus, since it is stage 2, and seek feedback from implementors on whether they would miss it. Also, investigate whether the functionality being tested in those remaining 3 tests can also be tested without cleanupSome, and whether any changes to the interpreting requirements would be necessary to do so, and include such changes in the PR if possible.

@ptomato
Copy link
Contributor Author

ptomato commented Oct 2, 2023

The cleanupSome proposal has been withdrawn as of the 2023-09 TC39 meeting.

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

No branches or pull requests

1 participant