mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
Fix typedarray validation in Atomics read_modify_write (#4879)
This patch fixes #4875. JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik robert.fancsik@h-lab.eu
This commit is contained in:
parent
d37ff33dbe
commit
dbba83fe40
@ -51,9 +51,9 @@ ecma_validate_shared_integer_typedarray (ecma_value_t typedarray, /**< typedArra
|
||||
bool waitable) /**< waitable argument */
|
||||
{
|
||||
/* 2. */
|
||||
if (!ecma_is_value_object (typedarray))
|
||||
if (!ecma_is_typedarray (typedarray))
|
||||
{
|
||||
return ecma_raise_type_error (ECMA_ERR_ARGUMENT_THIS_NOT_OBJECT);
|
||||
return ecma_raise_type_error (ECMA_ERR_ARGUMENT_THIS_NOT_TYPED_ARRAY);
|
||||
}
|
||||
|
||||
/* 3-4. */
|
||||
|
||||
20
tests/jerry/es.next/regression-test-issue-4875.js
Normal file
20
tests/jerry/es.next/regression-test-issue-4875.js
Normal file
@ -0,0 +1,20 @@
|
||||
// Copyright JS Foundation and other contributors, http://js.foundation
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
try {
|
||||
Atomics.sub({});
|
||||
assert(false);
|
||||
} catch (e) {
|
||||
assert(e instanceof TypeError);
|
||||
}
|
||||
@ -2601,13 +2601,11 @@
|
||||
<test id="built-ins/Atomics/add/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/add/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/add/non-shared-bufferdata.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/add/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/and/bigint/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/and/bigint/non-shared-bufferdata.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/and/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/and/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/and/non-shared-bufferdata.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/and/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/compareExchange/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/compareExchange/bigint/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/compareExchange/bigint/good-views.js"><reason></reason></test>
|
||||
@ -2625,14 +2623,12 @@
|
||||
<test id="built-ins/Atomics/exchange/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/exchange/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/exchange/non-shared-bufferdata.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/exchange/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/isLockFree/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/load/bigint/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/load/bigint/non-shared-bufferdata.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/load/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/load/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/load/non-shared-bufferdata.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/load/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/notify/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/notify/bigint/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/notify/bigint/non-bigint64-typedarray-throws.js"><reason></reason></test>
|
||||
@ -2677,7 +2673,6 @@
|
||||
<test id="built-ins/Atomics/or/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/or/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/or/non-shared-bufferdata.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/or/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/store/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/store/bigint/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/store/bigint/good-views.js"><reason></reason></test>
|
||||
@ -2694,7 +2689,6 @@
|
||||
<test id="built-ins/Atomics/sub/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/sub/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/sub/non-shared-bufferdata.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/sub/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/wait/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/wait/bigint/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/wait/bigint/cannot-suspend-throws.js"><reason></reason></test>
|
||||
@ -2773,7 +2767,6 @@
|
||||
<test id="built-ins/Atomics/xor/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/xor/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/xor/non-shared-bufferdata.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/xor/non-views.js"><reason></reason></test>
|
||||
|
||||
<!-- ES2017: Shared Memory and Atomics
|
||||
features: [SharedArrayBuffer]
|
||||
@ -2782,11 +2775,9 @@
|
||||
<test id="built-ins/Atomics/add/bigint/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/add/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/add/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/add/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/and/bigint/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/and/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/and/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/and/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/compareExchange/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/compareExchange/bigint/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/compareExchange/bigint/good-views.js"><reason></reason></test>
|
||||
@ -2796,11 +2787,9 @@
|
||||
<test id="built-ins/Atomics/exchange/bigint/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/exchange/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/exchange/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/exchange/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/load/bigint/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/load/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/load/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/load/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/notify/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/notify/bigint/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/notify/bigint/notify-all-on-loc.js"><reason></reason></test>
|
||||
@ -2829,7 +2818,6 @@
|
||||
<test id="built-ins/Atomics/or/bigint/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/or/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/or/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/or/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/store/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/store/bigint/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/store/bigint/good-views.js"><reason></reason></test>
|
||||
@ -2839,7 +2827,6 @@
|
||||
<test id="built-ins/Atomics/sub/bigint/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/sub/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/sub/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/sub/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/wait/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/wait/bigint/bad-range.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/wait/bigint/cannot-suspend-throws.js"><reason></reason></test>
|
||||
@ -2944,6 +2931,7 @@
|
||||
<test id="built-ins/Atomics/waitAsync/bigint/was-woken-before-timeout.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/waitAsync/false-for-timeout-agent.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/waitAsync/false-for-timeout.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/waitAsync/implicit-infinity-for-timeout.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/waitAsync/nan-for-timeout-agent.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/waitAsync/negative-index-throws.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/waitAsync/negative-timeout-agent.js"><reason></reason></test>
|
||||
@ -2990,7 +2978,6 @@
|
||||
<test id="built-ins/Atomics/xor/bigint/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/xor/expected-return-value.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/xor/good-views.js"><reason></reason></test>
|
||||
<test id="built-ins/Atomics/xor/non-views.js"><reason></reason></test>
|
||||
<test id="built-ins/TypedArrayConstructors/ctors-bigint/buffer-arg/typedarray-backed-by-sharedarraybuffer.js"><reason></reason></test>
|
||||
<test id="built-ins/TypedArrayConstructors/ctors/buffer-arg/typedarray-backed-by-sharedarraybuffer.js"><reason></reason></test>
|
||||
<!-- END - ES2017: Shared Memory and Atomics -->
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user