mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-01 15:18:06 +00:00
LibWeb: Refuse to fill float array with random values
This passes an additional test in WPT: WebCryptoAPI/getRandomValues.any
This commit is contained in:
parent
157dbbad83
commit
4a6ce210b0
Notes:
github-actions[bot]
2024-10-28 09:43:17 +00:00
Author: https://github.com/BenWiederhake
Commit: 4a6ce210b0
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2017
1 changed files with 4 additions and 0 deletions
|
@ -51,6 +51,10 @@ WebIDL::ExceptionOr<JS::Handle<WebIDL::ArrayBufferView>> Crypto::get_random_valu
|
|||
return WebIDL::TypeMismatchError::create(realm(), "array must be one of Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, BigInt64Array, or BigUint64Array"_string);
|
||||
|
||||
auto const& typed_array = *array->bufferable_object().get<JS::NonnullGCPtr<JS::TypedArrayBase>>();
|
||||
// Still need to exclude Float32Array, and potential future siblings like Float16Array:
|
||||
if (!typed_array.element_name().is_one_of("Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Uint16Array", "Int32Array", "Uint32Array", "BigInt64Array", "BigUint64Array"))
|
||||
return WebIDL::TypeMismatchError::create(realm(), "array must be one of Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, BigInt64Array, or BigUint64Array"_string);
|
||||
|
||||
auto typed_array_record = JS::make_typed_array_with_buffer_witness_record(typed_array, JS::ArrayBuffer::Order::SeqCst);
|
||||
|
||||
// IMPLEMENTATION DEFINED: If the viewed array buffer is out-of-bounds, throw a InvalidStateError and terminate the algorithm.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue