[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
andreas.kling at nokia.com
andreas.kling at nokia.com
Wed Dec 22 11:30:46 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 03a4d0189de7426a48b97b85de509c5bb71f00e2
Author: andreas.kling at nokia.com <andreas.kling at nokia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Jul 27 21:11:35 2010 +0000
2010-07-23 Helder Correia <heldercorreia at codeaurora.org>
Reviewed by Darin Adler.
Canvas tests 2d.imageData.object.round and 2d.imageData.object.wrap are
failing. For canvas image data manipulation, the values passed should
be truncated and wrapped. Also fix the canvas-ImageData-behaviour test
to expect wrapping rather than clamping, and add some new checkings.
https://bugs.webkit.org/show_bug.cgi?id=40272
* runtime/JSByteArray.h:
(JSC::JSByteArray::setIndex):
(JSC::JSByteArray::JSByteArray):
2010-07-23 Helder Correia <heldercorreia at codeaurora.org>
Reviewed by Darin Adler.
Canvas tests 2d.imageData.object.round and 2d.imageData.object.wrap are
failing. For canvas image data manipulation, the values passed should
be truncated and wrapped. Also fix the canvas-ImageData-behaviour test
to expect wrapping rather than clamping, and add some new checkings.
https://bugs.webkit.org/show_bug.cgi?id=40272
* canvas/philip/tests/2d.imageData.object.round-expected.txt:
* canvas/philip/tests/2d.imageData.object.round.html:
* canvas/philip/tests/2d.imageData.object.wrap-expected.txt:
* fast/canvas/canvas-ImageData-behaviour-expected.txt:
* fast/canvas/canvas-ImageData-behaviour.js:
* platform/mac/Skipped:
* platform/qt/Skipped:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index a9bf93b..b740b4c 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,17 @@
+2010-07-23 Helder Correia <heldercorreia at codeaurora.org>
+
+ Reviewed by Darin Adler.
+
+ Canvas tests 2d.imageData.object.round and 2d.imageData.object.wrap are
+ failing. For canvas image data manipulation, the values passed should
+ be truncated and wrapped. Also fix the canvas-ImageData-behaviour test
+ to expect wrapping rather than clamping, and add some new checkings.
+ https://bugs.webkit.org/show_bug.cgi?id=40272
+
+ * runtime/JSByteArray.h:
+ (JSC::JSByteArray::setIndex):
+ (JSC::JSByteArray::JSByteArray):
+
2010-07-27 Gavin Barraclough <barraclough at apple.com>
Reviewed by Oliver Hunt.
diff --git a/JavaScriptCore/runtime/JSByteArray.h b/JavaScriptCore/runtime/JSByteArray.h
index 5b7adcf..e9a6c64 100644
--- a/JavaScriptCore/runtime/JSByteArray.h
+++ b/JavaScriptCore/runtime/JSByteArray.h
@@ -45,25 +45,18 @@ namespace JSC {
void setIndex(unsigned i, int value)
{
ASSERT(canAccessIndex(i));
- if (value & ~0xFF) {
- if (value < 0)
- value = 0;
- else
- value = 255;
- }
m_storage->data()[i] = static_cast<unsigned char>(value);
}
-
+
void setIndex(unsigned i, double value)
{
ASSERT(canAccessIndex(i));
- if (!(value > 0)) // Clamp NaN to 0
- value = 0;
- else if (value > 255)
- value = 255;
- m_storage->data()[i] = static_cast<unsigned char>(value + 0.5);
+ // The largest integer value that a double can represent without loss of precision
+ // is 2^53. long long is the smallest integral type that gives correct results
+ // when casting numbers larger than 2^31 from a value of type double.
+ m_storage->data()[i] = static_cast<unsigned char>(static_cast<long long>(value));
}
-
+
void setIndex(ExecState* exec, unsigned i, JSValue value)
{
double byteValue = value.toNumber(exec);
@@ -75,7 +68,7 @@ namespace JSC {
JSByteArray(ExecState* exec, NonNullPassRefPtr<Structure>, WTF::ByteArray* storage, const JSC::ClassInfo* = &s_defaultInfo);
static PassRefPtr<Structure> createStructure(JSValue prototype);
-
+
virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
virtual bool getOwnPropertySlot(JSC::ExecState*, unsigned propertyName, JSC::PropertySlot&);
virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
@@ -86,7 +79,7 @@ namespace JSC {
virtual const ClassInfo* classInfo() const { return m_classInfo; }
static const ClassInfo s_defaultInfo;
-
+
size_t length() const { return m_storage->length(); }
WTF::ByteArray* storage() const { return m_storage.get(); }
@@ -100,7 +93,7 @@ namespace JSC {
private:
enum VPtrStealingHackType { VPtrStealingHack };
- JSByteArray(VPtrStealingHackType)
+ JSByteArray(VPtrStealingHackType)
: JSObject(createStructure(jsNull()))
, m_classInfo(0)
{
@@ -109,7 +102,7 @@ namespace JSC {
RefPtr<WTF::ByteArray> m_storage;
const ClassInfo* m_classInfo;
};
-
+
JSByteArray* asByteArray(JSValue value);
inline JSByteArray* asByteArray(JSValue value)
{
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 19b3928..625ad7d 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,21 @@
+2010-07-23 Helder Correia <heldercorreia at codeaurora.org>
+
+ Reviewed by Darin Adler.
+
+ Canvas tests 2d.imageData.object.round and 2d.imageData.object.wrap are
+ failing. For canvas image data manipulation, the values passed should
+ be truncated and wrapped. Also fix the canvas-ImageData-behaviour test
+ to expect wrapping rather than clamping, and add some new checkings.
+ https://bugs.webkit.org/show_bug.cgi?id=40272
+
+ * canvas/philip/tests/2d.imageData.object.round-expected.txt:
+ * canvas/philip/tests/2d.imageData.object.round.html:
+ * canvas/philip/tests/2d.imageData.object.wrap-expected.txt:
+ * fast/canvas/canvas-ImageData-behaviour-expected.txt:
+ * fast/canvas/canvas-ImageData-behaviour.js:
+ * platform/mac/Skipped:
+ * platform/qt/Skipped:
+
2010-07-27 Chris Fleizach <cfleizach at apple.com>
Reviewed by David Kilzer.
diff --git a/LayoutTests/canvas/philip/tests/2d.imageData.object.round-expected.txt b/LayoutTests/canvas/philip/tests/2d.imageData.object.round-expected.txt
index 80198ac..8276591 100644
--- a/LayoutTests/canvas/philip/tests/2d.imageData.object.round-expected.txt
+++ b/LayoutTests/canvas/philip/tests/2d.imageData.object.round-expected.txt
@@ -4,10 +4,3 @@ ImageData.data rounds numbers with round-to-zero
References: 2d.pixelarray.modify
Actual output:
Passed
-
-
-
-
-
-
-
diff --git a/LayoutTests/canvas/philip/tests/2d.imageData.object.round.html b/LayoutTests/canvas/philip/tests/2d.imageData.object.round.html
index 5317574..8524c6f 100644
--- a/LayoutTests/canvas/philip/tests/2d.imageData.object.round.html
+++ b/LayoutTests/canvas/philip/tests/2d.imageData.object.round.html
@@ -35,13 +35,13 @@ _assertSame(imgdata.data[0], 0, "imgdata.data[\""+(0)+"\"]", "0");
imgdata.data[0] = 1.499;
_assertSame(imgdata.data[0], 1, "imgdata.data[\""+(0)+"\"]", "1");
imgdata.data[0] = 1.5;
-_assertSame(imgdata.data[0], 2, "imgdata.data[\""+(0)+"\"]", "2");
+_assertSame(imgdata.data[0], 1, "imgdata.data[\""+(0)+"\"]", "1");
imgdata.data[0] = 1.501;
-_assertSame(imgdata.data[0], 2, "imgdata.data[\""+(0)+"\"]", "2");
+_assertSame(imgdata.data[0], 1, "imgdata.data[\""+(0)+"\"]", "1");
imgdata.data[0] = 2.5;
_assertSame(imgdata.data[0], 2, "imgdata.data[\""+(0)+"\"]", "2");
imgdata.data[0] = 3.5;
-_assertSame(imgdata.data[0], 4, "imgdata.data[\""+(0)+"\"]", "4");
+_assertSame(imgdata.data[0], 3, "imgdata.data[\""+(0)+"\"]", "3");
imgdata.data[0] = 252.5;
_assertSame(imgdata.data[0], 252, "imgdata.data[\""+(0)+"\"]", "252");
imgdata.data[0] = 253.5;
diff --git a/LayoutTests/canvas/philip/tests/2d.imageData.object.wrap-expected.txt b/LayoutTests/canvas/philip/tests/2d.imageData.object.wrap-expected.txt
index 0d433f5..b009a9c 100644
--- a/LayoutTests/canvas/philip/tests/2d.imageData.object.wrap-expected.txt
+++ b/LayoutTests/canvas/philip/tests/2d.imageData.object.wrap-expected.txt
@@ -4,7 +4,3 @@ ImageData.data wraps numbers modulo 256
References: 2d.pixelarray.modify
Actual output:
Passed
-
-
-
-
diff --git a/LayoutTests/fast/canvas/canvas-ImageData-behaviour-expected.txt b/LayoutTests/fast/canvas/canvas-ImageData-behaviour-expected.txt
index 90ea45a..8def5aa 100644
--- a/LayoutTests/fast/canvas/canvas-ImageData-behaviour-expected.txt
+++ b/LayoutTests/fast/canvas/canvas-ImageData-behaviour-expected.txt
@@ -26,20 +26,25 @@ PASS imageData.data[0] = NaN, imageData.data[0] is 0
PASS imageData.data[0] = true, imageData.data[0] is 1
PASS imageData.data[0] = false, imageData.data[0] is 0
PASS imageData.data[0] = "garbage", imageData.data[0] is 0
-PASS imageData.data[0] = -1, imageData.data[0] is 0
+PASS imageData.data[0] = -1, imageData.data[0] is 255
PASS imageData.data[0] = "0", imageData.data[0] is 0
PASS imageData.data[0] = "1", imageData.data[0] is 1
PASS imageData.data[0] = "2", imageData.data[0] is 2
-PASS imageData.data[0] = Infinity, imageData.data[0] is 255
+PASS imageData.data[0] = Infinity, imageData.data[0] is 0
PASS imageData.data[0] = -Infinity, imageData.data[0] is 0
-PASS imageData.data[0] = -5, imageData.data[0] is 0
+PASS imageData.data[0] = -5, imageData.data[0] is 251
PASS imageData.data[0] = -0.5, imageData.data[0] is 0
PASS imageData.data[0] = 0, imageData.data[0] is 0
-PASS imageData.data[0] = 0.5, imageData.data[0] is 1
+PASS imageData.data[0] = 0.5, imageData.data[0] is 0
PASS imageData.data[0] = 5, imageData.data[0] is 5
+PASS imageData.data[0] = 2147483647, imageData.data[0] is 255
+PASS imageData.data[0] = 2147483648, imageData.data[0] is 0
+PASS imageData.data[0] = 2147483649, imageData.data[0] is 1
+PASS imageData.data[0] = -1099511627773.5, imageData.data[0] is 3
+PASS imageData.data[0] = 9007199254740990, imageData.data[0] is 254
PASS imageData.data[0] = 5.4, imageData.data[0] is 5
PASS imageData.data[0] = 255, imageData.data[0] is 255
-PASS imageData.data[0] = 256, imageData.data[0] is 255
+PASS imageData.data[0] = 256, imageData.data[0] is 0
PASS imageData.data[0] = null, imageData.data[0] is 0
PASS imageData.data[0] = undefined, imageData.data[0] is 0
PASS imageData.data['foo']='garbage',imageData.data['foo'] is 'garbage'
diff --git a/LayoutTests/fast/canvas/canvas-ImageData-behaviour.js b/LayoutTests/fast/canvas/canvas-ImageData-behaviour.js
index d5b9161..a6771e0 100644
--- a/LayoutTests/fast/canvas/canvas-ImageData-behaviour.js
+++ b/LayoutTests/fast/canvas/canvas-ImageData-behaviour.js
@@ -11,11 +11,13 @@ for (var i = 0; i < imageData.data.length; i++)
var testValues = [NaN, true, false, "\"garbage\"", "-1",
"\"0\"", "\"1\"", "\"2\"", Infinity, -Infinity,
-5, -0.5, 0, 0.5, 5,
+ 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,
5.4, 255, 256, null, undefined];
-var testResults = [0, 1, 0, 0, 0,
- 0, 1, 2, 255, 0,
- 0, 0, 0, 1, 5,
- 5, 255, 255, 0, 0];
+var testResults = [0, 1, 0, 0, 255,
+ 0, 1, 2, 0, 0,
+ 251, 0, 0, 0, 5,
+ 255, 0, 1, 3, 254,
+ 5, 255, 0, 0, 0];
for (var i = 0; i < testValues.length; i++) {
shouldBe("imageData.data[0] = "+testValues[i]+", imageData.data[0]", ""+testResults[i]);
}
diff --git a/LayoutTests/platform/mac/Skipped b/LayoutTests/platform/mac/Skipped
index 1b582f6..1044fbc 100644
--- a/LayoutTests/platform/mac/Skipped
+++ b/LayoutTests/platform/mac/Skipped
@@ -202,8 +202,6 @@ canvas/philip/tests/2d.imageData.create2.type.html
canvas/philip/tests/2d.imageData.get.source.negative.html
canvas/philip/tests/2d.imageData.get.source.outside.html
canvas/philip/tests/2d.imageData.get.type.html
-canvas/philip/tests/2d.imageData.object.round.html
-canvas/philip/tests/2d.imageData.object.wrap.html
canvas/philip/tests/2d.line.cap.closed.html
canvas/philip/tests/2d.line.join.parallel.html
canvas/philip/tests/2d.line.miter.lineedge.html
diff --git a/LayoutTests/platform/qt/Skipped b/LayoutTests/platform/qt/Skipped
index dec527d..b3effbe 100644
--- a/LayoutTests/platform/qt/Skipped
+++ b/LayoutTests/platform/qt/Skipped
@@ -5270,8 +5270,6 @@ canvas/philip/tests/2d.imageData.create1.type.html
canvas/philip/tests/2d.imageData.create2.type.html
canvas/philip/tests/2d.imageData.get.source.negative.html
canvas/philip/tests/2d.imageData.get.type.html
-canvas/philip/tests/2d.imageData.object.round.html
-canvas/philip/tests/2d.imageData.object.wrap.html
canvas/philip/tests/2d.imageData.put.unchanged.html
canvas/philip/tests/2d.line.cap.open.html
canvas/philip/tests/2d.line.join.open.html
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list