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

Side by Side Diff: test/mjsunit/harmony/regexp-dotall.js

Issue 2780173002: [regexp] Add support for dotAll flag (Closed)
Patch Set: Address comments Created 3 years, 8 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/regexp/regexp-parser.cc ('k') | test/mjsunit/harmony/regexp-dotall-disabled.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2017 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Flags: --harmony-regexp-dotall
6
7 function toSlowMode(re) {
8 re.exec = (str) => RegExp.prototype.exec.call(re, str);
9 return re;
10 }
11
12 // Construction does not throw.
13 {
14 let re = /./s;
15 re = RegExp(".", "s");
16 re = new RegExp(".", "s");
17 assertThrows(() => new RegExp(".", "wtf"), SyntaxError);
18 }
19
20 // The flags accessors.
21 {
22 let re = /./s;
23 assertEquals("s", re.flags);
24 assertFalse(re.global);
25 assertFalse(re.ignoreCase);
26 assertFalse(re.multiline);
27 assertFalse(re.sticky);
28 assertFalse(re.unicode);
29 assertTrue(re.dotAll);
30
31 re = toSlowMode(/./s);
32 assertEquals("s", re.flags);
33 assertFalse(re.global);
34 assertFalse(re.ignoreCase);
35 assertFalse(re.multiline);
36 assertFalse(re.sticky);
37 assertFalse(re.unicode);
38 assertTrue(re.dotAll);
39
40 re = /./gimyus;
41 assertEquals("gimsuy", re.flags);
42 assertTrue(re.global);
43 assertTrue(re.ignoreCase);
44 assertTrue(re.multiline);
45 assertTrue(re.sticky);
46 assertTrue(re.unicode);
47 assertTrue(re.dotAll);
48
49 re = /./gimyu;
50 assertEquals("gimuy", re.flags);
51 assertTrue(re.global);
52 assertTrue(re.ignoreCase);
53 assertTrue(re.multiline);
54 assertTrue(re.sticky);
55 assertTrue(re.unicode);
56 assertFalse(re.dotAll);
57 }
58
59 // Default '.' behavior.
60 {
61 let re = /^.$/;
62 assertTrue(re.test("a"));
63 assertTrue(re.test("3"));
64 assertTrue(re.test("π"));
65 assertTrue(re.test("\u2027"));
66 assertTrue(re.test("\u0085"));
67 assertTrue(re.test("\v"));
68 assertTrue(re.test("\f"));
69 assertTrue(re.test("\u180E"));
70 assertFalse(re.test("\u{10300}")); // Supplementary plane.
71 assertFalse(re.test("\n"));
72 assertFalse(re.test("\r"));
73 assertFalse(re.test("\u2028"));
74 assertFalse(re.test("\u2029"));
75 }
76
77 // Default '.' behavior (unicode).
78 {
79 let re = /^.$/u;
80 assertTrue(re.test("a"));
81 assertTrue(re.test("3"));
82 assertTrue(re.test("π"));
83 assertTrue(re.test("\u2027"));
84 assertTrue(re.test("\u0085"));
85 assertTrue(re.test("\v"));
86 assertTrue(re.test("\f"));
87 assertTrue(re.test("\u180E"));
88 assertTrue(re.test("\u{10300}")); // Supplementary plane.
89 assertFalse(re.test("\n"));
90 assertFalse(re.test("\r"));
91 assertFalse(re.test("\u2028"));
92 assertFalse(re.test("\u2029"));
93 }
94
95 // DotAll '.' behavior.
96 {
97 let re = /^.$/s;
98 assertTrue(re.test("a"));
99 assertTrue(re.test("3"));
100 assertTrue(re.test("π"));
101 assertTrue(re.test("\u2027"));
102 assertTrue(re.test("\u0085"));
103 assertTrue(re.test("\v"));
104 assertTrue(re.test("\f"));
105 assertTrue(re.test("\u180E"));
106 assertFalse(re.test("\u{10300}")); // Supplementary plane.
107 assertTrue(re.test("\n"));
108 assertTrue(re.test("\r"));
109 assertTrue(re.test("\u2028"));
110 assertTrue(re.test("\u2029"));
111 }
112
113 // DotAll '.' behavior (unicode).
114 {
115 let re = /^.$/su;
116 assertTrue(re.test("a"));
117 assertTrue(re.test("3"));
118 assertTrue(re.test("π"));
119 assertTrue(re.test("\u2027"));
120 assertTrue(re.test("\u0085"));
121 assertTrue(re.test("\v"));
122 assertTrue(re.test("\f"));
123 assertTrue(re.test("\u180E"));
124 assertTrue(re.test("\u{10300}")); // Supplementary plane.
125 assertTrue(re.test("\n"));
126 assertTrue(re.test("\r"));
127 assertTrue(re.test("\u2028"));
128 assertTrue(re.test("\u2029"));
129 }
OLDNEW
« no previous file with comments | « src/regexp/regexp-parser.cc ('k') | test/mjsunit/harmony/regexp-dotall-disabled.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698