OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <script src="../../../resources/js-test.js"></script> | |
3 <script> | |
4 | |
5 description("Test invalid UTF-16 surrogate pairs with UTF-8 encoding"); | |
6 | |
7 var badStrings = [ | |
8 { input: "'abc123'", expected: [97, 98, 99, 49, 50, 51] }, // Sanity check. | |
9 { input: "'\\ud800'", expected: [0xef, 0xbf, 0xbd] }, // Surrogate half. | |
10 { input: "'\\udc00'", expected: [0xef, 0xbf, 0xbd] }, // Surrogate half. | |
11 { input: "'abc\\ud800123'", expected: [0x61, 0x62, 0x63, 0xef, 0xbf, 0xbd, 0
x31, 0x32, 0x33] }, // Surrogate half. | |
12 { input: "'abc\\udc00123'", expected: [0x61, 0x62, 0x63, 0xef, 0xbf, 0xbd, 0
x31, 0x32, 0x33] }, // Surrogate half. | |
13 { input: "'\\udc00\\ud800'", expected: [239, 191, 189, 239, 191, 189] } //
Wrong order. | |
14 ]; | |
15 | |
16 badStrings.forEach( | |
17 function(t) { | |
18 evalAndLog("encoded = new TextEncoder('utf-8').encode(" + t.input + ")")
; | |
19 shouldBeEqualToString("JSON.stringify([].slice.call(encoded))", JSON.str
ingify(t.expected)); | |
20 debug(""); | |
21 }); | |
22 | |
23 </script> | |
OLD | NEW |