| Index: src/parser.h
|
| diff --git a/src/parser.h b/src/parser.h
|
| index 219f1c4b211a591ab807ce33d303e9602dafa72e..518b443e3d4e9b95d587d3d17b9f8aa964d81113 100644
|
| --- a/src/parser.h
|
| +++ b/src/parser.h
|
| @@ -222,15 +222,11 @@ class RegExpBuilder: public ZoneObject {
|
|
|
| class RegExpParser BASE_EMBEDDED {
|
| public:
|
| - RegExpParser(FlatStringReader* in,
|
| - Handle<String>* error,
|
| - bool multiline_mode,
|
| - Zone* zone);
|
| + RegExpParser(FlatStringReader* in, Handle<String>* error, bool multiline_mode,
|
| + bool unicode, Zone* zone);
|
|
|
| - static bool ParseRegExp(FlatStringReader* input,
|
| - bool multiline,
|
| - RegExpCompileData* result,
|
| - Zone* zone);
|
| + static bool ParseRegExp(FlatStringReader* input, bool multiline, bool unicode,
|
| + RegExpCompileData* result, Zone* zone);
|
|
|
| RegExpTree* ParsePattern();
|
| RegExpTree* ParseDisjunction();
|
| @@ -248,6 +244,8 @@ class RegExpParser BASE_EMBEDDED {
|
| // Checks whether the following is a length-digit hexadecimal number,
|
| // and sets the value if it is.
|
| bool ParseHexEscape(int length, uc32* value);
|
| + bool ParseUnicodeEscape(uc32* value);
|
| + bool ParseUnlimitedLengthHexNumber(int max_value, uc32* value);
|
|
|
| uc32 ParseOctalLiteral();
|
|
|
| @@ -272,6 +270,8 @@ class RegExpParser BASE_EMBEDDED {
|
| int position() { return next_pos_ - 1; }
|
| bool failed() { return failed_; }
|
|
|
| + static bool IsSyntaxCharacter(uc32 c);
|
| +
|
| static const int kMaxCaptures = 1 << 16;
|
| static const uc32 kEndMarker = (1 << 21);
|
|
|
| @@ -338,6 +338,7 @@ class RegExpParser BASE_EMBEDDED {
|
| int capture_count_;
|
| bool has_more_;
|
| bool multiline_;
|
| + bool unicode_;
|
| bool simple_;
|
| bool contains_anchor_;
|
| bool is_scanned_for_captures_;
|
|
|