unicode_identity_escape.js (2544B)
1 // Copyright (C) 2015 André Bargull. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 description: IdentityEscape for Unicode RegExp 6 info: | 7 IdentityEscape for Unicode RegExps is restricted to SyntaxCharacter and U+002F (SOLIDUS) 8 es6id: 21.1.2 9 ---*/ 10 11 // 21.2.1 Patterns 12 // 13 // IdentityEscape[U] :: 14 // [+U] SyntaxCharacter 15 // [+U] / 16 // 17 // SyntaxCharacter :: one of 18 // ^ $ \ . * + ? ( ) [ ] { } | 19 20 // IdentityEscape in AtomEscape 21 assert(/\^/u.test("^"), "IdentityEscape in AtomEscape: /\\^/"); 22 assert(/\$/u.test("$"), "IdentityEscape in AtomEscape: /\\$/"); 23 assert(/\\/u.test("\\"), "IdentityEscape in AtomEscape: /\\\\/"); 24 assert(/\./u.test("."), "IdentityEscape in AtomEscape: /\\./"); 25 assert(/\*/u.test("*"), "IdentityEscape in AtomEscape: /\\*/"); 26 assert(/\+/u.test("+"), "IdentityEscape in AtomEscape: /\\+/"); 27 assert(/\?/u.test("?"), "IdentityEscape in AtomEscape: /\\?/"); 28 assert(/\(/u.test("("), "IdentityEscape in AtomEscape: /\\(/"); 29 assert(/\)/u.test(")"), "IdentityEscape in AtomEscape: /\\)/"); 30 assert(/\[/u.test("["), "IdentityEscape in AtomEscape: /\\[/"); 31 assert(/\]/u.test("]"), "IdentityEscape in AtomEscape: /\\]/"); 32 assert(/\{/u.test("{"), "IdentityEscape in AtomEscape: /\\{/"); 33 assert(/\}/u.test("}"), "IdentityEscape in AtomEscape: /\\}/"); 34 assert(/\|/u.test("|"), "IdentityEscape in AtomEscape: /\\|/"); 35 assert(/\//u.test("/"), "IdentityEscape in AtomEscape: /\\//"); 36 37 38 // IdentityEscape in ClassEscape 39 assert(/[\^]/u.test("^"), "IdentityEscape in ClassEscape: /[\\^]/"); 40 assert(/[\$]/u.test("$"), "IdentityEscape in ClassEscape: /[\\$]/"); 41 assert(/[\\]/u.test("\\"), "IdentityEscape in ClassEscape: /[\\\\]/"); 42 assert(/[\.]/u.test("."), "IdentityEscape in ClassEscape: /[\\.]/"); 43 assert(/[\*]/u.test("*"), "IdentityEscape in ClassEscape: /[\\*]/"); 44 assert(/[\+]/u.test("+"), "IdentityEscape in ClassEscape: /[\\+]/"); 45 assert(/[\?]/u.test("?"), "IdentityEscape in ClassEscape: /[\\?]/"); 46 assert(/[\(]/u.test("("), "IdentityEscape in ClassEscape: /[\\(]/"); 47 assert(/[\)]/u.test(")"), "IdentityEscape in ClassEscape: /[\\)]/"); 48 assert(/[\[]/u.test("["), "IdentityEscape in ClassEscape: /[\\[]/"); 49 assert(/[\]]/u.test("]"), "IdentityEscape in ClassEscape: /[\\]]/"); 50 assert(/[\{]/u.test("{"), "IdentityEscape in ClassEscape: /[\\{]/"); 51 assert(/[\}]/u.test("}"), "IdentityEscape in ClassEscape: /[\\}]/"); 52 assert(/[\|]/u.test("|"), "IdentityEscape in ClassEscape: /[\\|]/"); 53 assert(/[\/]/u.test("/"), "IdentityEscape in ClassEscape: /[\\/]/"); 54 55 reportCompare(0, 0);