| Index: src/jsregexp.h
|
| diff --git a/src/jsregexp.h b/src/jsregexp.h
|
| index 20313ca559ff1dff6a47c4dd86879a64b6451dc5..2e90e9ad5af2865884d1675ad58cfba1dff77e0a 100644
|
| --- a/src/jsregexp.h
|
| +++ b/src/jsregexp.h
|
| @@ -109,16 +109,22 @@ class RegExpImpl {
|
| static int IrregexpPrepare(Handle<JSRegExp> regexp,
|
| Handle<String> subject);
|
|
|
| - // Execute a regular expression once on the subject, starting from
|
| - // character "index".
|
| - // If successful, returns RE_SUCCESS and set the capture positions
|
| - // in the first registers.
|
| + // Calculate the size of offsets vector for the case of global regexp
|
| + // and the number of matches this vector is able to store.
|
| + static int GlobalOffsetsVectorSize(Handle<JSRegExp> regexp,
|
| + int registers_per_match,
|
| + int* max_matches);
|
| +
|
| + // Execute a regular expression on the subject, starting from index.
|
| + // If matching succeeds, return the number of matches. This can be larger
|
| + // than one in the case of global regular expressions.
|
| + // The captures and subcaptures are stored into the registers vector.
|
| // If matching fails, returns RE_FAILURE.
|
| // If execution fails, sets a pending exception and returns RE_EXCEPTION.
|
| - static IrregexpResult IrregexpExecOnce(Handle<JSRegExp> regexp,
|
| - Handle<String> subject,
|
| - int index,
|
| - Vector<int> registers);
|
| + static int IrregexpExecRaw(Handle<JSRegExp> regexp,
|
| + Handle<String> subject,
|
| + int index,
|
| + Vector<int> registers);
|
|
|
| // Execute an Irregexp bytecode pattern.
|
| // On a successful match, the result is a JSArray containing
|
| @@ -1545,6 +1551,7 @@ class RegExpEngine: public AllStatic {
|
|
|
| static CompilationResult Compile(RegExpCompileData* input,
|
| bool ignore_case,
|
| + bool global,
|
| bool multiline,
|
| Handle<String> pattern,
|
| Handle<String> sample_subject,
|
| @@ -1573,7 +1580,8 @@ class OffsetsVector {
|
| inline int* vector() { return vector_; }
|
| inline int length() { return offsets_vector_length_; }
|
|
|
| - static const int kStaticOffsetsVectorSize = 50;
|
| + static const int kStaticOffsetsVectorSize =
|
| + Isolate::kJSRegexpStaticOffsetsVectorSize;
|
|
|
| private:
|
| static Address static_offsets_vector_address(Isolate* isolate) {
|
|
|