[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 13:58:01 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 4a006f0954fbde9ddcccc2a39ba7848e1437d5d3
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Sep 30 17:21:18 2010 +0000

    2010-09-30  Renata Hodovan  <reni at inf.u-szeged.hu>
    
            Reviewed by Dirk Schulze.
    
            SVGFECompositeElement doesn't support dynamic invalidation, when attributes change.
            https://bugs.webkit.org/show_bug.cgi?id=46902
    
            Adding layout tests for feComposite dynamic changes.
    
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.png: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.checksum: Added.
            * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.png: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-in-attr.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop.html: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.txt: Added.
            * svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop.html: Added.
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-in-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-in2-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k1-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k2-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k3-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k4-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-operator-attr.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-in-prop.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-in2-prop.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k1-prop.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k2-prop.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k3-prop.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k4-prop.js: Added.
            (executeTest):
            * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-operator-prop.js: Added.
            (executeTest):
    2010-09-30  Renata Hodovan  <reni at inf.u-szeged.hu>
    
            Reviewed by Dirk Schulze.
    
            SVGFECompositeElement doesn't support dynamic invalidation, when attributes change.
            https://bugs.webkit.org/show_bug.cgi?id=46902
    
            Tests: svg/dynamic-updates/SVGFECompositeElement-dom-in-attr.html
                   svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr.html
                   svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr.html
                   svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr.html
                   svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr.html
                   svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr.html
                   svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr.html
                   svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop.html
                   svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop.html
                   svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop.html
                   svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop.html
                   svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop.html
                   svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop.html
                   svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop.html
    
            * svg/SVGFECompositeElement.cpp:
            (WebCore::SVGFECompositeElement::svgAttributeChanged):
            * svg/SVGFECompositeElement.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68797 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index e24c528..aa36098 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,97 @@
+2010-09-30  Renata Hodovan  <reni at inf.u-szeged.hu>
+
+        Reviewed by Dirk Schulze.
+
+        SVGFECompositeElement doesn't support dynamic invalidation, when attributes change.
+        https://bugs.webkit.org/show_bug.cgi?id=46902
+
+        Adding layout tests for feComposite dynamic changes.
+
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.png: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-in-attr.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop.html: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop.html: Added.
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-in-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-in2-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k1-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k2-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k3-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k4-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-operator-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-in-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-in2-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k1-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k2-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k3-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k4-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-operator-prop.js: Added.
+        (executeTest):
+
 2010-09-29  Jeremy Orlow  <jorlow at chromium.org>
 
         Reviewed by Steve Block.
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.checksum
new file mode 100644
index 0000000..e690fe9
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.checksum
@@ -0,0 +1 @@
+38d0482420c0454e5bbb568c4e8e7835
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.png
new file mode 100644
index 0000000..377a1f4
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.checksum
new file mode 100644
index 0000000..3185f63
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.checksum
@@ -0,0 +1 @@
+8d78399897009fee22faafcb08216f3d
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.png
new file mode 100644
index 0000000..fd76697
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.checksum
new file mode 100644
index 0000000..3e3596c
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.checksum
@@ -0,0 +1 @@
+6bc00c137319bce820de2092976f247b
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.png
new file mode 100644
index 0000000..8789d2a
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.checksum
new file mode 100644
index 0000000..229c510
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.checksum
@@ -0,0 +1 @@
+d6e1af5ce532c40945a0fd363f08006c
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.png
new file mode 100644
index 0000000..3fa6358
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.checksum
new file mode 100644
index 0000000..53f9cf5
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.checksum
@@ -0,0 +1 @@
+a4ba38580e50a85807f94291fce4ad1b
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.png
new file mode 100644
index 0000000..a31f9f2
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.checksum
new file mode 100644
index 0000000..090ee44
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.checksum
@@ -0,0 +1 @@
+2f6f031b66d94599aba7e98679e854d0
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.png
new file mode 100644
index 0000000..76dddf5
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.checksum
new file mode 100644
index 0000000..c9c4880
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.checksum
@@ -0,0 +1 @@
+9a3ce712e77fb0bfa8729ad9df0bbfd4
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.png
new file mode 100644
index 0000000..2c97e6e
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.checksum
new file mode 100644
index 0000000..b4a1187
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.checksum
@@ -0,0 +1 @@
+4d287a427229466e5865dd9588caa5c9
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.png
new file mode 100644
index 0000000..229b7f8
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.checksum
new file mode 100644
index 0000000..5b774fd
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.checksum
@@ -0,0 +1 @@
+bc74a9036d9304c9b17941e680ebdc00
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.png
new file mode 100644
index 0000000..c7153d3
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.checksum
new file mode 100644
index 0000000..f655686
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.checksum
@@ -0,0 +1 @@
+a80bbb2a6938f61a7ec7044121e887dc
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.png
new file mode 100644
index 0000000..267870d
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.checksum
new file mode 100644
index 0000000..fa15f11
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.checksum
@@ -0,0 +1 @@
+a3c47182e5a530d50729d56ddb60eb6f
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.png
new file mode 100644
index 0000000..0634117
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.checksum
new file mode 100644
index 0000000..a6ae32d
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.checksum
@@ -0,0 +1 @@
+56be02fc2b45677cd3de319c5ee67e06
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.png
new file mode 100644
index 0000000..6a4cacc
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.checksum
new file mode 100644
index 0000000..85524bb
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.checksum
@@ -0,0 +1 @@
+1bb782221b4a1fa2f1131ca31c2996c6
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.png
new file mode 100644
index 0000000..e20a3d0
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.checksum
new file mode 100644
index 0000000..4ef4bc7
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.checksum
@@ -0,0 +1 @@
+1b5895b27f22f78a2fdf71ddb2f90b91
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.png
new file mode 100644
index 0000000..bec9005
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.png differ
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.txt
new file mode 100644
index 0000000..821c544
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'in' attribute of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS overComposite1.getAttribute('in') is "F12"
+PASS overComposite1.getAttribute('in') is "F1"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-in-attr.html
new file mode 100644
index 0000000..bd40fd8
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-in-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/SVGFECompositeElement-dom-in-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.txt
new file mode 100644
index 0000000..ec09771
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'in2' attribute of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS overComposite1.getAttribute('in2') is "SourceGraphic"
+PASS overComposite1.getAttribute('in2') is "off1"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr.html
new file mode 100644
index 0000000..c558014
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-in2-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/SVGFECompositeElement-dom-in2-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.txt
new file mode 100644
index 0000000..8e9a240
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'k1' attribute of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS overComposite1.getAttribute('k1') is "1.9"
+PASS overComposite1.getAttribute('k1') is ".5"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr.html
new file mode 100644
index 0000000..2558adc
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k1-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/SVGFECompositeElement-dom-k1-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.txt
new file mode 100644
index 0000000..5c7b3a6
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'k2' attribute of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS overComposite1.getAttribute('k2') is ".9"
+PASS overComposite1.getAttribute('k2') is ".1"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr.html
new file mode 100644
index 0000000..1cf28ae
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k2-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/SVGFECompositeElement-dom-k2-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.txt
new file mode 100644
index 0000000..84fc86f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'k3' attribute of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS overComposite1.getAttribute('k3') is "2.9"
+PASS overComposite1.getAttribute('k3') is ".1"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr.html
new file mode 100644
index 0000000..82649a3
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k3-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/SVGFECompositeElement-dom-k3-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.txt
new file mode 100644
index 0000000..c1034ca
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'k4' attribute of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS overComposite1.getAttribute('k4') is "2.9"
+PASS overComposite1.getAttribute('k4') is ".3"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr.html
new file mode 100644
index 0000000..0ec5416
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-k4-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/SVGFECompositeElement-dom-k4-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.txt
new file mode 100644
index 0000000..27ac86a
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'operator' attribute of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS overComposite1.getAttribute('operator') is "in"
+PASS overComposite1.getAttribute('operator') is "arithmetic"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr.html
new file mode 100644
index 0000000..6bd2286
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-dom-operator-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/SVGFECompositeElement-dom-operator-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.txt
new file mode 100644
index 0000000..940b93f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'in' property of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS overComposite1.in1.baseVal is "F12"
+PASS overComposite1.in1.baseVal is "F1"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop.html
new file mode 100644
index 0000000..30f7f0d
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-in-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/SVGFECompositeElement-svgdom-in-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.txt
new file mode 100644
index 0000000..70a47e3
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'in2' property of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS overComposite1.in2.baseVal is "SourceGraphic"
+PASS overComposite1.in2.baseVal is "off1"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop.html
new file mode 100644
index 0000000..1285aaa
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-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/SVGFECompositeElement-svgdom-in2-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.txt
new file mode 100644
index 0000000..b3efd5d
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'k1' property of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Math.round(overComposite1.k1.baseVal * 1000) is 1900
+PASS Math.round(overComposite1.k1.baseVal * 1000) is 500
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop.html
new file mode 100644
index 0000000..e06157c
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-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/SVGFECompositeElement-svgdom-k1-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.txt
new file mode 100644
index 0000000..f403450
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'k2' propoerty of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Math.round(overComposite1.k2.baseVal * 1000) is 900
+PASS Math.round(overComposite1.k2.baseVal * 1000) is 100
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop.html
new file mode 100644
index 0000000..6095002
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-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/SVGFECompositeElement-svgdom-k2-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.txt
new file mode 100644
index 0000000..8383380
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'k3' property of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Math.round(overComposite1.k3.baseVal * 1000) is 2900
+PASS Math.round(overComposite1.k3.baseVal * 1000) is 100
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop.html
new file mode 100644
index 0000000..db70749
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-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/SVGFECompositeElement-svgdom-k3-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.txt
new file mode 100644
index 0000000..7775032
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'k4' property of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Math.round(overComposite1.k4.baseVal * 1000) is 2900
+PASS Math.round(overComposite1.k4.baseVal * 1000) is 300
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop.html
new file mode 100644
index 0000000..d660a3c
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-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/SVGFECompositeElement-svgdom-k4-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.txt
new file mode 100644
index 0000000..dfd38ac
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'operator' property of the SVGFECompositeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS overComposite1.operator.baseVal is SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN
+PASS overComposite1.operator.baseVal is SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop.html b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop.html
new file mode 100644
index 0000000..1f26589
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-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/SVGFECompositeElement-svgdom-operator-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-in-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-in-attr.js
new file mode 100644
index 0000000..2f3ffe5
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-in-attr.js
@@ -0,0 +1,126 @@
+// [Name] SVGFECompositeElement-dom-in-attr.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'in' attribute of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var flood12 = createSVGElement("feFlood");
+flood12.setAttribute("flood-color", "#008097");
+flood12.setAttribute("flood-opacity", ".9");
+flood12.setAttribute("result", "F12");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F12");
+overComposite1.setAttribute("in2", "off1");
+overComposite1.setAttribute("operator", "in");
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(flood12);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+shouldBeEqualToString("overComposite1.getAttribute('in')", "F12");
+
+function executeTest() {
+    overComposite1.setAttribute("in", "F1");
+    shouldBeEqualToString("overComposite1.getAttribute('in')", "F1");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-in2-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-in2-attr.js
new file mode 100644
index 0000000..5e63cff
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-in2-attr.js
@@ -0,0 +1,124 @@
+// [Name] SVGFECompositeElement-dom-in2-attr.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'in2' attribute of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F1");
+overComposite1.setAttribute("in2", "SourceGraphic");
+overComposite1.setAttribute("operator", "arithmetic");
+overComposite1.setAttribute("k1", ".5");
+overComposite1.setAttribute("k2", ".1");
+overComposite1.setAttribute("k3", ".5");
+overComposite1.setAttribute("k4", ".3");
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+shouldBeEqualToString("overComposite1.getAttribute('in2')", "SourceGraphic");
+
+function executeTest() {
+    overComposite1.setAttribute("in2", "off1");
+    shouldBeEqualToString("overComposite1.getAttribute('in2')", "off1");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k1-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k1-attr.js
new file mode 100644
index 0000000..dd60927
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k1-attr.js
@@ -0,0 +1,124 @@
+// [Name] SVGFECompositeElement-dom-k1-attr.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'k1' attribute of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F1");
+overComposite1.setAttribute("in2", "off1");
+overComposite1.setAttribute("operator", "arithmetic");
+overComposite1.setAttribute("k1", "1.9");
+overComposite1.setAttribute("k2", ".1");
+overComposite1.setAttribute("k3", ".5");
+overComposite1.setAttribute("k4", ".3");
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+shouldBeEqualToString("overComposite1.getAttribute('k1')", "1.9");
+
+function executeTest() {
+    overComposite1.setAttribute("k1", ".5");
+    shouldBeEqualToString("overComposite1.getAttribute('k1')", ".5");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k2-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k2-attr.js
new file mode 100644
index 0000000..f8e289f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k2-attr.js
@@ -0,0 +1,125 @@
+// [Name] SVGFECompositeElement-dom-k2-attr.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'k2' attribute of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F1");
+overComposite1.setAttribute("in2", "off1");
+overComposite1.setAttribute("operator", "arithmetic");
+overComposite1.setAttribute("k1", ".5");
+overComposite1.setAttribute("k2", ".9");
+overComposite1.setAttribute("k3", ".5");
+overComposite1.setAttribute("k4", ".3");
+
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+shouldBeEqualToString("overComposite1.getAttribute('k2')", ".9");
+
+function executeTest() {
+    overComposite1.setAttribute("k2", ".1");
+    shouldBeEqualToString("overComposite1.getAttribute('k2')", ".1");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k3-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k3-attr.js
new file mode 100644
index 0000000..8fa7d28
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k3-attr.js
@@ -0,0 +1,125 @@
+// [Name] SVGFECompositeElement-dom-k3-attr.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'k3' attribute of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F1");
+overComposite1.setAttribute("in2", "off1");
+overComposite1.setAttribute("operator", "arithmetic");
+overComposite1.setAttribute("k1", ".5");
+overComposite1.setAttribute("k2", ".1");
+overComposite1.setAttribute("k3", "2.9");
+overComposite1.setAttribute("k4", ".3");
+
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+shouldBeEqualToString("overComposite1.getAttribute('k3')", "2.9");
+
+function executeTest() {
+    overComposite1.setAttribute("k3", ".1");
+    shouldBeEqualToString("overComposite1.getAttribute('k3')", ".1");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k4-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k4-attr.js
new file mode 100644
index 0000000..418faeb
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-k4-attr.js
@@ -0,0 +1,125 @@
+// [Name] SVGFECompositeElement-dom-k4-attr.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'k4' attribute of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F1");
+overComposite1.setAttribute("in2", "off1");
+overComposite1.setAttribute("operator", "arithmetic");
+overComposite1.setAttribute("k1", ".5");
+overComposite1.setAttribute("k2", ".1");
+overComposite1.setAttribute("k3", ".5");
+overComposite1.setAttribute("k4", "2.9");
+
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+shouldBeEqualToString("overComposite1.getAttribute('k4')", "2.9");
+
+function executeTest() {
+    overComposite1.setAttribute("k4", ".3");
+    shouldBeEqualToString("overComposite1.getAttribute('k4')", ".3");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-operator-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-operator-attr.js
new file mode 100644
index 0000000..c5c5887
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-dom-operator-attr.js
@@ -0,0 +1,125 @@
+// [Name] SVGFECompositeElement-dom-operator-attr.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'operator' attribute of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F1");
+overComposite1.setAttribute("in2", "off1");
+overComposite1.setAttribute("operator", "in");
+overComposite1.setAttribute("k1", ".5");
+overComposite1.setAttribute("k2", ".1");
+overComposite1.setAttribute("k3", ".5");
+overComposite1.setAttribute("k4", ".3");
+
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+shouldBeEqualToString("overComposite1.getAttribute('operator')", "in");
+
+function executeTest() {
+    overComposite1.setAttribute("operator", "arithmetic");
+    shouldBeEqualToString("overComposite1.getAttribute('operator')", "arithmetic");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-in-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-in-prop.js
new file mode 100644
index 0000000..b1c82ce
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-in-prop.js
@@ -0,0 +1,126 @@
+// [Name] SVGFECompositeElement-svgdom-in-prop.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'in' property of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var flood12 = createSVGElement("feFlood");
+flood12.setAttribute("flood-color", "#008097");
+flood12.setAttribute("flood-opacity", ".9");
+flood12.setAttribute("result", "F12");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F12");
+overComposite1.setAttribute("in2", "off1");
+overComposite1.setAttribute("operator", "in");
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(flood12);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+shouldBeEqualToString("overComposite1.in1.baseVal", "F12");
+
+function executeTest() {
+    overComposite1.in1.baseVal = "F1";
+    shouldBeEqualToString("overComposite1.in1.baseVal", "F1");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-in2-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-in2-prop.js
new file mode 100644
index 0000000..de4081f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-in2-prop.js
@@ -0,0 +1,124 @@
+// [Name] SVGFECompositeElement-dom-in2-prop.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'in2' property of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F1");
+overComposite1.setAttribute("in2", "SourceGraphic");
+overComposite1.setAttribute("operator", "arithmetic");
+overComposite1.setAttribute("k1", ".5");
+overComposite1.setAttribute("k2", ".1");
+overComposite1.setAttribute("k3", ".5");
+overComposite1.setAttribute("k4", ".3");
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+shouldBeEqualToString("overComposite1.in2.baseVal", "SourceGraphic");
+
+function executeTest() {
+    overComposite1.in2.baseVal = "off1";
+    shouldBeEqualToString("overComposite1.in2.baseVal", "off1");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k1-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k1-prop.js
new file mode 100644
index 0000000..0bc3192
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k1-prop.js
@@ -0,0 +1,125 @@
+// [Name] SVGFECompositeElement-dom-k1-prop.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'k1' property of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F1");
+overComposite1.setAttribute("in2", "off1");
+overComposite1.setAttribute("operator", "arithmetic");
+overComposite1.setAttribute("k1", "1.9");
+overComposite1.setAttribute("k2", ".1");
+overComposite1.setAttribute("k3", ".5");
+overComposite1.setAttribute("k4", ".3");
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+// We should multiply and round the value of k1 otherwise the expected value cannot be precisely represented as a floating point number and the comparison will fail.
+shouldBe("Math.round(overComposite1.k1.baseVal * 1000)", "1900");
+
+function executeTest() {
+    overComposite1.k1.baseVal = .5;
+    shouldBe("Math.round(overComposite1.k1.baseVal * 1000)", "500");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k2-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k2-prop.js
new file mode 100644
index 0000000..ffc56a0
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k2-prop.js
@@ -0,0 +1,126 @@
+// [Name] SVGFECompositeElement-dom-k2-prop.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'k2' propoerty of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F1");
+overComposite1.setAttribute("in2", "off1");
+overComposite1.setAttribute("operator", "arithmetic");
+overComposite1.setAttribute("k1", ".5");
+overComposite1.setAttribute("k2", ".9");
+overComposite1.setAttribute("k3", ".5");
+overComposite1.setAttribute("k4", ".3");
+
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+// We should multiply and round the value of k2 otherwise the expected value cannot be precisely represented as a floating point number and the comparison will fail.
+shouldBe("Math.round(overComposite1.k2.baseVal * 1000)", "900");
+
+function executeTest() {
+    overComposite1.k2.baseVal = .1;
+    shouldBe("Math.round(overComposite1.k2.baseVal * 1000)", "100");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k3-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k3-prop.js
new file mode 100644
index 0000000..7a99ea6
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k3-prop.js
@@ -0,0 +1,126 @@
+// [Name] SVGFECompositeElement-dom-k3-prop.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'k3' property of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F1");
+overComposite1.setAttribute("in2", "off1");
+overComposite1.setAttribute("operator", "arithmetic");
+overComposite1.setAttribute("k1", ".5");
+overComposite1.setAttribute("k2", ".1");
+overComposite1.setAttribute("k3", "2.9");
+overComposite1.setAttribute("k4", ".3");
+
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+// We should multiply and round the value of k3 otherwise the expected value cannot be precisely represented as a floating point number and the comparison will fail.
+shouldBe("Math.round(overComposite1.k3.baseVal * 1000)", "2900");
+
+function executeTest() {
+    overComposite1.k3.baseVal = .1;
+    shouldBe("Math.round(overComposite1.k3.baseVal * 1000)", "100");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k4-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k4-prop.js
new file mode 100644
index 0000000..7b3e75f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-k4-prop.js
@@ -0,0 +1,126 @@
+// [Name] SVGFECompositeElement-dom-k4-prop.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'k4' property of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F1");
+overComposite1.setAttribute("in2", "off1");
+overComposite1.setAttribute("operator", "arithmetic");
+overComposite1.setAttribute("k1", ".5");
+overComposite1.setAttribute("k2", ".1");
+overComposite1.setAttribute("k3", ".5");
+overComposite1.setAttribute("k4", "2.9");
+
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+// We should multiply and round the value of k4 otherwise the expected value cannot be precisely represented as a floating point number and the comparison will fail.
+shouldBe("Math.round(overComposite1.k4.baseVal * 1000)", "2900");
+
+function executeTest() {
+    overComposite1.k4.baseVal = .3;
+    shouldBe("Math.round(overComposite1.k4.baseVal * 1000)", "300");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-operator-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-operator-prop.js
new file mode 100644
index 0000000..900c2f8
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFECompositeElement-svgdom-operator-prop.js
@@ -0,0 +1,125 @@
+// [Name] SVGFECompositeElement-dom-operator-prop.js
+// [Expected rendering result] Four circle with different opacity merged with feComposite filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'operator' property of the SVGFECompositeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var off1 = createSVGElement("feOffset");
+off1.setAttribute("dx", "35");
+off1.setAttribute("dy", "25");
+off1.setAttribute("result", "off1");
+
+var flood1 = createSVGElement("feFlood");
+flood1.setAttribute("flood-color", "#408067");
+flood1.setAttribute("flood-opacity", ".8");
+flood1.setAttribute("result", "F1");
+
+var overComposite1 = createSVGElement("feComposite");
+overComposite1.setAttribute("in", "F1");
+overComposite1.setAttribute("in2", "off1");
+overComposite1.setAttribute("operator", "in");
+overComposite1.setAttribute("k1", ".5");
+overComposite1.setAttribute("k2", ".1");
+overComposite1.setAttribute("k3", ".5");
+overComposite1.setAttribute("k4", ".3");
+
+overComposite1.setAttribute("result", "C1");
+
+var off2 = createSVGElement("feOffset");
+off2.setAttribute("in", "SourceGraphic");
+off2.setAttribute("dx", "60");
+off2.setAttribute("dy", "50");
+off2.setAttribute("result", "off2");
+
+var flood2 = createSVGElement("feFlood");
+flood2.setAttribute("flood-color", "#408067");
+flood2.setAttribute("flood-opacity", ".6");
+flood2.setAttribute("result", "F2");
+
+var overComposite2 = createSVGElement("feComposite");
+overComposite2.setAttribute("in", "F2");
+overComposite2.setAttribute("in2", "off2");
+overComposite2.setAttribute("operator", "in");
+overComposite2.setAttribute("result", "C2");
+
+var off3 = createSVGElement("feOffset");
+off3.setAttribute("in", "SourceGraphic");
+off3.setAttribute("dx", "85");
+off3.setAttribute("dy", "75");
+off3.setAttribute("result", "off3");
+
+var flood3 = createSVGElement("feFlood");
+flood3.setAttribute("flood-color", "#408067");
+flood3.setAttribute("flood-opacity", ".4");
+flood3.setAttribute("result", "F3");
+
+var overComposite3 = createSVGElement("feComposite");
+overComposite3.setAttribute("in2", "off3");
+overComposite3.setAttribute("operator", "in");
+overComposite3.setAttribute("result", "C3");
+
+var merge = createSVGElement("feMerge");
+
+var mergeNode1 = createSVGElement("feMergeNode");
+mergeNode1.setAttribute("in", "C1");
+
+var mergeNode2 = createSVGElement("feMergeNode");
+mergeNode2.setAttribute("in", "C2");
+
+var mergeNode3 = createSVGElement("feMergeNode");
+mergeNode3.setAttribute("in", "C3");
+
+var mergeNode4 = createSVGElement("feMergeNode");
+mergeNode4.setAttribute("in", "SourceGraphic");
+
+merge.appendChild(mergeNode3);
+merge.appendChild(mergeNode2);
+merge.appendChild(mergeNode1);
+merge.appendChild(mergeNode4);
+
+var overFilter = createSVGElement("filter");
+overFilter.setAttribute("id", "overFilter");
+overFilter.setAttribute("filterUnits", "objectBoundingBox");
+overFilter.setAttribute("x", "0");
+overFilter.setAttribute("y", "0");
+overFilter.setAttribute("width", "3.5");
+overFilter.setAttribute("height", "4");
+overFilter.appendChild(off1);
+overFilter.appendChild(flood1);
+overFilter.appendChild(overComposite1);
+overFilter.appendChild(off2);
+overFilter.appendChild(flood2);
+overFilter.appendChild(overComposite2);
+overFilter.appendChild(off3);
+overFilter.appendChild(flood3);
+overFilter.appendChild(overComposite3);
+overFilter.appendChild(merge);
+
+defsElement.appendChild(overFilter);
+
+rootSVGElement.setAttribute("height", "200");
+
+var rect1 = createSVGElement("circle");
+rect1.setAttribute("cx", "100");
+rect1.setAttribute("cy", "50");
+rect1.setAttribute("r", "50");
+rect1.setAttribute("fill", "#408067");
+rect1.setAttribute("filter", "url(#overFilter)");
+
+rootSVGElement.appendChild(rect1);
+
+shouldBe("overComposite1.operator.baseVal", "SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN");
+
+function executeTest() {
+    overComposite1.operator.baseVal = SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC;
+    shouldBe("overComposite1.operator.baseVal", "SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 847c4ce..7090531 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,29 @@
+2010-09-30  Renata Hodovan  <reni at inf.u-szeged.hu>
+
+        Reviewed by Dirk Schulze.
+
+        SVGFECompositeElement doesn't support dynamic invalidation, when attributes change.
+        https://bugs.webkit.org/show_bug.cgi?id=46902
+
+        Tests: svg/dynamic-updates/SVGFECompositeElement-dom-in-attr.html
+               svg/dynamic-updates/SVGFECompositeElement-dom-in2-attr.html
+               svg/dynamic-updates/SVGFECompositeElement-dom-k1-attr.html
+               svg/dynamic-updates/SVGFECompositeElement-dom-k2-attr.html
+               svg/dynamic-updates/SVGFECompositeElement-dom-k3-attr.html
+               svg/dynamic-updates/SVGFECompositeElement-dom-k4-attr.html
+               svg/dynamic-updates/SVGFECompositeElement-dom-operator-attr.html
+               svg/dynamic-updates/SVGFECompositeElement-svgdom-in-prop.html
+               svg/dynamic-updates/SVGFECompositeElement-svgdom-in2-prop.html
+               svg/dynamic-updates/SVGFECompositeElement-svgdom-k1-prop.html
+               svg/dynamic-updates/SVGFECompositeElement-svgdom-k2-prop.html
+               svg/dynamic-updates/SVGFECompositeElement-svgdom-k3-prop.html
+               svg/dynamic-updates/SVGFECompositeElement-svgdom-k4-prop.html
+               svg/dynamic-updates/SVGFECompositeElement-svgdom-operator-prop.html
+
+        * svg/SVGFECompositeElement.cpp:
+        (WebCore::SVGFECompositeElement::svgAttributeChanged):
+        * svg/SVGFECompositeElement.h:
+
 2010-09-29  Jeremy Orlow  <jorlow at chromium.org>
 
         Reviewed by Steve Block.
diff --git a/WebCore/svg/SVGFECompositeElement.cpp b/WebCore/svg/SVGFECompositeElement.cpp
index b6f1002..6d7e7b2 100644
--- a/WebCore/svg/SVGFECompositeElement.cpp
+++ b/WebCore/svg/SVGFECompositeElement.cpp
@@ -71,6 +71,20 @@ void SVGFECompositeElement::parseMappedAttribute(Attribute* attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
+void SVGFECompositeElement::svgAttributeChanged(const QualifiedName& attrName)
+{
+    SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
+
+    if (attrName == SVGNames::inAttr
+        || attrName == SVGNames::in2Attr
+        || attrName == SVGNames::operatorAttr
+        || attrName == SVGNames::k1Attr
+        || attrName == SVGNames::k2Attr
+        || attrName == SVGNames::k3Attr
+        || attrName == SVGNames::k4Attr)
+        invalidate();
+}
+
 void SVGFECompositeElement::synchronizeProperty(const QualifiedName& attrName)
 {
     SVGFilterPrimitiveStandardAttributes::synchronizeProperty(attrName);
diff --git a/WebCore/svg/SVGFECompositeElement.h b/WebCore/svg/SVGFECompositeElement.h
index 19683de..6d47cac 100644
--- a/WebCore/svg/SVGFECompositeElement.h
+++ b/WebCore/svg/SVGFECompositeElement.h
@@ -35,6 +35,7 @@ private:
     SVGFECompositeElement(const QualifiedName&, Document*);
 
     virtual void parseMappedAttribute(Attribute*);
+    virtual void svgAttributeChanged(const QualifiedName&);
     virtual void synchronizeProperty(const QualifiedName&);
     virtual PassRefPtr<FilterEffect> build(SVGFilterBuilder*);
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list