| Index: third_party/WebKit/LayoutTests/fast/encoding/resources/char-decoding-utils.js
|
| diff --git a/third_party/WebKit/LayoutTests/fast/encoding/resources/char-decoding-utils.js b/third_party/WebKit/LayoutTests/fast/encoding/resources/char-decoding-utils.js
|
| index 4d5888cb7cf0574833ed9975f21ea1a460a696b8..d194d55a7c64025fc61967f98476106a94588dec 100644
|
| --- a/third_party/WebKit/LayoutTests/fast/encoding/resources/char-decoding-utils.js
|
| +++ b/third_party/WebKit/LayoutTests/fast/encoding/resources/char-decoding-utils.js
|
| @@ -1,34 +1,37 @@
|
| -function decodeText(charsetName, characterSequence)
|
| -{
|
| - var req = new XMLHttpRequest;
|
| - req.open('GET', 'data:text/plain,' + characterSequence, false);
|
| - req.overrideMimeType('text/plain; charset="' + charsetName + '"');
|
| +function decodeText(charsetName, characterSequence) {
|
| + return new Promise((resolve, reject) => {
|
| + const req = new XMLHttpRequest;
|
| + req.open('GET', `data:text/plain,${characterSequence}`);
|
| + req.overrideMimeType(`text/plain; charset="${charsetName}"`);
|
| req.send('');
|
| - return req.responseText;
|
| + req.onload = () => resolve(req.responseText);
|
| + req.onerror = () => reject(new Error(req.statusText));
|
| + });
|
| }
|
|
|
| -function decode(charsetName, characterSequence)
|
| -{
|
| - var decodedText = decodeText(charsetName, characterSequence);
|
| - var result = "";
|
| - for (var i = 0; i < decodedText.length; ++i) {
|
| - var code = decodedText.charCodeAt(i).toString(16).toUpperCase();
|
| - if (i)
|
| - result += "/";
|
| - result += "U+" + ("0000" + code).slice(-4);
|
| - }
|
| - return result;
|
| +function decode(charsetName, characterSequence) {
|
| + return decodeText(charsetName, characterSequence).then(decodedText => {
|
| + return decodedText.split('')
|
| + .map(char => char.charCodeAt(0))
|
| + .map(code => 'U+' + ('0000' + code.toString(16).toUpperCase()).slice(-4))
|
| + .join('/');
|
| + });
|
| }
|
|
|
| -function testDecode(charsetName, characterSequence, unicode)
|
| -{
|
| - shouldBe("decode('" + charsetName + "', '" + characterSequence + "')", "'" + unicode + "'");
|
| +function testDecode(charsetName, characterSequence, unicode) {
|
| + promise_test(t => {
|
| + return decode(charsetName, characterSequence).then(result => {
|
| + assert_equals(result, unicode);
|
| + });
|
| + }, `Decode ${charsetName}: ${characterSequence} => ${unicode}`);
|
| }
|
|
|
| -function batchTestDecode(inputData)
|
| -{
|
| - for (var i in inputData.encodings) {
|
| - for (var j in inputData.encoded)
|
| - testDecode(inputData.encodings[i], inputData.encoded[j], inputData.unicode[j]);
|
| +function batchTestDecode(inputData) {
|
| + for (let i in inputData.encodings) {
|
| + for (let j in inputData.encoded) {
|
| + testDecode(inputData.encodings[i],
|
| + inputData.encoded[j],
|
| + inputData.unicode[j]);
|
| }
|
| + }
|
| }
|
|
|