| Index: src/arm/regexp-macro-assembler-arm.cc
|
| ===================================================================
|
| --- src/arm/regexp-macro-assembler-arm.cc (revision 4395)
|
| +++ src/arm/regexp-macro-assembler-arm.cc (working copy)
|
| @@ -611,7 +611,6 @@
|
| __ add(frame_pointer(), sp, Operand(4 * kPointerSize));
|
| __ push(r0); // Make room for "position - 1" constant (value is irrelevant).
|
| __ push(r0); // Make room for "at start" constant (value is irrelevant).
|
| -
|
| // Check if we have space on the stack for registers.
|
| Label stack_limit_hit;
|
| Label stack_ok;
|
| @@ -1001,6 +1000,12 @@
|
| // If not real stack overflow the stack guard was used to interrupt
|
| // execution for another purpose.
|
|
|
| + // If this is a direct call from JavaScript retry the RegExp forcing the call
|
| + // through the runtime system. Currently the direct call cannot handle a GC.
|
| + if (frame_entry<int>(re_frame, kDirectCall) == 1) {
|
| + return RETRY;
|
| + }
|
| +
|
| // Prepare for possible GC.
|
| HandleScope handles;
|
| Handle<Code> code_handle(re_code);
|
|
|