tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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);