| Index: src/builtins/builtins-regexp.cc
|
| diff --git a/src/builtins/builtins-regexp.cc b/src/builtins/builtins-regexp.cc
|
| index 1a99bfb84af794c1a0a39b6bda1ea33a963eae2c..b907a1bf45dd0559bbf92279e69cb6704121e94f 100644
|
| --- a/src/builtins/builtins-regexp.cc
|
| +++ b/src/builtins/builtins-regexp.cc
|
| @@ -2,6 +2,8 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "src/builtins/builtins-regexp.h"
|
| +
|
| #include "src/builtins/builtins-constructor.h"
|
| #include "src/builtins/builtins-utils.h"
|
| #include "src/builtins/builtins.h"
|
| @@ -14,82 +16,8 @@
|
| namespace v8 {
|
| namespace internal {
|
|
|
| -typedef compiler::Node Node;
|
| typedef CodeStubAssembler::ParameterMode ParameterMode;
|
| -typedef compiler::CodeAssemblerState CodeAssemblerState;
|
|
|
| -class RegExpBuiltinsAssembler : public CodeStubAssembler {
|
| - public:
|
| - explicit RegExpBuiltinsAssembler(CodeAssemblerState* state)
|
| - : CodeStubAssembler(state) {}
|
| -
|
| - protected:
|
| - Node* FastLoadLastIndex(Node* regexp);
|
| - Node* SlowLoadLastIndex(Node* context, Node* regexp);
|
| - Node* LoadLastIndex(Node* context, Node* regexp, bool is_fastpath);
|
| -
|
| - void FastStoreLastIndex(Node* regexp, Node* value);
|
| - void SlowStoreLastIndex(Node* context, Node* regexp, Node* value);
|
| - void StoreLastIndex(Node* context, Node* regexp, Node* value,
|
| - bool is_fastpath);
|
| -
|
| - Node* ConstructNewResultFromMatchInfo(Node* const context, Node* const regexp,
|
| - Node* const match_info,
|
| - Node* 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,
|
| - Node* const string, const bool is_fastpath);
|
| -
|
| - Node* ThrowIfNotJSReceiver(Node* context, Node* maybe_receiver,
|
| - MessageTemplate::Template msg_template,
|
| - char const* method_name);
|
| -
|
| - Node* IsInitialRegExpMap(Node* context, Node* map);
|
| - void BranchIfFastRegExp(Node* context, Node* map, Label* if_isunmodified,
|
| - Label* if_ismodified);
|
| - void BranchIfFastRegExpResult(Node* context, Node* map,
|
| - Label* if_isunmodified, Label* if_ismodified);
|
| -
|
| - Node* FlagsGetter(Node* const context, Node* const regexp, bool is_fastpath);
|
| -
|
| - Node* FastFlagGetter(Node* const regexp, JSRegExp::Flag flag);
|
| - Node* SlowFlagGetter(Node* const context, Node* const regexp,
|
| - JSRegExp::Flag flag);
|
| - Node* FlagGetter(Node* const context, Node* const regexp, JSRegExp::Flag flag,
|
| - bool is_fastpath);
|
| - void FlagGetter(JSRegExp::Flag flag, v8::Isolate::UseCounterFeature counter,
|
| - const char* method_name);
|
| -
|
| - Node* IsRegExp(Node* const context, Node* const maybe_receiver);
|
| - Node* RegExpInitialize(Node* const context, Node* const regexp,
|
| - Node* const maybe_pattern, Node* const maybe_flags);
|
| -
|
| - Node* RegExpExec(Node* context, Node* regexp, Node* string);
|
| -
|
| - Node* AdvanceStringIndex(Node* const string, Node* const index,
|
| - Node* const is_unicode);
|
| -
|
| - void RegExpPrototypeMatchBody(Node* const context, Node* const regexp,
|
| - Node* const string, const bool is_fastpath);
|
| -
|
| - void RegExpPrototypeSearchBodyFast(Node* const context, Node* const regexp,
|
| - Node* const string);
|
| - void RegExpPrototypeSearchBodySlow(Node* const context, Node* const regexp,
|
| - Node* const string);
|
| -
|
| - void RegExpPrototypeSplitBody(Node* const context, Node* const regexp,
|
| - Node* const string, Node* const limit);
|
| -
|
| - Node* ReplaceGlobalCallableFastPath(Node* context, Node* regexp, Node* string,
|
| - Node* replace_callable);
|
| - Node* ReplaceSimpleStringFastPath(Node* context, Node* regexp, Node* string,
|
| - Node* replace_string);
|
| -};
|
|
|
| // -----------------------------------------------------------------------------
|
| // ES6 section 21.2 RegExp Objects
|
|
|