| Index: src/jsregexp.h
|
| diff --git a/src/jsregexp.h b/src/jsregexp.h
|
| index 0b4f39dc494db4ae25a7e2391f529afb785f2db8..227e304e2d59e69840ec698f4c6f737b949fafb5 100644
|
| --- a/src/jsregexp.h
|
| +++ b/src/jsregexp.h
|
| @@ -570,7 +570,7 @@ extern int kUninitializedRegExpNodePlaceHolder;
|
| class RegExpNode: public ZoneObject {
|
| public:
|
| explicit RegExpNode(Zone* zone)
|
| - : replacement_(NULL), trace_count_(0), zone_(zone) {
|
| + : replacement_(NULL), on_work_list_(false), trace_count_(0), zone_(zone) {
|
| bm_info_[0] = bm_info_[1] = NULL;
|
| }
|
| virtual ~RegExpNode();
|
| @@ -618,6 +618,7 @@ class RegExpNode: public ZoneObject {
|
| // EatsAtLeast, GetQuickCheckDetails. The budget argument is used to limit
|
| // the number of nodes we are willing to look at in order to create this data.
|
| static const int kRecursionBudget = 200;
|
| + bool KeepRecursing(RegExpCompiler* compiler);
|
| virtual void FillInBMInfo(int offset,
|
| int budget,
|
| BoyerMooreLookahead* bm,
|
| @@ -658,6 +659,9 @@ class RegExpNode: public ZoneObject {
|
| // the deferred actions in the current trace and generating a goto.
|
| static const int kMaxCopiesCodeGenerated = 10;
|
|
|
| + bool on_work_list() { return on_work_list_; }
|
| + void set_on_work_list(bool value) { on_work_list_ = value; }
|
| +
|
| NodeInfo* info() { return &info_; }
|
|
|
| BoyerMooreLookahead* bm_info(bool not_at_start) {
|
| @@ -679,6 +683,7 @@ class RegExpNode: public ZoneObject {
|
| private:
|
| static const int kFirstCharBudget = 10;
|
| Label label_;
|
| + bool on_work_list_;
|
| NodeInfo info_;
|
| // This variable keeps track of how many times code has been generated for
|
| // this node (in different traces). We don't keep track of where the
|
|
|