diff options
Diffstat (limited to 'src/3rdparty/v8/src/regexp-macro-assembler-tracer.cc')
-rw-r--r-- | src/3rdparty/v8/src/regexp-macro-assembler-tracer.cc | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/src/3rdparty/v8/src/regexp-macro-assembler-tracer.cc b/src/3rdparty/v8/src/regexp-macro-assembler-tracer.cc index b7aeac4..f878e8c 100644 --- a/src/3rdparty/v8/src/regexp-macro-assembler-tracer.cc +++ b/src/3rdparty/v8/src/regexp-macro-assembler-tracer.cc @@ -1,4 +1,4 @@ -// Copyright 2008 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: @@ -35,6 +35,7 @@ namespace internal { RegExpMacroAssemblerTracer::RegExpMacroAssemblerTracer( RegExpMacroAssembler* assembler) : + RegExpMacroAssembler(assembler->zone()), assembler_(assembler) { unsigned int type = assembler->Implementation(); ASSERT(type < 5); @@ -102,14 +103,15 @@ void RegExpMacroAssemblerTracer::PushBacktrack(Label* label) { } -void RegExpMacroAssemblerTracer::Succeed() { - PrintF(" Succeed();\n"); - assembler_->Succeed(); +bool RegExpMacroAssemblerTracer::Succeed() { + bool restart = assembler_->Succeed(); + PrintF(" Succeed();%s\n", restart ? " [restart for global match]" : ""); + return restart; } void RegExpMacroAssemblerTracer::Fail() { - PrintF(" Fail();\n"); + PrintF(" Fail();"); assembler_->Fail(); } @@ -381,17 +383,6 @@ void RegExpMacroAssemblerTracer::CheckNotBackReferenceIgnoreCase( } -void RegExpMacroAssemblerTracer::CheckNotRegistersEqual(int reg1, - int reg2, - Label* on_not_equal) { - PrintF(" CheckNotRegistersEqual(reg1=%d, reg2=%d, label[%08x]);\n", - reg1, - reg2, - LabelToInt(on_not_equal)); - assembler_->CheckNotRegistersEqual(reg1, reg2, on_not_equal); -} - - void RegExpMacroAssemblerTracer::CheckCharacters(Vector<const uc16> str, int cp_offset, Label* on_failure, |