| Index: src/runtime/runtime-regexp.cc
|
| diff --git a/src/runtime/runtime-regexp.cc b/src/runtime/runtime-regexp.cc
|
| index a8133d349538e4f0742f25042653b793d0f8b877..b36e5e66cbae17b447958a05c6ef192a94197272 100644
|
| --- a/src/runtime/runtime-regexp.cc
|
| +++ b/src/runtime/runtime-regexp.cc
|
| @@ -386,11 +386,10 @@ void FindStringIndicesDispatch(Isolate* isolate, String* subject,
|
| }
|
| }
|
|
|
| -
|
| template <typename ResultSeqString>
|
| MUST_USE_RESULT static Object* StringReplaceGlobalAtomRegExpWithString(
|
| Isolate* isolate, Handle<String> subject, Handle<JSRegExp> pattern_regexp,
|
| - Handle<String> replacement, Handle<JSArray> last_match_info) {
|
| + Handle<String> replacement, Handle<JSObject> last_match_info) {
|
| DCHECK(subject->IsFlat());
|
| DCHECK(replacement->IsFlat());
|
|
|
| @@ -465,10 +464,9 @@ MUST_USE_RESULT static Object* StringReplaceGlobalAtomRegExpWithString(
|
| return *result;
|
| }
|
|
|
| -
|
| MUST_USE_RESULT static Object* StringReplaceGlobalRegExpWithString(
|
| Isolate* isolate, Handle<String> subject, Handle<JSRegExp> regexp,
|
| - Handle<String> replacement, Handle<JSArray> last_match_info) {
|
| + Handle<String> replacement, Handle<JSObject> last_match_info) {
|
| DCHECK(subject->IsFlat());
|
| DCHECK(replacement->IsFlat());
|
|
|
| @@ -547,11 +545,10 @@ MUST_USE_RESULT static Object* StringReplaceGlobalRegExpWithString(
|
| RETURN_RESULT_OR_FAILURE(isolate, builder.ToString());
|
| }
|
|
|
| -
|
| template <typename ResultSeqString>
|
| MUST_USE_RESULT static Object* StringReplaceGlobalRegExpWithEmptyString(
|
| Isolate* isolate, Handle<String> subject, Handle<JSRegExp> regexp,
|
| - Handle<JSArray> last_match_info) {
|
| + Handle<JSObject> last_match_info) {
|
| DCHECK(subject->IsFlat());
|
|
|
| // Shortcut for simple non-regexp global replacements
|
| @@ -654,7 +651,7 @@ RUNTIME_FUNCTION(Runtime_StringReplaceGlobalRegExpWithString) {
|
| CONVERT_ARG_HANDLE_CHECKED(String, subject, 0);
|
| CONVERT_ARG_HANDLE_CHECKED(String, replacement, 2);
|
| CONVERT_ARG_HANDLE_CHECKED(JSRegExp, regexp, 1);
|
| - CONVERT_ARG_HANDLE_CHECKED(JSArray, last_match_info, 3);
|
| + CONVERT_ARG_HANDLE_CHECKED(JSObject, last_match_info, 3);
|
|
|
| CHECK(regexp->GetFlags() & JSRegExp::kGlobal);
|
| CHECK(last_match_info->HasFastObjectElements());
|
| @@ -771,7 +768,7 @@ RUNTIME_FUNCTION(Runtime_RegExpExec) {
|
| CONVERT_ARG_HANDLE_CHECKED(JSRegExp, regexp, 0);
|
| CONVERT_ARG_HANDLE_CHECKED(String, subject, 1);
|
| CONVERT_INT32_ARG_CHECKED(index, 2);
|
| - CONVERT_ARG_HANDLE_CHECKED(JSArray, last_match_info, 3);
|
| + CONVERT_ARG_HANDLE_CHECKED(JSObject, last_match_info, 3);
|
| // Due to the way the JS calls are constructed this must be less than the
|
| // length of a string, i.e. it is always a Smi. We check anyway for security.
|
| CHECK(index >= 0);
|
| @@ -838,7 +835,7 @@ RUNTIME_FUNCTION(Runtime_RegExpInitializeAndCompile) {
|
| template <bool has_capture>
|
| static Object* SearchRegExpMultiple(Isolate* isolate, Handle<String> subject,
|
| Handle<JSRegExp> regexp,
|
| - Handle<JSArray> last_match_array,
|
| + Handle<JSObject> last_match_array,
|
| Handle<JSArray> result_array) {
|
| DCHECK(subject->IsFlat());
|
| DCHECK_NE(has_capture, regexp->CaptureCount() == 0);
|
| @@ -988,7 +985,7 @@ RUNTIME_FUNCTION(Runtime_RegExpExecMultiple) {
|
|
|
| CONVERT_ARG_HANDLE_CHECKED(JSRegExp, regexp, 0);
|
| CONVERT_ARG_HANDLE_CHECKED(String, subject, 1);
|
| - CONVERT_ARG_HANDLE_CHECKED(JSArray, last_match_info, 2);
|
| + CONVERT_ARG_HANDLE_CHECKED(JSObject, last_match_info, 2);
|
| CONVERT_ARG_HANDLE_CHECKED(JSArray, result_array, 3);
|
| CHECK(last_match_info->HasFastObjectElements());
|
| CHECK(result_array->HasFastObjectElements());
|
|
|