summaryrefslogtreecommitdiff
path: root/deps/v8/src/builtins/builtins-regexp-gen.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/builtins/builtins-regexp-gen.h')
-rw-r--r--deps/v8/src/builtins/builtins-regexp-gen.h51
1 files changed, 29 insertions, 22 deletions
diff --git a/deps/v8/src/builtins/builtins-regexp-gen.h b/deps/v8/src/builtins/builtins-regexp-gen.h
index 251e8c035e..fd0e4b6755 100644
--- a/deps/v8/src/builtins/builtins-regexp-gen.h
+++ b/deps/v8/src/builtins/builtins-regexp-gen.h
@@ -34,16 +34,21 @@ class RegExpBuiltinsAssembler : public CodeStubAssembler {
char const* method_name);
protected:
+ TNode<Smi> SmiZero();
+ TNode<IntPtrT> IntPtrZero();
+
// Allocate a RegExpResult with the given length (the number of captures,
// including the match itself), index (the index where the match starts),
- // and input string. |length| and |index| are expected to be tagged, and
- // |input| must be a string.
- Node* AllocateRegExpResult(Node* context, Node* length, Node* index,
- Node* input);
+ // and input string.
+ TNode<JSRegExpResult> AllocateRegExpResult(TNode<Context> context,
+ TNode<Smi> length,
+ TNode<Smi> index,
+ TNode<String> input);
- TNode<Object> FastLoadLastIndex(Node* regexp);
- Node* SlowLoadLastIndex(Node* context, Node* regexp);
- Node* LoadLastIndex(Node* context, Node* regexp, bool is_fastpath);
+ TNode<Object> FastLoadLastIndex(TNode<JSRegExp> regexp);
+ TNode<Object> SlowLoadLastIndex(TNode<Context> context, TNode<Object> regexp);
+ TNode<Object> LoadLastIndex(TNode<Context> context, TNode<Object> regexp,
+ bool is_fastpath);
void FastStoreLastIndex(Node* regexp, Node* value);
void SlowStoreLastIndex(Node* context, Node* regexp, Node* value);
@@ -58,21 +63,23 @@ class RegExpBuiltinsAssembler : public CodeStubAssembler {
Variable* var_string_end);
// Low level logic around the actual call into pattern matching code.
- Node* RegExpExecInternal(Node* const context, Node* const regexp,
- Node* const string, Node* const last_index,
- Node* const match_info);
-
- Node* ConstructNewResultFromMatchInfo(Node* const context, Node* const regexp,
- Node* const match_info,
- TNode<String> const string);
-
- Node* RegExpPrototypeExecBodyWithoutResult(Node* const context,
- Node* const regexp,
- Node* const string,
- Label* if_didnotmatch,
- const bool is_fastpath);
- Node* RegExpPrototypeExecBody(Node* const context, Node* const regexp,
- TNode<String> string, const bool is_fastpath);
+ TNode<HeapObject> RegExpExecInternal(TNode<Context> context,
+ TNode<JSRegExp> regexp,
+ TNode<String> string,
+ TNode<Number> last_index,
+ TNode<RegExpMatchInfo> match_info);
+
+ TNode<JSRegExpResult> ConstructNewResultFromMatchInfo(
+ TNode<Context> context, TNode<JSReceiver> maybe_regexp,
+ TNode<RegExpMatchInfo> match_info, TNode<String> string);
+
+ TNode<RegExpMatchInfo> RegExpPrototypeExecBodyWithoutResult(
+ TNode<Context> context, TNode<JSReceiver> maybe_regexp,
+ TNode<String> string, Label* if_didnotmatch, const bool is_fastpath);
+ TNode<HeapObject> RegExpPrototypeExecBody(TNode<Context> context,
+ TNode<JSReceiver> maybe_regexp,
+ TNode<String> string,
+ const bool is_fastpath);
Node* ThrowIfNotJSReceiver(Node* context, Node* maybe_receiver,
MessageTemplate::Template msg_template,