| Index: src/compiler/simplified-operator.h
|
| diff --git a/src/compiler/simplified-operator.h b/src/compiler/simplified-operator.h
|
| index 37b64125a8fade7149a6d5af543ec19d83efbdc4..eb630b90c7979ad2f3c70e7dfc88f798b7d1528c 100644
|
| --- a/src/compiler/simplified-operator.h
|
| +++ b/src/compiler/simplified-operator.h
|
| @@ -141,6 +141,22 @@ std::ostream& operator<<(std::ostream&, CheckForMinusZeroMode);
|
|
|
| CheckForMinusZeroMode CheckMinusZeroModeOf(const Operator*) WARN_UNUSED_RESULT;
|
|
|
| +// A descriptor for growing elements backing stores.
|
| +enum class GrowFastElementsFlag : uint8_t {
|
| + kNone = 0u,
|
| + kArrayObject = 1u << 0, // Update JSArray::length field.
|
| + kHoleyElements = 1u << 1, // Backing store is holey.
|
| + kDoubleElements = 1u << 2, // Backing store contains doubles.
|
| +};
|
| +typedef base::Flags<GrowFastElementsFlag> GrowFastElementsFlags;
|
| +
|
| +DEFINE_OPERATORS_FOR_FLAGS(GrowFastElementsFlags)
|
| +
|
| +std::ostream& operator<<(std::ostream&, GrowFastElementsFlags);
|
| +
|
| +GrowFastElementsFlags GrowFastElementsFlagsOf(const Operator*)
|
| + WARN_UNUSED_RESULT;
|
| +
|
| // A descriptor for elements kind transitions.
|
| enum class ElementsTransition : uint8_t {
|
| kFastTransition, // simple transition, just updating the map.
|
| @@ -323,6 +339,9 @@ class SimplifiedOperatorBuilder final : public ZoneObject {
|
| // ensure-writable-fast-elements object, elements
|
| const Operator* EnsureWritableFastElements();
|
|
|
| + // maybe-grow-fast-elements object, elements, index, length
|
| + const Operator* MaybeGrowFastElements(GrowFastElementsFlags flags);
|
| +
|
| // transition-elements-kind object, from-map, to-map
|
| const Operator* TransitionElementsKind(ElementsTransition transition);
|
|
|
|
|