| Index: src/compiler/simplified-operator.cc
 | 
| diff --git a/src/compiler/simplified-operator.cc b/src/compiler/simplified-operator.cc
 | 
| index ea271677536b9171ca3704b48d105c80d001aa87..52544e2b8368ea34685b8ae325135a9b5e68bea0 100644
 | 
| --- a/src/compiler/simplified-operator.cc
 | 
| +++ b/src/compiler/simplified-operator.cc
 | 
| @@ -249,6 +249,31 @@ CheckTaggedHoleMode CheckTaggedHoleModeOf(const Operator* op) {
 | 
|    return OpParameter<CheckTaggedHoleMode>(op);
 | 
|  }
 | 
|  
 | 
| +std::ostream& operator<<(std::ostream& os, GrowFastElementsFlags flags) {
 | 
| +  bool empty = true;
 | 
| +  if (flags & GrowFastElementsFlag::kArrayObject) {
 | 
| +    os << "ArrayObject";
 | 
| +    empty = false;
 | 
| +  }
 | 
| +  if (flags & GrowFastElementsFlag::kDoubleElements) {
 | 
| +    if (!empty) os << "|";
 | 
| +    os << "DoubleElements";
 | 
| +    empty = false;
 | 
| +  }
 | 
| +  if (flags & GrowFastElementsFlag::kHoleyElements) {
 | 
| +    if (!empty) os << "|";
 | 
| +    os << "HoleyElements";
 | 
| +    empty = false;
 | 
| +  }
 | 
| +  if (empty) os << "None";
 | 
| +  return os;
 | 
| +}
 | 
| +
 | 
| +GrowFastElementsFlags GrowFastElementsFlagsOf(const Operator* op) {
 | 
| +  DCHECK_EQ(IrOpcode::kMaybeGrowFastElements, op->opcode());
 | 
| +  return OpParameter<GrowFastElementsFlags>(op);
 | 
| +}
 | 
| +
 | 
|  size_t hash_value(ElementsTransition transition) {
 | 
|    return static_cast<uint8_t>(transition);
 | 
|  }
 | 
| @@ -654,6 +679,16 @@ const Operator* SimplifiedOperatorBuilder::EnsureWritableFastElements() {
 | 
|    return &cache_.kEnsureWritableFastElements;
 | 
|  }
 | 
|  
 | 
| +const Operator* SimplifiedOperatorBuilder::MaybeGrowFastElements(
 | 
| +    GrowFastElementsFlags flags) {
 | 
| +  return new (zone()) Operator1<GrowFastElementsFlags>(  // --
 | 
| +      IrOpcode::kMaybeGrowFastElements,                  // opcode
 | 
| +      Operator::kNoThrow,                                // flags
 | 
| +      "MaybeGrowFastElements",                           // name
 | 
| +      4, 1, 1, 1, 1, 0,                                  // counts
 | 
| +      flags);                                            // parameter
 | 
| +}
 | 
| +
 | 
|  const Operator* SimplifiedOperatorBuilder::TransitionElementsKind(
 | 
|      ElementsTransition transition) {
 | 
|    return new (zone()) Operator1<ElementsTransition>(  // --
 | 
| 
 |