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