summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/runtime/IndexingHeaderInlineMethods.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/runtime/IndexingHeaderInlineMethods.h')
-rw-r--r--Source/JavaScriptCore/runtime/IndexingHeaderInlineMethods.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/Source/JavaScriptCore/runtime/IndexingHeaderInlineMethods.h b/Source/JavaScriptCore/runtime/IndexingHeaderInlineMethods.h
index e1d893b0b..22785ce24 100644
--- a/Source/JavaScriptCore/runtime/IndexingHeaderInlineMethods.h
+++ b/Source/JavaScriptCore/runtime/IndexingHeaderInlineMethods.h
@@ -42,10 +42,17 @@ inline size_t IndexingHeader::preCapacity(Structure* structure)
inline size_t IndexingHeader::indexingPayloadSizeInBytes(Structure* structure)
{
- if (LIKELY(!hasArrayStorage(structure->indexingType())))
+ switch (structure->indexingType()) {
+ case ALL_CONTIGUOUS_INDEXING_TYPES:
+ return vectorLength() * sizeof(EncodedJSValue);
+
+ case ALL_ARRAY_STORAGE_INDEXING_TYPES:
+ return ArrayStorage::sizeFor(arrayStorage()->vectorLength());
+
+ default:
+ ASSERT(!hasIndexedProperties(structure->indexingType()));
return 0;
-
- return ArrayStorage::sizeFor(arrayStorage()->vectorLength());
+ }
}
} // namespace JSC