| Index: test/cctest/test-regexp.cc
|
| diff --git a/test/cctest/test-regexp.cc b/test/cctest/test-regexp.cc
|
| index 8afde463598787103b0abd3917938b9494e5a7f2..8aa9ffb015909ee2e283e85c8938241e72c453a8 100644
|
| --- a/test/cctest/test-regexp.cc
|
| +++ b/test/cctest/test-regexp.cc
|
| @@ -91,21 +91,21 @@ using namespace v8::internal;
|
|
|
| static bool CheckParse(const char* input) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| FlatStringReader reader(CcTest::i_isolate(), CStrVector(input));
|
| RegExpCompileData result;
|
| - return v8::internal::RegExpParser::ParseRegExp(&reader, false, false, &result,
|
| - &zone);
|
| + return v8::internal::RegExpParser::ParseRegExp(
|
| + CcTest::i_isolate(), &zone, &reader, false, false, &result);
|
| }
|
|
|
|
|
| static void CheckParseEq(const char* input, const char* expected) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| FlatStringReader reader(CcTest::i_isolate(), CStrVector(input));
|
| RegExpCompileData result;
|
| - CHECK(v8::internal::RegExpParser::ParseRegExp(&reader, false, false, &result,
|
| - &zone));
|
| + CHECK(v8::internal::RegExpParser::ParseRegExp(
|
| + CcTest::i_isolate(), &zone, &reader, false, false, &result));
|
| CHECK(result.tree != NULL);
|
| CHECK(result.error.is_null());
|
| std::ostringstream os;
|
| @@ -116,11 +116,11 @@ static void CheckParseEq(const char* input, const char* expected) {
|
|
|
| static bool CheckSimple(const char* input) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| FlatStringReader reader(CcTest::i_isolate(), CStrVector(input));
|
| RegExpCompileData result;
|
| - CHECK(v8::internal::RegExpParser::ParseRegExp(&reader, false, false, &result,
|
| - &zone));
|
| + CHECK(v8::internal::RegExpParser::ParseRegExp(
|
| + CcTest::i_isolate(), &zone, &reader, false, false, &result));
|
| CHECK(result.tree != NULL);
|
| CHECK(result.error.is_null());
|
| return result.simple;
|
| @@ -134,11 +134,11 @@ struct MinMaxPair {
|
|
|
| static MinMaxPair CheckMinMaxMatch(const char* input) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| FlatStringReader reader(CcTest::i_isolate(), CStrVector(input));
|
| RegExpCompileData result;
|
| - CHECK(v8::internal::RegExpParser::ParseRegExp(&reader, false, false, &result,
|
| - &zone));
|
| + CHECK(v8::internal::RegExpParser::ParseRegExp(
|
| + CcTest::i_isolate(), &zone, &reader, false, false, &result));
|
| CHECK(result.tree != NULL);
|
| CHECK(result.error.is_null());
|
| int min_match = result.tree->min_match();
|
| @@ -407,11 +407,11 @@ TEST(ParserRegression) {
|
| static void ExpectError(const char* input,
|
| const char* expected) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| FlatStringReader reader(CcTest::i_isolate(), CStrVector(input));
|
| RegExpCompileData result;
|
| - CHECK(!v8::internal::RegExpParser::ParseRegExp(&reader, false, false, &result,
|
| - &zone));
|
| + CHECK(!v8::internal::RegExpParser::ParseRegExp(
|
| + CcTest::i_isolate(), &zone, &reader, false, false, &result));
|
| CHECK(result.tree == NULL);
|
| CHECK(!result.error.is_null());
|
| SmartArrayPointer<char> str = result.error->ToCString(ALLOW_NULLS);
|
| @@ -476,7 +476,7 @@ static bool NotWord(uc16 c) {
|
|
|
|
|
| static void TestCharacterClassEscapes(uc16 c, bool (pred)(uc16 c)) {
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| ZoneList<CharacterRange>* ranges =
|
| new(&zone) ZoneList<CharacterRange>(2, &zone);
|
| CharacterRange::AddClassEscape(c, ranges, &zone);
|
| @@ -507,16 +507,17 @@ static RegExpNode* Compile(const char* input, bool multiline, bool unicode,
|
| Isolate* isolate = CcTest::i_isolate();
|
| FlatStringReader reader(isolate, CStrVector(input));
|
| RegExpCompileData compile_data;
|
| - if (!v8::internal::RegExpParser::ParseRegExp(&reader, multiline, unicode,
|
| - &compile_data, zone))
|
| + if (!v8::internal::RegExpParser::ParseRegExp(CcTest::i_isolate(), zone,
|
| + &reader, multiline, unicode,
|
| + &compile_data))
|
| return NULL;
|
| Handle<String> pattern = isolate->factory()
|
| ->NewStringFromUtf8(CStrVector(input))
|
| .ToHandleChecked();
|
| Handle<String> sample_subject =
|
| isolate->factory()->NewStringFromUtf8(CStrVector("")).ToHandleChecked();
|
| - RegExpEngine::Compile(&compile_data, false, false, multiline, false, pattern,
|
| - sample_subject, is_one_byte, zone);
|
| + RegExpEngine::Compile(isolate, zone, &compile_data, false, false, multiline,
|
| + false, pattern, sample_subject, is_one_byte);
|
| return compile_data.node;
|
| }
|
|
|
| @@ -524,7 +525,7 @@ static RegExpNode* Compile(const char* input, bool multiline, bool unicode,
|
| static void Execute(const char* input, bool multiline, bool unicode,
|
| bool is_one_byte, bool dot_output = false) {
|
| v8::HandleScope scope(CcTest::isolate());
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| RegExpNode* node = Compile(input, multiline, unicode, is_one_byte, &zone);
|
| USE(node);
|
| #ifdef DEBUG
|
| @@ -562,7 +563,7 @@ static unsigned PseudoRandom(int i, int j) {
|
|
|
| TEST(SplayTreeSimple) {
|
| static const unsigned kLimit = 1000;
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| ZoneSplayTree<TestConfig> tree(&zone);
|
| bool seen[kLimit];
|
| for (unsigned i = 0; i < kLimit; i++) seen[i] = false;
|
| @@ -629,7 +630,7 @@ TEST(DispatchTableConstruction) {
|
| }
|
| }
|
| // Enter test data into dispatch table.
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| DispatchTable table(&zone);
|
| for (int i = 0; i < kRangeCount; i++) {
|
| uc16* range = ranges[i];
|
| @@ -741,9 +742,10 @@ TEST(MacroAssemblerNativeSuccess) {
|
| ContextInitializer initializer;
|
| Isolate* isolate = CcTest::i_isolate();
|
| Factory* factory = isolate->factory();
|
| - Zone zone(isolate);
|
| + Zone zone;
|
|
|
| - ArchRegExpMacroAssembler m(NativeRegExpMacroAssembler::LATIN1, 4, &zone);
|
| + ArchRegExpMacroAssembler m(isolate, &zone, NativeRegExpMacroAssembler::LATIN1,
|
| + 4);
|
|
|
| m.Succeed();
|
|
|
| @@ -778,9 +780,10 @@ TEST(MacroAssemblerNativeSimple) {
|
| ContextInitializer initializer;
|
| Isolate* isolate = CcTest::i_isolate();
|
| Factory* factory = isolate->factory();
|
| - Zone zone(isolate);
|
| + Zone zone;
|
|
|
| - ArchRegExpMacroAssembler m(NativeRegExpMacroAssembler::LATIN1, 4, &zone);
|
| + ArchRegExpMacroAssembler m(isolate, &zone, NativeRegExpMacroAssembler::LATIN1,
|
| + 4);
|
|
|
| Label fail, backtrack;
|
| m.PushBacktrack(&fail);
|
| @@ -844,9 +847,10 @@ TEST(MacroAssemblerNativeSimpleUC16) {
|
| ContextInitializer initializer;
|
| Isolate* isolate = CcTest::i_isolate();
|
| Factory* factory = isolate->factory();
|
| - Zone zone(isolate);
|
| + Zone zone;
|
|
|
| - ArchRegExpMacroAssembler m(NativeRegExpMacroAssembler::UC16, 4, &zone);
|
| + ArchRegExpMacroAssembler m(isolate, &zone, NativeRegExpMacroAssembler::UC16,
|
| + 4);
|
|
|
| Label fail, backtrack;
|
| m.PushBacktrack(&fail);
|
| @@ -916,9 +920,10 @@ TEST(MacroAssemblerNativeBacktrack) {
|
| ContextInitializer initializer;
|
| Isolate* isolate = CcTest::i_isolate();
|
| Factory* factory = isolate->factory();
|
| - Zone zone(isolate);
|
| + Zone zone;
|
|
|
| - ArchRegExpMacroAssembler m(NativeRegExpMacroAssembler::LATIN1, 0, &zone);
|
| + ArchRegExpMacroAssembler m(isolate, &zone, NativeRegExpMacroAssembler::LATIN1,
|
| + 0);
|
|
|
| Label fail;
|
| Label backtrack;
|
| @@ -956,9 +961,10 @@ TEST(MacroAssemblerNativeBackReferenceLATIN1) {
|
| ContextInitializer initializer;
|
| Isolate* isolate = CcTest::i_isolate();
|
| Factory* factory = isolate->factory();
|
| - Zone zone(isolate);
|
| + Zone zone;
|
|
|
| - ArchRegExpMacroAssembler m(NativeRegExpMacroAssembler::LATIN1, 4, &zone);
|
| + ArchRegExpMacroAssembler m(isolate, &zone, NativeRegExpMacroAssembler::LATIN1,
|
| + 4);
|
|
|
| m.WriteCurrentPositionToRegister(0, 0);
|
| m.AdvanceCurrentPosition(2);
|
| @@ -1005,9 +1011,10 @@ TEST(MacroAssemblerNativeBackReferenceUC16) {
|
| ContextInitializer initializer;
|
| Isolate* isolate = CcTest::i_isolate();
|
| Factory* factory = isolate->factory();
|
| - Zone zone(isolate);
|
| + Zone zone;
|
|
|
| - ArchRegExpMacroAssembler m(NativeRegExpMacroAssembler::UC16, 4, &zone);
|
| + ArchRegExpMacroAssembler m(isolate, &zone, NativeRegExpMacroAssembler::UC16,
|
| + 4);
|
|
|
| m.WriteCurrentPositionToRegister(0, 0);
|
| m.AdvanceCurrentPosition(2);
|
| @@ -1057,9 +1064,10 @@ TEST(MacroAssemblernativeAtStart) {
|
| ContextInitializer initializer;
|
| Isolate* isolate = CcTest::i_isolate();
|
| Factory* factory = isolate->factory();
|
| - Zone zone(isolate);
|
| + Zone zone;
|
|
|
| - ArchRegExpMacroAssembler m(NativeRegExpMacroAssembler::LATIN1, 0, &zone);
|
| + ArchRegExpMacroAssembler m(isolate, &zone, NativeRegExpMacroAssembler::LATIN1,
|
| + 0);
|
|
|
| Label not_at_start, newline, fail;
|
| m.CheckNotAtStart(¬_at_start);
|
| @@ -1116,9 +1124,10 @@ TEST(MacroAssemblerNativeBackRefNoCase) {
|
| ContextInitializer initializer;
|
| Isolate* isolate = CcTest::i_isolate();
|
| Factory* factory = isolate->factory();
|
| - Zone zone(isolate);
|
| + Zone zone;
|
|
|
| - ArchRegExpMacroAssembler m(NativeRegExpMacroAssembler::LATIN1, 4, &zone);
|
| + ArchRegExpMacroAssembler m(isolate, &zone, NativeRegExpMacroAssembler::LATIN1,
|
| + 4);
|
|
|
| Label fail, succ;
|
|
|
| @@ -1174,9 +1183,10 @@ TEST(MacroAssemblerNativeRegisters) {
|
| ContextInitializer initializer;
|
| Isolate* isolate = CcTest::i_isolate();
|
| Factory* factory = isolate->factory();
|
| - Zone zone(isolate);
|
| + Zone zone;
|
|
|
| - ArchRegExpMacroAssembler m(NativeRegExpMacroAssembler::LATIN1, 6, &zone);
|
| + ArchRegExpMacroAssembler m(isolate, &zone, NativeRegExpMacroAssembler::LATIN1,
|
| + 6);
|
|
|
| uc16 foo_chars[3] = {'f', 'o', 'o'};
|
| Vector<const uc16> foo(foo_chars, 3);
|
| @@ -1275,9 +1285,10 @@ TEST(MacroAssemblerStackOverflow) {
|
| ContextInitializer initializer;
|
| Isolate* isolate = CcTest::i_isolate();
|
| Factory* factory = isolate->factory();
|
| - Zone zone(isolate);
|
| + Zone zone;
|
|
|
| - ArchRegExpMacroAssembler m(NativeRegExpMacroAssembler::LATIN1, 0, &zone);
|
| + ArchRegExpMacroAssembler m(isolate, &zone, NativeRegExpMacroAssembler::LATIN1,
|
| + 0);
|
|
|
| Label loop;
|
| m.Bind(&loop);
|
| @@ -1313,9 +1324,10 @@ TEST(MacroAssemblerNativeLotsOfRegisters) {
|
| ContextInitializer initializer;
|
| Isolate* isolate = CcTest::i_isolate();
|
| Factory* factory = isolate->factory();
|
| - Zone zone(isolate);
|
| + Zone zone;
|
|
|
| - ArchRegExpMacroAssembler m(NativeRegExpMacroAssembler::LATIN1, 2, &zone);
|
| + ArchRegExpMacroAssembler m(isolate, &zone, NativeRegExpMacroAssembler::LATIN1,
|
| + 2);
|
|
|
| // At least 2048, to ensure the allocated space for registers
|
| // span one full page.
|
| @@ -1427,7 +1439,7 @@ TEST(AddInverseToTable) {
|
| static const int kLimit = 1000;
|
| static const int kRangeCount = 16;
|
| for (int t = 0; t < 10; t++) {
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| ZoneList<CharacterRange>* ranges =
|
| new(&zone) ZoneList<CharacterRange>(kRangeCount, &zone);
|
| for (int i = 0; i < kRangeCount; i++) {
|
| @@ -1448,7 +1460,7 @@ TEST(AddInverseToTable) {
|
| CHECK_EQ(is_on, set->Get(0) == false);
|
| }
|
| }
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| ZoneList<CharacterRange>* ranges =
|
| new(&zone) ZoneList<CharacterRange>(1, &zone);
|
| ranges->Add(CharacterRange(0xFFF0, 0xFFFE), &zone);
|
| @@ -1559,13 +1571,13 @@ TEST(UncanonicalizeEquivalence) {
|
| }
|
|
|
|
|
| -static void TestRangeCaseIndependence(CharacterRange input,
|
| +static void TestRangeCaseIndependence(Isolate* isolate, CharacterRange input,
|
| Vector<CharacterRange> expected) {
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| int count = expected.length();
|
| ZoneList<CharacterRange>* list =
|
| new(&zone) ZoneList<CharacterRange>(count, &zone);
|
| - input.AddCaseEquivalents(list, false, &zone);
|
| + input.AddCaseEquivalents(isolate, &zone, list, false);
|
| CHECK_EQ(count, list->length());
|
| for (int i = 0; i < list->length(); i++) {
|
| CHECK_EQ(expected[i].from(), list->at(i).from());
|
| @@ -1574,39 +1586,41 @@ static void TestRangeCaseIndependence(CharacterRange input,
|
| }
|
|
|
|
|
| -static void TestSimpleRangeCaseIndependence(CharacterRange input,
|
| +static void TestSimpleRangeCaseIndependence(Isolate* isolate,
|
| + CharacterRange input,
|
| CharacterRange expected) {
|
| EmbeddedVector<CharacterRange, 1> vector;
|
| vector[0] = expected;
|
| - TestRangeCaseIndependence(input, vector);
|
| + TestRangeCaseIndependence(isolate, input, vector);
|
| }
|
|
|
|
|
| TEST(CharacterRangeCaseIndependence) {
|
| - TestSimpleRangeCaseIndependence(CharacterRange::Singleton('a'),
|
| + Isolate* isolate = CcTest::i_isolate();
|
| + TestSimpleRangeCaseIndependence(isolate, CharacterRange::Singleton('a'),
|
| CharacterRange::Singleton('A'));
|
| - TestSimpleRangeCaseIndependence(CharacterRange::Singleton('z'),
|
| + TestSimpleRangeCaseIndependence(isolate, CharacterRange::Singleton('z'),
|
| CharacterRange::Singleton('Z'));
|
| - TestSimpleRangeCaseIndependence(CharacterRange('a', 'z'),
|
| + TestSimpleRangeCaseIndependence(isolate, CharacterRange('a', 'z'),
|
| CharacterRange('A', 'Z'));
|
| - TestSimpleRangeCaseIndependence(CharacterRange('c', 'f'),
|
| + TestSimpleRangeCaseIndependence(isolate, CharacterRange('c', 'f'),
|
| CharacterRange('C', 'F'));
|
| - TestSimpleRangeCaseIndependence(CharacterRange('a', 'b'),
|
| + TestSimpleRangeCaseIndependence(isolate, CharacterRange('a', 'b'),
|
| CharacterRange('A', 'B'));
|
| - TestSimpleRangeCaseIndependence(CharacterRange('y', 'z'),
|
| + TestSimpleRangeCaseIndependence(isolate, CharacterRange('y', 'z'),
|
| CharacterRange('Y', 'Z'));
|
| - TestSimpleRangeCaseIndependence(CharacterRange('a' - 1, 'z' + 1),
|
| + TestSimpleRangeCaseIndependence(isolate, CharacterRange('a' - 1, 'z' + 1),
|
| CharacterRange('A', 'Z'));
|
| - TestSimpleRangeCaseIndependence(CharacterRange('A', 'Z'),
|
| + TestSimpleRangeCaseIndependence(isolate, CharacterRange('A', 'Z'),
|
| CharacterRange('a', 'z'));
|
| - TestSimpleRangeCaseIndependence(CharacterRange('C', 'F'),
|
| + TestSimpleRangeCaseIndependence(isolate, CharacterRange('C', 'F'),
|
| CharacterRange('c', 'f'));
|
| - TestSimpleRangeCaseIndependence(CharacterRange('A' - 1, 'Z' + 1),
|
| + TestSimpleRangeCaseIndependence(isolate, CharacterRange('A' - 1, 'Z' + 1),
|
| CharacterRange('a', 'z'));
|
| // Here we need to add [l-z] to complete the case independence of
|
| // [A-Za-z] but we expect [a-z] to be added since we always add a
|
| // whole block at a time.
|
| - TestSimpleRangeCaseIndependence(CharacterRange('A', 'k'),
|
| + TestSimpleRangeCaseIndependence(isolate, CharacterRange('A', 'k'),
|
| CharacterRange('a', 'z'));
|
| }
|
|
|
| @@ -1624,7 +1638,7 @@ static bool InClass(uc16 c, ZoneList<CharacterRange>* ranges) {
|
|
|
|
|
| TEST(CharClassDifference) {
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| ZoneList<CharacterRange>* base =
|
| new(&zone) ZoneList<CharacterRange>(1, &zone);
|
| base->Add(CharacterRange::Everything(), &zone);
|
| @@ -1651,7 +1665,7 @@ TEST(CharClassDifference) {
|
|
|
|
|
| TEST(CanonicalizeCharacterSets) {
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| ZoneList<CharacterRange>* list =
|
| new(&zone) ZoneList<CharacterRange>(4, &zone);
|
| CharacterSet set(list);
|
| @@ -1712,7 +1726,7 @@ TEST(CanonicalizeCharacterSets) {
|
|
|
|
|
| TEST(CharacterRangeMerge) {
|
| - Zone zone(CcTest::i_isolate());
|
| + Zone zone;
|
| ZoneList<CharacterRange> l1(4, &zone);
|
| ZoneList<CharacterRange> l2(4, &zone);
|
| // Create all combinations of intersections of ranges, both singletons and
|
|
|