2009-12-13 Eric Seidel <eric@webkit.org>
authormjs@apple.com <mjs@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 14 Dec 2009 02:38:22 +0000 (02:38 +0000)
committermjs@apple.com <mjs@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 14 Dec 2009 02:38:22 +0000 (02:38 +0000)
        Reviewed by Gavin Barraclough.

        string-base64 test does not compute a valid base64 string
        http://bugs.webkit.org/show_bug.cgi?id=16806

        * tests/string-base64.js: change str[i] to str.charCodeAt(i)
2009-12-13  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Gavin Barraclough.

        SunSpider/tests/string-base64.js does not compute a valid base64 encoded string
        https://bugs.webkit.org/show_bug.cgi?id=16806

        Based on a patch by Eric Seidel.

        Fix the base64 computation to actually compute correct results. The impact on runtime of
        the test is pretty small, but noticeable for some browsers. But at least it's not
        doing a wrong and meaningless computation any more.

        * tests/sunspider-0.9.1/string-base64.js:
        ():
        (base64ToString):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52078 268f45cc-cd09-0410-ab3c-d52691b4dbfc

ChangeLog
SunSpider/ChangeLog
SunSpider/tests/sunspider-0.9.1/string-base64.js

index 16d2dd934f61ce1d4296ae055a826289a6000cc0..98d5de4fc71b445f47b930a827a75f603945b255 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2009-12-13  Eric Seidel  <eric@webkit.org>
+
+        Reviewed by Gavin Barraclough.
+
+        string-base64 test does not compute a valid base64 string
+        http://bugs.webkit.org/show_bug.cgi?id=16806
+
+        * tests/string-base64.js: change str[i] to str.charCodeAt(i)
+
 2009-12-10  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
 
         Reviewed by Xan Lopez.
index be7c393b7453962a82cb43722def6074bbcd4962..f96ef41326f6ff15e7e8edcbbc24dc21fdf8bace 100644 (file)
@@ -1,3 +1,20 @@
+2009-12-13  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Gavin Barraclough.
+
+        SunSpider/tests/string-base64.js does not compute a valid base64 encoded string
+        https://bugs.webkit.org/show_bug.cgi?id=16806
+
+        Based on a patch by Eric Seidel.
+        
+        Fix the base64 computation to actually compute correct results. The impact on runtime of
+        the test is pretty small, but noticeable for some browsers. But at least it's not
+        doing a wrong and meaningless computation any more.
+        
+        * tests/sunspider-0.9.1/string-base64.js:
+        ():
+        (base64ToString):
+
 2009-12-13  Maciej Stachowiak  <mjs@apple.com>
 
         Fixing commit error...
index c9f3a7b8ccedadfc14bf45599d964f2dbd717a30..dfc949f70ff3f5bfc833c44eb4c1ca5bd1819a7f 100644 (file)
@@ -48,22 +48,22 @@ function toBase64(data) {
     var i;
     // Convert every three bytes to 4 ascii characters.
     for (i = 0; i < (length - 2); i += 3) {
-        result += toBase64Table[data[i] >> 2];
-        result += toBase64Table[((data[i] & 0x03) << 4) + (data[i+1] >> 4)];
-        result += toBase64Table[((data[i+1] & 0x0f) << 2) + (data[i+2] >> 6)];
-        result += toBase64Table[data[i+2] & 0x3f];
+        result += toBase64Table[data.charCodeAt(i) >> 2];
+        result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i+1) >> 4)];
+        result += toBase64Table[((data.charCodeAt(i+1) & 0x0f) << 2) + (data.charCodeAt(i+2) >> 6)];
+        result += toBase64Table[data.charCodeAt(i+2) & 0x3f];
     }
 
     // Convert the remaining 1 or 2 bytes, pad out to 4 characters.
     if (length%3) {
         i = length - (length%3);
-        result += toBase64Table[data[i] >> 2];
+        result += toBase64Table[data.charCodeAt(i) >> 2];
         if ((length%3) == 2) {
-            result += toBase64Table[((data[i] & 0x03) << 4) + (data[i+1] >> 4)];
-            result += toBase64Table[(data[i+1] & 0x0f) << 2];
+            result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i+1) >> 4)];
+            result += toBase64Table[(data.charCodeAt(i+1) & 0x0f) << 2];
             result += base64Pad;
         } else {
-            result += toBase64Table[(data[i] & 0x03) << 4];
+            result += toBase64Table[(data.charCodeAt(i) & 0x03) << 4];
             result += base64Pad + base64Pad;
         }
     }
@@ -91,7 +91,7 @@ function base64ToString(data) {
     // Convert one by one.
     for (var i = 0; i < data.length; i++) {
         var c = toBinaryTable[data.charCodeAt(i) & 0x7f];
-        var padding = (data[i] == base64Pad);
+        var padding = (data.charCodeAt(i) == base64Pad.charCodeAt(0));
         // Skip illegal characters and whitespace
         if (c == -1) continue;