Index: test/mjsunit/harmony/regexp-dotall-disabled.js |
diff --git a/test/mjsunit/harmony/regexp-dotall-disabled.js b/test/mjsunit/harmony/regexp-dotall-disabled.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..79429c8c7e51e0db3a8a3035ef9da185faccbfce |
--- /dev/null |
+++ b/test/mjsunit/harmony/regexp-dotall-disabled.js |
@@ -0,0 +1,69 @@ |
+// Copyright 2017 the V8 project authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// This tests that RegExp dotall features are not enabled when |
+// --harmony-regexp-dotall is not passed. |
+ |
+// Construction does not throw. |
+{ |
+ assertThrows("/./s", SyntaxError); |
+ assertThrows(() => RegExp(".", "s"), SyntaxError); |
+ assertThrows(() => new RegExp(".", "s"), SyntaxError); |
+ assertThrows(() => new RegExp(".", "wtf"), SyntaxError); |
+} |
+ |
+// The flags accessors. |
+{ |
+ let re = /./gimyu; |
+ assertEquals("gimuy", re.flags); |
+ assertTrue(re.global); |
+ assertTrue(re.ignoreCase); |
+ assertTrue(re.multiline); |
+ assertTrue(re.sticky); |
+ assertTrue(re.unicode); |
+ |
+ assertEquals(re.dotAll, undefined); |
+ assertFalse("dotAll" in re); |
+ |
+ let callCount = 0; |
+ re.__defineGetter__("dotAll", () => { callCount++; return undefined; }); |
+ assertEquals("gimuy", re.flags); |
+ assertEquals(callCount, 0); |
+} |
+ |
+// Default '.' behavior. |
+{ |
+ let re = /^.$/; |
+ assertTrue(re.test("a")); |
+ assertTrue(re.test("3")); |
+ assertTrue(re.test("π")); |
+ assertTrue(re.test("\u2027")); |
+ assertTrue(re.test("\u0085")); |
+ assertTrue(re.test("\v")); |
+ assertTrue(re.test("\f")); |
+ assertTrue(re.test("\u180E")); |
+ assertFalse(re.test("\u{10300}")); // Supplementary plane. |
+ assertFalse(re.test("\n")); |
+ assertFalse(re.test("\r")); |
+ assertFalse(re.test("\u2028")); |
+ assertFalse(re.test("\u2029")); |
+} |
+ |
+// Default '.' behavior (unicode). |
+{ |
+ let re = /^.$/u; |
+ assertTrue(re.test("a")); |
+ assertTrue(re.test("3")); |
+ assertTrue(re.test("π")); |
+ assertTrue(re.test("\u2027")); |
+ assertTrue(re.test("\u0085")); |
+ assertTrue(re.test("\v")); |
+ assertTrue(re.test("\f")); |
+ assertTrue(re.test("\u180E")); |
+ assertTrue(re.test("\u{10300}")); // Supplementary plane. |
+ assertFalse(re.test("\n")); |
+ assertFalse(re.test("\r")); |
+ assertFalse(re.test("\u2028")); |
+ assertFalse(re.test("\u2029")); |
+} |