tor-browser

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

Bidi_Mirrored.js (6185B)


      1 // Copyright 2025 Mathias Bynens. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 author: Mathias Bynens
      6 description: >
      7  Unicode property escapes for `Bidi_Mirrored`
      8 info: |
      9  Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
     10  Unicode v17.0.0
     11 esid: sec-static-semantics-unicodematchproperty-p
     12 features: [regexp-unicode-property-escapes]
     13 includes: [regExpUtils.js]
     14 ---*/
     15 
     16 const matchSymbols = buildString({
     17  loneCodePoints: [
     18    0x00003C,
     19    0x00003E,
     20    0x00005B,
     21    0x00005D,
     22    0x00007B,
     23    0x00007D,
     24    0x0000AB,
     25    0x0000BB,
     26    0x002140,
     27    0x002211,
     28    0x002224,
     29    0x002226,
     30    0x002239,
     31    0x002262,
     32    0x002298,
     33    0x0027C0,
     34    0x0029B8,
     35    0x0029C9,
     36    0x0029E1,
     37    0x002A24,
     38    0x002A26,
     39    0x002A29,
     40    0x002ADC,
     41    0x002ADE,
     42    0x002AF3,
     43    0x002AFD,
     44    0x002BFE,
     45    0x00FF1C,
     46    0x00FF1E,
     47    0x00FF3B,
     48    0x00FF3D,
     49    0x00FF5B,
     50    0x00FF5D,
     51    0x01D6DB,
     52    0x01D715,
     53    0x01D74F,
     54    0x01D789,
     55    0x01D7C3
     56  ],
     57  ranges: [
     58    [0x000028, 0x000029],
     59    [0x000F3A, 0x000F3D],
     60    [0x00169B, 0x00169C],
     61    [0x002039, 0x00203A],
     62    [0x002045, 0x002046],
     63    [0x00207D, 0x00207E],
     64    [0x00208D, 0x00208E],
     65    [0x002201, 0x002204],
     66    [0x002208, 0x00220D],
     67    [0x002215, 0x002216],
     68    [0x00221A, 0x00221D],
     69    [0x00221F, 0x002222],
     70    [0x00222B, 0x002233],
     71    [0x00223B, 0x00224C],
     72    [0x002252, 0x002255],
     73    [0x00225F, 0x002260],
     74    [0x002264, 0x00226B],
     75    [0x00226D, 0x00228C],
     76    [0x00228F, 0x002292],
     77    [0x0022A2, 0x0022A3],
     78    [0x0022A6, 0x0022B8],
     79    [0x0022BE, 0x0022BF],
     80    [0x0022C9, 0x0022CD],
     81    [0x0022D0, 0x0022D1],
     82    [0x0022D6, 0x0022ED],
     83    [0x0022F0, 0x0022FF],
     84    [0x002308, 0x00230B],
     85    [0x002320, 0x002321],
     86    [0x002329, 0x00232A],
     87    [0x002768, 0x002775],
     88    [0x0027C3, 0x0027C6],
     89    [0x0027C8, 0x0027C9],
     90    [0x0027CB, 0x0027CD],
     91    [0x0027D3, 0x0027D6],
     92    [0x0027DC, 0x0027DE],
     93    [0x0027E2, 0x0027EF],
     94    [0x002983, 0x002998],
     95    [0x00299B, 0x0029A0],
     96    [0x0029A2, 0x0029AF],
     97    [0x0029C0, 0x0029C5],
     98    [0x0029CE, 0x0029D2],
     99    [0x0029D4, 0x0029D5],
    100    [0x0029D8, 0x0029DC],
    101    [0x0029E3, 0x0029E5],
    102    [0x0029E8, 0x0029E9],
    103    [0x0029F4, 0x0029F9],
    104    [0x0029FC, 0x0029FD],
    105    [0x002A0A, 0x002A1C],
    106    [0x002A1E, 0x002A21],
    107    [0x002A2B, 0x002A2E],
    108    [0x002A34, 0x002A35],
    109    [0x002A3C, 0x002A3E],
    110    [0x002A57, 0x002A58],
    111    [0x002A64, 0x002A65],
    112    [0x002A6A, 0x002A6D],
    113    [0x002A6F, 0x002A70],
    114    [0x002A73, 0x002A74],
    115    [0x002A79, 0x002AA3],
    116    [0x002AA6, 0x002AAD],
    117    [0x002AAF, 0x002AD6],
    118    [0x002AE2, 0x002AE6],
    119    [0x002AEC, 0x002AEE],
    120    [0x002AF7, 0x002AFB],
    121    [0x002E02, 0x002E05],
    122    [0x002E09, 0x002E0A],
    123    [0x002E0C, 0x002E0D],
    124    [0x002E1C, 0x002E1D],
    125    [0x002E20, 0x002E29],
    126    [0x002E55, 0x002E5C],
    127    [0x003008, 0x003011],
    128    [0x003014, 0x00301B],
    129    [0x00FE59, 0x00FE5E],
    130    [0x00FE64, 0x00FE65],
    131    [0x00FF08, 0x00FF09],
    132    [0x00FF5F, 0x00FF60],
    133    [0x00FF62, 0x00FF63]
    134  ]
    135 });
    136 testPropertyEscapes(
    137  /^\p{Bidi_Mirrored}+$/u,
    138  matchSymbols,
    139  "\\p{Bidi_Mirrored}"
    140 );
    141 testPropertyEscapes(
    142  /^\p{Bidi_M}+$/u,
    143  matchSymbols,
    144  "\\p{Bidi_M}"
    145 );
    146 
    147 const nonMatchSymbols = buildString({
    148  loneCodePoints: [
    149    0x00003D,
    150    0x00005C,
    151    0x00007C,
    152    0x00221E,
    153    0x002223,
    154    0x002225,
    155    0x00223A,
    156    0x002261,
    157    0x002263,
    158    0x00226C,
    159    0x0027C7,
    160    0x0027CA,
    161    0x0029A1,
    162    0x0029D3,
    163    0x0029E2,
    164    0x002A1D,
    165    0x002A25,
    166    0x002A2A,
    167    0x002A6E,
    168    0x002AAE,
    169    0x002ADD,
    170    0x002AFC,
    171    0x002E0B,
    172    0x00FF1D,
    173    0x00FF3C,
    174    0x00FF5C,
    175    0x00FF5E,
    176    0x00FF61
    177  ],
    178  ranges: [
    179    [0x00DC00, 0x00DFFF],
    180    [0x000000, 0x000027],
    181    [0x00002A, 0x00003B],
    182    [0x00003F, 0x00005A],
    183    [0x00005E, 0x00007A],
    184    [0x00007E, 0x0000AA],
    185    [0x0000AC, 0x0000BA],
    186    [0x0000BC, 0x000F39],
    187    [0x000F3E, 0x00169A],
    188    [0x00169D, 0x002038],
    189    [0x00203B, 0x002044],
    190    [0x002047, 0x00207C],
    191    [0x00207F, 0x00208C],
    192    [0x00208F, 0x00213F],
    193    [0x002141, 0x002200],
    194    [0x002205, 0x002207],
    195    [0x00220E, 0x002210],
    196    [0x002212, 0x002214],
    197    [0x002217, 0x002219],
    198    [0x002227, 0x00222A],
    199    [0x002234, 0x002238],
    200    [0x00224D, 0x002251],
    201    [0x002256, 0x00225E],
    202    [0x00228D, 0x00228E],
    203    [0x002293, 0x002297],
    204    [0x002299, 0x0022A1],
    205    [0x0022A4, 0x0022A5],
    206    [0x0022B9, 0x0022BD],
    207    [0x0022C0, 0x0022C8],
    208    [0x0022CE, 0x0022CF],
    209    [0x0022D2, 0x0022D5],
    210    [0x0022EE, 0x0022EF],
    211    [0x002300, 0x002307],
    212    [0x00230C, 0x00231F],
    213    [0x002322, 0x002328],
    214    [0x00232B, 0x002767],
    215    [0x002776, 0x0027BF],
    216    [0x0027C1, 0x0027C2],
    217    [0x0027CE, 0x0027D2],
    218    [0x0027D7, 0x0027DB],
    219    [0x0027DF, 0x0027E1],
    220    [0x0027F0, 0x002982],
    221    [0x002999, 0x00299A],
    222    [0x0029B0, 0x0029B7],
    223    [0x0029B9, 0x0029BF],
    224    [0x0029C6, 0x0029C8],
    225    [0x0029CA, 0x0029CD],
    226    [0x0029D6, 0x0029D7],
    227    [0x0029DD, 0x0029E0],
    228    [0x0029E6, 0x0029E7],
    229    [0x0029EA, 0x0029F3],
    230    [0x0029FA, 0x0029FB],
    231    [0x0029FE, 0x002A09],
    232    [0x002A22, 0x002A23],
    233    [0x002A27, 0x002A28],
    234    [0x002A2F, 0x002A33],
    235    [0x002A36, 0x002A3B],
    236    [0x002A3F, 0x002A56],
    237    [0x002A59, 0x002A63],
    238    [0x002A66, 0x002A69],
    239    [0x002A71, 0x002A72],
    240    [0x002A75, 0x002A78],
    241    [0x002AA4, 0x002AA5],
    242    [0x002AD7, 0x002ADB],
    243    [0x002ADF, 0x002AE1],
    244    [0x002AE7, 0x002AEB],
    245    [0x002AEF, 0x002AF2],
    246    [0x002AF4, 0x002AF6],
    247    [0x002AFE, 0x002BFD],
    248    [0x002BFF, 0x002E01],
    249    [0x002E06, 0x002E08],
    250    [0x002E0E, 0x002E1B],
    251    [0x002E1E, 0x002E1F],
    252    [0x002E2A, 0x002E54],
    253    [0x002E5D, 0x003007],
    254    [0x003012, 0x003013],
    255    [0x00301C, 0x00DBFF],
    256    [0x00E000, 0x00FE58],
    257    [0x00FE5F, 0x00FE63],
    258    [0x00FE66, 0x00FF07],
    259    [0x00FF0A, 0x00FF1B],
    260    [0x00FF1F, 0x00FF3A],
    261    [0x00FF3E, 0x00FF5A],
    262    [0x00FF64, 0x01D6DA],
    263    [0x01D6DC, 0x01D714],
    264    [0x01D716, 0x01D74E],
    265    [0x01D750, 0x01D788],
    266    [0x01D78A, 0x01D7C2],
    267    [0x01D7C4, 0x10FFFF]
    268  ]
    269 });
    270 testPropertyEscapes(
    271  /^\P{Bidi_Mirrored}+$/u,
    272  nonMatchSymbols,
    273  "\\P{Bidi_Mirrored}"
    274 );
    275 testPropertyEscapes(
    276  /^\P{Bidi_M}+$/u,
    277  nonMatchSymbols,
    278  "\\P{Bidi_M}"
    279 );
    280 
    281 reportCompare(0, 0);