fix(builtins/typed_array,iterable,generator,error,bigint,eval): convert panics to EngineError::Panic using js_expect#5045
Conversation
Test262 conformance changes
Tested main commit: |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #5045 +/- ##
===========================================
+ Coverage 47.24% 58.98% +11.74%
===========================================
Files 476 563 +87
Lines 46892 62560 +15668
===========================================
+ Hits 22154 36904 +14750
- Misses 24738 25656 +918 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
9f99d23 to
e41560d
Compare
…rt panics to EngineError::Panic using js_expect Part of boa-dev#3241. It changes the following: core/engine/src/builtins/typed_array/builtin.rs: converted 30 panics core/engine/src/builtins/typed_array/object.rs: converted 3 panics core/engine/src/builtins/iterable/async_from_sync_iterator.rs: converted 8 panics core/engine/src/builtins/generator/mod.rs: converted 3 panics core/engine/src/builtins/error/aggregate.rs: converted 1 panic core/engine/src/builtins/bigint/mod.rs: converted 1 panic core/engine/src/builtins/eval/mod.rs: converted 1 panic
e41560d to
6711953
Compare
|
Hey @jedel1043, addressed all 3 comments (does the looks good or any furtheree changes requierd). Also while I was at it, done with the remaining builtins/ panics in this same PR ( it got somewhere big but they were tiny (1-5 per file) scattered across promise/mod.rs, json/mod.rs and a couple more typed_array spots, i thought unecessary for a seprate PR to be raised. |
|
Remaining
All remaining panics fall into: test assertions, compile-time constant |
only for notes purpose will relocate all this (#5063 #5064 #5267) in #3241 and clear everything (that tracking progess bar ). |

Part of #3241. It changes the following:
builtins/typed_array/builtin.rs: converted 36 panicsbuiltins/typed_array/object.rs: converted 4 panicsbuiltins/iterable/async_from_sync_iterator.rs: converted 8 panicsbuiltins/generator/mod.rs: converted 3 panicsbuiltins/promise/mod.rs: converted 4 panicsbuiltins/json/mod.rs: converted 2 panicsbuiltins/error/aggregate.rs: converted 1 panicbuiltins/bigint/mod.rs: converted 1 panicbuiltins/eval/mod.rs: converted 1 panicAfter this PR,
core/engine/src/builtins/is 98% panic-free.The remaining.expect()calls all fall into non-convertible categories:Exhaustive match arms / logic invariants (no JsResult context):
atomics/mod.rs— unreachable! on float variants in integer-only opsdate/mod.rs,date/utils.rs— exhaustive match after prior validationtemporal/— exhaustive match armsintl/— exhaustive match arms and logic invariantsnumber/mod.rs,number/globals.rs— pure math helpers, no JsResult propagation pathBuiltin initialization infrastructure:
builder.rs— init-time invariants, no JsResult contexterror/type.rs— fn init() returning ()Low-level buffer ops (intentional panic on corruption):
array_buffer/utils.rs— raw slice index opsarray_buffer/shared.rs— sameatomics/futex.rs— OS threading node invariantsNon-JsResult contexts:
promise/mod.rs:2770— inside fn returning JsObjectfunction/arguments.rs— inside fn returning ThinVeciterator_helper.rs— internal type invariants on self-owned objectsTest-only:
uri/mod.rs— test functiondate/tests.rs— test file