From ab0c8060b14e53ca4d44b97015df6031610818b6 Mon Sep 17 00:00:00 2001 From: Seonghyun Kim Date: Wed, 3 Jul 2024 10:46:01 +0900 Subject: [PATCH] Fix bug when resize size of ArrayBuffer from zero Signed-off-by: Seonghyun Kim --- src/runtime/ArrayBuffer.h | 9 +++++++-- src/runtime/TypedArrayObject.h | 5 ----- test/vendortest | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/runtime/ArrayBuffer.h b/src/runtime/ArrayBuffer.h index 43b1a2d35..6fc99cd95 100644 --- a/src/runtime/ArrayBuffer.h +++ b/src/runtime/ArrayBuffer.h @@ -193,6 +193,11 @@ class ArrayBufferView : public DerivedObject { return true; } + virtual size_t elementSize() + { + return 1; + } + void* operator new(size_t size) { static MAY_THREAD_LOCAL bool typeInited = false; @@ -225,9 +230,9 @@ class ArrayBufferView : public DerivedObject { self->m_arrayLength = self->m_byteLength = self->m_byteOffset = 0; } else if (self->m_auto) { // auto mode within boundary - size_t elementSize = self->m_arrayLength ? self->m_byteLength / self->m_arrayLength : SIZE_MAX; self->m_byteLength = newByteLength - self->m_byteOffset; - self->m_arrayLength = elementSize == SIZE_MAX ? 0 : self->m_byteLength / elementSize; + ASSERT(self->elementSize()); + self->m_arrayLength = self->m_byteLength / self->elementSize(); } self->updateCachedAddress(newAddress); diff --git a/src/runtime/TypedArrayObject.h b/src/runtime/TypedArrayObject.h index c2f12ebb6..86f1278d2 100644 --- a/src/runtime/TypedArrayObject.h +++ b/src/runtime/TypedArrayObject.h @@ -62,11 +62,6 @@ class TypedArrayObject : public ArrayBufferView { RELEASE_ASSERT_NOT_REACHED(); } - virtual size_t elementSize() - { - RELEASE_ASSERT_NOT_REACHED(); - } - virtual String* typedArrayName(ExecutionState& state) { RELEASE_ASSERT_NOT_REACHED(); diff --git a/test/vendortest b/test/vendortest index 18b003511..311dd115e 160000 --- a/test/vendortest +++ b/test/vendortest @@ -1 +1 @@ -Subproject commit 18b003511f40bf413f93890f8e71617876e0fe26 +Subproject commit 311dd115e4d25d0f985cc9666340995fae32bafd