| Index: src/jsregexp.cc | 
| =================================================================== | 
| --- src/jsregexp.cc	(revision 469) | 
| +++ src/jsregexp.cc	(working copy) | 
| @@ -279,19 +279,23 @@ | 
| multiline_option, &number_of_captures, | 
| &error_message, &JSREMalloc, &JSREFree); | 
|  | 
| -  if (code == NULL && malloc_failure->IsRetryAfterGC()) { | 
| -    // Performs a GC, then retries. | 
| -    if (!Heap::CollectGarbage(malloc_failure->requested(), | 
| -                              malloc_failure->allocation_space())) { | 
| -      // TODO(1181417): Fix this. | 
| -      V8::FatalProcessOutOfMemory("RegExpImpl::JsreCompile"); | 
| +  if (code == NULL) { | 
| +    if (malloc_failure->IsRetryAfterGC()) { | 
| +      // Performs a GC, then retries. | 
| +      if (!Heap::CollectGarbage(malloc_failure->requested(), | 
| +                                malloc_failure->allocation_space())) { | 
| +        // TODO(1181417): Fix this. | 
| +        V8::FatalProcessOutOfMemory("RegExpImpl::JsreCompile"); | 
| +      } | 
| +      malloc_failure = Failure::Exception(); | 
| +      code = jsRegExpCompile(two_byte_pattern->GetTwoByteData(), | 
| +                             pattern->length(), case_option, | 
| +                             multiline_option, &number_of_captures, | 
| +                             &error_message, &JSREMalloc, &JSREFree); | 
| } | 
| -    malloc_failure = Failure::Exception(); | 
| -    code = jsRegExpCompile(two_byte_pattern->GetTwoByteData(), | 
| -                           pattern->length(), case_option, | 
| -                           multiline_option, &number_of_captures, | 
| -                           &error_message, &JSREMalloc, &JSREFree); | 
| -    if (code == NULL && malloc_failure->IsRetryAfterGC()) { | 
| +    if (code == NULL && | 
| +        (malloc_failure->IsRetryAfterGC() || | 
| +         malloc_failure->IsOutOfMemoryFailure())) { | 
| // TODO(1181417): Fix this. | 
| V8::FatalProcessOutOfMemory("RegExpImpl::JsreCompile"); | 
| } | 
|  |