• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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