Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(386)

Side by Side Diff: test/mjsunit/regexp.js

Issue 3812012: Revert revision 5657. (Closed)
Patch Set: Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/x64/regexp-macro-assembler-x64.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2008 the V8 project authors. All rights reserved. 1 // Copyright 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 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 assertEquals(false, desc.value); 582 assertEquals(false, desc.value);
583 assertEquals(false, desc.configurable); 583 assertEquals(false, desc.configurable);
584 assertEquals(false, desc.enumerable); 584 assertEquals(false, desc.enumerable);
585 assertEquals(false, desc.writable); 585 assertEquals(false, desc.writable);
586 586
587 desc = Object.getOwnPropertyDescriptor(re, "lastIndex"); 587 desc = Object.getOwnPropertyDescriptor(re, "lastIndex");
588 assertEquals(0, desc.value); 588 assertEquals(0, desc.value);
589 assertEquals(false, desc.configurable); 589 assertEquals(false, desc.configurable);
590 assertEquals(false, desc.enumerable); 590 assertEquals(false, desc.enumerable);
591 assertEquals(true, desc.writable); 591 assertEquals(true, desc.writable);
592
593
594 // Check that end-anchored regexps are optimized correctly.
595 var re = /(?:a|bc)g$/;
596 assertTrue(re.test("ag"));
597 assertTrue(re.test("bcg"));
598 assertTrue(re.test("abcg"));
599 assertTrue(re.test("zimbag"));
600 assertTrue(re.test("zimbcg"));
601
602 assertFalse(re.test("g"));
603 assertFalse(re.test(""));
604
605 // Global regexp (non-zero start).
606 var re = /(?:a|bc)g$/g;
607 assertTrue(re.test("ag"));
608 re.lastIndex = 1; // Near start of string.
609 assertTrue(re.test("zimbag"));
610 re.lastIndex = 5; // Near end of string.
611 assertFalse(re.test("zimbag"));
612 re.lastIndex = 4;
613 assertTrue(re.test("zimbag"));
614
615 // Anchored at both ends.
616 var re = /^(?:a|bc)g$/g;
617 assertTrue(re.test("ag"));
618 re.lastIndex = 1;
619 assertFalse(re.test("ag"));
620 re.lastIndex = 1;
621 assertFalse(re.test("zag"));
622
623 // Long max_length of RegExp.
624 var re = /VeryLongRegExp!{1,1000}$/;
625 assertTrue(re.test("BahoolaVeryLongRegExp!!!!!!"));
626 assertFalse(re.test("VeryLongRegExp"));
627 assertFalse(re.test("!"));
628
629 // End anchor inside disjunction.
630 var re = /(?:a$|bc$)/;
631 assertTrue(re.test("a"));
632 assertTrue(re.test("bc"));
633 assertTrue(re.test("abc"));
634 assertTrue(re.test("zimzamzumba"));
635 assertTrue(re.test("zimzamzumbc"));
636 assertFalse(re.test("c"));
637 assertFalse(re.test(""));
638
639 // Only partially anchored.
640 var re = /(?:a|bc$)/;
641 assertTrue(re.test("a"));
642 assertTrue(re.test("bc"));
643 assertEquals(["a"], re.exec("abc"));
644 assertEquals(4, re.exec("zimzamzumba").index);
645 assertEquals(["bc"], re.exec("zimzomzumbc"));
646 assertFalse(re.test("c"));
647 assertFalse(re.test(""));
OLDNEW
« no previous file with comments | « src/x64/regexp-macro-assembler-x64.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698