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

Implement Atomics builtin #3394

Merged
merged 2 commits into from
Oct 31, 2023
Merged

Implement Atomics builtin #3394

merged 2 commits into from
Oct 31, 2023

Conversation

jedel1043
Copy link
Member

@jedel1043 jedel1043 commented Oct 17, 2023

This PR implements the Atomics object (excluding Atomics.waitAsync, because thread-safe async timers are hard 😭), and implements the required glue code in boa_tester to run the related tests.

The implementation is mostly based on V8's, but thanks to the intrusive-collections crate, we didn't need to handle too much unsafe code related to doubly linked lists.

Will try to add documentation about how exactly everything works, but I'm opening this for reviews on the implementation. Documented everything, including the futex algorithm. Hopefully this makes it a bit easier to understand!

@jedel1043 jedel1043 added enhancement New feature or request builtins PRs and Issues related to builtins/intrinsics execution Issues or PRs related to code execution labels Oct 17, 2023
@jedel1043 jedel1043 added this to the v0.18.0 milestone Oct 17, 2023
@jedel1043 jedel1043 requested a review from a team October 17, 2023 09:32
@codecov
Copy link

codecov bot commented Oct 17, 2023

Codecov Report

Attention: 929 lines in your changes are missing coverage. Please review.

Comparison is base (2f1fef2) 45.45% compared to head (1661ce5) 44.82%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3394      +/-   ##
==========================================
- Coverage   45.45%   44.82%   -0.63%     
==========================================
  Files         483      488       +5     
  Lines       49715    50497     +782     
==========================================
+ Hits        22599    22637      +38     
- Misses      27116    27860     +744     
Files Coverage Δ
boa_engine/src/builtins/mod.rs 94.48% <100.00%> (+0.02%) ⬆️
boa_engine/src/builtins/temporal/now.rs 24.24% <ø> (ø)
boa_engine/src/context/intrinsics.rs 97.63% <100.00%> (+0.01%) ⬆️
boa_engine/src/lib.rs 73.33% <ø> (ø)
boa_engine/src/string/common.rs 48.48% <ø> (ø)
boa_engine/src/value/integer.rs 64.28% <ø> (-0.84%) ⬇️
boa_engine/src/vm/code_block.rs 30.36% <ø> (ø)
boa_engine/src/vm/mod.rs 56.37% <ø> (ø)
boa_engine/src/builtins/array_buffer/shared.rs 33.33% <0.00%> (-0.63%) ⬇️
boa_engine/src/builtins/array_buffer/utils.rs 0.00% <0.00%> (ø)
... and 12 more

... and 2 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@github-actions
Copy link

github-actions bot commented Oct 17, 2023

Test262 conformance changes

Test result main count PR count difference
Total 95,609 95,609 0
Passed 75,978 76,518 +540
Ignored 18,872 18,132 -740
Failed 759 959 +200
Panics 0 0 0
Conformance 79.47% 80.03% +0.56%
Fixed tests (540):
test/built-ins/Atomics/Symbol.toStringTag.js [strict mode] (previously Ignored)
test/built-ins/Atomics/Symbol.toStringTag.js (previously Ignored)
test/built-ins/Atomics/prop-desc.js [strict mode] (previously Ignored)
test/built-ins/Atomics/prop-desc.js (previously Ignored)
test/built-ins/Atomics/proto.js [strict mode] (previously Ignored)
test/built-ins/Atomics/proto.js (previously Ignored)
test/built-ins/Atomics/exchange/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/good-views.js (previously Ignored)
test/built-ins/Atomics/exchange/nonshared-int-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/nonshared-int-views.js (previously Ignored)
test/built-ins/Atomics/exchange/not-a-constructor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/not-a-constructor.js (previously Ignored)
test/built-ins/Atomics/exchange/non-shared-int-views-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/non-shared-int-views-throws.js (previously Ignored)
test/built-ins/Atomics/exchange/name.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/name.js (previously Ignored)
test/built-ins/Atomics/exchange/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/bad-range.js (previously Ignored)
test/built-ins/Atomics/exchange/descriptor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/descriptor.js (previously Ignored)
test/built-ins/Atomics/exchange/non-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/non-views.js (previously Ignored)
test/built-ins/Atomics/exchange/validate-arraytype-before-index-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/validate-arraytype-before-index-coercion.js (previously Ignored)
test/built-ins/Atomics/exchange/validate-arraytype-before-value-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/validate-arraytype-before-value-coercion.js (previously Ignored)
test/built-ins/Atomics/exchange/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/exchange/expected-return-value.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/expected-return-value.js (previously Ignored)
test/built-ins/Atomics/exchange/length.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/length.js (previously Ignored)
test/built-ins/Atomics/exchange/bigint/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/bigint/good-views.js (previously Ignored)
test/built-ins/Atomics/exchange/bigint/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/bigint/bad-range.js (previously Ignored)
test/built-ins/Atomics/exchange/bigint/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/exchange/bigint/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/load/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/good-views.js (previously Ignored)
test/built-ins/Atomics/load/not-a-constructor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/not-a-constructor.js (previously Ignored)
test/built-ins/Atomics/load/non-shared-int-views-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/non-shared-int-views-throws.js (previously Ignored)
test/built-ins/Atomics/load/name.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/name.js (previously Ignored)
test/built-ins/Atomics/load/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/bad-range.js (previously Ignored)
test/built-ins/Atomics/load/descriptor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/descriptor.js (previously Ignored)
test/built-ins/Atomics/load/non-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/non-views.js (previously Ignored)
test/built-ins/Atomics/load/validate-arraytype-before-index-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/validate-arraytype-before-index-coercion.js (previously Ignored)
test/built-ins/Atomics/load/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/load/expected-return-value.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/expected-return-value.js (previously Ignored)
test/built-ins/Atomics/load/length.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/length.js (previously Ignored)
test/built-ins/Atomics/load/bigint/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/bigint/good-views.js (previously Ignored)
test/built-ins/Atomics/load/bigint/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/bigint/bad-range.js (previously Ignored)
test/built-ins/Atomics/load/bigint/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/load/bigint/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/add/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/good-views.js (previously Ignored)
test/built-ins/Atomics/add/not-a-constructor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/not-a-constructor.js (previously Ignored)
test/built-ins/Atomics/add/non-shared-int-views-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/non-shared-int-views-throws.js (previously Ignored)
test/built-ins/Atomics/add/name.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/name.js (previously Ignored)
test/built-ins/Atomics/add/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/bad-range.js (previously Ignored)
test/built-ins/Atomics/add/descriptor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/descriptor.js (previously Ignored)
test/built-ins/Atomics/add/non-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/non-views.js (previously Ignored)
test/built-ins/Atomics/add/validate-arraytype-before-index-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/validate-arraytype-before-index-coercion.js (previously Ignored)
test/built-ins/Atomics/add/validate-arraytype-before-value-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/validate-arraytype-before-value-coercion.js (previously Ignored)
test/built-ins/Atomics/add/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/add/expected-return-value.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/expected-return-value.js (previously Ignored)
test/built-ins/Atomics/add/length.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/length.js (previously Ignored)
test/built-ins/Atomics/add/bigint/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/bigint/good-views.js (previously Ignored)
test/built-ins/Atomics/add/bigint/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/bigint/bad-range.js (previously Ignored)
test/built-ins/Atomics/add/bigint/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/add/bigint/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/store/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/good-views.js (previously Ignored)
test/built-ins/Atomics/store/not-a-constructor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/not-a-constructor.js (previously Ignored)
test/built-ins/Atomics/store/non-shared-int-views-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/non-shared-int-views-throws.js (previously Ignored)
test/built-ins/Atomics/store/name.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/name.js (previously Ignored)
test/built-ins/Atomics/store/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/bad-range.js (previously Ignored)
test/built-ins/Atomics/store/expected-return-value-negative-zero.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/expected-return-value-negative-zero.js (previously Ignored)
test/built-ins/Atomics/store/descriptor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/descriptor.js (previously Ignored)
test/built-ins/Atomics/store/non-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/non-views.js (previously Ignored)
test/built-ins/Atomics/store/validate-arraytype-before-index-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/validate-arraytype-before-index-coercion.js (previously Ignored)
test/built-ins/Atomics/store/validate-arraytype-before-value-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/validate-arraytype-before-value-coercion.js (previously Ignored)
test/built-ins/Atomics/store/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/store/expected-return-value.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/expected-return-value.js (previously Ignored)
test/built-ins/Atomics/store/length.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/length.js (previously Ignored)
test/built-ins/Atomics/store/bigint/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/bigint/good-views.js (previously Ignored)
test/built-ins/Atomics/store/bigint/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/bigint/bad-range.js (previously Ignored)
test/built-ins/Atomics/store/bigint/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/store/bigint/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/and/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/good-views.js (previously Ignored)
test/built-ins/Atomics/and/not-a-constructor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/not-a-constructor.js (previously Ignored)
test/built-ins/Atomics/and/non-shared-int-views-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/non-shared-int-views-throws.js (previously Ignored)
test/built-ins/Atomics/and/name.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/name.js (previously Ignored)
test/built-ins/Atomics/and/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/bad-range.js (previously Ignored)
test/built-ins/Atomics/and/descriptor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/descriptor.js (previously Ignored)
test/built-ins/Atomics/and/non-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/non-views.js (previously Ignored)
test/built-ins/Atomics/and/validate-arraytype-before-index-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/validate-arraytype-before-index-coercion.js (previously Ignored)
test/built-ins/Atomics/and/validate-arraytype-before-value-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/validate-arraytype-before-value-coercion.js (previously Ignored)
test/built-ins/Atomics/and/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/and/expected-return-value.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/expected-return-value.js (previously Ignored)
test/built-ins/Atomics/and/length.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/length.js (previously Ignored)
test/built-ins/Atomics/and/bigint/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/bigint/good-views.js (previously Ignored)
test/built-ins/Atomics/and/bigint/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/bigint/bad-range.js (previously Ignored)
test/built-ins/Atomics/and/bigint/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/and/bigint/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/isLockFree/not-a-constructor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/isLockFree/not-a-constructor.js (previously Ignored)
test/built-ins/Atomics/isLockFree/name.js [strict mode] (previously Ignored)
test/built-ins/Atomics/isLockFree/name.js (previously Ignored)
test/built-ins/Atomics/isLockFree/corner-cases.js [strict mode] (previously Ignored)
test/built-ins/Atomics/isLockFree/corner-cases.js (previously Ignored)
test/built-ins/Atomics/isLockFree/descriptor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/isLockFree/descriptor.js (previously Ignored)
test/built-ins/Atomics/isLockFree/expected-return-value.js [strict mode] (previously Ignored)
test/built-ins/Atomics/isLockFree/expected-return-value.js (previously Ignored)
test/built-ins/Atomics/isLockFree/length.js [strict mode] (previously Ignored)
test/built-ins/Atomics/isLockFree/length.js (previously Ignored)
test/built-ins/Atomics/isLockFree/bigint/expected-return-value.js [strict mode] (previously Ignored)
test/built-ins/Atomics/isLockFree/bigint/expected-return-value.js (previously Ignored)
test/built-ins/Atomics/xor/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/good-views.js (previously Ignored)
test/built-ins/Atomics/xor/not-a-constructor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/not-a-constructor.js (previously Ignored)
test/built-ins/Atomics/xor/non-shared-int-views-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/non-shared-int-views-throws.js (previously Ignored)
test/built-ins/Atomics/xor/name.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/name.js (previously Ignored)
test/built-ins/Atomics/xor/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/bad-range.js (previously Ignored)
test/built-ins/Atomics/xor/descriptor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/descriptor.js (previously Ignored)
test/built-ins/Atomics/xor/non-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/non-views.js (previously Ignored)
test/built-ins/Atomics/xor/validate-arraytype-before-index-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/validate-arraytype-before-index-coercion.js (previously Ignored)
test/built-ins/Atomics/xor/validate-arraytype-before-value-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/validate-arraytype-before-value-coercion.js (previously Ignored)
test/built-ins/Atomics/xor/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/xor/expected-return-value.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/expected-return-value.js (previously Ignored)
test/built-ins/Atomics/xor/length.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/length.js (previously Ignored)
test/built-ins/Atomics/xor/bigint/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/bigint/good-views.js (previously Ignored)
test/built-ins/Atomics/xor/bigint/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/bigint/bad-range.js (previously Ignored)
test/built-ins/Atomics/xor/bigint/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/xor/bigint/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/wait/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/good-views.js (previously Ignored)
test/built-ins/Atomics/wait/undefined-for-timeout.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/undefined-for-timeout.js (previously Ignored)
test/built-ins/Atomics/wait/true-for-timeout-agent.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/true-for-timeout-agent.js (previously Ignored)
test/built-ins/Atomics/wait/not-an-object-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/not-an-object-throws.js (previously Ignored)
test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws-agent.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws-agent.js (previously Ignored)
test/built-ins/Atomics/wait/symbol-for-timeout-throws-agent.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/symbol-for-timeout-throws-agent.js (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-add.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-add.js (previously Ignored)
test/built-ins/Atomics/wait/symbol-for-timeout-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/symbol-for-timeout-throws.js (previously Ignored)
test/built-ins/Atomics/wait/validate-arraytype-before-timeout-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/validate-arraytype-before-timeout-coercion.js (previously Ignored)
test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws.js (previously Ignored)
test/built-ins/Atomics/wait/negative-index-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/negative-index-throws.js (previously Ignored)
test/built-ins/Atomics/wait/object-for-timeout-agent.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/object-for-timeout-agent.js (previously Ignored)
test/built-ins/Atomics/wait/non-int32-typedarray-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/non-int32-typedarray-throws.js (previously Ignored)
test/built-ins/Atomics/wait/nan-for-timeout.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/nan-for-timeout.js (previously Ignored)
test/built-ins/Atomics/wait/negative-timeout.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/negative-timeout.js (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-compareExchange.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-compareExchange.js (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-sub.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-sub.js (previously Ignored)
test/built-ins/Atomics/wait/not-a-typedarray-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/not-a-typedarray-throws.js (previously Ignored)
test/built-ins/Atomics/wait/object-for-timeout.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/object-for-timeout.js (previously Ignored)
test/built-ins/Atomics/wait/name.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/name.js (previously Ignored)
test/built-ins/Atomics/wait/false-for-timeout.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/false-for-timeout.js (previously Ignored)
test/built-ins/Atomics/wait/false-for-timeout-agent.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/false-for-timeout-agent.js (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-no-operation.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-no-operation.js (previously Ignored)
test/built-ins/Atomics/wait/null-for-timeout-agent.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/null-for-timeout-agent.js (previously Ignored)
test/built-ins/Atomics/wait/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bad-range.js (previously Ignored)
test/built-ins/Atomics/wait/symbol-for-index-throws-agent.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/symbol-for-index-throws-agent.js (previously Ignored)
test/built-ins/Atomics/wait/symbol-for-index-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/symbol-for-index-throws.js (previously Ignored)
test/built-ins/Atomics/wait/negative-timeout-agent.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/negative-timeout-agent.js (previously Ignored)
test/built-ins/Atomics/wait/wait-index-value-not-equal.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/wait-index-value-not-equal.js (previously Ignored)
test/built-ins/Atomics/wait/waiterlist-block-indexedposition-wake.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/waiterlist-block-indexedposition-wake.js (previously Ignored)
test/built-ins/Atomics/wait/waiterlist-order-of-operations-is-fifo.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/waiterlist-order-of-operations-is-fifo.js (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-xor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-xor.js (previously Ignored)
test/built-ins/Atomics/wait/descriptor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/descriptor.js (previously Ignored)
test/built-ins/Atomics/wait/symbol-for-value-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/symbol-for-value-throws.js (previously Ignored)
test/built-ins/Atomics/wait/was-woken-before-timeout.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/was-woken-before-timeout.js (previously Ignored)
test/built-ins/Atomics/wait/true-for-timeout.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/true-for-timeout.js (previously Ignored)
test/built-ins/Atomics/wait/cannot-suspend-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/cannot-suspend-throws.js (previously Ignored)
test/built-ins/Atomics/wait/validate-arraytype-before-index-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/validate-arraytype-before-index-coercion.js (previously Ignored)
test/built-ins/Atomics/wait/validate-arraytype-before-value-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/validate-arraytype-before-value-coercion.js (previously Ignored)
test/built-ins/Atomics/wait/value-not-equal.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/value-not-equal.js (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-exchange.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-exchange.js (previously Ignored)
test/built-ins/Atomics/wait/out-of-range-index-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/out-of-range-index-throws.js (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-or.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-or.js (previously Ignored)
test/built-ins/Atomics/wait/symbol-for-value-throws-agent.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/symbol-for-value-throws-agent.js (previously Ignored)
test/built-ins/Atomics/wait/non-shared-bufferdata-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/non-shared-bufferdata-throws.js (previously Ignored)
test/built-ins/Atomics/wait/null-for-timeout.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/null-for-timeout.js (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-and.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-and.js (previously Ignored)
test/built-ins/Atomics/wait/null-bufferdata-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/null-bufferdata-throws.js (previously Ignored)
test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-store.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/no-spurious-wakeup-on-store.js (previously Ignored)
test/built-ins/Atomics/wait/length.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/length.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-add.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-add.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/negative-index-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/negative-index-throws.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/nan-for-timeout.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/nan-for-timeout.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/negative-timeout.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/negative-timeout.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-compareExchange.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-compareExchange.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/non-bigint64-typedarray-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/non-bigint64-typedarray-throws.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-sub.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-sub.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/false-for-timeout.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/false-for-timeout.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/false-for-timeout-agent.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/false-for-timeout-agent.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-no-operation.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-no-operation.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/bad-range.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/negative-timeout-agent.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/negative-timeout-agent.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/waiterlist-block-indexedposition-wake.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/waiterlist-block-indexedposition-wake.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-xor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-xor.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/was-woken-before-timeout.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/was-woken-before-timeout.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/cannot-suspend-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/cannot-suspend-throws.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/value-not-equal.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/value-not-equal.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-exchange.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-exchange.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/out-of-range-index-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/out-of-range-index-throws.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-or.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-or.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/non-shared-bufferdata-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/non-shared-bufferdata-throws.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-and.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-and.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/null-bufferdata-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/null-bufferdata-throws.js (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-store.js [strict mode] (previously Ignored)
test/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-store.js (previously Ignored)
test/built-ins/Atomics/compareExchange/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/good-views.js (previously Ignored)
test/built-ins/Atomics/compareExchange/validate-arraytype-before-replacementValue-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/validate-arraytype-before-replacementValue-coercion.js (previously Ignored)
test/built-ins/Atomics/compareExchange/not-a-constructor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/not-a-constructor.js (previously Ignored)
test/built-ins/Atomics/compareExchange/non-shared-int-views-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/non-shared-int-views-throws.js (previously Ignored)
test/built-ins/Atomics/compareExchange/validate-arraytype-before-expectedValue-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/validate-arraytype-before-expectedValue-coercion.js (previously Ignored)
test/built-ins/Atomics/compareExchange/name.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/name.js (previously Ignored)
test/built-ins/Atomics/compareExchange/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/bad-range.js (previously Ignored)
test/built-ins/Atomics/compareExchange/descriptor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/descriptor.js (previously Ignored)
test/built-ins/Atomics/compareExchange/non-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/non-views.js (previously Ignored)
test/built-ins/Atomics/compareExchange/validate-arraytype-before-index-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/validate-arraytype-before-index-coercion.js (previously Ignored)
test/built-ins/Atomics/compareExchange/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/compareExchange/expected-return-value.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/expected-return-value.js (previously Ignored)
test/built-ins/Atomics/compareExchange/length.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/length.js (previously Ignored)
test/built-ins/Atomics/compareExchange/bigint/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/bigint/good-views.js (previously Ignored)
test/built-ins/Atomics/compareExchange/bigint/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/bigint/bad-range.js (previously Ignored)
test/built-ins/Atomics/compareExchange/bigint/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/compareExchange/bigint/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/sub/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/good-views.js (previously Ignored)
test/built-ins/Atomics/sub/not-a-constructor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/not-a-constructor.js (previously Ignored)
test/built-ins/Atomics/sub/non-shared-int-views-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/non-shared-int-views-throws.js (previously Ignored)
test/built-ins/Atomics/sub/name.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/name.js (previously Ignored)
test/built-ins/Atomics/sub/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/bad-range.js (previously Ignored)
test/built-ins/Atomics/sub/descriptor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/descriptor.js (previously Ignored)
test/built-ins/Atomics/sub/non-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/non-views.js (previously Ignored)
test/built-ins/Atomics/sub/validate-arraytype-before-index-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/validate-arraytype-before-index-coercion.js (previously Ignored)
test/built-ins/Atomics/sub/validate-arraytype-before-value-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/validate-arraytype-before-value-coercion.js (previously Ignored)
test/built-ins/Atomics/sub/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/sub/expected-return-value.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/expected-return-value.js (previously Ignored)
test/built-ins/Atomics/sub/length.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/length.js (previously Ignored)
test/built-ins/Atomics/sub/bigint/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/bigint/good-views.js (previously Ignored)
test/built-ins/Atomics/sub/bigint/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/bigint/bad-range.js (previously Ignored)
test/built-ins/Atomics/sub/bigint/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/sub/bigint/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/notify/notify-in-order.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/notify-in-order.js (previously Ignored)
test/built-ins/Atomics/notify/notify-all.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/notify-all.js (previously Ignored)
test/built-ins/Atomics/notify/non-shared-int-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/non-shared-int-views.js (previously Ignored)
test/built-ins/Atomics/notify/count-boundary-cases.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/count-boundary-cases.js (previously Ignored)
test/built-ins/Atomics/notify/not-an-object-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/not-an-object-throws.js (previously Ignored)
test/built-ins/Atomics/notify/count-from-nans.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/count-from-nans.js (previously Ignored)
test/built-ins/Atomics/notify/non-shared-bufferdata-returns-0.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/non-shared-bufferdata-returns-0.js (previously Ignored)
test/built-ins/Atomics/notify/notify-renotify-noop.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/notify-renotify-noop.js (previously Ignored)
test/built-ins/Atomics/notify/negative-index-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/negative-index-throws.js (previously Ignored)
test/built-ins/Atomics/notify/non-int32-typedarray-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/non-int32-typedarray-throws.js (previously Ignored)
test/built-ins/Atomics/notify/non-shared-bufferdata-non-shared-int-views-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/non-shared-bufferdata-non-shared-int-views-throws.js (previously Ignored)
test/built-ins/Atomics/notify/not-a-constructor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/not-a-constructor.js (previously Ignored)
test/built-ins/Atomics/notify/count-defaults-to-infinity-undefined.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/count-defaults-to-infinity-undefined.js (previously Ignored)
test/built-ins/Atomics/notify/not-a-typedarray-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/not-a-typedarray-throws.js (previously Ignored)
test/built-ins/Atomics/notify/count-symbol-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/count-symbol-throws.js (previously Ignored)
test/built-ins/Atomics/notify/name.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/name.js (previously Ignored)
test/built-ins/Atomics/notify/notify-one.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/notify-one.js (previously Ignored)
test/built-ins/Atomics/notify/notify-nan.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/notify-nan.js (previously Ignored)
test/built-ins/Atomics/notify/non-shared-bufferdata-count-evaluation-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/non-shared-bufferdata-count-evaluation-throws.js (previously Ignored)
test/built-ins/Atomics/notify/negative-count.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/negative-count.js (previously Ignored)
test/built-ins/Atomics/notify/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/bad-range.js (previously Ignored)
test/built-ins/Atomics/notify/count-defaults-to-infinity-missing.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/count-defaults-to-infinity-missing.js (previously Ignored)
test/built-ins/Atomics/notify/symbol-for-index-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/symbol-for-index-throws.js (previously Ignored)
test/built-ins/Atomics/notify/notify-two.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/notify-two.js (previously Ignored)
test/built-ins/Atomics/notify/notify-with-no-matching-agents-waiting.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/notify-with-no-matching-agents-waiting.js (previously Ignored)
test/built-ins/Atomics/notify/notify-all-on-loc.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/notify-all-on-loc.js (previously Ignored)
test/built-ins/Atomics/notify/descriptor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/descriptor.js (previously Ignored)
test/built-ins/Atomics/notify/notify-in-order-one-time.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/notify-in-order-one-time.js (previously Ignored)
test/built-ins/Atomics/notify/non-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/non-views.js (previously Ignored)
test/built-ins/Atomics/notify/validate-arraytype-before-index-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/validate-arraytype-before-index-coercion.js (previously Ignored)
test/built-ins/Atomics/notify/notify-with-no-agents-waiting.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/notify-with-no-agents-waiting.js (previously Ignored)
test/built-ins/Atomics/notify/validate-arraytype-before-count-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/validate-arraytype-before-count-coercion.js (previously Ignored)
test/built-ins/Atomics/notify/notify-zero.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/notify-zero.js (previously Ignored)
test/built-ins/Atomics/notify/out-of-range-index-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/out-of-range-index-throws.js (previously Ignored)
test/built-ins/Atomics/notify/count-tointeger-throws-then-wake-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/count-tointeger-throws-then-wake-throws.js (previously Ignored)
test/built-ins/Atomics/notify/non-shared-bufferdata-index-evaluation-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/non-shared-bufferdata-index-evaluation-throws.js (previously Ignored)
test/built-ins/Atomics/notify/null-bufferdata-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/null-bufferdata-throws.js (previously Ignored)
test/built-ins/Atomics/notify/undefined-index-defaults-to-zero.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/undefined-index-defaults-to-zero.js (previously Ignored)
test/built-ins/Atomics/notify/length.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/length.js (previously Ignored)
test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-returns-0.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-returns-0.js (previously Ignored)
test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-non-shared-int-views-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-non-shared-int-views-throws.js (previously Ignored)
test/built-ins/Atomics/notify/bigint/non-bigint64-typedarray-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/bigint/non-bigint64-typedarray-throws.js (previously Ignored)
test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-count-evaluation-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-count-evaluation-throws.js (previously Ignored)
test/built-ins/Atomics/notify/bigint/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/bigint/bad-range.js (previously Ignored)
test/built-ins/Atomics/notify/bigint/notify-all-on-loc.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/bigint/notify-all-on-loc.js (previously Ignored)
test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-index-evaluation-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-index-evaluation-throws.js (previously Ignored)
test/built-ins/Atomics/notify/bigint/null-bufferdata-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/notify/bigint/null-bufferdata-throws.js (previously Ignored)
test/built-ins/Atomics/or/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/good-views.js (previously Ignored)
test/built-ins/Atomics/or/not-a-constructor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/not-a-constructor.js (previously Ignored)
test/built-ins/Atomics/or/non-shared-int-views-throws.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/non-shared-int-views-throws.js (previously Ignored)
test/built-ins/Atomics/or/name.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/name.js (previously Ignored)
test/built-ins/Atomics/or/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/bad-range.js (previously Ignored)
test/built-ins/Atomics/or/descriptor.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/descriptor.js (previously Ignored)
test/built-ins/Atomics/or/non-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/non-views.js (previously Ignored)
test/built-ins/Atomics/or/validate-arraytype-before-index-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/validate-arraytype-before-index-coercion.js (previously Ignored)
test/built-ins/Atomics/or/validate-arraytype-before-value-coercion.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/validate-arraytype-before-value-coercion.js (previously Ignored)
test/built-ins/Atomics/or/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/non-shared-bufferdata.js (previously Ignored)
test/built-ins/Atomics/or/expected-return-value.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/expected-return-value.js (previously Ignored)
test/built-ins/Atomics/or/length.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/length.js (previously Ignored)
test/built-ins/Atomics/or/bigint/good-views.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/bigint/good-views.js (previously Ignored)
test/built-ins/Atomics/or/bigint/bad-range.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/bigint/bad-range.js (previously Ignored)
test/built-ins/Atomics/or/bigint/non-shared-bufferdata.js [strict mode] (previously Ignored)
test/built-ins/Atomics/or/bigint/non-shared-bufferdata.js (previously Ignored)

@jedel1043 jedel1043 changed the title Implement basics of Atomics builtin Implement Atomics builtin Oct 18, 2023
Copy link
Member

@HalidOdat HalidOdat left a comment

Choose a reason for hiding this comment

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

Really nice work @jedel1043!

Still have some parts to review, have some small nitpicks :)

boa_engine/src/builtins/typed_array/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/builtins/atomics/futex.rs Show resolved Hide resolved
boa_engine/src/builtins/atomics/mod.rs Show resolved Hide resolved
Copy link
Member

@HalidOdat HalidOdat left a comment

Choose a reason for hiding this comment

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

Looks good to me! :)

@HalidOdat HalidOdat requested a review from a team October 29, 2023 16:57
@jedel1043 jedel1043 linked an issue Oct 30, 2023 that may be closed by this pull request
Copy link
Member

@raskad raskad left a comment

Choose a reason for hiding this comment

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

Amazing work and really nice docs on the futex!

@jedel1043 jedel1043 enabled auto-merge October 31, 2023 01:19
@jedel1043 jedel1043 added this pull request to the merge queue Oct 31, 2023
Merged via the queue into main with commit 04ed7be Oct 31, 2023
14 checks passed
@jedel1043 jedel1043 deleted the atomics branch November 9, 2023 04:33
ahaoboy pushed a commit to ahaoboy/boa that referenced this pull request Nov 15, 2023
* Implement `Atomics` builtin

* Apply review
ahaoboy pushed a commit to ahaoboy/boa that referenced this pull request Nov 15, 2023
* Implement `Atomics` builtin

* Apply review
sam-finch-tezos pushed a commit to trilitech/boa that referenced this pull request Nov 29, 2023
* Implement `Atomics` builtin

* Apply review
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
builtins PRs and Issues related to builtins/intrinsics enhancement New feature or request execution Issues or PRs related to code execution
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Panic in WASM32 target
3 participants