| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index d18a158c44d0442eb42ec67c5bea514031c15b48..c8ad03057c47a55f1658ecc024867c09d52865ce 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -1746,7 +1746,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_RegExpExec) {
|
| Handle<Object> result = RegExpImpl::Exec(regexp,
|
| subject,
|
| index,
|
| - last_match_info);
|
| + last_match_info,
|
| + isolate->zone());
|
| if (result.is_null()) return Failure::Exception();
|
| return *result;
|
| }
|
| @@ -3054,7 +3055,8 @@ MUST_USE_RESULT static MaybeObject* StringReplaceRegExpWithString(
|
| Handle<Object> match = RegExpImpl::Exec(regexp_handle,
|
| subject_handle,
|
| 0,
|
| - last_match_info_handle);
|
| + last_match_info_handle,
|
| + isolate->zone());
|
| if (match.is_null()) {
|
| return Failure::Exception();
|
| }
|
| @@ -3153,7 +3155,8 @@ MUST_USE_RESULT static MaybeObject* StringReplaceRegExpWithString(
|
| match = RegExpImpl::Exec(regexp_handle,
|
| subject_handle,
|
| next,
|
| - last_match_info_handle);
|
| + last_match_info_handle,
|
| + isolate->zone());
|
| if (match.is_null()) {
|
| return Failure::Exception();
|
| }
|
| @@ -3206,7 +3209,8 @@ MUST_USE_RESULT static MaybeObject* StringReplaceRegExpWithEmptyString(
|
| Handle<Object> match = RegExpImpl::Exec(regexp_handle,
|
| subject_handle,
|
| 0,
|
| - last_match_info_handle);
|
| + last_match_info_handle,
|
| + isolate->zone());
|
| if (match.is_null()) return Failure::Exception();
|
| if (match->IsNull()) return *subject_handle;
|
|
|
| @@ -3280,7 +3284,8 @@ MUST_USE_RESULT static MaybeObject* StringReplaceRegExpWithEmptyString(
|
| match = RegExpImpl::Exec(regexp_handle,
|
| subject_handle,
|
| next,
|
| - last_match_info_handle);
|
| + last_match_info_handle,
|
| + isolate->zone());
|
| if (match.is_null()) return Failure::Exception();
|
| if (match->IsNull()) break;
|
|
|
| @@ -3693,7 +3698,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StringMatch) {
|
| CONVERT_ARG_HANDLE_CHECKED(JSArray, regexp_info, 2);
|
| HandleScope handles;
|
|
|
| - Handle<Object> match = RegExpImpl::Exec(regexp, subject, 0, regexp_info);
|
| + Handle<Object> match = RegExpImpl::Exec(regexp, subject, 0, regexp_info,
|
| + isolate->zone());
|
|
|
| if (match.is_null()) {
|
| return Failure::Exception();
|
| @@ -3717,7 +3723,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StringMatch) {
|
| offsets.Add(start);
|
| offsets.Add(end);
|
| if (start == end) if (++end > length) break;
|
| - match = RegExpImpl::Exec(regexp, subject, end, regexp_info);
|
| + match = RegExpImpl::Exec(regexp, subject, end, regexp_info,
|
| + isolate->zone());
|
| if (match.is_null()) {
|
| return Failure::Exception();
|
| }
|
| @@ -3815,7 +3822,8 @@ static int SearchRegExpNoCaptureMultiple(
|
| int match_start = -1;
|
| int match_end = 0;
|
| int pos = 0;
|
| - int registers_per_match = RegExpImpl::IrregexpPrepare(regexp, subject);
|
| + int registers_per_match = RegExpImpl::IrregexpPrepare(regexp, subject,
|
| + isolate->zone());
|
| if (registers_per_match < 0) return RegExpImpl::RE_EXCEPTION;
|
|
|
| int max_matches;
|
| @@ -3830,7 +3838,8 @@ static int SearchRegExpNoCaptureMultiple(
|
| int num_matches = RegExpImpl::IrregexpExecRaw(regexp,
|
| subject,
|
| pos,
|
| - register_vector);
|
| + register_vector,
|
| + isolate->zone());
|
| if (num_matches > 0) {
|
| for (int match_index = 0; match_index < num_matches; match_index++) {
|
| int32_t* current_match = ®ister_vector[match_index * 2];
|
| @@ -3900,7 +3909,8 @@ static int SearchRegExpMultiple(
|
| FixedArrayBuilder* builder) {
|
|
|
| ASSERT(subject->IsFlat());
|
| - int registers_per_match = RegExpImpl::IrregexpPrepare(regexp, subject);
|
| + int registers_per_match = RegExpImpl::IrregexpPrepare(regexp, subject,
|
| + isolate->zone());
|
| if (registers_per_match < 0) return RegExpImpl::RE_EXCEPTION;
|
|
|
| int max_matches;
|
| @@ -3913,7 +3923,8 @@ static int SearchRegExpMultiple(
|
| int num_matches = RegExpImpl::IrregexpExecRaw(regexp,
|
| subject,
|
| 0,
|
| - register_vector);
|
| + register_vector,
|
| + isolate->zone());
|
|
|
| int capture_count = regexp->CaptureCount();
|
| int subject_length = subject->length();
|
| @@ -3999,7 +4010,8 @@ static int SearchRegExpMultiple(
|
| num_matches = RegExpImpl::IrregexpExecRaw(regexp,
|
| subject,
|
| pos,
|
| - register_vector);
|
| + register_vector,
|
| + isolate->zone());
|
| } while (num_matches > 0);
|
|
|
| if (num_matches != RegExpImpl::RE_EXCEPTION) {
|
|
|