OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 3110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3121 | 3121 |
3122 // Only continue checking for global regexps. | 3122 // Only continue checking for global regexps. |
3123 if (!is_global) break; | 3123 if (!is_global) break; |
3124 | 3124 |
3125 current_match = global_cache.FetchNext(); | 3125 current_match = global_cache.FetchNext(); |
3126 } while (current_match != NULL); | 3126 } while (current_match != NULL); |
3127 | 3127 |
3128 if (global_cache.HasException()) return Failure::Exception(); | 3128 if (global_cache.HasException()) return Failure::Exception(); |
3129 | 3129 |
3130 if (prev < subject_length) { | 3130 if (prev < subject_length) { |
| 3131 builder.EnsureCapacity(2); |
3131 builder.AddSubjectSlice(prev, subject_length); | 3132 builder.AddSubjectSlice(prev, subject_length); |
3132 } | 3133 } |
3133 | 3134 |
3134 RegExpImpl::SetLastMatchInfo(last_match_info, | 3135 RegExpImpl::SetLastMatchInfo(last_match_info, |
3135 subject, | 3136 subject, |
3136 capture_count, | 3137 capture_count, |
3137 global_cache.LastSuccessfulMatch()); | 3138 global_cache.LastSuccessfulMatch()); |
3138 | 3139 |
3139 return *(builder.ToString()); | 3140 return *(builder.ToString()); |
3140 } | 3141 } |
(...skipping 10205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13346 // Handle last resort GC and make sure to allow future allocations | 13347 // Handle last resort GC and make sure to allow future allocations |
13347 // to grow the heap without causing GCs (if possible). | 13348 // to grow the heap without causing GCs (if possible). |
13348 isolate->counters()->gc_last_resort_from_js()->Increment(); | 13349 isolate->counters()->gc_last_resort_from_js()->Increment(); |
13349 isolate->heap()->CollectAllGarbage(Heap::kNoGCFlags, | 13350 isolate->heap()->CollectAllGarbage(Heap::kNoGCFlags, |
13350 "Runtime::PerformGC"); | 13351 "Runtime::PerformGC"); |
13351 } | 13352 } |
13352 } | 13353 } |
13353 | 13354 |
13354 | 13355 |
13355 } } // namespace v8::internal | 13356 } } // namespace v8::internal |
OLD | NEW |