5 #ifndef V8_BUILTINS_BUILTINS_REGEXP_GEN_H_ 6 #define V8_BUILTINS_BUILTINS_REGEXP_GEN_H_ 8 #include "src/base/optional.h" 9 #include "src/code-stub-assembler.h" 10 #include "src/message-template.h" 20 void BranchIfFastRegExp(
21 Node*
const context,
Node*
const object,
Node*
const map,
23 Label*
const if_isunmodified,
Label*
const if_ismodified);
50 void FastStoreLastIndex(
Node* regexp,
Node* value);
51 void SlowStoreLastIndex(
Node* context,
Node* regexp,
Node* value);
52 void StoreLastIndex(
Node* context,
Node* regexp,
Node* value,
57 void GetStringPointers(
Node*
const string_data,
Node*
const offset,
58 Node*
const last_index,
Node*
const string_length,
59 String::Encoding encoding,
Variable* var_string_start,
79 const bool is_fastpath);
81 Node* ThrowIfNotJSReceiver(
Node* context,
Node* maybe_receiver,
82 MessageTemplate msg_template,
83 char const* method_name);
89 void BranchIfFastRegExp(
Node*
const context,
Node*
const object,
90 Label*
const if_isunmodified,
91 Label*
const if_ismodified);
95 Node* IsFastRegExpNoPrototype(
Node*
const context,
Node*
const object);
98 Node* IsFastRegExpNoPrototype(
Node*
const context,
Node*
const object,
101 void BranchIfFastRegExpResult(
Node*
const context,
Node*
const object,
102 Label* if_isunmodified,
Label* if_ismodified);
104 Node* FlagsGetter(
Node*
const context,
Node*
const regexp,
bool is_fastpath);
108 JSRegExp::Flag flag);
110 JSRegExp::Flag flag,
bool is_fastpath);
112 void FlagGetter(
Node* context,
Node* receiver, JSRegExp::Flag flag,
113 int counter,
const char* method_name);
115 Node* IsRegExp(
Node*
const context,
Node*
const maybe_receiver);
117 Node* RegExpInitialize(
Node*
const context,
Node*
const regexp,
118 Node*
const maybe_pattern,
Node*
const maybe_flags);
122 Node* AdvanceStringIndex(
Node*
const string,
Node*
const index,
123 Node*
const is_unicode,
bool is_fastpath);
125 void RegExpPrototypeMatchBody(
Node*
const context,
Node*
const regexp,
127 const bool is_fastpath);
129 void RegExpPrototypeSearchBodyFast(
Node*
const context,
Node*
const regexp,
131 void RegExpPrototypeSearchBodySlow(
Node*
const context,
Node*
const regexp,
134 void RegExpPrototypeSplitBody(
Node*
const context,
Node*
const regexp,
138 Node* ReplaceGlobalCallableFastPath(
Node* context,
Node* regexp,
Node*
string,
139 Node* replace_callable);
140 Node* ReplaceSimpleStringFastPath(
Node* context,
Node* regexp,
162 #endif // V8_BUILTINS_BUILTINS_REGEXP_GEN_H_