tor-browser

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

Emoji.js (7542B)


      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`
      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    0x000023,
     19    0x00002A,
     20    0x0000A9,
     21    0x0000AE,
     22    0x00203C,
     23    0x002049,
     24    0x002122,
     25    0x002139,
     26    0x002328,
     27    0x0023CF,
     28    0x0024C2,
     29    0x0025B6,
     30    0x0025C0,
     31    0x00260E,
     32    0x002611,
     33    0x002618,
     34    0x00261D,
     35    0x002620,
     36    0x002626,
     37    0x00262A,
     38    0x002640,
     39    0x002642,
     40    0x002663,
     41    0x002668,
     42    0x00267B,
     43    0x002699,
     44    0x0026A7,
     45    0x0026C8,
     46    0x0026D1,
     47    0x0026FD,
     48    0x002702,
     49    0x002705,
     50    0x00270F,
     51    0x002712,
     52    0x002714,
     53    0x002716,
     54    0x00271D,
     55    0x002721,
     56    0x002728,
     57    0x002744,
     58    0x002747,
     59    0x00274C,
     60    0x00274E,
     61    0x002757,
     62    0x0027A1,
     63    0x0027B0,
     64    0x0027BF,
     65    0x002B50,
     66    0x002B55,
     67    0x003030,
     68    0x00303D,
     69    0x003297,
     70    0x003299,
     71    0x01F004,
     72    0x01F0CF,
     73    0x01F18E,
     74    0x01F21A,
     75    0x01F22F,
     76    0x01F587,
     77    0x01F590,
     78    0x01F5A8,
     79    0x01F5BC,
     80    0x01F5E1,
     81    0x01F5E3,
     82    0x01F5E8,
     83    0x01F5EF,
     84    0x01F5F3,
     85    0x01F6E9,
     86    0x01F6F0,
     87    0x01F7F0,
     88    0x01FAC8
     89  ],
     90  ranges: [
     91    [0x000030, 0x000039],
     92    [0x002194, 0x002199],
     93    [0x0021A9, 0x0021AA],
     94    [0x00231A, 0x00231B],
     95    [0x0023E9, 0x0023F3],
     96    [0x0023F8, 0x0023FA],
     97    [0x0025AA, 0x0025AB],
     98    [0x0025FB, 0x0025FE],
     99    [0x002600, 0x002604],
    100    [0x002614, 0x002615],
    101    [0x002622, 0x002623],
    102    [0x00262E, 0x00262F],
    103    [0x002638, 0x00263A],
    104    [0x002648, 0x002653],
    105    [0x00265F, 0x002660],
    106    [0x002665, 0x002666],
    107    [0x00267E, 0x00267F],
    108    [0x002692, 0x002697],
    109    [0x00269B, 0x00269C],
    110    [0x0026A0, 0x0026A1],
    111    [0x0026AA, 0x0026AB],
    112    [0x0026B0, 0x0026B1],
    113    [0x0026BD, 0x0026BE],
    114    [0x0026C4, 0x0026C5],
    115    [0x0026CE, 0x0026CF],
    116    [0x0026D3, 0x0026D4],
    117    [0x0026E9, 0x0026EA],
    118    [0x0026F0, 0x0026F5],
    119    [0x0026F7, 0x0026FA],
    120    [0x002708, 0x00270D],
    121    [0x002733, 0x002734],
    122    [0x002753, 0x002755],
    123    [0x002763, 0x002764],
    124    [0x002795, 0x002797],
    125    [0x002934, 0x002935],
    126    [0x002B05, 0x002B07],
    127    [0x002B1B, 0x002B1C],
    128    [0x01F170, 0x01F171],
    129    [0x01F17E, 0x01F17F],
    130    [0x01F191, 0x01F19A],
    131    [0x01F1E6, 0x01F1FF],
    132    [0x01F201, 0x01F202],
    133    [0x01F232, 0x01F23A],
    134    [0x01F250, 0x01F251],
    135    [0x01F300, 0x01F321],
    136    [0x01F324, 0x01F393],
    137    [0x01F396, 0x01F397],
    138    [0x01F399, 0x01F39B],
    139    [0x01F39E, 0x01F3F0],
    140    [0x01F3F3, 0x01F3F5],
    141    [0x01F3F7, 0x01F4FD],
    142    [0x01F4FF, 0x01F53D],
    143    [0x01F549, 0x01F54E],
    144    [0x01F550, 0x01F567],
    145    [0x01F56F, 0x01F570],
    146    [0x01F573, 0x01F57A],
    147    [0x01F58A, 0x01F58D],
    148    [0x01F595, 0x01F596],
    149    [0x01F5A4, 0x01F5A5],
    150    [0x01F5B1, 0x01F5B2],
    151    [0x01F5C2, 0x01F5C4],
    152    [0x01F5D1, 0x01F5D3],
    153    [0x01F5DC, 0x01F5DE],
    154    [0x01F5FA, 0x01F64F],
    155    [0x01F680, 0x01F6C5],
    156    [0x01F6CB, 0x01F6D2],
    157    [0x01F6D5, 0x01F6D8],
    158    [0x01F6DC, 0x01F6E5],
    159    [0x01F6EB, 0x01F6EC],
    160    [0x01F6F3, 0x01F6FC],
    161    [0x01F7E0, 0x01F7EB],
    162    [0x01F90C, 0x01F93A],
    163    [0x01F93C, 0x01F945],
    164    [0x01F947, 0x01F9FF],
    165    [0x01FA70, 0x01FA7C],
    166    [0x01FA80, 0x01FA8A],
    167    [0x01FA8E, 0x01FAC6],
    168    [0x01FACD, 0x01FADC],
    169    [0x01FADF, 0x01FAEA],
    170    [0x01FAEF, 0x01FAF8]
    171  ]
    172 });
    173 testPropertyEscapes(
    174  /^\p{Emoji}+$/u,
    175  matchSymbols,
    176  "\\p{Emoji}"
    177 );
    178 
    179 const nonMatchSymbols = buildString({
    180  loneCodePoints: [
    181    0x0025FF,
    182    0x002621,
    183    0x002641,
    184    0x002664,
    185    0x002667,
    186    0x002698,
    187    0x00269A,
    188    0x0026D0,
    189    0x0026D2,
    190    0x0026F6,
    191    0x00270E,
    192    0x002713,
    193    0x002715,
    194    0x00274D,
    195    0x002756,
    196    0x003298,
    197    0x01F200,
    198    0x01F398,
    199    0x01F3F6,
    200    0x01F4FE,
    201    0x01F54F,
    202    0x01F5E2,
    203    0x01F6EA,
    204    0x01F93B,
    205    0x01F946,
    206    0x01FAC7
    207  ],
    208  ranges: [
    209    [0x00DC00, 0x00DFFF],
    210    [0x000000, 0x000022],
    211    [0x000024, 0x000029],
    212    [0x00002B, 0x00002F],
    213    [0x00003A, 0x0000A8],
    214    [0x0000AA, 0x0000AD],
    215    [0x0000AF, 0x00203B],
    216    [0x00203D, 0x002048],
    217    [0x00204A, 0x002121],
    218    [0x002123, 0x002138],
    219    [0x00213A, 0x002193],
    220    [0x00219A, 0x0021A8],
    221    [0x0021AB, 0x002319],
    222    [0x00231C, 0x002327],
    223    [0x002329, 0x0023CE],
    224    [0x0023D0, 0x0023E8],
    225    [0x0023F4, 0x0023F7],
    226    [0x0023FB, 0x0024C1],
    227    [0x0024C3, 0x0025A9],
    228    [0x0025AC, 0x0025B5],
    229    [0x0025B7, 0x0025BF],
    230    [0x0025C1, 0x0025FA],
    231    [0x002605, 0x00260D],
    232    [0x00260F, 0x002610],
    233    [0x002612, 0x002613],
    234    [0x002616, 0x002617],
    235    [0x002619, 0x00261C],
    236    [0x00261E, 0x00261F],
    237    [0x002624, 0x002625],
    238    [0x002627, 0x002629],
    239    [0x00262B, 0x00262D],
    240    [0x002630, 0x002637],
    241    [0x00263B, 0x00263F],
    242    [0x002643, 0x002647],
    243    [0x002654, 0x00265E],
    244    [0x002661, 0x002662],
    245    [0x002669, 0x00267A],
    246    [0x00267C, 0x00267D],
    247    [0x002680, 0x002691],
    248    [0x00269D, 0x00269F],
    249    [0x0026A2, 0x0026A6],
    250    [0x0026A8, 0x0026A9],
    251    [0x0026AC, 0x0026AF],
    252    [0x0026B2, 0x0026BC],
    253    [0x0026BF, 0x0026C3],
    254    [0x0026C6, 0x0026C7],
    255    [0x0026C9, 0x0026CD],
    256    [0x0026D5, 0x0026E8],
    257    [0x0026EB, 0x0026EF],
    258    [0x0026FB, 0x0026FC],
    259    [0x0026FE, 0x002701],
    260    [0x002703, 0x002704],
    261    [0x002706, 0x002707],
    262    [0x002710, 0x002711],
    263    [0x002717, 0x00271C],
    264    [0x00271E, 0x002720],
    265    [0x002722, 0x002727],
    266    [0x002729, 0x002732],
    267    [0x002735, 0x002743],
    268    [0x002745, 0x002746],
    269    [0x002748, 0x00274B],
    270    [0x00274F, 0x002752],
    271    [0x002758, 0x002762],
    272    [0x002765, 0x002794],
    273    [0x002798, 0x0027A0],
    274    [0x0027A2, 0x0027AF],
    275    [0x0027B1, 0x0027BE],
    276    [0x0027C0, 0x002933],
    277    [0x002936, 0x002B04],
    278    [0x002B08, 0x002B1A],
    279    [0x002B1D, 0x002B4F],
    280    [0x002B51, 0x002B54],
    281    [0x002B56, 0x00302F],
    282    [0x003031, 0x00303C],
    283    [0x00303E, 0x003296],
    284    [0x00329A, 0x00DBFF],
    285    [0x00E000, 0x01F003],
    286    [0x01F005, 0x01F0CE],
    287    [0x01F0D0, 0x01F16F],
    288    [0x01F172, 0x01F17D],
    289    [0x01F180, 0x01F18D],
    290    [0x01F18F, 0x01F190],
    291    [0x01F19B, 0x01F1E5],
    292    [0x01F203, 0x01F219],
    293    [0x01F21B, 0x01F22E],
    294    [0x01F230, 0x01F231],
    295    [0x01F23B, 0x01F24F],
    296    [0x01F252, 0x01F2FF],
    297    [0x01F322, 0x01F323],
    298    [0x01F394, 0x01F395],
    299    [0x01F39C, 0x01F39D],
    300    [0x01F3F1, 0x01F3F2],
    301    [0x01F53E, 0x01F548],
    302    [0x01F568, 0x01F56E],
    303    [0x01F571, 0x01F572],
    304    [0x01F57B, 0x01F586],
    305    [0x01F588, 0x01F589],
    306    [0x01F58E, 0x01F58F],
    307    [0x01F591, 0x01F594],
    308    [0x01F597, 0x01F5A3],
    309    [0x01F5A6, 0x01F5A7],
    310    [0x01F5A9, 0x01F5B0],
    311    [0x01F5B3, 0x01F5BB],
    312    [0x01F5BD, 0x01F5C1],
    313    [0x01F5C5, 0x01F5D0],
    314    [0x01F5D4, 0x01F5DB],
    315    [0x01F5DF, 0x01F5E0],
    316    [0x01F5E4, 0x01F5E7],
    317    [0x01F5E9, 0x01F5EE],
    318    [0x01F5F0, 0x01F5F2],
    319    [0x01F5F4, 0x01F5F9],
    320    [0x01F650, 0x01F67F],
    321    [0x01F6C6, 0x01F6CA],
    322    [0x01F6D3, 0x01F6D4],
    323    [0x01F6D9, 0x01F6DB],
    324    [0x01F6E6, 0x01F6E8],
    325    [0x01F6ED, 0x01F6EF],
    326    [0x01F6F1, 0x01F6F2],
    327    [0x01F6FD, 0x01F7DF],
    328    [0x01F7EC, 0x01F7EF],
    329    [0x01F7F1, 0x01F90B],
    330    [0x01FA00, 0x01FA6F],
    331    [0x01FA7D, 0x01FA7F],
    332    [0x01FA8B, 0x01FA8D],
    333    [0x01FAC9, 0x01FACC],
    334    [0x01FADD, 0x01FADE],
    335    [0x01FAEB, 0x01FAEE],
    336    [0x01FAF9, 0x10FFFF]
    337  ]
    338 });
    339 testPropertyEscapes(
    340  /^\P{Emoji}+$/u,
    341  nonMatchSymbols,
    342  "\\P{Emoji}"
    343 );
    344 
    345 reportCompare(0, 0);