Chromium Code Reviews| Index: src/jsregexp.cc |
| diff --git a/src/jsregexp.cc b/src/jsregexp.cc |
| index 3455abce2399b3030a172e10ce1e2eb463f43647..9d4f66ad65cabb8267e53a4de323af8af317489a 100644 |
| --- a/src/jsregexp.cc |
| +++ b/src/jsregexp.cc |
| @@ -1,4 +1,4 @@ |
| -// Copyright 2011 the V8 project authors. All rights reserved. |
| +// Copyright 2012 the V8 project authors. All rights reserved. |
| // Redistribution and use in source and binary forms, with or without |
| // modification, are permitted provided that the following conditions are |
| // met: |
| @@ -429,6 +429,7 @@ bool RegExpImpl::CompileIrregexp(Handle<JSRegExp> re, |
| RegExpEngine::CompilationResult result = |
| RegExpEngine::Compile(&compile_data, |
| flags.is_ignore_case(), |
| + flags.is_global(), |
| flags.is_multiline(), |
| pattern, |
| sample_subject, |
| @@ -900,7 +901,9 @@ class FrequencyCollator { |
| class RegExpCompiler { |
| public: |
| - RegExpCompiler(int capture_count, bool ignore_case, bool is_ascii); |
| + RegExpCompiler(int capture_count, |
|
Erik Corry
2012/05/11 11:01:00
You don't need this change.
Yang
2012/05/16 14:58:47
Done.
|
| + bool ignore_case, |
| + bool ascii); |
| int AllocateRegister() { |
| if (next_register_ >= RegExpMacroAssembler::kMaxRegister) { |
| @@ -974,7 +977,9 @@ static RegExpEngine::CompilationResult IrregexpRegExpTooBig() { |
| // Attempts to compile the regexp using an Irregexp code generator. Returns |
| // a fixed array or a null handle depending on whether it succeeded. |
| -RegExpCompiler::RegExpCompiler(int capture_count, bool ignore_case, bool ascii) |
| +RegExpCompiler::RegExpCompiler(int capture_count, |
| + bool ignore_case, |
|
Erik Corry
2012/05/11 11:01:00
You don't need this change.
Yang
2012/05/16 14:58:47
Done.
|
| + bool ascii) |
| : next_register_(2 * (capture_count + 1)), |
| work_list_(NULL), |
| recursion_depth_(0), |
| @@ -5780,6 +5785,7 @@ void DispatchTableConstructor::VisitAction(ActionNode* that) { |
| RegExpEngine::CompilationResult RegExpEngine::Compile( |
| RegExpCompileData* data, |
| bool ignore_case, |
| + bool is_global, |
| bool is_multiline, |
| Handle<String> pattern, |
| Handle<String> sample_subject, |
| @@ -5787,7 +5793,9 @@ RegExpEngine::CompilationResult RegExpEngine::Compile( |
| if ((data->capture_count + 1) * 2 - 1 > RegExpMacroAssembler::kMaxRegister) { |
| return IrregexpRegExpTooBig(); |
| } |
| - RegExpCompiler compiler(data->capture_count, ignore_case, is_ascii); |
| + RegExpCompiler compiler(data->capture_count, |
|
Erik Corry
2012/05/11 11:01:00
Or this.
Yang
2012/05/16 14:58:47
Done.
|
| + ignore_case, |
| + is_ascii); |
| // Sample some characters from the middle of the string. |
| static const int kSampleSize = 128; |
| @@ -5868,6 +5876,8 @@ RegExpEngine::CompilationResult RegExpEngine::Compile( |
| RegExpMacroAssemblerMIPS macro_assembler(mode, (data->capture_count + 1) * 2); |
| #endif |
| + macro_assembler.set_global(is_global); |
| + |
| #else // V8_INTERPRETED_REGEXP |
| // Interpreted regexp implementation. |
| EmbeddedVector<byte, 1024> codes; |