Chromium Code Reviews| 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..bf50b13f786b691095b9f4b049364289af2fce05 |
| --- /dev/null |
| +++ b/test/mjsunit/harmony/regexp-dotall-disabled.js |
| @@ -0,0 +1,67 @@ |
| +// 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; |
|
erikcorry
2017/03/30 13:28:30
You could also check
("dotAll" in re)
to see if
jgruber
2017/03/31 09:17:00
Done.
|
| + assertEquals("gimuy", re.flags); |
| + assertTrue(re.global); |
| + assertTrue(re.ignoreCase); |
| + assertTrue(re.multiline); |
| + assertTrue(re.sticky); |
| + assertTrue(re.unicode); |
| + assertEquals(re.dotAll, undefined); |
| + |
| + 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")); |
| +} |