Changeset r102146: <http://trac.webkit.org/changeset/102146> from https://bugs.webkit.org/show_bug.cgi?id=73875 "Add 8 bit paths to global object functions" causes fast/js/encode-URI-test.html to fail with the message --- /Volumes/Data/slave/snowleopard-intel-release-tests/build/layout-test-results/fast/js/encode-URI-test-expected.txt +++ /Volumes/Data/slave/snowleopard-intel-release-tests/build/layout-test-results/fast/js/encode-URI-test-actual.txt @@ -1,1 +1,3 @@ -Testing complete. No failures. +called unescape on "%uxxxx" and got "uxxxx" instead of "%uxxxx" + +Testing complete. 1 tests failed. The failure is due to the inner if () failing on line 653: 651: const LChar* c = characters + k; 652: if (c[0] == '%' && k <= len - 6 && c[1] == 'u') { 653: ==> if (isASCIIHexDigit(c[2]) && isASCIIHexDigit(c[3]) && isASCIIHexDigit(c[4]) && isASCIIHexDigit(c[5])) { 654: builder.append(Lexer<UChar>::convertUnicode(c[2], c[3], c[4], c[5])); 655: k += 5; 656: } 657: } else if (c[0] == '%' && k <= len - 3 && isASCIIHexDigit(c[1]) && isASCIIHexDigit(c[2])) { 658: builder.append(Lexer<LChar>::convertHex(c[1], c[2])); 659: k += 2; 660: } else 661: builder.append(*c); 662: k++; 663: } When that if fails, as in the case of the string "%uxxxx", the percent does not get written out. Patch in progress.
Created attachment 118112 [details] Patch
Committed r102182: <http://trac.webkit.org/changeset/102182>