| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 671 ZoneScope zone_scope(DELETE_ON_EXIT); | 671 ZoneScope zone_scope(DELETE_ON_EXIT); |
| 672 ZoneList<CharacterRange>* ranges = | 672 ZoneList<CharacterRange>* ranges = |
| 673 new ZoneList<CharacterRange>(kRangeCount); | 673 new ZoneList<CharacterRange>(kRangeCount); |
| 674 for (int i = 0; i < kRangeCount; i++) { | 674 for (int i = 0; i < kRangeCount; i++) { |
| 675 int from = PseudoRandom(t + 87, i + 25) % kLimit; | 675 int from = PseudoRandom(t + 87, i + 25) % kLimit; |
| 676 int to = from + (PseudoRandom(i + 87, t + 25) % (kLimit / 20)); | 676 int to = from + (PseudoRandom(i + 87, t + 25) % (kLimit / 20)); |
| 677 if (to > kLimit) to = kLimit; | 677 if (to > kLimit) to = kLimit; |
| 678 ranges->Add(CharacterRange(from, to)); | 678 ranges->Add(CharacterRange(from, to)); |
| 679 } | 679 } |
| 680 DispatchTable table; | 680 DispatchTable table; |
| 681 CharacterClassNode::AddInverseToTable(ranges, &table, 0); | 681 DispatchTableConstructor cons(&table); |
| 682 cons.set_choice_index(0); |
| 683 cons.AddInverse(ranges); |
| 682 for (int i = 0; i < kLimit; i++) { | 684 for (int i = 0; i < kLimit; i++) { |
| 683 bool is_on = false; | 685 bool is_on = false; |
| 684 for (int j = 0; !is_on && j < kRangeCount; j++) | 686 for (int j = 0; !is_on && j < kRangeCount; j++) |
| 685 is_on = ranges->at(j).Contains(i); | 687 is_on = ranges->at(j).Contains(i); |
| 686 OutSet* set = table.Get(i); | 688 OutSet* set = table.Get(i); |
| 687 CHECK_EQ(is_on, set->Get(0) == false); | 689 CHECK_EQ(is_on, set->Get(0) == false); |
| 688 } | 690 } |
| 689 } | 691 } |
| 690 ZoneScope zone_scope(DELETE_ON_EXIT); | 692 ZoneScope zone_scope(DELETE_ON_EXIT); |
| 691 ZoneList<CharacterRange>* ranges = | 693 ZoneList<CharacterRange>* ranges = |
| 692 new ZoneList<CharacterRange>(1); | 694 new ZoneList<CharacterRange>(1); |
| 693 ranges->Add(CharacterRange(0xFFF0, 0xFFFE)); | 695 ranges->Add(CharacterRange(0xFFF0, 0xFFFE)); |
| 694 DispatchTable table; | 696 DispatchTable table; |
| 695 CharacterClassNode::AddInverseToTable(ranges, &table, 0); | 697 DispatchTableConstructor cons(&table); |
| 698 cons.set_choice_index(0); |
| 699 cons.AddInverse(ranges); |
| 696 CHECK(!table.Get(0xFFFE)->Get(0)); | 700 CHECK(!table.Get(0xFFFE)->Get(0)); |
| 697 CHECK(table.Get(0xFFFF)->Get(0)); | 701 CHECK(table.Get(0xFFFF)->Get(0)); |
| 698 } | 702 } |
| 699 | 703 |
| 700 | 704 |
| 701 TEST(Graph) { | 705 TEST(Graph) { |
| 702 Execute("a|(b|c)|d", "", true); | 706 Execute("a|(b|c)|d", "", true); |
| 703 } | 707 } |
| OLD | NEW |