Skip to content

feat(promise): implement Promise.allKeyed and Promise.allSettledKeyed#4996

Merged
jedel1043 merged 9 commits intoboa-dev:mainfrom
xcb3d:feat/promise-allkeyed-allsettledkeyed
Mar 13, 2026
Merged

feat(promise): implement Promise.allKeyed and Promise.allSettledKeyed#4996
jedel1043 merged 9 commits intoboa-dev:mainfrom
xcb3d:feat/promise-allkeyed-allsettledkeyed

Conversation

@xcb3d
Copy link
Copy Markdown
Contributor

@xcb3d xcb3d commented Mar 11, 2026

This Pull Request closes the 12 ignored await-dictionary Test262 tests.

It changes the following:

  • Implement Promise.allKeyed() static method per the TC39 await-dictionary proposal
  • Implement Promise.allSettledKeyed() static method per the TC39 await-dictionary proposal
  • Add shared PerformPromiseAllKeyed algorithm with KeyedVariant enum (All / AllSettled)
  • Add CreateKeyedPromiseCombinatorResultObject helper function
  • Bump CONSTRUCTOR_STORAGE_SLOTS from 10 to 12
  • Remove "await-dictionary" from ignored features in test262_config.toml

@xcb3d xcb3d requested a review from a team as a code owner March 11, 2026 09:48
Implement the TC39 await-dictionary proposal (Promise.allKeyed and
Promise.allSettledKeyed) with shared PerformPromiseAllKeyed algorithm.

- Add Promise.allKeyed() and Promise.allSettledKeyed() static methods
- Implement PerformPromiseAllKeyed with KeyedVariant enum (All/AllSettled)
- Add CreateKeyedPromiseCombinatorResultObject helper
- Bump CONSTRUCTOR_STORAGE_SLOTS from 10 to 12
- Remove await-dictionary from ignored features in test262_config.toml
@xcb3d xcb3d force-pushed the feat/promise-allkeyed-allsettledkeyed branch from dc295b9 to 455b78a Compare March 11, 2026 09:53
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 11, 2026

Test262 conformance changes

Test result main count PR count difference
Total 52,963 52,963 0
Passed 49,902 49,914 +12
Ignored 2,222 2,210 -12
Failed 839 839 0
Panics 0 0 0
Conformance 94.22% 94.24% +0.02%
Fixed tests (12):
test/built-ins/Promise/allKeyed/length.js (previously Ignored)
test/built-ins/Promise/allKeyed/extensible.js (previously Ignored)
test/built-ins/Promise/allKeyed/proto.js (previously Ignored)
test/built-ins/Promise/allKeyed/name.js (previously Ignored)
test/built-ins/Promise/allKeyed/not-a-constructor.js (previously Ignored)
test/built-ins/Promise/allKeyed/prop-desc.js (previously Ignored)
test/built-ins/Promise/allSettledKeyed/length.js (previously Ignored)
test/built-ins/Promise/allSettledKeyed/extensible.js (previously Ignored)
test/built-ins/Promise/allSettledKeyed/proto.js (previously Ignored)
test/built-ins/Promise/allSettledKeyed/name.js (previously Ignored)
test/built-ins/Promise/allSettledKeyed/not-a-constructor.js (previously Ignored)
test/built-ins/Promise/allSettledKeyed/prop-desc.js (previously Ignored)

Tested main commit: 3c495f236c7598330f48c160b9697d71a29915df
Tested PR commit: cc74b2a75ceb51d89c3a7c3e2aa9e387c42d4c22
Compare commits: 3c495f2...cc74b2a

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 11, 2026

Codecov Report

❌ Patch coverage is 3.26797% with 148 lines in your changes missing coverage. Please review.
✅ Project coverage is 58.45%. Comparing base (6ddc2b4) to head (cc74b2a).
⚠️ Report is 825 commits behind head on main.

Files with missing lines Patch % Lines
core/engine/src/builtins/promise/mod.rs 3.26% 148 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##             main    #4996       +/-   ##
===========================================
+ Coverage   47.24%   58.45%   +11.21%     
===========================================
  Files         476      559       +83     
  Lines       46892    61609    +14717     
===========================================
+ Hits        22154    36016    +13862     
- Misses      24738    25593      +855     

☔ View full report in Codecov by Sentry.
📢 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.

@jedel1043
Copy link
Copy Markdown
Member

All of this needs to be gated behind the experimental feature.

@jedel1043 jedel1043 added A-Enhancement New feature or request C-Builtins PRs and Issues related to builtins/intrinsics labels Mar 12, 2026
@jedel1043 jedel1043 added this to the v1.0.0 milestone Mar 12, 2026
@jedel1043 jedel1043 added the Waiting On Author Waiting on PR changes from the author label Mar 12, 2026
@xcb3d xcb3d requested a review from jedel1043 March 13, 2026 04:20
Copy link
Copy Markdown
Member

@jedel1043 jedel1043 left a comment

Choose a reason for hiding this comment

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

Thank you for adding this feature!

@jedel1043 jedel1043 added this pull request to the merge queue Mar 13, 2026
@jedel1043 jedel1043 removed the Waiting On Author Waiting on PR changes from the author label Mar 13, 2026
Merged via the queue into boa-dev:main with commit 250d08e Mar 13, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Enhancement New feature or request C-Builtins PRs and Issues related to builtins/intrinsics

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants