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; |