Index: test/mjsunit/harmony/unicode-regexp-property-class.js |
diff --git a/test/mjsunit/harmony/unicode-regexp-property-class.js b/test/mjsunit/harmony/unicode-regexp-property-class.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..323873ab7f3b524866957eb94372dbd6b37f4c15 |
--- /dev/null |
+++ b/test/mjsunit/harmony/unicode-regexp-property-class.js |
@@ -0,0 +1,64 @@ |
+// Copyright 2016 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. |
+ |
+// Flags: --harmony-regexp-property --harmony-unicode-regexps |
+ |
+assertThrows("/\\p/u"); |
+assertThrows("/\\p{garbage}/u"); |
+assertThrows("/\\p{}/u"); |
+assertThrows("/\\p{/u"); |
+assertThrows("/\\p}/u"); |
+assertThrows("/\p{Math}/u"); |
+assertThrows("/\p{Bidi_M}/u"); |
+assertThrows("/\p{Hex}/u"); |
+ |
+assertTrue(/\p{Ll}/u.test("a")); |
+assertFalse(/\P{Ll}/u.test("a")); |
+assertTrue(/\P{Ll}/u.test("A")); |
+assertFalse(/\p{Ll}/u.test("A")); |
+assertTrue(/\p{Ll}/u.test("\u{1D7BE}")); |
+assertFalse(/\P{Ll}/u.test("\u{1D7BE}")); |
+assertFalse(/\p{Ll}/u.test("\u{1D5E3}")); |
+assertTrue(/\P{Ll}/u.test("\u{1D5E3}")); |
+ |
+assertTrue(/\p{Ll}/iu.test("a")); |
+assertTrue(/\p{Ll}/iu.test("\u{118D4}")); |
+assertTrue(/\p{Ll}/iu.test("A")); |
+assertTrue(/\p{Ll}/iu.test("\u{118B4}")); |
+assertFalse(/\P{Ll}/iu.test("a")); |
+assertFalse(/\P{Ll}/iu.test("\u{118D4}")); |
+assertFalse(/\P{Ll}/iu.test("A")); |
+assertFalse(/\P{Ll}/iu.test("\u{118B4}")); |
+ |
+assertTrue(/\p{Lu}/u.test("A")); |
+assertFalse(/\P{Lu}/u.test("A")); |
+assertTrue(/\P{Lu}/u.test("a")); |
+assertFalse(/\p{Lu}/u.test("a")); |
+assertTrue(/\p{Lu}/u.test("\u{1D5E3}")); |
+assertFalse(/\P{Lu}/u.test("\u{1D5E3}")); |
+assertFalse(/\p{Lu}/u.test("\u{1D7BE}")); |
+assertTrue(/\P{Lu}/u.test("\u{1D7BE}")); |
+ |
+assertTrue(/\p{Lu}/iu.test("a")); |
+assertTrue(/\p{Lu}/iu.test("\u{118D4}")); |
+assertTrue(/\p{Lu}/iu.test("A")); |
+assertTrue(/\p{Lu}/iu.test("\u{118B4}")); |
+assertFalse(/\P{Lu}/iu.test("a")); |
+assertFalse(/\P{Lu}/iu.test("\u{118D4}")); |
+assertFalse(/\P{Lu}/iu.test("A")); |
+assertFalse(/\P{Lu}/iu.test("\u{118B4}")); |
+ |
+assertTrue(/\p{Sm}/u.test("+")); |
+assertFalse(/\P{Sm}/u.test("+")); |
+assertTrue(/\p{Sm}/u.test("\u{1D6C1}")); |
+assertFalse(/\P{Sm}/u.test("\u{1D6C1}")); |
+ |
+assertTrue(/\pL/u.test("a")); |
+assertFalse(/\PL/u.test("a")); |
+assertFalse(/\pL/u.test("1")); |
+assertTrue(/\PL/u.test("1")); |
+assertTrue(/\pL/u.test("\u1FAB")); |
+assertFalse(/\PL/u.test("\u1FAB")); |
+assertFalse(/\p{L}/u.test("\uA6EE")); |
+assertTrue(/\P{L}/u.test("\uA6EE")); |