[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
zherczeg at webkit.org
zherczeg at webkit.org
Wed Dec 22 11:43:46 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 7fd14c8bdc9debd761b269142d1e9670d761356b
Author: zherczeg at webkit.org <zherczeg at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Aug 5 06:44:42 2010 +0000
SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
https://bugs.webkit.org/show_bug.cgi?id=42244
Reviewed by Nikolas Zimmermann.
WebCore:
Implementing svgAttributeChanged for SVGFESpotLightElement object.
Furthermore, invalidateFilter has been moved to SVGFilterElement, and
it is a static function now.
Tests: svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr.html
svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr.html
svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr.html
svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr.html
svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr.html
svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr.html
svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr.html
svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr.html
svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.html
svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop.html
svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop.html
svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop.html
svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop.html
svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop.html
svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop.html
svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop.html
* svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
* svg/SVGFELightElement.cpp:
(WebCore::SVGFELightElement::svgAttributeChanged):
(WebCore::SVGFELightElement::childrenChanged):
* svg/SVGFELightElement.h:
* svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::svgAttributeChanged):
* svg/SVGFESpecularLightingElement.cpp:
* svg/SVGFilterElement.h:
(WebCore::SVGFilterElement::invalidateFilter):
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
(WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
* svg/SVGFilterPrimitiveStandardAttributes.h:
LayoutTests:
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.png: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop.html: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop.html: Added.
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-limitingConeAngle-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtX-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtY-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtZ-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-specularExponent-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-x-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-y-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-z-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtX-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtY-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtZ-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-specularExponent-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-x-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-y-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-z-prop.js: Added.
(executeTest):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64716 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 60b8805..bf5abce 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,107 @@
+2010-08-04 Zoltan Herczeg <zherczeg at webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
+ https://bugs.webkit.org/show_bug.cgi?id=42244
+
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.png: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop.html: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop.html: Added.
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-limitingConeAngle-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtX-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtY-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtZ-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-specularExponent-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-x-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-y-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-z-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtX-prop.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtY-prop.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtZ-prop.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-specularExponent-prop.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-x-prop.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-y-prop.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-z-prop.js: Added.
+ (executeTest):
+
2010-08-04 Adam Barth <abarth at webkit.org>
Enable HTML5 tree builder
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.checksum
new file mode 100644
index 0000000..24b321c
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.checksum
@@ -0,0 +1 @@
+4984227c26da9025a88294ca0527e774
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.png
new file mode 100644
index 0000000..1eb512c
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.checksum
new file mode 100644
index 0000000..7a40170
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.checksum
@@ -0,0 +1 @@
+14de67809c44b02114c007f6c22281c5
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.png
new file mode 100644
index 0000000..596b9ce
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.checksum
new file mode 100644
index 0000000..c1d773e
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.checksum
@@ -0,0 +1 @@
+4207ef8631b2a0cb9f9db6bb94f29bf6
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.png
new file mode 100644
index 0000000..b8d86ed
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.checksum
new file mode 100644
index 0000000..da08b5e
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.checksum
@@ -0,0 +1 @@
+363cff2b12fa0e0f24d3dfa5b9d163c4
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.png
new file mode 100644
index 0000000..32d7655
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.checksum
new file mode 100644
index 0000000..475138e
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.checksum
@@ -0,0 +1 @@
+e729d017577d3c882cde54e95ad858ae
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.png
new file mode 100644
index 0000000..3bd639f
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.checksum
new file mode 100644
index 0000000..a99ae10
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.checksum
@@ -0,0 +1 @@
+4befc807b441011afa97b87644e2c5d1
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.png
new file mode 100644
index 0000000..247852f
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.checksum
new file mode 100644
index 0000000..f018fa5
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.checksum
@@ -0,0 +1 @@
+7b524cf2773d9eae2750c8dbed205049
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.png
new file mode 100644
index 0000000..53bd15c
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.checksum
new file mode 100644
index 0000000..c712d45
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.checksum
@@ -0,0 +1 @@
+2864024d8097e3141bb8dab53ea1a65f
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.png
new file mode 100644
index 0000000..fdcaef5
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.checksum
new file mode 100644
index 0000000..21e5515
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.checksum
@@ -0,0 +1 @@
+39fdca3937a5e85765df7525f763e2e4
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.png
new file mode 100644
index 0000000..4b733c4
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.checksum
new file mode 100644
index 0000000..c9f3ad2
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.checksum
@@ -0,0 +1 @@
+7ee6157edd5d15162c61741e7c7c2136
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.png
new file mode 100644
index 0000000..5c7e971
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.checksum
new file mode 100644
index 0000000..66551d4
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.checksum
@@ -0,0 +1 @@
+b9a9a4bb118115d7571abf41c4f6191f
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.png
new file mode 100644
index 0000000..c3a50c2
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.checksum
new file mode 100644
index 0000000..98431ba
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.checksum
@@ -0,0 +1 @@
+7ced8c063c08b00cfe366c902eec7bda
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.png
new file mode 100644
index 0000000..1d22b51
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.checksum
new file mode 100644
index 0000000..54371e5
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.checksum
@@ -0,0 +1 @@
+d7ef9e284c5799c58e3e0138c6aada9b
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.png
new file mode 100644
index 0000000..ceb329b
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.checksum
new file mode 100644
index 0000000..e38138e
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.checksum
@@ -0,0 +1 @@
+1fe0d99da6bc5638e93a25702bbdee8b
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.png
new file mode 100644
index 0000000..6339401
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.checksum
new file mode 100644
index 0000000..04aedfa
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.checksum
@@ -0,0 +1 @@
+7340b740cce9cec956b843bc1399ad8a
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.png
new file mode 100644
index 0000000..046b542
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.checksum
new file mode 100644
index 0000000..132a838
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.checksum
@@ -0,0 +1 @@
+85f22a06d94c696b35790ee6993c2206
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.png
new file mode 100644
index 0000000..8f6f5e5
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.png differ
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.txt
new file mode 100644
index 0000000..af507a0
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'limitingConeAngle' attribute of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.getAttribute('limitingConeAngle') is "45"
+PASS spotLightElement.getAttribute('limitingConeAngle') is "15"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr.html
new file mode 100644
index 0000000..dbafe15
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-dom-limitingConeAngle-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.txt
new file mode 100644
index 0000000..11cdf90
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'pointsAtX' attribute of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.getAttribute('pointsAtX') is "0"
+PASS spotLightElement.getAttribute('pointsAtX') is "113"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr.html
new file mode 100644
index 0000000..43887b9
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-dom-pointsAtX-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.txt
new file mode 100644
index 0000000..2498aa3
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'pointsAtY' attribute of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.getAttribute('pointsAtY') is "0"
+PASS spotLightElement.getAttribute('pointsAtY') is "100"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr.html
new file mode 100644
index 0000000..ba606c5
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-dom-pointsAtY-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.txt
new file mode 100644
index 0000000..e13ec21
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'pointsAtZ' attribute of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.getAttribute('pointsAtZ') is "100"
+PASS spotLightElement.getAttribute('pointsAtZ') is "0"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr.html
new file mode 100644
index 0000000..fcf8af8
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-dom-pointsAtZ-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.txt
new file mode 100644
index 0000000..2ed385a
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'specularExponent' attribute of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.getAttribute('specularExponent') is "20"
+PASS spotLightElement.getAttribute('specularExponent') is "1"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr.html
new file mode 100644
index 0000000..8095af8
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-dom-specularExponent-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.txt
new file mode 100644
index 0000000..4970046
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'x' attribute of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.getAttribute('x') is "0"
+PASS spotLightElement.getAttribute('x') is "113"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr.html
new file mode 100644
index 0000000..67a19ee
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-dom-x-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.txt
new file mode 100644
index 0000000..4139ac4
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'y' attribute of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.getAttribute('y') is "100"
+PASS spotLightElement.getAttribute('y') is "0"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr.html
new file mode 100644
index 0000000..2b768f4
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-dom-y-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.txt
new file mode 100644
index 0000000..b228795
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'z' attribute of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.getAttribute('z') is "0"
+PASS spotLightElement.getAttribute('z') is "100"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr.html
new file mode 100644
index 0000000..067daa7
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-dom-z-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.txt
new file mode 100644
index 0000000..1e61b76
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'limitingConeAngle' property of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.limitingConeAngle.baseVal is 45
+PASS spotLightElement.limitingConeAngle.baseVal is 15
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.html
new file mode 100644
index 0000000..f521a86
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.txt
new file mode 100644
index 0000000..ebf1421
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'pointsAtX' property of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.pointsAtX.baseVal is 0
+PASS spotLightElement.pointsAtX.baseVal is 113
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop.html
new file mode 100644
index 0000000..6c09f4a
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-svgdom-pointsAtX-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.txt
new file mode 100644
index 0000000..23c4690
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'pointsAtY' property of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.pointsAtY.baseVal is 0
+PASS spotLightElement.pointsAtY.baseVal is 100
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop.html
new file mode 100644
index 0000000..52f1818
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-svgdom-pointsAtY-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.txt
new file mode 100644
index 0000000..07cd174
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'pointsAtZ' property of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.pointsAtZ.baseVal is 100
+PASS spotLightElement.pointsAtZ.baseVal is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop.html
new file mode 100644
index 0000000..45edb1a
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-svgdom-pointsAtZ-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.txt
new file mode 100644
index 0000000..5f266f9
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'specularExponent' property of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.specularExponent.baseVal is 20
+PASS spotLightElement.specularExponent.baseVal is 1
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop.html
new file mode 100644
index 0000000..e7e5102
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-svgdom-specularExponent-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.txt
new file mode 100644
index 0000000..9594bae
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'x' property of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.x.baseVal is 0
+PASS spotLightElement.x.baseVal is 113
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop.html
new file mode 100644
index 0000000..9dc414d
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-svgdom-x-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.txt
new file mode 100644
index 0000000..60c3b3f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'y' property of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.y.baseVal is 100
+PASS spotLightElement.y.baseVal is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop.html
new file mode 100644
index 0000000..7fabd3d
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-svgdom-y-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.txt
new file mode 100644
index 0000000..4081165
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'z' property of the SVGFESpotLightElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS spotLightElement.z.baseVal is 0
+PASS spotLightElement.z.baseVal is 100
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop.html b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop.html
new file mode 100644
index 0000000..04bc6c1
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFESpotLightElement-svgdom-z-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-limitingConeAngle-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-limitingConeAngle-attr.js
new file mode 100644
index 0000000..f7eaffd
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-limitingConeAngle-attr.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-dom-limitingConeAngle-attr.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'limitingConeAngle' attribute of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "45");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("spotLightElement.getAttribute('limitingConeAngle')", "45");
+
+function executeTest() {
+ spotLightElement.setAttribute("limitingConeAngle", "15");
+ shouldBeEqualToString("spotLightElement.getAttribute('limitingConeAngle')", "15");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtX-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtX-attr.js
new file mode 100644
index 0000000..6ed8588
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtX-attr.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-dom-pointsAtX-attr.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'pointsAtX' attribute of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "0");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("spotLightElement.getAttribute('pointsAtX')", "0");
+
+function executeTest() {
+ spotLightElement.setAttribute("pointsAtX", "113");
+ shouldBeEqualToString("spotLightElement.getAttribute('pointsAtX')", "113");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtY-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtY-attr.js
new file mode 100644
index 0000000..95ced76
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtY-attr.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-dom-pointsAtY-attr.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'pointsAtY' attribute of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "0");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("spotLightElement.getAttribute('pointsAtY')", "0");
+
+function executeTest() {
+ spotLightElement.setAttribute("pointsAtY", "100");
+ shouldBeEqualToString("spotLightElement.getAttribute('pointsAtY')", "100");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtZ-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtZ-attr.js
new file mode 100644
index 0000000..89b90bb
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-pointsAtZ-attr.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-dom-pointsAtZ-attr.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'pointsAtZ' attribute of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "100");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("spotLightElement.getAttribute('pointsAtZ')", "100");
+
+function executeTest() {
+ spotLightElement.setAttribute("pointsAtZ", "0");
+ shouldBeEqualToString("spotLightElement.getAttribute('pointsAtZ')", "0");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-specularExponent-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-specularExponent-attr.js
new file mode 100644
index 0000000..b907cf0
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-specularExponent-attr.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-dom-specularExponent-attr.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'specularExponent' attribute of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "20");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("spotLightElement.getAttribute('specularExponent')", "20");
+
+function executeTest() {
+ spotLightElement.setAttribute("specularExponent", "1");
+ shouldBeEqualToString("spotLightElement.getAttribute('specularExponent')", "1");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-x-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-x-attr.js
new file mode 100644
index 0000000..ced4812
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-x-attr.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-dom-x-attr.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'x' attribute of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "0");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("spotLightElement.getAttribute('x')", "0");
+
+function executeTest() {
+ spotLightElement.setAttribute("x", "113");
+ shouldBeEqualToString("spotLightElement.getAttribute('x')", "113");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-y-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-y-attr.js
new file mode 100644
index 0000000..1aa65f9
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-y-attr.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-dom-y-attr.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'y' attribute of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "100");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("spotLightElement.getAttribute('y')", "100");
+
+function executeTest() {
+ spotLightElement.setAttribute("y", "0");
+ shouldBeEqualToString("spotLightElement.getAttribute('y')", "0");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-z-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-z-attr.js
new file mode 100644
index 0000000..7d9becb
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-dom-z-attr.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-dom-z-attr.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'z' attribute of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "0");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("spotLightElement.getAttribute('z')", "0");
+
+function executeTest() {
+ spotLightElement.setAttribute("z", "100");
+ shouldBeEqualToString("spotLightElement.getAttribute('z')", "100");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.js
new file mode 100644
index 0000000..9c641bd
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-svgdom-limitingConeAngle-prop.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'limitingConeAngle' property of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "45");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("spotLightElement.limitingConeAngle.baseVal", "45");
+
+function executeTest() {
+ spotLightElement.limitingConeAngle.baseVal = 15;
+ shouldBe("spotLightElement.limitingConeAngle.baseVal", "15");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtX-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtX-prop.js
new file mode 100644
index 0000000..0236883
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtX-prop.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-svgdom-pointsAtX-prop.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'pointsAtX' property of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "0");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("spotLightElement.pointsAtX.baseVal", "0");
+
+function executeTest() {
+ spotLightElement.pointsAtX.baseVal = 113;
+ shouldBe("spotLightElement.pointsAtX.baseVal", "113");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtY-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtY-prop.js
new file mode 100644
index 0000000..92ed2e9
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtY-prop.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-svgdom-pointsAtY-prop.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'pointsAtY' property of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "0");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("spotLightElement.pointsAtY.baseVal", "0");
+
+function executeTest() {
+ spotLightElement.pointsAtY.baseVal = 100;
+ shouldBe("spotLightElement.pointsAtY.baseVal", "100");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtZ-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtZ-prop.js
new file mode 100644
index 0000000..08a7129
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-pointsAtZ-prop.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-svgdom-pointsAtZ-prop.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'pointsAtZ' property of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "100");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("spotLightElement.pointsAtZ.baseVal", "100");
+
+function executeTest() {
+ spotLightElement.pointsAtZ.baseVal = 0;
+ shouldBe("spotLightElement.pointsAtZ.baseVal", "0");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-specularExponent-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-specularExponent-prop.js
new file mode 100644
index 0000000..15b3538
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-specularExponent-prop.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-svgdom-specularExponent-prop.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'specularExponent' property of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "20");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("spotLightElement.specularExponent.baseVal", "20");
+
+function executeTest() {
+ spotLightElement.specularExponent.baseVal = 1;
+ shouldBe("spotLightElement.specularExponent.baseVal", "1");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-x-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-x-prop.js
new file mode 100644
index 0000000..a27faa2
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-x-prop.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-svgdom-x-prop.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'x' property of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "0");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("spotLightElement.x.baseVal", "0");
+
+function executeTest() {
+ spotLightElement.x.baseVal = 113;
+ shouldBe("spotLightElement.x.baseVal", "113");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-y-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-y-prop.js
new file mode 100644
index 0000000..8f96c60
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-y-prop.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-svgdom-y-prop.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'y' property of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "100");
+spotLightElement.setAttribute("z", "100");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("spotLightElement.y.baseVal", "100");
+
+function executeTest() {
+ spotLightElement.y.baseVal = 0;
+ shouldBe("spotLightElement.y.baseVal", "0");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-z-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-z-prop.js
new file mode 100644
index 0000000..bf9baff
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFESpotLightElement-svgdom-z-prop.js
@@ -0,0 +1,52 @@
+// [Name] SVGFESpotLightElement-svgdom-z-prop.js
+// [Expected rendering result] A shining cone (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'z' property of the SVGFESpotLightElement object")
+createSVGTestCase();
+
+var spotLightElement = createSVGElement("feSpotLight");
+spotLightElement.setAttribute("x", "113");
+spotLightElement.setAttribute("y", "0");
+spotLightElement.setAttribute("z", "0");
+spotLightElement.setAttribute("pointsAtX", "113");
+spotLightElement.setAttribute("pointsAtY", "100");
+spotLightElement.setAttribute("pointsAtZ", "0");
+spotLightElement.setAttribute("specularExponent", "1");
+spotLightElement.setAttribute("limitingConeAngle", "15");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("surfaceScale", "1");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "aqua");
+gradientElement.appendChild(spotLightElement);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("spotLightElement.z.baseVal", "0");
+
+function executeTest() {
+ spotLightElement.z.baseVal = 100;
+ shouldBe("spotLightElement.z.baseVal", "100");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 85c7f4b..9824048 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,47 @@
+2010-08-04 Zoltan Herczeg <zherczeg at webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
+ https://bugs.webkit.org/show_bug.cgi?id=42244
+
+ Implementing svgAttributeChanged for SVGFESpotLightElement object.
+ Furthermore, invalidateFilter has been moved to SVGFilterElement, and
+ it is a static function now.
+
+ Tests: svg/dynamic-updates/SVGFESpotLightElement-dom-limitingConeAngle-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtX-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtY-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-pointsAtZ-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-specularExponent-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-x-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-y-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-dom-z-attr.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-limitingConeAngle-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtX-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtY-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-pointsAtZ-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-specularExponent-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-x-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-y-prop.html
+ svg/dynamic-updates/SVGFESpotLightElement-svgdom-z-prop.html
+
+ * svg/SVGFEDiffuseLightingElement.cpp:
+ (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
+ * svg/SVGFELightElement.cpp:
+ (WebCore::SVGFELightElement::svgAttributeChanged):
+ (WebCore::SVGFELightElement::childrenChanged):
+ * svg/SVGFELightElement.h:
+ * svg/SVGFEOffsetElement.cpp:
+ (WebCore::SVGFEOffsetElement::svgAttributeChanged):
+ * svg/SVGFESpecularLightingElement.cpp:
+ * svg/SVGFilterElement.h:
+ (WebCore::SVGFilterElement::invalidateFilter):
+ * svg/SVGFilterPrimitiveStandardAttributes.cpp:
+ (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
+ (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
+ * svg/SVGFilterPrimitiveStandardAttributes.h:
+
2010-08-05 Yury Semikhatsky <yurys at chromium.org>
Reviewed by Pavel Feldman.
diff --git a/WebCore/svg/SVGFEDiffuseLightingElement.cpp b/WebCore/svg/SVGFEDiffuseLightingElement.cpp
index 96648e0..81144c6 100644
--- a/WebCore/svg/SVGFEDiffuseLightingElement.cpp
+++ b/WebCore/svg/SVGFEDiffuseLightingElement.cpp
@@ -23,7 +23,6 @@
#include "SVGFEDiffuseLightingElement.h"
#include "Attr.h"
-#include "RenderObject.h"
#include "SVGColor.h"
#include "SVGFEDiffuseLighting.h"
#include "SVGFELightElement.h"
@@ -75,7 +74,7 @@ void SVGFEDiffuseLightingElement::svgAttributeChanged(const QualifiedName& attrN
|| attrName == SVGNames::diffuseConstantAttr
|| attrName == SVGNames::kernelUnitLengthAttr
|| attrName == SVGNames::lighting_colorAttr)
- invalidateFilter();
+ SVGFilterElement::invalidateFilter(this);
}
void SVGFEDiffuseLightingElement::synchronizeProperty(const QualifiedName& attrName)
diff --git a/WebCore/svg/SVGFELightElement.cpp b/WebCore/svg/SVGFELightElement.cpp
index 7bbceeb..5975033 100644
--- a/WebCore/svg/SVGFELightElement.cpp
+++ b/WebCore/svg/SVGFELightElement.cpp
@@ -25,6 +25,7 @@
#include "SVGFELightElement.h"
#include "Attribute.h"
+#include "SVGFilterElement.h"
#include "SVGNames.h"
namespace WebCore {
@@ -66,6 +67,23 @@ void SVGFELightElement::parseMappedAttribute(Attribute* attr)
SVGElement::parseMappedAttribute(attr);
}
+void SVGFELightElement::svgAttributeChanged(const QualifiedName& attrName)
+{
+ SVGElement::svgAttributeChanged(attrName);
+
+ if (attrName == SVGNames::azimuthAttr
+ || attrName == SVGNames::elevationAttr
+ || attrName == SVGNames::xAttr
+ || attrName == SVGNames::yAttr
+ || attrName == SVGNames::zAttr
+ || attrName == SVGNames::pointsAtXAttr
+ || attrName == SVGNames::pointsAtYAttr
+ || attrName == SVGNames::pointsAtZAttr
+ || attrName == SVGNames::specularExponentAttr
+ || attrName == SVGNames::limitingConeAngleAttr)
+ SVGFilterElement::invalidateFilter(this);
+}
+
void SVGFELightElement::synchronizeProperty(const QualifiedName& attrName)
{
SVGElement::synchronizeProperty(attrName);
@@ -106,6 +124,14 @@ void SVGFELightElement::synchronizeProperty(const QualifiedName& attrName)
synchronizeLimitingConeAngle();
}
+void SVGFELightElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
+{
+ SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
+
+ if (!changedByParser)
+ SVGFilterElement::invalidateFilter(this);
+}
+
}
#endif // ENABLE(SVG)
diff --git a/WebCore/svg/SVGFELightElement.h b/WebCore/svg/SVGFELightElement.h
index 067e216..d0874cb 100644
--- a/WebCore/svg/SVGFELightElement.h
+++ b/WebCore/svg/SVGFELightElement.h
@@ -29,27 +29,29 @@
namespace WebCore {
- class SVGFELightElement : public SVGElement {
- public:
- SVGFELightElement(const QualifiedName&, Document*);
- virtual ~SVGFELightElement();
+class SVGFELightElement : public SVGElement {
+public:
+ SVGFELightElement(const QualifiedName&, Document*);
+ virtual ~SVGFELightElement();
- virtual PassRefPtr<LightSource> lightSource() const = 0;
- virtual void parseMappedAttribute(Attribute*);
- virtual void synchronizeProperty(const QualifiedName&);
+ virtual PassRefPtr<LightSource> lightSource() const = 0;
+ virtual void parseMappedAttribute(Attribute*);
+ virtual void svgAttributeChanged(const QualifiedName&);
+ virtual void synchronizeProperty(const QualifiedName&);
+ virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
- private:
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::azimuthAttr, float, Azimuth, azimuth)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::elevationAttr, float, Elevation, elevation)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::xAttr, float, X, x)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::yAttr, float, Y, y)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::zAttr, float, Z, z)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::pointsAtXAttr, float, PointsAtX, pointsAtX)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::pointsAtYAttr, float, PointsAtY, pointsAtY)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::pointsAtZAttr, float, PointsAtZ, pointsAtZ)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::specularExponentAttr, float, SpecularExponent, specularExponent)
- DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::limitingConeAngleAttr, float, LimitingConeAngle, limitingConeAngle)
- };
+private:
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::azimuthAttr, float, Azimuth, azimuth)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::elevationAttr, float, Elevation, elevation)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::xAttr, float, X, x)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::yAttr, float, Y, y)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::zAttr, float, Z, z)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::pointsAtXAttr, float, PointsAtX, pointsAtX)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::pointsAtYAttr, float, PointsAtY, pointsAtY)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::pointsAtZAttr, float, PointsAtZ, pointsAtZ)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::specularExponentAttr, float, SpecularExponent, specularExponent)
+ DECLARE_ANIMATED_PROPERTY(SVGFELightElement, SVGNames::limitingConeAngleAttr, float, LimitingConeAngle, limitingConeAngle)
+};
} // namespace WebCore
diff --git a/WebCore/svg/SVGFEOffsetElement.cpp b/WebCore/svg/SVGFEOffsetElement.cpp
index b4fcad9..006bb3b 100644
--- a/WebCore/svg/SVGFEOffsetElement.cpp
+++ b/WebCore/svg/SVGFEOffsetElement.cpp
@@ -56,7 +56,7 @@ void SVGFEOffsetElement::svgAttributeChanged(const QualifiedName& attrName)
if (attrName == SVGNames::inAttr
|| attrName == SVGNames::dxAttr
|| attrName == SVGNames::dyAttr)
- invalidateFilter();
+ SVGFilterElement::invalidateFilter(this);
}
void SVGFEOffsetElement::synchronizeProperty(const QualifiedName& attrName)
diff --git a/WebCore/svg/SVGFESpecularLightingElement.cpp b/WebCore/svg/SVGFESpecularLightingElement.cpp
index c142443..afbdefe 100644
--- a/WebCore/svg/SVGFESpecularLightingElement.cpp
+++ b/WebCore/svg/SVGFESpecularLightingElement.cpp
@@ -25,7 +25,6 @@
#include "SVGFESpecularLightingElement.h"
#include "Attribute.h"
-#include "RenderObject.h"
#include "SVGColor.h"
#include "SVGFELightElement.h"
#include "SVGNames.h"
diff --git a/WebCore/svg/SVGFilterElement.h b/WebCore/svg/SVGFilterElement.h
index 62876ec..ddcd953 100644
--- a/WebCore/svg/SVGFilterElement.h
+++ b/WebCore/svg/SVGFilterElement.h
@@ -55,6 +55,22 @@ public:
virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
+ static void invalidateFilter(SVGElement* element)
+ {
+ ASSERT(element);
+ if (!element->inDocument())
+ return;
+ Node* parent = element->parentNode();
+ while (parent && !parent->hasTagName(SVGNames::filterTag))
+ parent = parent->parentNode();
+
+ if (!parent)
+ return;
+
+ if (RenderObject* object = parent->renderer())
+ object->setNeedsLayout(true);
+ }
+
private:
virtual bool selfHasRelativeLengths() const;
diff --git a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
index cc35138..e91c0a1 100644
--- a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
+++ b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
@@ -74,7 +74,7 @@ void SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(const QualifiedNa
|| attrName == SVGNames::widthAttr
|| attrName == SVGNames::heightAttr
|| attrName == SVGNames::resultAttr)
- invalidateFilter();
+ SVGFilterElement::invalidateFilter(this);
}
void SVGFilterPrimitiveStandardAttributes::synchronizeProperty(const QualifiedName& attrName)
@@ -107,7 +107,7 @@ void SVGFilterPrimitiveStandardAttributes::childrenChanged(bool changedByParser,
SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
if (!changedByParser)
- invalidateFilter();
+ SVGFilterElement::invalidateFilter(this);
}
void SVGFilterPrimitiveStandardAttributes::setStandardAttributes(bool primitiveBoundingBoxMode, FilterEffect* filterEffect) const
diff --git a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
index 6f9e030..8754c6a 100644
--- a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
+++ b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
@@ -50,15 +50,6 @@ public:
void setStandardAttributes(bool, FilterEffect*) const;
-protected:
- void invalidateFilter()
- {
- if (!inDocument() || !parentNode()->hasTagName(SVGNames::filterTag))
- return;
- if (RenderObject* object = parentNode()->renderer())
- object->setNeedsLayout(true);
- }
-
private:
DECLARE_ANIMATED_PROPERTY(SVGFilterPrimitiveStandardAttributes, SVGNames::xAttr, SVGLength, X, x)
DECLARE_ANIMATED_PROPERTY(SVGFilterPrimitiveStandardAttributes, SVGNames::yAttr, SVGLength, Y, y)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list