Index: src/jsregexp.cc |
diff --git a/src/jsregexp.cc b/src/jsregexp.cc |
index cd51db80a4ec3e4897d410afc44ed6d67c805531..bf8e00a0fef53dccdfaa56f56d575926019f26c7 100644 |
--- a/src/jsregexp.cc |
+++ b/src/jsregexp.cc |
@@ -231,14 +231,13 @@ Handle<Object> RegExpImpl::Compile(Handle<JSRegExp> re, |
Handle<Object> RegExpImpl::Exec(Handle<JSRegExp> regexp, |
Handle<String> subject, |
int index, |
- Handle<JSArray> last_match_info, |
- Zone* zone) { |
+ Handle<JSArray> last_match_info) { |
switch (regexp->TypeTag()) { |
case JSRegExp::ATOM: |
return AtomExec(regexp, subject, index, last_match_info); |
case JSRegExp::IRREGEXP: { |
Handle<Object> result = |
- IrregexpExec(regexp, subject, index, last_match_info, zone); |
+ IrregexpExec(regexp, subject, index, last_match_info); |
ASSERT(!result.is_null() || |
regexp->GetIsolate()->has_pending_exception()); |
return result; |
@@ -345,8 +344,7 @@ Handle<Object> RegExpImpl::AtomExec(Handle<JSRegExp> re, |
// If compilation fails, an exception is thrown and this function |
// returns false. |
bool RegExpImpl::EnsureCompiledIrregexp( |
- Handle<JSRegExp> re, Handle<String> sample_subject, bool is_ascii, |
- Zone* zone) { |
+ Handle<JSRegExp> re, Handle<String> sample_subject, bool is_ascii) { |
Object* compiled_code = re->DataAt(JSRegExp::code_index(is_ascii)); |
#ifdef V8_INTERPRETED_REGEXP |
if (compiled_code->IsByteArray()) return true; |
@@ -362,7 +360,7 @@ bool RegExpImpl::EnsureCompiledIrregexp( |
ASSERT(compiled_code->IsSmi()); |
return true; |
} |
- return CompileIrregexp(re, sample_subject, is_ascii, zone); |
+ return CompileIrregexp(re, sample_subject, is_ascii); |
} |
@@ -384,8 +382,7 @@ static bool CreateRegExpErrorObjectAndThrow(Handle<JSRegExp> re, |
bool RegExpImpl::CompileIrregexp(Handle<JSRegExp> re, |
Handle<String> sample_subject, |
- bool is_ascii, |
- Zone* zone) { |
+ bool is_ascii) { |
// Compile the RegExp. |
Isolate* isolate = re->GetIsolate(); |
ZoneScope zone_scope(isolate, DELETE_ON_EXIT); |
@@ -437,7 +434,7 @@ bool RegExpImpl::CompileIrregexp(Handle<JSRegExp> re, |
pattern, |
sample_subject, |
is_ascii, |
- zone); |
+ isolate->zone()); |
if (result.error_message != NULL) { |
// Unable to compile regexp. |
Handle<String> error_message = |
@@ -502,13 +499,12 @@ void RegExpImpl::IrregexpInitialize(Handle<JSRegExp> re, |
int RegExpImpl::IrregexpPrepare(Handle<JSRegExp> regexp, |
- Handle<String> subject, |
- Zone* zone) { |
+ Handle<String> subject) { |
if (!subject->IsFlat()) FlattenString(subject); |
// Check the asciiness of the underlying storage. |
bool is_ascii = subject->IsAsciiRepresentationUnderneath(); |
- if (!EnsureCompiledIrregexp(regexp, subject, is_ascii, zone)) return -1; |
+ if (!EnsureCompiledIrregexp(regexp, subject, is_ascii)) return -1; |
#ifdef V8_INTERPRETED_REGEXP |
// Byte-code regexp needs space allocated for all its registers. |
@@ -541,8 +537,7 @@ int RegExpImpl::IrregexpExecRaw( |
Handle<JSRegExp> regexp, |
Handle<String> subject, |
int index, |
- Vector<int> output, |
- Zone* zone) { |
+ Vector<int> output) { |
Isolate* isolate = regexp->GetIsolate(); |
Handle<FixedArray> irregexp(FixedArray::cast(regexp->data()), isolate); |
@@ -556,7 +551,7 @@ int RegExpImpl::IrregexpExecRaw( |
#ifndef V8_INTERPRETED_REGEXP |
ASSERT(output.length() >= (IrregexpNumberOfCaptures(*irregexp) + 1) * 2); |
do { |
- EnsureCompiledIrregexp(regexp, subject, is_ascii, zone); |
+ EnsureCompiledIrregexp(regexp, subject, is_ascii); |
Handle<Code> code(IrregexpNativeCode(*irregexp, is_ascii), isolate); |
NativeRegExpMacroAssembler::Result res = |
NativeRegExpMacroAssembler::Match(code, |
@@ -582,7 +577,7 @@ int RegExpImpl::IrregexpExecRaw( |
// the, potentially, different subject (the string can switch between |
// being internal and external, and even between being ASCII and UC16, |
// but the characters are always the same). |
- IrregexpPrepare(regexp, subject, zone); |
+ IrregexpPrepare(regexp, subject); |
is_ascii = subject->IsAsciiRepresentationUnderneath(); |
} while (true); |
UNREACHABLE(); |
@@ -617,8 +612,7 @@ int RegExpImpl::IrregexpExecRaw( |
Handle<Object> RegExpImpl::IrregexpExec(Handle<JSRegExp> jsregexp, |
Handle<String> subject, |
int previous_index, |
- Handle<JSArray> last_match_info, |
- Zone* zone) { |
+ Handle<JSArray> last_match_info) { |
Isolate* isolate = jsregexp->GetIsolate(); |
ASSERT_EQ(jsregexp->TypeTag(), JSRegExp::IRREGEXP); |
@@ -632,7 +626,7 @@ Handle<Object> RegExpImpl::IrregexpExec(Handle<JSRegExp> jsregexp, |
} |
#endif |
#endif |
- int required_registers = RegExpImpl::IrregexpPrepare(jsregexp, subject, zone); |
+ int required_registers = RegExpImpl::IrregexpPrepare(jsregexp, subject); |
if (required_registers < 0) { |
// Compiling failed with an exception. |
ASSERT(isolate->has_pending_exception()); |
@@ -643,8 +637,7 @@ Handle<Object> RegExpImpl::IrregexpExec(Handle<JSRegExp> jsregexp, |
int res = RegExpImpl::IrregexpExecRaw(jsregexp, subject, previous_index, |
Vector<int>(registers.vector(), |
- registers.length()), |
- zone); |
+ registers.length())); |
if (res == RE_SUCCESS) { |
int capture_register_count = |
(IrregexpNumberOfCaptures(FixedArray::cast(jsregexp->data())) + 1) * 2; |
@@ -5987,7 +5980,7 @@ RegExpEngine::CompilationResult RegExpEngine::Compile( |
#else // V8_INTERPRETED_REGEXP |
// Interpreted regexp implementation. |
EmbeddedVector<byte, 1024> codes; |
- RegExpMacroAssemblerIrregexp macro_assembler(codes); |
+ RegExpMacroAssemblerIrregexp macro_assembler(codes, zone); |
#endif // V8_INTERPRETED_REGEXP |
// Inserted here, instead of in Assembler, because it depends on information |