Skip to content

Add completed PropertyDescriptor type#5284

Open
HalidOdat wants to merge 2 commits into
boa-dev:mainfrom
HalidOdat:feature/complete-property-descriptor
Open

Add completed PropertyDescriptor type#5284
HalidOdat wants to merge 2 commits into
boa-dev:mainfrom
HalidOdat:feature/complete-property-descriptor

Conversation

@HalidOdat

Copy link
Copy Markdown
Member

Refactors property descriptor handling by replacing the builder-style PropertyDescriptor with a more explicit CompletePropertyDescriptor enum. This makes things clearer and more type-safe. The spec always stores complete property descriptors in objects.

Since descriptors are always complete, this allows us to skip some checks and may allow the compiler to better optimize the code. Additionally this also reduces the memory usage for sparse generic arrays, CompletePropertyDescriptor is 24 bytes vs. PropertyDescriptor 40 bytes (64bit arch).

@github-actions github-actions Bot added C-Tests Issues and PRs related to the tests. C-Builtins PRs and Issues related to builtins/intrinsics C-VM Issues and PRs related to the Boa Virtual Machine. Waiting On Review Waiting on reviews from the maintainers labels Mar 30, 2026
@github-actions github-actions Bot added this to the v1.0.0 milestone Mar 30, 2026
@github-actions

github-actions Bot commented Mar 30, 2026

Copy link
Copy Markdown

Test262 conformance changes

Test result main count PR count difference
Total 53,125 53,125 0
Passed 51,072 51,074 +2
Ignored 1,482 1,482 0
Failed 571 569 -2
Panics 0 0 0
Conformance 96.14% 96.14% +0.00%
Fixed tests (2):
test/staging/sm/Symbol/species.js (previously Failed)
test/staging/sm/Promise/promise-species.js (previously Failed)

Tested main commit: 8a1e8fe07f626f7a067afc2c9885d5d87de4bb5d
Tested PR commit: c9edeabcac795ff66bb4af55df813bce8b61d603
Compare commits: 8a1e8fe...c9edeab

@HalidOdat HalidOdat force-pushed the feature/complete-property-descriptor branch 2 times, most recently from 38fea6d to 40d9a5e Compare April 1, 2026 16:18
@codecov

codecov Bot commented Apr 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 57.85381% with 271 lines in your changes missing coverage. Please review.
✅ Project coverage is 62.51%. Comparing base (6ddc2b4) to head (c9edeab).
⚠️ Report is 985 commits behind head on main.

Files with missing lines Patch % Lines
core/engine/src/object/internal_methods/mod.rs 66.46% 56 Missing ⚠️
core/engine/src/property/mod.rs 65.51% 50 Missing ⚠️
core/engine/src/builtins/proxy/mod.rs 11.42% 31 Missing ⚠️
core/engine/src/object/property_map.rs 54.41% 31 Missing ⚠️
core/engine/src/object/mod.rs 64.06% 23 Missing ⚠️
core/engine/src/value/display/object.rs 31.81% 15 Missing ⚠️
core/engine/src/builtins/builder.rs 74.35% 10 Missing ⚠️
core/engine/src/module/namespace.rs 0.00% 9 Missing ⚠️
core/engine/src/value/display/array.rs 25.00% 9 Missing ⚠️
core/engine/src/object/internal_methods/string.rs 14.28% 6 Missing ⚠️
... and 11 more
Additional details and impacted files
@@             Coverage Diff             @@
##             main    #5284       +/-   ##
===========================================
+ Coverage   47.24%   62.51%   +15.27%     
===========================================
  Files         476      535       +59     
  Lines       46892    59272    +12380     
===========================================
+ Hits        22154    37055    +14901     
+ Misses      24738    22217     -2521     

☔ 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.

@HalidOdat HalidOdat force-pushed the feature/complete-property-descriptor branch from 40d9a5e to 1594d05 Compare April 1, 2026 17:01
@HalidOdat HalidOdat marked this pull request as ready for review April 1, 2026 17:19
@HalidOdat HalidOdat requested a review from a team as a code owner April 1, 2026 17:19
@HalidOdat HalidOdat force-pushed the feature/complete-property-descriptor branch from 1594d05 to c9edeab Compare July 5, 2026 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C-Builtins PRs and Issues related to builtins/intrinsics C-Tests Issues and PRs related to the tests. C-VM Issues and PRs related to the Boa Virtual Machine. Waiting On Review Waiting on reviews from the maintainers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant