Commit 626b9525 authored by Peter Marshall's avatar Peter Marshall Committed by Commit Bot

[cleanup] Remove name from ElementsAccessor

This is only used by ElementsKindToString(!).

Implement ElementsKindToString with a big 'ol switch. The compiler
will give us an error if we forget an ElementsKind.

Bug: v8:9183
Change-Id: I1ed73ecac33aa7318a97f31794473d9afa16961c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624802
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61773}
parent 130f9192
...@@ -66,8 +66,47 @@ int GetDefaultHeaderSizeForElementsKind(ElementsKind elements_kind) { ...@@ -66,8 +66,47 @@ int GetDefaultHeaderSizeForElementsKind(ElementsKind elements_kind) {
} }
const char* ElementsKindToString(ElementsKind kind) { const char* ElementsKindToString(ElementsKind kind) {
ElementsAccessor* accessor = ElementsAccessor::ForKind(kind); switch (kind) {
return accessor->name(); case PACKED_SMI_ELEMENTS:
return "PACKED_SMI_ELEMENTS";
case HOLEY_SMI_ELEMENTS:
return "HOLEY_SMI_ELEMENTS";
case PACKED_ELEMENTS:
return "PACKED_ELEMENTS";
case HOLEY_ELEMENTS:
return "HOLEY_ELEMENTS";
case PACKED_DOUBLE_ELEMENTS:
return "PACKED_DOUBLE_ELEMENTS";
case HOLEY_DOUBLE_ELEMENTS:
return "HOLEY_DOUBLE_ELEMENTS";
case PACKED_SEALED_ELEMENTS:
return "PACKED_SEALED_ELEMENTS";
case HOLEY_SEALED_ELEMENTS:
return "HOLEY_SEALED_ELEMENTS";
case PACKED_FROZEN_ELEMENTS:
return "PACKED_FROZEN_ELEMENTS";
case HOLEY_FROZEN_ELEMENTS:
return "HOLEY_FROZEN_ELEMENTS";
case DICTIONARY_ELEMENTS:
return "DICTIONARY_ELEMENTS";
case FAST_SLOPPY_ARGUMENTS_ELEMENTS:
return "FAST_SLOPPY_ARGUMENTS_ELEMENTS";
case SLOW_SLOPPY_ARGUMENTS_ELEMENTS:
return "SLOW_SLOPPY_ARGUMENTS_ELEMENTS";
case FAST_STRING_WRAPPER_ELEMENTS:
return "FAST_STRING_WRAPPER_ELEMENTS";
case SLOW_STRING_WRAPPER_ELEMENTS:
return "SLOW_STRING_WRAPPER_ELEMENTS";
#define PRINT_NAME(Type, type, TYPE, _) \
case TYPE##_ELEMENTS: \
return #TYPE "ELEMENTS";
TYPED_ARRAYS(PRINT_NAME);
#undef PRINT_NAME
case NO_ELEMENTS:
return "NO_ELEMENTS";
}
} }
ElementsKind kFastElementsKindSequence[kFastElementsKindCount] = { ElementsKind kFastElementsKindSequence[kFastElementsKindCount] = {
......
This diff is collapsed.
...@@ -18,11 +18,9 @@ class JSTypedArray; ...@@ -18,11 +18,9 @@ class JSTypedArray;
// ElementsKinds. // ElementsKinds.
class ElementsAccessor { class ElementsAccessor {
public: public:
explicit ElementsAccessor(const char* name) : name_(name) {} ElementsAccessor() = default;
virtual ~ElementsAccessor() = default; virtual ~ElementsAccessor() = default;
const char* name() const { return name_; }
// Returns a shared ElementsAccessor for the specified ElementsKind. // Returns a shared ElementsAccessor for the specified ElementsKind.
static ElementsAccessor* ForKind(ElementsKind elements_kind) { static ElementsAccessor* ForKind(ElementsKind elements_kind) {
DCHECK_LT(static_cast<int>(elements_kind), kElementsKindCount); DCHECK_LT(static_cast<int>(elements_kind), kElementsKindCount);
...@@ -213,7 +211,6 @@ class ElementsAccessor { ...@@ -213,7 +211,6 @@ class ElementsAccessor {
private: private:
static ElementsAccessor** elements_accessors_; static ElementsAccessor** elements_accessors_;
const char* name_;
DISALLOW_COPY_AND_ASSIGN(ElementsAccessor); DISALLOW_COPY_AND_ASSIGN(ElementsAccessor);
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment