Diff
Modified: trunk/LayoutTests/ChangeLog (138835 => 138836)
--- trunk/LayoutTests/ChangeLog 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/LayoutTests/ChangeLog 2013-01-04 20:42:37 UTC (rev 138836)
@@ -1,3 +1,16 @@
+2013-01-04 Joshua Bell <jsb...@chromium.org>
+
+ Add tests for WebIDL type conversions
+ https://bugs.webkit.org/show_bug.cgi?id=105927
+
+ Reviewed by Adam Barth.
+
+ This currently fails long long conversions of non-finites (which should map to 0). Patch
+ in progress at: http://wkbug.com/96798
+
+ * fast/js/webidl-type-mapping-expected.txt: Added.
+ * fast/js/webidl-type-mapping.html: Added.
+
2013-01-04 Stephen White <senorbla...@chromium.org>
Invalidation of some SVG filter attributes on HTML content doesn't work
Added: trunk/LayoutTests/fast/js/webidl-type-mapping-expected.txt (0 => 138836)
--- trunk/LayoutTests/fast/js/webidl-type-mapping-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/js/webidl-type-mapping-expected.txt 2013-01-04 20:42:37 UTC (rev 138836)
@@ -0,0 +1,279 @@
+Exercise WebIDL type conversions.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+converter = window.internals.typeConversions()
+
+PASS 'testLong' in converter is true
+PASS typeof converter.testLong === 'number' is true
+converter.testLong = 0
+PASS converter.testLong is 0
+converter.testLong = -1
+PASS converter.testLong is -1
+converter.testLong = 1
+PASS converter.testLong is 1
+converter.testLong = 0x7F
+PASS converter.testLong is 0x7F
+converter.testLong = 0x80
+PASS converter.testLong is 0x80
+converter.testLong = 0xFF
+PASS converter.testLong is 0xFF
+converter.testLong = -0x80
+PASS converter.testLong is -0x80
+converter.testLong = -0x81
+PASS converter.testLong is -0x81
+converter.testLong = 0x7FFF
+PASS converter.testLong is 0x7FFF
+converter.testLong = 0x8000
+PASS converter.testLong is 0x8000
+converter.testLong = 0xFFFF
+PASS converter.testLong is 0xFFFF
+converter.testLong = -0x8000
+PASS converter.testLong is -0x8000
+converter.testLong = -0x8001
+PASS converter.testLong is -0x8001
+converter.testLong = 0x7FFFFFFF
+PASS converter.testLong is 0x7FFFFFFF
+converter.testLong = 0x80000000
+PASS converter.testLong is -0x80000000
+converter.testLong = 0xFFFFFFFF
+PASS converter.testLong is -1
+converter.testLong = -0x80000000
+PASS converter.testLong is -0x80000000
+converter.testLong = -0x80000001
+PASS converter.testLong is 0x7FFFFFFF
+converter.testLong = 0xDCBA9876543210
+PASS converter.testLong is 0x76543210
+converter.testLong = Number.MAX_VALUE
+PASS converter.testLong is 0
+converter.testLong = Number.MIN_VALUE
+PASS converter.testLong is 0
+converter.testLong = -Number.MAX_VALUE
+PASS converter.testLong is 0
+converter.testLong = -Number.MIN_VALUE
+PASS converter.testLong is 0
+converter.testLong = 1.99
+PASS converter.testLong is 1
+converter.testLong = -1.99
+PASS converter.testLong is -1
+converter.testLong = Infinity
+PASS converter.testLong is 0
+converter.testLong = -Infinity
+PASS converter.testLong is 0
+converter.testLong = NaN
+PASS converter.testLong is 0
+converter.testLong = false
+PASS converter.testLong is 0
+converter.testLong = true
+PASS converter.testLong is 1
+converter.testLong = ''
+PASS converter.testLong is 0
+converter.testLong = 'abc'
+PASS converter.testLong is 0
+converter.testLong = null
+PASS converter.testLong is 0
+converter.testLong = undefined
+PASS converter.testLong is 0
+PASS converter.testLong = {valueOf:function(){throw new Error;}} threw exception Error.
+
+PASS 'testUnsignedLong' in converter is true
+PASS typeof converter.testUnsignedLong === 'number' is true
+converter.testUnsignedLong = 0
+PASS converter.testUnsignedLong is 0
+converter.testUnsignedLong = -1
+PASS converter.testUnsignedLong is 0xFFFFFFFF
+converter.testUnsignedLong = 1
+PASS converter.testUnsignedLong is 1
+converter.testUnsignedLong = 0x7F
+PASS converter.testUnsignedLong is 0x7F
+converter.testUnsignedLong = 0x80
+PASS converter.testUnsignedLong is 0x80
+converter.testUnsignedLong = 0xFF
+PASS converter.testUnsignedLong is 0xFF
+converter.testUnsignedLong = -0x80
+PASS converter.testUnsignedLong is 0xFFFFFF80
+converter.testUnsignedLong = -0x81
+PASS converter.testUnsignedLong is 0xFFFFFF7F
+converter.testUnsignedLong = 0x7FFF
+PASS converter.testUnsignedLong is 0x7FFF
+converter.testUnsignedLong = 0x8000
+PASS converter.testUnsignedLong is 0x8000
+converter.testUnsignedLong = 0xFFFF
+PASS converter.testUnsignedLong is 0xFFFF
+converter.testUnsignedLong = -0x8000
+PASS converter.testUnsignedLong is 0xFFFF8000
+converter.testUnsignedLong = -0x8001
+PASS converter.testUnsignedLong is 0xFFFF7FFF
+converter.testUnsignedLong = 0x7FFFFFFF
+PASS converter.testUnsignedLong is 0x7FFFFFFF
+converter.testUnsignedLong = 0x80000000
+PASS converter.testUnsignedLong is 0x80000000
+converter.testUnsignedLong = 0xFFFFFFFF
+PASS converter.testUnsignedLong is 0xFFFFFFFF
+converter.testUnsignedLong = -0x80000000
+PASS converter.testUnsignedLong is 0x80000000
+converter.testUnsignedLong = -0x80000001
+PASS converter.testUnsignedLong is 0x7FFFFFFF
+converter.testUnsignedLong = 0xDCBA9876543210
+PASS converter.testUnsignedLong is 0x76543210
+converter.testUnsignedLong = Number.MAX_VALUE
+PASS converter.testUnsignedLong is 0
+converter.testUnsignedLong = Number.MIN_VALUE
+PASS converter.testUnsignedLong is 0
+converter.testUnsignedLong = -Number.MAX_VALUE
+PASS converter.testUnsignedLong is 0
+converter.testUnsignedLong = -Number.MIN_VALUE
+PASS converter.testUnsignedLong is 0
+converter.testUnsignedLong = 1.99
+PASS converter.testUnsignedLong is 1
+converter.testUnsignedLong = -1.99
+PASS converter.testUnsignedLong is 0xFFFFFFFF
+converter.testUnsignedLong = Infinity
+PASS converter.testUnsignedLong is 0
+converter.testUnsignedLong = -Infinity
+PASS converter.testUnsignedLong is 0
+converter.testUnsignedLong = NaN
+PASS converter.testUnsignedLong is 0
+converter.testUnsignedLong = false
+PASS converter.testUnsignedLong is 0
+converter.testUnsignedLong = true
+PASS converter.testUnsignedLong is 1
+converter.testUnsignedLong = ''
+PASS converter.testUnsignedLong is 0
+converter.testUnsignedLong = 'abc'
+PASS converter.testUnsignedLong is 0
+converter.testUnsignedLong = null
+PASS converter.testUnsignedLong is 0
+converter.testUnsignedLong = undefined
+PASS converter.testUnsignedLong is 0
+PASS converter.testUnsignedLong = {valueOf:function(){throw new Error;}} threw exception Error.
+
+PASS 'testLongLong' in converter is true
+PASS typeof converter.testLongLong === 'number' is true
+converter.testLongLong = 0
+PASS converter.testLongLong is 0
+converter.testLongLong = -1
+PASS converter.testLongLong is -1
+converter.testLongLong = 1
+PASS converter.testLongLong is 1
+converter.testLongLong = 0x7F
+PASS converter.testLongLong is 0x7F
+converter.testLongLong = 0x80
+PASS converter.testLongLong is 0x80
+converter.testLongLong = 0xFF
+PASS converter.testLongLong is 0xFF
+converter.testLongLong = -0x80
+PASS converter.testLongLong is -0x80
+converter.testLongLong = -0x81
+PASS converter.testLongLong is -0x81
+converter.testLongLong = 0x7FFF
+PASS converter.testLongLong is 0x7FFF
+converter.testLongLong = 0x8000
+PASS converter.testLongLong is 0x8000
+converter.testLongLong = 0xFFFF
+PASS converter.testLongLong is 0xFFFF
+converter.testLongLong = -0x8000
+PASS converter.testLongLong is -0x8000
+converter.testLongLong = -0x8001
+PASS converter.testLongLong is -0x8001
+converter.testLongLong = 0x7FFFFFFF
+PASS converter.testLongLong is 0x7FFFFFFF
+converter.testLongLong = 0x80000000
+PASS converter.testLongLong is 0x80000000
+converter.testLongLong = 0xFFFFFFFF
+PASS converter.testLongLong is 0xFFFFFFFF
+converter.testLongLong = -0x80000000
+PASS converter.testLongLong is -0x80000000
+converter.testLongLong = -0x80000001
+PASS converter.testLongLong is -0x80000001
+converter.testLongLong = 0xDCBA9876543210
+PASS converter.testLongLong is 0xDCBA9876543210
+converter.testLongLong = Number.MIN_VALUE
+PASS converter.testLongLong is 0
+converter.testLongLong = -Number.MIN_VALUE
+PASS converter.testLongLong is 0
+converter.testLongLong = 1.99
+PASS converter.testLongLong is 1
+converter.testLongLong = -1.99
+PASS converter.testLongLong is -1
+converter.testLongLong = false
+PASS converter.testLongLong is 0
+converter.testLongLong = true
+PASS converter.testLongLong is 1
+converter.testLongLong = ''
+PASS converter.testLongLong is 0
+converter.testLongLong = 'abc'
+PASS converter.testLongLong is 0
+converter.testLongLong = null
+PASS converter.testLongLong is 0
+converter.testLongLong = undefined
+PASS converter.testLongLong is 0
+PASS converter.testLongLong = {valueOf:function(){throw new Error;}} threw exception Error.
+
+PASS 'testUnsignedLongLong' in converter is true
+PASS typeof converter.testUnsignedLongLong === 'number' is true
+converter.testUnsignedLongLong = 0
+PASS converter.testUnsignedLongLong is 0
+converter.testUnsignedLongLong = -1
+PASS converter.testUnsignedLongLong is 0xFFFFFFFFFFFFFFFF
+converter.testUnsignedLongLong = 1
+PASS converter.testUnsignedLongLong is 1
+converter.testUnsignedLongLong = 0x7F
+PASS converter.testUnsignedLongLong is 0x7F
+converter.testUnsignedLongLong = 0x80
+PASS converter.testUnsignedLongLong is 0x80
+converter.testUnsignedLongLong = 0xFF
+PASS converter.testUnsignedLongLong is 0xFF
+converter.testUnsignedLongLong = -0x80
+PASS converter.testUnsignedLongLong is 0xFFFFFFFFFFFFFF80
+converter.testUnsignedLongLong = -0x81
+PASS converter.testUnsignedLongLong is 0xFFFFFFFFFFFFFF7F
+converter.testUnsignedLongLong = 0x7FFF
+PASS converter.testUnsignedLongLong is 0x7FFF
+converter.testUnsignedLongLong = 0x8000
+PASS converter.testUnsignedLongLong is 0x8000
+converter.testUnsignedLongLong = 0xFFFF
+PASS converter.testUnsignedLongLong is 0xFFFF
+converter.testUnsignedLongLong = -0x8000
+PASS converter.testUnsignedLongLong is 0xFFFFFFFFFFFF8000
+converter.testUnsignedLongLong = -0x8001
+PASS converter.testUnsignedLongLong is 0xFFFFFFFFFFFF7FFF
+converter.testUnsignedLongLong = 0x7FFFFFFF
+PASS converter.testUnsignedLongLong is 0x7FFFFFFF
+converter.testUnsignedLongLong = 0x80000000
+PASS converter.testUnsignedLongLong is 0x80000000
+converter.testUnsignedLongLong = 0xFFFFFFFF
+PASS converter.testUnsignedLongLong is 0xFFFFFFFF
+converter.testUnsignedLongLong = -0x80000000
+PASS converter.testUnsignedLongLong is 0xFFFFFFFF80000000
+converter.testUnsignedLongLong = -0x80000001
+PASS converter.testUnsignedLongLong is 0xFFFFFFFF7FFFFFFF
+converter.testUnsignedLongLong = 0xDCBA9876543210
+PASS converter.testUnsignedLongLong is 0xDCBA9876543210
+converter.testUnsignedLongLong = Number.MIN_VALUE
+PASS converter.testUnsignedLongLong is 0
+converter.testUnsignedLongLong = -Number.MIN_VALUE
+PASS converter.testUnsignedLongLong is 0
+converter.testUnsignedLongLong = 1.99
+PASS converter.testUnsignedLongLong is 1
+converter.testUnsignedLongLong = -1.99
+PASS converter.testUnsignedLongLong is 0xFFFFFFFFFFFFFFFF
+converter.testUnsignedLongLong = false
+PASS converter.testUnsignedLongLong is 0
+converter.testUnsignedLongLong = true
+PASS converter.testUnsignedLongLong is 1
+converter.testUnsignedLongLong = ''
+PASS converter.testUnsignedLongLong is 0
+converter.testUnsignedLongLong = 'abc'
+PASS converter.testUnsignedLongLong is 0
+converter.testUnsignedLongLong = null
+PASS converter.testUnsignedLongLong is 0
+converter.testUnsignedLongLong = undefined
+PASS converter.testUnsignedLongLong is 0
+PASS converter.testUnsignedLongLong = {valueOf:function(){throw new Error;}} threw exception Error.
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/fast/js/webidl-type-mapping.html (0 => 138836)
--- trunk/LayoutTests/fast/js/webidl-type-mapping.html (rev 0)
+++ trunk/LayoutTests/fast/js/webidl-type-mapping.html 2013-01-04 20:42:37 UTC (rev 138836)
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<script src=""
+<script>
+description("Exercise WebIDL type conversions.");
+
+quiet = true;
+evalAndLog("converter = window.internals.typeConversions()");
+debug("");
+
+function verifyAttribute(attribute)
+{
+ shouldBeTrue("'" + attribute + "' in converter", quiet);
+ shouldBeTrue("typeof converter." + attribute + " === 'number'", quiet);
+ evalAndLog("converter." + attribute + " = 123", quiet);
+ shouldBe("converter." + attribute, "123", quiet);
+ evalAndLog("converter." + attribute + " = 0", quiet);
+ shouldBe("converter." + attribute, "0", quiet);
+}
+
+function convert(attribute, value, expected)
+{
+ if (arguments.length < 3) {
+ expected = value;
+ }
+ evalAndLog("converter." + attribute + " = " + value);
+ shouldBe("converter." + attribute, expected);
+}
+
+function convertThrows(attribute, value)
+{
+ shouldThrow("converter." + attribute + " = " + value);
+}
+
+function testNonNumericToNumeric(attribute)
+{
+ convert(attribute, "false", "0");
+ convert(attribute, "true", "1");
+ convert(attribute, "''", "0");
+ convert(attribute, "'abc'", "0");
+ convert(attribute, "null", "0");
+ convert(attribute, "undefined", "0");
+}
+
+type = "testLong";
+verifyAttribute(type);
+convert(type, "0");
+convert(type, "-1");
+convert(type, "1");
+convert(type, "0x7F");
+convert(type, "0x80");
+convert(type, "0xFF");
+convert(type, "-0x80");
+convert(type, "-0x81");
+convert(type, "0x7FFF");
+convert(type, "0x8000");
+convert(type, "0xFFFF");
+convert(type, "-0x8000");
+convert(type, "-0x8001");
+convert(type, "0x7FFFFFFF");
+convert(type, "0x80000000", "-0x80000000");
+convert(type, "0xFFFFFFFF", "-1");
+convert(type, "-0x80000000");
+convert(type, "-0x80000001", "0x7FFFFFFF");
+convert(type, "0xDCBA9876543210", "0x76543210");
+convert(type, "Number.MAX_VALUE", "0");
+convert(type, "Number.MIN_VALUE", "0");
+convert(type, "-Number.MAX_VALUE", "0");
+convert(type, "-Number.MIN_VALUE", "0");
+convert(type, "1.99", "1");
+convert(type, "-1.99", "-1");
+convert(type, "Infinity", "0");
+convert(type, "-Infinity", "0");
+convert(type, "NaN", "0");
+testNonNumericToNumeric(type);
+convertThrows(type, "{valueOf:function(){throw new Error;}}");
+debug("");
+
+type = "testUnsignedLong";
+verifyAttribute(type);
+convert(type, "0");
+convert(type, "-1", "0xFFFFFFFF");
+convert(type, "1");
+convert(type, "0x7F");
+convert(type, "0x80");
+convert(type, "0xFF");
+convert(type, "-0x80", "0xFFFFFF80");
+convert(type, "-0x81", "0xFFFFFF7F");
+convert(type, "0x7FFF");
+convert(type, "0x8000");
+convert(type, "0xFFFF");
+convert(type, "-0x8000", "0xFFFF8000");
+convert(type, "-0x8001", "0xFFFF7FFF");
+convert(type, "0x7FFFFFFF");
+convert(type, "0x80000000");
+convert(type, "0xFFFFFFFF");
+convert(type, "-0x80000000", "0x80000000");
+convert(type, "-0x80000001", "0x7FFFFFFF");
+convert(type, "0xDCBA9876543210", "0x76543210");
+convert(type, "Number.MAX_VALUE", "0");
+convert(type, "Number.MIN_VALUE", "0");
+convert(type, "-Number.MAX_VALUE", "0");
+convert(type, "-Number.MIN_VALUE", "0");
+convert(type, "1.99", "1");
+convert(type, "-1.99", "0xFFFFFFFF");
+convert(type, "Infinity", "0");
+convert(type, "-Infinity", "0");
+convert(type, "NaN", "0");
+testNonNumericToNumeric(type);
+convertThrows(type, "{valueOf:function(){throw new Error;}}");
+debug("");
+
+type = "testLongLong";
+verifyAttribute(type);
+convert(type, "0");
+convert(type, "-1");
+convert(type, "1");
+convert(type, "0x7F");
+convert(type, "0x80");
+convert(type, "0xFF");
+convert(type, "-0x80");
+convert(type, "-0x81");
+convert(type, "0x7FFF");
+convert(type, "0x8000");
+convert(type, "0xFFFF");
+convert(type, "-0x8000");
+convert(type, "-0x8001");
+convert(type, "0x7FFFFFFF");
+convert(type, "0x80000000");
+convert(type, "0xFFFFFFFF");
+convert(type, "-0x80000000");
+convert(type, "-0x80000001");
+convert(type, "0xDCBA9876543210");
+convert(type, "Number.MIN_VALUE", "0");
+convert(type, "-Number.MIN_VALUE", "0");
+// FIXME: Inconsistent results between V8 and JSC.
+//convert(type, "Number.MAX_VALUE", "0");
+//convert(type, "-Number.MAX_VALUE", "0");
+convert(type, "1.99", "1");
+convert(type, "-1.99", "-1");
+// FIXME: Inconsistent results between V8 and JSC.
+//convert(type, "Infinity", "0");
+//convert(type, "-Infinity", "0");
+//convert(type, "NaN", "0");
+testNonNumericToNumeric(type);
+convertThrows(type, "{valueOf:function(){throw new Error;}}");
+debug("");
+
+type = "testUnsignedLongLong";
+verifyAttribute(type);
+convert(type, "0");
+convert(type, "-1", "0xFFFFFFFFFFFFFFFF");
+convert(type, "1");
+convert(type, "0x7F");
+convert(type, "0x80");
+convert(type, "0xFF");
+convert(type, "-0x80", "0xFFFFFFFFFFFFFF80");
+convert(type, "-0x81", "0xFFFFFFFFFFFFFF7F");
+convert(type, "0x7FFF");
+convert(type, "0x8000");
+convert(type, "0xFFFF");
+convert(type, "-0x8000", "0xFFFFFFFFFFFF8000");
+convert(type, "-0x8001", "0xFFFFFFFFFFFF7FFF");
+convert(type, "0x7FFFFFFF");
+convert(type, "0x80000000");
+convert(type, "0xFFFFFFFF");
+convert(type, "-0x80000000", "0xFFFFFFFF80000000");
+convert(type, "-0x80000001", "0xFFFFFFFF7FFFFFFF");
+convert(type, "0xDCBA9876543210");
+convert(type, "Number.MIN_VALUE", "0");
+convert(type, "-Number.MIN_VALUE", "0");
+// FIXME: Inconsistent results between V8 and JSC.
+//convert(type, "Number.MAX_VALUE", "0");
+//convert(type, "-Number.MAX_VALUE", "0");
+convert(type, "1.99", "1");
+convert(type, "-1.99", "0xFFFFFFFFFFFFFFFF");
+// FIXME: Inconsistent results between V8 and JSC.
+//convert(type, "Infinity", "0");
+//convert(type, "-Infinity", "0");
+//convert(type, "NaN", "0");
+testNonNumericToNumeric(type);
+convertThrows(type, "{valueOf:function(){throw new Error;}}");
+debug("");
+
+</script>
+<script src=""
Modified: trunk/Source/WebCore/CMakeLists.txt (138835 => 138836)
--- trunk/Source/WebCore/CMakeLists.txt 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/CMakeLists.txt 2013-01-04 20:42:37 UTC (rev 138836)
@@ -2760,6 +2760,7 @@
testing/Internals.idl
testing/InternalSettings.idl
testing/MallocStatistics.idl
+ testing/TypeConversions.idl
)
set(WebCoreTestSupport_SOURCES
Modified: trunk/Source/WebCore/ChangeLog (138835 => 138836)
--- trunk/Source/WebCore/ChangeLog 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/ChangeLog 2013-01-04 20:42:37 UTC (rev 138836)
@@ -1,3 +1,46 @@
+2013-01-04 Joshua Bell <jsb...@chromium.org>
+
+ Add tests for WebIDL type conversions
+ https://bugs.webkit.org/show_bug.cgi?id=105927
+
+ Reviewed by Adam Barth.
+
+ Expose attributes of various WebIDL types for testing ECMAScript value conversion,
+ including edge cases such as NaNs, Infinities, etc. These attributes hang off
+ a TypeConversions object created via window.internals.typeConversions().
+
+ Test: fast/js/webidl-type-mapping.html
+
+ * CMakeLists.txt:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCoreTestSupport.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * testing/Internals.cpp:
+ (WebCore::Internals::typeConversions):
+ (WebCore):
+ * testing/Internals.h:
+ (WebCore):
+ * testing/Internals.idl:
+ * testing/TypeConversions.h: Added.
+ (WebCore):
+ (TypeConversions):
+ (WebCore::TypeConversions::create):
+ (WebCore::TypeConversions::testLong):
+ (WebCore::TypeConversions::setTestLong):
+ (WebCore::TypeConversions::testUnsignedLong):
+ (WebCore::TypeConversions::setTestUnsignedLong):
+ (WebCore::TypeConversions::testLongLong):
+ (WebCore::TypeConversions::setTestLongLong):
+ (WebCore::TypeConversions::testUnsignedLongLong):
+ (WebCore::TypeConversions::setTestUnsignedLongLong):
+ (WebCore::TypeConversions::TypeConversions):
+ * testing/TypeConversions.idl: Added.
+
2013-01-04 Stephen White <senorbla...@chromium.org>
Invalidation of some SVG filter attributes on HTML content doesn't work
Modified: trunk/Source/WebCore/DerivedSources.make (138835 => 138836)
--- trunk/Source/WebCore/DerivedSources.make 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/DerivedSources.make 2013-01-04 20:42:37 UTC (rev 138836)
@@ -599,6 +599,7 @@
$(WebCore)/testing/Internals.idl \
$(WebCore)/testing/InternalSettings.idl \
$(WebCore)/testing/MallocStatistics.idl \
+ $(WebCore)/testing/TypeConversions.idl \
$(WebCore)/workers/AbstractWorker.idl \
$(WebCore)/workers/DedicatedWorkerContext.idl \
$(WebCore)/workers/SharedWorker.idl \
Modified: trunk/Source/WebCore/DerivedSources.pri (138835 => 138836)
--- trunk/Source/WebCore/DerivedSources.pri 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/DerivedSources.pri 2013-01-04 20:42:37 UTC (rev 138836)
@@ -459,6 +459,7 @@
$$PWD/testing/Internals.idl \
$$PWD/testing/InternalSettings.idl \
$$PWD/testing/MallocStatistics.idl \
+ $$PWD/testing/TypeConversions.idl \
$$PWD/workers/AbstractWorker.idl \
$$PWD/workers/DedicatedWorkerContext.idl \
$$PWD/workers/SharedWorker.idl \
Modified: trunk/Source/WebCore/GNUmakefile.list.am (138835 => 138836)
--- trunk/Source/WebCore/GNUmakefile.list.am 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/GNUmakefile.list.am 2013-01-04 20:42:37 UTC (rev 138836)
@@ -1738,6 +1738,7 @@
$(WebCore)/testing/Internals.idl \
$(WebCore)/testing/InternalSettings.idl \
$(WebCore)/testing/MallocStatistics.idl \
+ $(WebCore)/testing/TypeConversions.idl \
$(WebCore)/workers/AbstractWorker.idl \
$(WebCore)/workers/DedicatedWorkerContext.idl \
$(WebCore)/workers/SharedWorker.idl \
Modified: trunk/Source/WebCore/Target.pri (138835 => 138836)
--- trunk/Source/WebCore/Target.pri 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/Target.pri 2013-01-04 20:42:37 UTC (rev 138836)
@@ -2775,6 +2775,7 @@
testing/Internals.h \
testing/InternalSettings.h \
testing/MallocStatistics.h \
+ testing/TypeConversions.h \
workers/AbstractWorker.h \
workers/DedicatedWorkerContext.h \
workers/DedicatedWorkerThread.h \
Modified: trunk/Source/WebCore/WebCore.gyp/WebCore.gyp (138835 => 138836)
--- trunk/Source/WebCore/WebCore.gyp/WebCore.gyp 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/WebCore.gyp/WebCore.gyp 2013-01-04 20:42:37 UTC (rev 138836)
@@ -2253,6 +2253,8 @@
'<@(webcore_test_support_files)',
'<(SHARED_INTERMEDIATE_DIR)/webcore/bindings/V8MallocStatistics.cpp',
'<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8MallocStatistics.h',
+ '<(SHARED_INTERMEDIATE_DIR)/webcore/bindings/V8TypeConversions.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8TypeConversions.h',
'<(SHARED_INTERMEDIATE_DIR)/webcore/bindings/V8Internals.cpp',
'<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8Internals.h',
'<(SHARED_INTERMEDIATE_DIR)/webcore/bindings/V8InternalSettings.cpp',
Modified: trunk/Source/WebCore/WebCore.gypi (138835 => 138836)
--- trunk/Source/WebCore/WebCore.gypi 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/WebCore.gypi 2013-01-04 20:42:37 UTC (rev 138836)
@@ -5063,6 +5063,7 @@
'testing/Internals.idl',
'testing/InternalSettings.idl',
'testing/MallocStatistics.idl',
+ 'testing/TypeConversions.idl',
'<(SHARED_INTERMEDIATE_DIR)/webkit/InternalSettingsGenerated.idl',
],
'webcore_test_support_files': [
@@ -5079,6 +5080,7 @@
'testing/MallocStatistics.h',
'testing/MockPagePopupDriver.cpp',
'testing/MockPagePopupDriver.h',
+ 'testing/TypeConversions.h',
'<(SHARED_INTERMEDIATE_DIR)/webkit/InternalSettingsGenerated.cpp',
'<(SHARED_INTERMEDIATE_DIR)/webkit/InternalSettingsGenerated.h',
],
Modified: trunk/Source/WebCore/WebCore.vcproj/WebCoreTestSupport.vcproj (138835 => 138836)
--- trunk/Source/WebCore/WebCore.vcproj/WebCoreTestSupport.vcproj 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/WebCore.vcproj/WebCoreTestSupport.vcproj 2013-01-04 20:42:37 UTC (rev 138836)
@@ -696,6 +696,10 @@
>
</File>
<File
+ RelativePath="..\testing\TypeConversions.h"
+ >
+ </File>
+ <File
RelativePath="..\testing\Internals.cpp"
>
<FileConfiguration
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (138835 => 138836)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-01-04 20:42:37 UTC (rev 138836)
@@ -3900,6 +3900,8 @@
A73F95FF12C97BFE0031AAF9 /* RoundedRect.h in Headers */ = {isa = PBXBuildFile; fileRef = A73F95FD12C97BFE0031AAF9 /* RoundedRect.h */; settings = {ATTRIBUTES = (Private, ); }; };
A740B59514C935AB00A77FA4 /* JSMallocStatistics.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B4EA6914C9348400C8F5BF /* JSMallocStatistics.h */; };
A740B59714C935AF00A77FA4 /* JSMallocStatistics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7B4EA6814C9348400C8F5BF /* JSMallocStatistics.cpp */; };
+ EBF5121D1696496C0056BD25 /* JSTypeConversions.h in Headers */ = {isa = PBXBuildFile; fileRef = EBF5121B1696496C0056BD25 /* JSTypeConversions.h */; };
+ EBF5121C1696496C0056BD25 /* JSTypeConversions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EBF5121A1696496C0056BD25 /* JSTypeConversions.cpp */; };
A740B5A514C935AB00A77FA4 /* JSInternalSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B4EA7914C9348400C8F5BF /* JSInternalSettings.h */; };
A740B5A714C935AF00A77FA4 /* JSInternalSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7B4EA7814C9348400C8F5BF /* JSInternalSettings.cpp */; };
A74BB76B13BDA86300FF7BF0 /* ExceptionCodePlaceholder.h in Headers */ = {isa = PBXBuildFile; fileRef = A74BB76A13BDA86300FF7BF0 /* ExceptionCodePlaceholder.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -11308,6 +11310,8 @@
A7B070D1130A409C00A3763C /* FrameActionScheduler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrameActionScheduler.h; sourceTree = "<group>"; };
A7B4EA6814C9348400C8F5BF /* JSMallocStatistics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMallocStatistics.cpp; sourceTree = "<group>"; };
A7B4EA6914C9348400C8F5BF /* JSMallocStatistics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMallocStatistics.h; sourceTree = "<group>"; };
+ EBF5121A1696496C0056BD25 /* JSTypeConversions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTypeConversions.cpp; sourceTree = "<group>"; };
+ EBF5121B1696496C0056BD25 /* JSTypeConversions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSTypeConversions.h; sourceTree = "<group>"; };
A7B4EA7814C9348400C8F5BF /* JSInternalSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSInternalSettings.cpp; sourceTree = "<group>"; };
A7B4EA7914C9348400C8F5BF /* JSInternalSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSInternalSettings.h; sourceTree = "<group>"; };
A7B6E69D0B291A9600D0529F /* DragData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DragData.h; sourceTree = "<group>"; };
@@ -13804,6 +13808,8 @@
E4F9EEF1156D84C400D23E7E /* StyleSheetContents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleSheetContents.h; sourceTree = "<group>"; };
E55F4979151B888000BB67DB /* LengthFunctions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LengthFunctions.cpp; sourceTree = "<group>"; };
E5BA7D62151437CA00FE1E3F /* LengthFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LengthFunctions.h; sourceTree = "<group>"; };
+ EB081CD81696084400553730 /* TypeConversions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TypeConversions.h; sourceTree = "<group>"; };
+ EB081CD91696084400553730 /* TypeConversions.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = TypeConversions.idl; sourceTree = "<group>"; };
ED2BA83B09A24B91006C0AC4 /* DocumentMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentMarker.h; sourceTree = "<group>"; };
ED501DC50B249F2900AE18D9 /* EditorMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = EditorMac.mm; path = mac/EditorMac.mm; sourceTree = "<group>"; };
EDE3A4FF0C7A430600956A37 /* ColorMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorMac.h; sourceTree = "<group>"; };
@@ -15325,6 +15331,8 @@
A7BF7EDE14C9175A0014489D /* InternalSettings.idl */,
A7BE7EDD14C9175A0014489D /* MallocStatistics.h */,
A7BE7EDE14C9175A0014489D /* MallocStatistics.idl */,
+ EB081CD81696084400553730 /* TypeConversions.h */,
+ EB081CD91696084400553730 /* TypeConversions.idl */,
);
path = testing;
sourceTree = "<group>";
@@ -15340,6 +15348,8 @@
53ED3FDD167A88E7006762E6 /* JSInternalSettingsGenerated.h */,
A7B4EA6814C9348400C8F5BF /* JSMallocStatistics.cpp */,
A7B4EA6914C9348400C8F5BF /* JSMallocStatistics.h */,
+ EBF5121A1696496C0056BD25 /* JSTypeConversions.cpp */,
+ EBF5121B1696496C0056BD25 /* JSTypeConversions.h */,
);
name = Testing;
sourceTree = "<group>";
@@ -22657,6 +22667,7 @@
417DA71E13735DFA007C57FB /* JSInternals.h in Headers */,
A740B5A514C935AB00A77FA4 /* JSInternalSettings.h in Headers */,
A740B59514C935AB00A77FA4 /* JSMallocStatistics.h in Headers */,
+ EBF5121D1696496C0056BD25 /* JSTypeConversions.h in Headers */,
41815C1F138319830057AAA4 /* WebCoreTestSupport.h in Headers */,
53ED3FDF167A88E7006762E6 /* JSInternalSettingsGenerated.h in Headers */,
53E29E5F167A8A1900586D3D /* InternalSettingsGenerated.h in Headers */,
@@ -26346,6 +26357,7 @@
417DA71D13735DFA007C57FB /* JSInternals.cpp in Sources */,
A740B5A714C935AF00A77FA4 /* JSInternalSettings.cpp in Sources */,
A740B59714C935AF00A77FA4 /* JSMallocStatistics.cpp in Sources */,
+ EBF5121C1696496C0056BD25 /* JSTypeConversions.cpp in Sources */,
41815C1E138319830057AAA4 /* WebCoreTestSupport.cpp in Sources */,
53ED3FDE167A88E7006762E6 /* JSInternalSettingsGenerated.cpp in Sources */,
53E29E5E167A8A1900586D3D /* InternalSettingsGenerated.cpp in Sources */,
Modified: trunk/Source/WebCore/testing/Internals.cpp (138835 => 138836)
--- trunk/Source/WebCore/testing/Internals.cpp 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/testing/Internals.cpp 2013-01-04 20:42:37 UTC (rev 138836)
@@ -83,6 +83,7 @@
#include "StyleSheetContents.h"
#include "TextIterator.h"
#include "TreeScope.h"
+#include "TypeConversions.h"
#include "ViewportArguments.h"
#include <wtf/text/StringBuffer.h>
@@ -1703,6 +1704,11 @@
return MallocStatistics::create();
}
+PassRefPtr<TypeConversions> Internals::typeConversions() const
+{
+ return TypeConversions::create();
+}
+
PassRefPtr<DOMStringList> Internals::getReferencedFilePaths() const
{
RefPtr<DOMStringList> stringList = DOMStringList::create();
Modified: trunk/Source/WebCore/testing/Internals.h (138835 => 138836)
--- trunk/Source/WebCore/testing/Internals.h 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/testing/Internals.h 2013-01-04 20:42:37 UTC (rev 138836)
@@ -55,6 +55,7 @@
class WebKitPoint;
class MallocStatistics;
class SerializedScriptValue;
+class TypeConversions;
typedef int ExceptionCode;
@@ -256,6 +257,7 @@
void removeURLSchemeRegisteredAsBypassingContentSecurityPolicy(const String& scheme);
PassRefPtr<MallocStatistics> mallocStatistics() const;
+ PassRefPtr<TypeConversions> typeConversions() const;
PassRefPtr<DOMStringList> getReferencedFilePaths() const;
Modified: trunk/Source/WebCore/testing/Internals.idl (138835 => 138836)
--- trunk/Source/WebCore/testing/Internals.idl 2013-01-04 20:40:25 UTC (rev 138835)
+++ trunk/Source/WebCore/testing/Internals.idl 2013-01-04 20:42:37 UTC (rev 138836)
@@ -220,6 +220,7 @@
void removeURLSchemeRegisteredAsBypassingContentSecurityPolicy(in DOMString scheme);
MallocStatistics mallocStatistics();
+ TypeConversions typeConversions();
DOMString[] getReferencedFilePaths();
Added: trunk/Source/WebCore/testing/TypeConversions.h (0 => 138836)
--- trunk/Source/WebCore/testing/TypeConversions.h (rev 0)
+++ trunk/Source/WebCore/testing/TypeConversions.h 2013-01-04 20:42:37 UTC (rev 138836)
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef TypeConversions_h
+#define TypeConversions_h
+
+#include <wtf/FastMalloc.h>
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class TypeConversions : public RefCounted<TypeConversions> {
+public:
+ static PassRefPtr<TypeConversions> create() { return adoptRef(new TypeConversions()); }
+
+ long testLong() { return m_testLong; }
+ void setTestLong(long value) { m_testLong = value; }
+ unsigned long testUnsignedLong() { return m_testUnsignedLong; }
+ void setTestUnsignedLong(unsigned long value) { m_testUnsignedLong = value; }
+
+ long long testLongLong() { return m_testLongLong; }
+ void setTestLongLong(long long value) { m_testLongLong = value; }
+ unsigned long long testUnsignedLongLong() { return m_testUnsignedLongLong; }
+ void setTestUnsignedLongLong(unsigned long long value) { m_testUnsignedLongLong = value; }
+
+private:
+ TypeConversions()
+ {
+ }
+
+ long m_testLong;
+ unsigned long m_testUnsignedLong;
+ long long m_testLongLong;
+ unsigned long long m_testUnsignedLongLong;
+};
+
+} // namespace WebCore
+
+#endif
Added: trunk/Source/WebCore/testing/TypeConversions.idl (0 => 138836)
--- trunk/Source/WebCore/testing/TypeConversions.idl (rev 0)
+++ trunk/Source/WebCore/testing/TypeConversions.idl 2013-01-04 20:42:37 UTC (rev 138836)
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+ OmitConstructor
+] interface TypeConversions {
+ attribute long testLong;
+ attribute unsigned long testUnsignedLong;
+
+ attribute long long testLongLong;
+ attribute unsigned long long testUnsignedLongLong;
+};