| 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"));
|
| +}
|
|
|