Index: src/compiler/simplified-operator.cc |
diff --git a/src/compiler/simplified-operator.cc b/src/compiler/simplified-operator.cc |
index e7374246961e3011569ffb646cd90b92f5fb497c..989aa3613e0337bdd9c72b47313bf1d2c624bcfa 100644 |
--- a/src/compiler/simplified-operator.cc |
+++ b/src/compiler/simplified-operator.cc |
@@ -503,6 +503,16 @@ struct SimplifiedOperatorGlobalCache final { |
AllocateOperator<NOT_TENURED> kAllocateNotTenuredOperator; |
AllocateOperator<TENURED> kAllocateTenuredOperator; |
+ struct EnsureWritableFastElementsOperator final : public Operator { |
+ EnsureWritableFastElementsOperator() |
+ : Operator( // -- |
+ IrOpcode::kEnsureWritableFastElements, // opcode |
+ Operator::kNoDeopt | Operator::kNoThrow, // flags |
+ "EnsureWritableFastElements", // name |
+ 2, 1, 1, 1, 1, 0) {} // counts |
+ }; |
+ EnsureWritableFastElementsOperator kEnsureWritableFastElements; |
+ |
#define BUFFER_ACCESS(Type, type, TYPE, ctype, size) \ |
struct LoadBuffer##Type##Operator final : public Operator1<BufferAccess> { \ |
LoadBuffer##Type##Operator() \ |
@@ -618,6 +628,10 @@ const Operator* SimplifiedOperatorBuilder::ReferenceEqual(Type* type) { |
"ReferenceEqual", 2, 0, 0, 1, 0, 0); |
} |
+const Operator* SimplifiedOperatorBuilder::EnsureWritableFastElements() { |
+ return &cache_.kEnsureWritableFastElements; |
+} |
+ |
const Operator* SimplifiedOperatorBuilder::TransitionElementsKind( |
ElementsTransition transition) { |
return new (zone()) Operator1<ElementsTransition>( // -- |