tor-browser

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

Emoji_Presentation.js (4730B)


      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 `Emoji_Presentation`
      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    0x0023F0,
     19    0x0023F3,
     20    0x00267F,
     21    0x002693,
     22    0x0026A1,
     23    0x0026CE,
     24    0x0026D4,
     25    0x0026EA,
     26    0x0026F5,
     27    0x0026FA,
     28    0x0026FD,
     29    0x002705,
     30    0x002728,
     31    0x00274C,
     32    0x00274E,
     33    0x002757,
     34    0x0027B0,
     35    0x0027BF,
     36    0x002B50,
     37    0x002B55,
     38    0x01F004,
     39    0x01F0CF,
     40    0x01F18E,
     41    0x01F201,
     42    0x01F21A,
     43    0x01F22F,
     44    0x01F3F4,
     45    0x01F440,
     46    0x01F57A,
     47    0x01F5A4,
     48    0x01F6CC,
     49    0x01F7F0,
     50    0x01FAC8
     51  ],
     52  ranges: [
     53    [0x00231A, 0x00231B],
     54    [0x0023E9, 0x0023EC],
     55    [0x0025FD, 0x0025FE],
     56    [0x002614, 0x002615],
     57    [0x002648, 0x002653],
     58    [0x0026AA, 0x0026AB],
     59    [0x0026BD, 0x0026BE],
     60    [0x0026C4, 0x0026C5],
     61    [0x0026F2, 0x0026F3],
     62    [0x00270A, 0x00270B],
     63    [0x002753, 0x002755],
     64    [0x002795, 0x002797],
     65    [0x002B1B, 0x002B1C],
     66    [0x01F191, 0x01F19A],
     67    [0x01F1E6, 0x01F1FF],
     68    [0x01F232, 0x01F236],
     69    [0x01F238, 0x01F23A],
     70    [0x01F250, 0x01F251],
     71    [0x01F300, 0x01F320],
     72    [0x01F32D, 0x01F335],
     73    [0x01F337, 0x01F37C],
     74    [0x01F37E, 0x01F393],
     75    [0x01F3A0, 0x01F3CA],
     76    [0x01F3CF, 0x01F3D3],
     77    [0x01F3E0, 0x01F3F0],
     78    [0x01F3F8, 0x01F43E],
     79    [0x01F442, 0x01F4FC],
     80    [0x01F4FF, 0x01F53D],
     81    [0x01F54B, 0x01F54E],
     82    [0x01F550, 0x01F567],
     83    [0x01F595, 0x01F596],
     84    [0x01F5FB, 0x01F64F],
     85    [0x01F680, 0x01F6C5],
     86    [0x01F6D0, 0x01F6D2],
     87    [0x01F6D5, 0x01F6D8],
     88    [0x01F6DC, 0x01F6DF],
     89    [0x01F6EB, 0x01F6EC],
     90    [0x01F6F4, 0x01F6FC],
     91    [0x01F7E0, 0x01F7EB],
     92    [0x01F90C, 0x01F93A],
     93    [0x01F93C, 0x01F945],
     94    [0x01F947, 0x01F9FF],
     95    [0x01FA70, 0x01FA7C],
     96    [0x01FA80, 0x01FA8A],
     97    [0x01FA8E, 0x01FAC6],
     98    [0x01FACD, 0x01FADC],
     99    [0x01FADF, 0x01FAEA],
    100    [0x01FAEF, 0x01FAF8]
    101  ]
    102 });
    103 testPropertyEscapes(
    104  /^\p{Emoji_Presentation}+$/u,
    105  matchSymbols,
    106  "\\p{Emoji_Presentation}"
    107 );
    108 testPropertyEscapes(
    109  /^\p{EPres}+$/u,
    110  matchSymbols,
    111  "\\p{EPres}"
    112 );
    113 
    114 const nonMatchSymbols = buildString({
    115  loneCodePoints: [
    116    0x0026F4,
    117    0x00274D,
    118    0x002756,
    119    0x01F200,
    120    0x01F237,
    121    0x01F336,
    122    0x01F37D,
    123    0x01F43F,
    124    0x01F441,
    125    0x01F54F,
    126    0x01F93B,
    127    0x01F946,
    128    0x01FAC7
    129  ],
    130  ranges: [
    131    [0x00DC00, 0x00DFFF],
    132    [0x000000, 0x002319],
    133    [0x00231C, 0x0023E8],
    134    [0x0023ED, 0x0023EF],
    135    [0x0023F1, 0x0023F2],
    136    [0x0023F4, 0x0025FC],
    137    [0x0025FF, 0x002613],
    138    [0x002616, 0x002647],
    139    [0x002654, 0x00267E],
    140    [0x002680, 0x002692],
    141    [0x002694, 0x0026A0],
    142    [0x0026A2, 0x0026A9],
    143    [0x0026AC, 0x0026BC],
    144    [0x0026BF, 0x0026C3],
    145    [0x0026C6, 0x0026CD],
    146    [0x0026CF, 0x0026D3],
    147    [0x0026D5, 0x0026E9],
    148    [0x0026EB, 0x0026F1],
    149    [0x0026F6, 0x0026F9],
    150    [0x0026FB, 0x0026FC],
    151    [0x0026FE, 0x002704],
    152    [0x002706, 0x002709],
    153    [0x00270C, 0x002727],
    154    [0x002729, 0x00274B],
    155    [0x00274F, 0x002752],
    156    [0x002758, 0x002794],
    157    [0x002798, 0x0027AF],
    158    [0x0027B1, 0x0027BE],
    159    [0x0027C0, 0x002B1A],
    160    [0x002B1D, 0x002B4F],
    161    [0x002B51, 0x002B54],
    162    [0x002B56, 0x00DBFF],
    163    [0x00E000, 0x01F003],
    164    [0x01F005, 0x01F0CE],
    165    [0x01F0D0, 0x01F18D],
    166    [0x01F18F, 0x01F190],
    167    [0x01F19B, 0x01F1E5],
    168    [0x01F202, 0x01F219],
    169    [0x01F21B, 0x01F22E],
    170    [0x01F230, 0x01F231],
    171    [0x01F23B, 0x01F24F],
    172    [0x01F252, 0x01F2FF],
    173    [0x01F321, 0x01F32C],
    174    [0x01F394, 0x01F39F],
    175    [0x01F3CB, 0x01F3CE],
    176    [0x01F3D4, 0x01F3DF],
    177    [0x01F3F1, 0x01F3F3],
    178    [0x01F3F5, 0x01F3F7],
    179    [0x01F4FD, 0x01F4FE],
    180    [0x01F53E, 0x01F54A],
    181    [0x01F568, 0x01F579],
    182    [0x01F57B, 0x01F594],
    183    [0x01F597, 0x01F5A3],
    184    [0x01F5A5, 0x01F5FA],
    185    [0x01F650, 0x01F67F],
    186    [0x01F6C6, 0x01F6CB],
    187    [0x01F6CD, 0x01F6CF],
    188    [0x01F6D3, 0x01F6D4],
    189    [0x01F6D9, 0x01F6DB],
    190    [0x01F6E0, 0x01F6EA],
    191    [0x01F6ED, 0x01F6F3],
    192    [0x01F6FD, 0x01F7DF],
    193    [0x01F7EC, 0x01F7EF],
    194    [0x01F7F1, 0x01F90B],
    195    [0x01FA00, 0x01FA6F],
    196    [0x01FA7D, 0x01FA7F],
    197    [0x01FA8B, 0x01FA8D],
    198    [0x01FAC9, 0x01FACC],
    199    [0x01FADD, 0x01FADE],
    200    [0x01FAEB, 0x01FAEE],
    201    [0x01FAF9, 0x10FFFF]
    202  ]
    203 });
    204 testPropertyEscapes(
    205  /^\P{Emoji_Presentation}+$/u,
    206  nonMatchSymbols,
    207  "\\P{Emoji_Presentation}"
    208 );
    209 testPropertyEscapes(
    210  /^\P{EPres}+$/u,
    211  nonMatchSymbols,
    212  "\\P{EPres}"
    213 );
    214 
    215 reportCompare(0, 0);