layout/reftests/bidi/bidiMirroring.js

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

michael@0 1 // Pairs of mirrored characters from
michael@0 2 // http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt
michael@0 3 var mirrors = [
michael@0 4 [0x0028, 0x0029],
michael@0 5 [0x0029, 0x0028],
michael@0 6 [0x003C, 0x003E],
michael@0 7 [0x003E, 0x003C],
michael@0 8 [0x005B, 0x005D],
michael@0 9 [0x005D, 0x005B],
michael@0 10 [0x007B, 0x007D],
michael@0 11 [0x007D, 0x007B],
michael@0 12 [0x00AB, 0x00BB],
michael@0 13 [0x00BB, 0x00AB],
michael@0 14 // These four are disabled as on Mac earlier than 10.7, Tibetan characters will
michael@0 15 // not be used from the BitPattern.woff font due to lack of platform support.
michael@0 16 //
michael@0 17 // [0x0F3A, 0x0F3B],
michael@0 18 // [0x0F3B, 0x0F3A],
michael@0 19 // [0x0F3C, 0x0F3D],
michael@0 20 // [0x0F3D, 0x0F3C],
michael@0 21 [0x169B, 0x169C],
michael@0 22 [0x169C, 0x169B],
michael@0 23 [0x2039, 0x203A],
michael@0 24 [0x203A, 0x2039],
michael@0 25 [0x2045, 0x2046],
michael@0 26 [0x2046, 0x2045],
michael@0 27 [0x207D, 0x207E],
michael@0 28 [0x207E, 0x207D],
michael@0 29 [0x208D, 0x208E],
michael@0 30 [0x208E, 0x208D],
michael@0 31 [0x2208, 0x220B],
michael@0 32 [0x2209, 0x220C],
michael@0 33 [0x220A, 0x220D],
michael@0 34 [0x220B, 0x2208],
michael@0 35 [0x220C, 0x2209],
michael@0 36 [0x220D, 0x220A],
michael@0 37 [0x2215, 0x29F5],
michael@0 38 [0x223C, 0x223D],
michael@0 39 [0x223D, 0x223C],
michael@0 40 [0x2243, 0x22CD],
michael@0 41 [0x2252, 0x2253],
michael@0 42 [0x2253, 0x2252],
michael@0 43 [0x2254, 0x2255],
michael@0 44 [0x2255, 0x2254],
michael@0 45 [0x2264, 0x2265],
michael@0 46 [0x2265, 0x2264],
michael@0 47 [0x2266, 0x2267],
michael@0 48 [0x2267, 0x2266],
michael@0 49 [0x2268, 0x2269],
michael@0 50 [0x2269, 0x2268],
michael@0 51 [0x226A, 0x226B],
michael@0 52 [0x226B, 0x226A],
michael@0 53 [0x226E, 0x226F],
michael@0 54 [0x226F, 0x226E],
michael@0 55 [0x2270, 0x2271],
michael@0 56 [0x2271, 0x2270],
michael@0 57 [0x2272, 0x2273],
michael@0 58 [0x2273, 0x2272],
michael@0 59 [0x2274, 0x2275],
michael@0 60 [0x2275, 0x2274],
michael@0 61 [0x2276, 0x2277],
michael@0 62 [0x2277, 0x2276],
michael@0 63 [0x2278, 0x2279],
michael@0 64 [0x2279, 0x2278],
michael@0 65 [0x227A, 0x227B],
michael@0 66 [0x227B, 0x227A],
michael@0 67 [0x227C, 0x227D],
michael@0 68 [0x227D, 0x227C],
michael@0 69 [0x227E, 0x227F],
michael@0 70 [0x227F, 0x227E],
michael@0 71 [0x2280, 0x2281],
michael@0 72 [0x2281, 0x2280],
michael@0 73 [0x2282, 0x2283],
michael@0 74 [0x2283, 0x2282],
michael@0 75 [0x2284, 0x2285],
michael@0 76 [0x2285, 0x2284],
michael@0 77 [0x2286, 0x2287],
michael@0 78 [0x2287, 0x2286],
michael@0 79 [0x2288, 0x2289],
michael@0 80 [0x2289, 0x2288],
michael@0 81 [0x228A, 0x228B],
michael@0 82 [0x228B, 0x228A],
michael@0 83 [0x228F, 0x2290],
michael@0 84 [0x2290, 0x228F],
michael@0 85 [0x2291, 0x2292],
michael@0 86 [0x2292, 0x2291],
michael@0 87 [0x2298, 0x29B8],
michael@0 88 [0x22A2, 0x22A3],
michael@0 89 [0x22A3, 0x22A2],
michael@0 90 [0x22A6, 0x2ADE],
michael@0 91 [0x22A8, 0x2AE4],
michael@0 92 [0x22A9, 0x2AE3],
michael@0 93 [0x22AB, 0x2AE5],
michael@0 94 [0x22B0, 0x22B1],
michael@0 95 [0x22B1, 0x22B0],
michael@0 96 [0x22B2, 0x22B3],
michael@0 97 [0x22B3, 0x22B2],
michael@0 98 [0x22B4, 0x22B5],
michael@0 99 [0x22B5, 0x22B4],
michael@0 100 [0x22B6, 0x22B7],
michael@0 101 [0x22B7, 0x22B6],
michael@0 102 [0x22C9, 0x22CA],
michael@0 103 [0x22CA, 0x22C9],
michael@0 104 [0x22CB, 0x22CC],
michael@0 105 [0x22CC, 0x22CB],
michael@0 106 [0x22CD, 0x2243],
michael@0 107 [0x22D0, 0x22D1],
michael@0 108 [0x22D1, 0x22D0],
michael@0 109 [0x22D6, 0x22D7],
michael@0 110 [0x22D7, 0x22D6],
michael@0 111 [0x22D8, 0x22D9],
michael@0 112 [0x22D9, 0x22D8],
michael@0 113 [0x22DA, 0x22DB],
michael@0 114 [0x22DB, 0x22DA],
michael@0 115 [0x22DC, 0x22DD],
michael@0 116 [0x22DD, 0x22DC],
michael@0 117 [0x22DE, 0x22DF],
michael@0 118 [0x22DF, 0x22DE],
michael@0 119 [0x22E0, 0x22E1],
michael@0 120 [0x22E1, 0x22E0],
michael@0 121 [0x22E2, 0x22E3],
michael@0 122 [0x22E3, 0x22E2],
michael@0 123 [0x22E4, 0x22E5],
michael@0 124 [0x22E5, 0x22E4],
michael@0 125 [0x22E6, 0x22E7],
michael@0 126 [0x22E7, 0x22E6],
michael@0 127 [0x22E8, 0x22E9],
michael@0 128 [0x22E9, 0x22E8],
michael@0 129 [0x22EA, 0x22EB],
michael@0 130 [0x22EB, 0x22EA],
michael@0 131 [0x22EC, 0x22ED],
michael@0 132 [0x22ED, 0x22EC],
michael@0 133 [0x22F0, 0x22F1],
michael@0 134 [0x22F1, 0x22F0],
michael@0 135 [0x22F2, 0x22FA],
michael@0 136 [0x22F3, 0x22FB],
michael@0 137 [0x22F4, 0x22FC],
michael@0 138 [0x22F6, 0x22FD],
michael@0 139 [0x22F7, 0x22FE],
michael@0 140 [0x22FA, 0x22F2],
michael@0 141 [0x22FB, 0x22F3],
michael@0 142 [0x22FC, 0x22F4],
michael@0 143 [0x22FD, 0x22F6],
michael@0 144 [0x22FE, 0x22F7],
michael@0 145 [0x2308, 0x2309],
michael@0 146 [0x2309, 0x2308],
michael@0 147 [0x230A, 0x230B],
michael@0 148 [0x230B, 0x230A],
michael@0 149 [0x2329, 0x232A],
michael@0 150 [0x232A, 0x2329],
michael@0 151 [0x2768, 0x2769],
michael@0 152 [0x2769, 0x2768],
michael@0 153 [0x276A, 0x276B],
michael@0 154 [0x276B, 0x276A],
michael@0 155 [0x276C, 0x276D],
michael@0 156 [0x276D, 0x276C],
michael@0 157 [0x276E, 0x276F],
michael@0 158 [0x276F, 0x276E],
michael@0 159 [0x2770, 0x2771],
michael@0 160 [0x2771, 0x2770],
michael@0 161 [0x2772, 0x2773],
michael@0 162 [0x2773, 0x2772],
michael@0 163 [0x2774, 0x2775],
michael@0 164 [0x2775, 0x2774],
michael@0 165 [0x27C3, 0x27C4],
michael@0 166 [0x27C4, 0x27C3],
michael@0 167 [0x27C5, 0x27C6],
michael@0 168 [0x27C6, 0x27C5],
michael@0 169 [0x27C8, 0x27C9],
michael@0 170 [0x27C9, 0x27C8],
michael@0 171 [0x27CB, 0x27CD],
michael@0 172 [0x27CD, 0x27CB],
michael@0 173 [0x27D5, 0x27D6],
michael@0 174 [0x27D6, 0x27D5],
michael@0 175 [0x27DD, 0x27DE],
michael@0 176 [0x27DE, 0x27DD],
michael@0 177 [0x27E2, 0x27E3],
michael@0 178 [0x27E3, 0x27E2],
michael@0 179 [0x27E4, 0x27E5],
michael@0 180 [0x27E5, 0x27E4],
michael@0 181 [0x27E6, 0x27E7],
michael@0 182 [0x27E7, 0x27E6],
michael@0 183 [0x27E8, 0x27E9],
michael@0 184 [0x27E9, 0x27E8],
michael@0 185 [0x27EA, 0x27EB],
michael@0 186 [0x27EB, 0x27EA],
michael@0 187 [0x27EC, 0x27ED],
michael@0 188 [0x27ED, 0x27EC],
michael@0 189 [0x27EE, 0x27EF],
michael@0 190 [0x27EF, 0x27EE],
michael@0 191 [0x2983, 0x2984],
michael@0 192 [0x2984, 0x2983],
michael@0 193 [0x2985, 0x2986],
michael@0 194 [0x2986, 0x2985],
michael@0 195 [0x2987, 0x2988],
michael@0 196 [0x2988, 0x2987],
michael@0 197 [0x2989, 0x298A],
michael@0 198 [0x298A, 0x2989],
michael@0 199 [0x298B, 0x298C],
michael@0 200 [0x298C, 0x298B],
michael@0 201 [0x298D, 0x2990],
michael@0 202 [0x298E, 0x298F],
michael@0 203 [0x298F, 0x298E],
michael@0 204 [0x2990, 0x298D],
michael@0 205 [0x2991, 0x2992],
michael@0 206 [0x2992, 0x2991],
michael@0 207 [0x2993, 0x2994],
michael@0 208 [0x2994, 0x2993],
michael@0 209 [0x2995, 0x2996],
michael@0 210 [0x2996, 0x2995],
michael@0 211 [0x2997, 0x2998],
michael@0 212 [0x2998, 0x2997],
michael@0 213 [0x29B8, 0x2298],
michael@0 214 [0x29C0, 0x29C1],
michael@0 215 [0x29C1, 0x29C0],
michael@0 216 [0x29C4, 0x29C5],
michael@0 217 [0x29C5, 0x29C4],
michael@0 218 [0x29CF, 0x29D0],
michael@0 219 [0x29D0, 0x29CF],
michael@0 220 [0x29D1, 0x29D2],
michael@0 221 [0x29D2, 0x29D1],
michael@0 222 [0x29D4, 0x29D5],
michael@0 223 [0x29D5, 0x29D4],
michael@0 224 [0x29D8, 0x29D9],
michael@0 225 [0x29D9, 0x29D8],
michael@0 226 [0x29DA, 0x29DB],
michael@0 227 [0x29DB, 0x29DA],
michael@0 228 [0x29F5, 0x2215],
michael@0 229 [0x29F8, 0x29F9],
michael@0 230 [0x29F9, 0x29F8],
michael@0 231 [0x29FC, 0x29FD],
michael@0 232 [0x29FD, 0x29FC],
michael@0 233 [0x2A2B, 0x2A2C],
michael@0 234 [0x2A2C, 0x2A2B],
michael@0 235 [0x2A2D, 0x2A2E],
michael@0 236 [0x2A2E, 0x2A2D],
michael@0 237 [0x2A34, 0x2A35],
michael@0 238 [0x2A35, 0x2A34],
michael@0 239 [0x2A3C, 0x2A3D],
michael@0 240 [0x2A3D, 0x2A3C],
michael@0 241 [0x2A64, 0x2A65],
michael@0 242 [0x2A65, 0x2A64],
michael@0 243 [0x2A79, 0x2A7A],
michael@0 244 [0x2A7A, 0x2A79],
michael@0 245 [0x2A7D, 0x2A7E],
michael@0 246 [0x2A7E, 0x2A7D],
michael@0 247 [0x2A7F, 0x2A80],
michael@0 248 [0x2A80, 0x2A7F],
michael@0 249 [0x2A81, 0x2A82],
michael@0 250 [0x2A82, 0x2A81],
michael@0 251 [0x2A83, 0x2A84],
michael@0 252 [0x2A84, 0x2A83],
michael@0 253 [0x2A8B, 0x2A8C],
michael@0 254 [0x2A8C, 0x2A8B],
michael@0 255 [0x2A91, 0x2A92],
michael@0 256 [0x2A92, 0x2A91],
michael@0 257 [0x2A93, 0x2A94],
michael@0 258 [0x2A94, 0x2A93],
michael@0 259 [0x2A95, 0x2A96],
michael@0 260 [0x2A96, 0x2A95],
michael@0 261 [0x2A97, 0x2A98],
michael@0 262 [0x2A98, 0x2A97],
michael@0 263 [0x2A99, 0x2A9A],
michael@0 264 [0x2A9A, 0x2A99],
michael@0 265 [0x2A9B, 0x2A9C],
michael@0 266 [0x2A9C, 0x2A9B],
michael@0 267 [0x2AA1, 0x2AA2],
michael@0 268 [0x2AA2, 0x2AA1],
michael@0 269 [0x2AA6, 0x2AA7],
michael@0 270 [0x2AA7, 0x2AA6],
michael@0 271 [0x2AA8, 0x2AA9],
michael@0 272 [0x2AA9, 0x2AA8],
michael@0 273 [0x2AAA, 0x2AAB],
michael@0 274 [0x2AAB, 0x2AAA],
michael@0 275 [0x2AAC, 0x2AAD],
michael@0 276 [0x2AAD, 0x2AAC],
michael@0 277 [0x2AAF, 0x2AB0],
michael@0 278 [0x2AB0, 0x2AAF],
michael@0 279 [0x2AB3, 0x2AB4],
michael@0 280 [0x2AB4, 0x2AB3],
michael@0 281 [0x2ABB, 0x2ABC],
michael@0 282 [0x2ABC, 0x2ABB],
michael@0 283 [0x2ABD, 0x2ABE],
michael@0 284 [0x2ABE, 0x2ABD],
michael@0 285 [0x2ABF, 0x2AC0],
michael@0 286 [0x2AC0, 0x2ABF],
michael@0 287 [0x2AC1, 0x2AC2],
michael@0 288 [0x2AC2, 0x2AC1],
michael@0 289 [0x2AC3, 0x2AC4],
michael@0 290 [0x2AC4, 0x2AC3],
michael@0 291 [0x2AC5, 0x2AC6],
michael@0 292 [0x2AC6, 0x2AC5],
michael@0 293 [0x2ACD, 0x2ACE],
michael@0 294 [0x2ACE, 0x2ACD],
michael@0 295 [0x2ACF, 0x2AD0],
michael@0 296 [0x2AD0, 0x2ACF],
michael@0 297 [0x2AD1, 0x2AD2],
michael@0 298 [0x2AD2, 0x2AD1],
michael@0 299 [0x2AD3, 0x2AD4],
michael@0 300 [0x2AD4, 0x2AD3],
michael@0 301 [0x2AD5, 0x2AD6],
michael@0 302 [0x2AD6, 0x2AD5],
michael@0 303 [0x2ADE, 0x22A6],
michael@0 304 [0x2AE3, 0x22A9],
michael@0 305 [0x2AE4, 0x22A8],
michael@0 306 [0x2AE5, 0x22AB],
michael@0 307 [0x2AEC, 0x2AED],
michael@0 308 [0x2AED, 0x2AEC],
michael@0 309 [0x2AF7, 0x2AF8],
michael@0 310 [0x2AF8, 0x2AF7],
michael@0 311 [0x2AF9, 0x2AFA],
michael@0 312 [0x2AFA, 0x2AF9],
michael@0 313 [0x2E02, 0x2E03],
michael@0 314 [0x2E03, 0x2E02],
michael@0 315 [0x2E04, 0x2E05],
michael@0 316 [0x2E05, 0x2E04],
michael@0 317 [0x2E09, 0x2E0A],
michael@0 318 [0x2E0A, 0x2E09],
michael@0 319 [0x2E0C, 0x2E0D],
michael@0 320 [0x2E0D, 0x2E0C],
michael@0 321 [0x2E1C, 0x2E1D],
michael@0 322 [0x2E1D, 0x2E1C],
michael@0 323 [0x2E20, 0x2E21],
michael@0 324 [0x2E21, 0x2E20],
michael@0 325 [0x2E22, 0x2E23],
michael@0 326 [0x2E23, 0x2E22],
michael@0 327 [0x2E24, 0x2E25],
michael@0 328 [0x2E25, 0x2E24],
michael@0 329 [0x2E26, 0x2E27],
michael@0 330 [0x2E27, 0x2E26],
michael@0 331 [0x2E28, 0x2E29],
michael@0 332 [0x2E29, 0x2E28],
michael@0 333 [0x3008, 0x3009],
michael@0 334 [0x3009, 0x3008],
michael@0 335 [0x300A, 0x300B],
michael@0 336 [0x300B, 0x300A],
michael@0 337 [0x300C, 0x300D],
michael@0 338 [0x300D, 0x300C],
michael@0 339 [0x300E, 0x300F],
michael@0 340 [0x300F, 0x300E],
michael@0 341 [0x3010, 0x3011],
michael@0 342 [0x3011, 0x3010],
michael@0 343 [0x3014, 0x3015],
michael@0 344 [0x3015, 0x3014],
michael@0 345 [0x3016, 0x3017],
michael@0 346 [0x3017, 0x3016],
michael@0 347 [0x3018, 0x3019],
michael@0 348 [0x3019, 0x3018],
michael@0 349 [0x301A, 0x301B],
michael@0 350 [0x301B, 0x301A],
michael@0 351 [0xFE59, 0xFE5A],
michael@0 352 [0xFE5A, 0xFE59],
michael@0 353 [0xFE5B, 0xFE5C],
michael@0 354 [0xFE5C, 0xFE5B],
michael@0 355 [0xFE5D, 0xFE5E],
michael@0 356 [0xFE5E, 0xFE5D],
michael@0 357 [0xFE64, 0xFE65],
michael@0 358 [0xFE65, 0xFE64],
michael@0 359 [0xFF08, 0xFF09],
michael@0 360 [0xFF09, 0xFF08],
michael@0 361 [0xFF1C, 0xFF1E],
michael@0 362 [0xFF1E, 0xFF1C],
michael@0 363 [0xFF3B, 0xFF3D],
michael@0 364 [0xFF3D, 0xFF3B],
michael@0 365 [0xFF5B, 0xFF5D],
michael@0 366 [0xFF5D, 0xFF5B],
michael@0 367 [0xFF5F, 0xFF60],
michael@0 368 [0xFF60, 0xFF5F],
michael@0 369 [0xFF62, 0xFF63],
michael@0 370 [0xFF63, 0xFF62]
michael@0 371 ];
michael@0 372
michael@0 373 function show(attributes, text) {
michael@0 374 var e = document.createElementNS("http://www.w3.org/2000/svg", "text");
michael@0 375 for (var name in attributes) {
michael@0 376 e.setAttribute(name, attributes[name]);
michael@0 377 }
michael@0 378 e.textContent = text;
michael@0 379 document.documentElement.appendChild(e);
michael@0 380 }
michael@0 381
michael@0 382 function showCharacters(isReference) {
michael@0 383 var row = 0, col = 0;
michael@0 384 for (var i = 0; i < mirrors.length; i++) {
michael@0 385 show({ x: col * 50 + 30,
michael@0 386 y: row * 30 + 30,
michael@0 387 direction: isReference ? "ltr" : "rtl",
michael@0 388 "unicode-bidi": "embed",
michael@0 389 "text-anchor": "middle",
michael@0 390 "font-family": "BitPattern",
michael@0 391 "font-size": "40px" },
michael@0 392 String.fromCharCode(mirrors[i][isReference ? 0 : 1]));
michael@0 393 if (++col == 16) {
michael@0 394 col = 0;
michael@0 395 row++;
michael@0 396 }
michael@0 397 }
michael@0 398 document.documentElement.removeAttribute("class");
michael@0 399 }
michael@0 400
michael@0 401 function test() {
michael@0 402 showCharacters(false);
michael@0 403 }
michael@0 404
michael@0 405 function reference() {
michael@0 406 showCharacters(true);
michael@0 407 }

mercurial