LibJS: Throw on detached viewed ArrayBuffer when validating TypedArrays

This commit is contained in:
Idan Horowitz 2021-06-17 18:27:48 +03:00 committed by Linus Groh
commit 2e9f665bda
Notes: sideshowbarker 2024-07-18 12:03:34 +09:00

View file

@ -53,7 +53,12 @@ static TypedArrayBase* typed_array_from(VM& vm, GlobalObject& global_object)
vm.throw_exception<TypeError>(global_object, ErrorType::NotA, "TypedArray"); vm.throw_exception<TypeError>(global_object, ErrorType::NotA, "TypedArray");
return nullptr; return nullptr;
} }
return static_cast<TypedArrayBase*>(this_object); auto* typed_array = static_cast<TypedArrayBase*>(this_object);
if (typed_array->viewed_array_buffer()->is_detached()) {
vm.throw_exception<TypeError>(global_object, ErrorType::DetachedArrayBuffer);
return nullptr;
}
return typed_array;
} }
static Function* callback_from_args(GlobalObject& global_object, const String& name) static Function* callback_from_args(GlobalObject& global_object, const String& name)