summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/RegExp/unicode_identity_escape.js
blob: 1c5b47ad5e33a814c9332e6b84a79726a4e6b237 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Copyright (C) 2015 André Bargull. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
description: IdentityEscape for Unicode RegExp
info: |
    IdentityEscape for Unicode RegExps is restricted to SyntaxCharacter and U+002F (SOLIDUS)
es6id: 21.1.2
---*/

// 21.2.1 Patterns
//
// IdentityEscape[U] ::
//   [+U] SyntaxCharacter
//   [+U] /
//
// SyntaxCharacter :: one of
//   ^ $ \ . * + ? ( ) [ ] { } |

// IdentityEscape in AtomEscape
assert(/\^/u.test("^"), "IdentityEscape in AtomEscape: /\\^/");
assert(/\$/u.test("$"), "IdentityEscape in AtomEscape: /\\$/");
assert(/\\/u.test("\\"), "IdentityEscape in AtomEscape: /\\\\/");
assert(/\./u.test("."), "IdentityEscape in AtomEscape: /\\./");
assert(/\*/u.test("*"), "IdentityEscape in AtomEscape: /\\*/");
assert(/\+/u.test("+"), "IdentityEscape in AtomEscape: /\\+/");
assert(/\?/u.test("?"), "IdentityEscape in AtomEscape: /\\?/");
assert(/\(/u.test("("), "IdentityEscape in AtomEscape: /\\(/");
assert(/\)/u.test(")"), "IdentityEscape in AtomEscape: /\\)/");
assert(/\[/u.test("["), "IdentityEscape in AtomEscape: /\\[/");
assert(/\]/u.test("]"), "IdentityEscape in AtomEscape: /\\]/");
assert(/\{/u.test("{"), "IdentityEscape in AtomEscape: /\\{/");
assert(/\}/u.test("}"), "IdentityEscape in AtomEscape: /\\}/");
assert(/\|/u.test("|"), "IdentityEscape in AtomEscape: /\\|/");
assert(/\//u.test("/"), "IdentityEscape in AtomEscape: /\\//");


// IdentityEscape in ClassEscape
assert(/[\^]/u.test("^"), "IdentityEscape in ClassEscape: /[\\^]/");
assert(/[\$]/u.test("$"), "IdentityEscape in ClassEscape: /[\\$]/");
assert(/[\\]/u.test("\\"), "IdentityEscape in ClassEscape: /[\\\\]/");
assert(/[\.]/u.test("."), "IdentityEscape in ClassEscape: /[\\.]/");
assert(/[\*]/u.test("*"), "IdentityEscape in ClassEscape: /[\\*]/");
assert(/[\+]/u.test("+"), "IdentityEscape in ClassEscape: /[\\+]/");
assert(/[\?]/u.test("?"), "IdentityEscape in ClassEscape: /[\\?]/");
assert(/[\(]/u.test("("), "IdentityEscape in ClassEscape: /[\\(]/");
assert(/[\)]/u.test(")"), "IdentityEscape in ClassEscape: /[\\)]/");
assert(/[\[]/u.test("["), "IdentityEscape in ClassEscape: /[\\[]/");
assert(/[\]]/u.test("]"), "IdentityEscape in ClassEscape: /[\\]]/");
assert(/[\{]/u.test("{"), "IdentityEscape in ClassEscape: /[\\{]/");
assert(/[\}]/u.test("}"), "IdentityEscape in ClassEscape: /[\\}]/");
assert(/[\|]/u.test("|"), "IdentityEscape in ClassEscape: /[\\|]/");
assert(/[\/]/u.test("/"), "IdentityEscape in ClassEscape: /[\\/]/");

reportCompare(0, 0);