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