blob: 323873ab7f3b524866957eb94372dbd6b37f4c15 [file] [log] [blame]
Ben Murdoch097c5b22016-05-18 11:27:45 +01001// Copyright 2016 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-property --harmony-unicode-regexps
6
7assertThrows("/\\p/u");
8assertThrows("/\\p{garbage}/u");
9assertThrows("/\\p{}/u");
10assertThrows("/\\p{/u");
11assertThrows("/\\p}/u");
12assertThrows("/\p{Math}/u");
13assertThrows("/\p{Bidi_M}/u");
14assertThrows("/\p{Hex}/u");
15
16assertTrue(/\p{Ll}/u.test("a"));
17assertFalse(/\P{Ll}/u.test("a"));
18assertTrue(/\P{Ll}/u.test("A"));
19assertFalse(/\p{Ll}/u.test("A"));
20assertTrue(/\p{Ll}/u.test("\u{1D7BE}"));
21assertFalse(/\P{Ll}/u.test("\u{1D7BE}"));
22assertFalse(/\p{Ll}/u.test("\u{1D5E3}"));
23assertTrue(/\P{Ll}/u.test("\u{1D5E3}"));
24
25assertTrue(/\p{Ll}/iu.test("a"));
26assertTrue(/\p{Ll}/iu.test("\u{118D4}"));
27assertTrue(/\p{Ll}/iu.test("A"));
28assertTrue(/\p{Ll}/iu.test("\u{118B4}"));
29assertFalse(/\P{Ll}/iu.test("a"));
30assertFalse(/\P{Ll}/iu.test("\u{118D4}"));
31assertFalse(/\P{Ll}/iu.test("A"));
32assertFalse(/\P{Ll}/iu.test("\u{118B4}"));
33
34assertTrue(/\p{Lu}/u.test("A"));
35assertFalse(/\P{Lu}/u.test("A"));
36assertTrue(/\P{Lu}/u.test("a"));
37assertFalse(/\p{Lu}/u.test("a"));
38assertTrue(/\p{Lu}/u.test("\u{1D5E3}"));
39assertFalse(/\P{Lu}/u.test("\u{1D5E3}"));
40assertFalse(/\p{Lu}/u.test("\u{1D7BE}"));
41assertTrue(/\P{Lu}/u.test("\u{1D7BE}"));
42
43assertTrue(/\p{Lu}/iu.test("a"));
44assertTrue(/\p{Lu}/iu.test("\u{118D4}"));
45assertTrue(/\p{Lu}/iu.test("A"));
46assertTrue(/\p{Lu}/iu.test("\u{118B4}"));
47assertFalse(/\P{Lu}/iu.test("a"));
48assertFalse(/\P{Lu}/iu.test("\u{118D4}"));
49assertFalse(/\P{Lu}/iu.test("A"));
50assertFalse(/\P{Lu}/iu.test("\u{118B4}"));
51
52assertTrue(/\p{Sm}/u.test("+"));
53assertFalse(/\P{Sm}/u.test("+"));
54assertTrue(/\p{Sm}/u.test("\u{1D6C1}"));
55assertFalse(/\P{Sm}/u.test("\u{1D6C1}"));
56
57assertTrue(/\pL/u.test("a"));
58assertFalse(/\PL/u.test("a"));
59assertFalse(/\pL/u.test("1"));
60assertTrue(/\PL/u.test("1"));
61assertTrue(/\pL/u.test("\u1FAB"));
62assertFalse(/\PL/u.test("\u1FAB"));
63assertFalse(/\p{L}/u.test("\uA6EE"));
64assertTrue(/\P{L}/u.test("\uA6EE"));