File: big5-encoder.html

package info (click to toggle)
firefox-esr 140.5.0esr-1~deb13u1
  • links: PTS, VCS
  • area: main
  • in suites: trixie-proposed-updates
  • size: 4,539,036 kB
  • sloc: cpp: 7,381,527; javascript: 6,388,905; ansic: 3,710,087; python: 1,393,776; xml: 628,165; asm: 426,918; java: 184,004; sh: 65,744; makefile: 19,302; objc: 13,059; perl: 12,912; yacc: 4,583; cs: 3,846; pascal: 3,352; lex: 1,720; ruby: 1,226; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (33 lines) | stat: -rw-r--r-- 1,887 bytes parent folder | download | duplicates (38)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!doctype html>
<meta charset=big5> <!-- test breaks if the server overrides this -->
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<div id=log></div>
<script>
 function encode(input, output, desc) {
   test(function() {
     var a = document.createElement("a"); // <a> uses document encoding for URL's query
     // Append and prepend X to test for off-by-one errors
     a.href = "https://example.com/?X" + input + "X";
     assert_equals(a.search.substr(1), "X" + output + "X"); // remove leading "?"
   }, "big5 encoder: " + desc);
 }

 encode("ab", "ab", "very basic")
 // edge cases
 encode("\u9EA6", "%26%2340614%3B", "Highest-pointer BMP character excluded from encoder");
 encode("\uD858\uDE6B", "%26%23156267%3B", "Highest-pointer character excluded from encoder");
 encode("\u3000", "%A1@", "Lowest-pointer character included in encoder");
 encode("\u20AC", "%A3%E1", "Euro; the highest-pointer character before a range of 30 unmapped pointers");
 encode("\u4E00", "%A4@", "The lowest-pointer character after the range of 30 unmapped pointers");
 encode("\uD85D\uDE07", "%C8%A4", "The highest-pointer character before a range of 41 unmapped pointers");
 encode("\uFFE2", "%C8%CD", "The lowest-pointer character after the range of 41 unmapped pointers");
 encode("\u79D4", "%FE%FE", "The last character in the index");
 // not in index
 encode("\u2603", "%26%239731%3B", "The canonical BMP test character that is not in the index");
 encode("\uD83D\uDCA9", "%26%23128169%3B", "The canonical astral test character that is not in the index");
 // duplicate low bits
 encode("\uD840\uDFB5", "%FDj", "A Plane 2 character whose low 16 bits match a BMP character that has a lower pointer");
 // prefer last
 encode("\u2550", "%F9%F9", "A duplicate-mapped code point that prefers the highest pointer in the encoder");
</script>