Changeset 79501 in webkit


Ignore:
Timestamp:
Feb 23, 2011 4:04:41 PM (13 years ago)
Author:
oliver@apple.com
Message:

Roll out r64156 as it introduces incorrect behaviour.

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r79498 r79501  
     12011-02-23  Oliver Hunt  <oliver@apple.com>
     2
     3        Roll out r64156 as it introduces incorrect behaviour.
     4
     5        * canvas/philip/tests/2d.imageData.object.round.html:
     6        * fast/canvas/canvas-ImageData-behaviour-expected.txt:
     7        * fast/canvas/canvas-ImageData-behaviour.js:
     8        * platform/qt/Skipped:
     9
    1102011-02-23  Mihai Parparita  <mihaip@chromium.org>
    211
  • trunk/LayoutTests/canvas/philip/tests/2d.imageData.object.round.html

    r71481 r79501  
    2323_assertSame(imgdata.data[0], 1, "imgdata.data[\""+(0)+"\"]", "1");
    2424imgdata.data[0] = 1.5;
    25 _assertSame(imgdata.data[0], 1, "imgdata.data[\""+(0)+"\"]", "1");
     25_assertSame(imgdata.data[0], 2, "imgdata.data[\""+(0)+"\"]", "2");
    2626imgdata.data[0] = 1.501;
    27 _assertSame(imgdata.data[0], 1, "imgdata.data[\""+(0)+"\"]", "1");
     27_assertSame(imgdata.data[0], 2, "imgdata.data[\""+(0)+"\"]", "2");
    2828imgdata.data[0] = 2.5;
    2929_assertSame(imgdata.data[0], 2, "imgdata.data[\""+(0)+"\"]", "2");
    3030imgdata.data[0] = 3.5;
    31 _assertSame(imgdata.data[0], 3, "imgdata.data[\""+(0)+"\"]", "3");
     31_assertSame(imgdata.data[0], 4, "imgdata.data[\""+(0)+"\"]", "4");
    3232imgdata.data[0] = 252.5;
    3333_assertSame(imgdata.data[0], 252, "imgdata.data[\""+(0)+"\"]", "252");
  • trunk/LayoutTests/fast/canvas/canvas-ImageData-behaviour-expected.txt

    r64156 r79501  
    2727PASS imageData.data[0] = false, imageData.data[0] is 0
    2828PASS imageData.data[0] = "garbage", imageData.data[0] is 0
    29 PASS imageData.data[0] = -1, imageData.data[0] is 255
     29PASS imageData.data[0] = -1, imageData.data[0] is 0
    3030PASS imageData.data[0] = "0", imageData.data[0] is 0
    3131PASS imageData.data[0] = "1", imageData.data[0] is 1
    3232PASS imageData.data[0] = "2", imageData.data[0] is 2
    33 PASS imageData.data[0] = Infinity, imageData.data[0] is 0
     33PASS imageData.data[0] = Infinity, imageData.data[0] is 255
    3434PASS imageData.data[0] = -Infinity, imageData.data[0] is 0
    35 PASS imageData.data[0] = -5, imageData.data[0] is 251
     35PASS imageData.data[0] = -5, imageData.data[0] is 0
    3636PASS imageData.data[0] = -0.5, imageData.data[0] is 0
    3737PASS imageData.data[0] = 0, imageData.data[0] is 0
    38 PASS imageData.data[0] = 0.5, imageData.data[0] is 0
     38PASS imageData.data[0] = 0.5, imageData.data[0] is 1
    3939PASS imageData.data[0] = 5, imageData.data[0] is 5
    40 PASS imageData.data[0] = 2147483647, imageData.data[0] is 255
    41 PASS imageData.data[0] = 2147483648, imageData.data[0] is 0
    42 PASS imageData.data[0] = 2147483649, imageData.data[0] is 1
    43 PASS imageData.data[0] = -1099511627773.5, imageData.data[0] is 3
    44 PASS imageData.data[0] = 9007199254740990, imageData.data[0] is 254
    4540PASS imageData.data[0] = 5.4, imageData.data[0] is 5
    4641PASS imageData.data[0] = 255, imageData.data[0] is 255
    47 PASS imageData.data[0] = 256, imageData.data[0] is 0
     42PASS imageData.data[0] = 256, imageData.data[0] is 255
    4843PASS imageData.data[0] = null, imageData.data[0] is 0
    4944PASS imageData.data[0] = undefined, imageData.data[0] is 0
  • trunk/LayoutTests/fast/canvas/canvas-ImageData-behaviour.js

    r64156 r79501  
    1212                  "\"0\"", "\"1\"", "\"2\"", Infinity, -Infinity,
    1313                  -5, -0.5, 0, 0.5, 5,
    14                   Math.pow(2, 31) - 1, Math.pow(2, 31), Math.pow(2, 31) + 1, -Math.pow(2, 40) + 2.5, Math.pow(2, 53) - 1.5,
    1514                  5.4, 255, 256, null, undefined];
    16 var testResults = [0, 1, 0, 0, 255,
    17                    0, 1, 2, 0, 0,
    18                    251, 0, 0, 0, 5,
    19                    255, 0, 1, 3, 254,
    20                    5, 255, 0, 0, 0];
     15var testResults = [0, 1, 0, 0, 0,
     16                   0, 1, 2, 255, 0,
     17                   0, 0, 0, 1, 5,
     18                   5, 255, 255, 0, 0];
    2119for (var i = 0; i < testValues.length; i++) {
    2220    shouldBe("imageData.data[0] = "+testValues[i]+", imageData.data[0]", ""+testResults[i]);
  • trunk/LayoutTests/platform/qt/Skipped

    r79432 r79501  
    31933193canvas/philip/tests/2d.imageData.create2.type.html
    31943194canvas/philip/tests/2d.imageData.get.type.html
     3195canvas/philip/tests/2d.imageData.object.round.html
     3196canvas/philip/tests/2d.imageData.object.wrap.html
    31953197canvas/philip/tests/2d.imageData.put.unchanged.html
    31963198canvas/philip/tests/2d.line.cap.open.html
  • trunk/Source/JavaScriptCore/ChangeLog

    r79492 r79501  
     12011-02-23  Oliver Hunt  <oliver@apple.com>
     2
     3        Roll out r64156 as it introduces incorrect behaviour.
     4
     5        * runtime/JSByteArray.h:
     6        (JSC::JSByteArray::setIndex):
     7
    182011-02-23  Geoffrey Garen  <ggaren@apple.com>
    29
  • trunk/Source/JavaScriptCore/runtime/JSByteArray.h

    r79132 r79501  
    4848        {
    4949            ASSERT(canAccessIndex(i));
     50            if (value & ~0xFF) {
     51                if (value < 0)
     52                    value = 0;
     53                else
     54                    value = 255;
     55            }
    5056            m_storage->data()[i] = static_cast<unsigned char>(value);
    5157        }
    52 
     58       
    5359        void setIndex(unsigned i, double value)
    5460        {
    5561            ASSERT(canAccessIndex(i));
    56             // The largest integer value that a double can represent without loss of precision
    57             // is 2^53.  long long is the smallest integral type that gives correct results
    58             // when casting numbers larger than 2^31 from a value of type double.
    59             m_storage->data()[i] = static_cast<unsigned char>(static_cast<long long>(value));
     62            if (!(value > 0)) // Clamp NaN to 0
     63                value = 0;
     64            else if (value > 255)
     65                value = 255;
     66            m_storage->data()[i] = static_cast<unsigned char>(value + 0.5);
    6067        }
    61 
     68       
    6269        void setIndex(ExecState* exec, unsigned i, JSValue value)
    6370        {
     
    8188
    8289        static const ClassInfo s_defaultInfo;
    83 
     90       
    8491        size_t length() const { return m_storage->length(); }
    8592
     
    102109        RefPtr<WTF::ByteArray> m_storage;
    103110    };
    104 
     111   
    105112    JSByteArray* asByteArray(JSValue value);
    106113    inline JSByteArray* asByteArray(JSValue value)
Note: See TracChangeset for help on using the changeset viewer.