1 // Copyright 2017 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef V8_FIND_AND_REPLACE_PATTERN_H_ 6 #define V8_FIND_AND_REPLACE_PATTERN_H_ 7 8 #include "src/handles.h" 9 10 namespace v8 { 11 namespace internal { 12 13 class Map; 14 class Object; 15 16 class FindAndReplacePattern { 17 public: FindAndReplacePattern()18 FindAndReplacePattern() : count_(0) {} Add(Handle<Map> map_to_find,Handle<Object> obj_to_replace)19 void Add(Handle<Map> map_to_find, Handle<Object> obj_to_replace) { 20 DCHECK(count_ < kMaxCount); 21 find_[count_] = map_to_find; 22 replace_[count_] = obj_to_replace; 23 ++count_; 24 } 25 26 private: 27 static const int kMaxCount = 4; 28 int count_; 29 Handle<Map> find_[kMaxCount]; 30 Handle<Object> replace_[kMaxCount]; 31 friend class Code; 32 }; 33 34 } // namespace internal 35 } // namespace v8 36 37 #endif // V8_FIND_AND_REPLACE_PATTERN_H_ 38