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