Bug 374216 - Setting element.style.someSvgProperty has no effect. r=dbaron,sr=roc
authorRobert Longson <longsonr@gmail.com>
Sat, 06 Feb 2010 13:46:54 +0000
changeset 37945 bc6f2b598ff9863098528839d54bf8fb78629d41
parent 37944 2f0b9d7d8c567425288e468617a102a2b218040e
child 37946 794c61af2b5a8327eccb8e6dc8df5c1e6004b6e2
push idunknown
push userunknown
push dateunknown
reviewersdbaron, roc
bugs374216
milestone1.9.3a2pre
Bug 374216 - Setting element.style.someSvgProperty has no effect. r=dbaron,sr=roc
dom/base/nsDOMClassInfo.cpp
dom/interfaces/css/Makefile.in
dom/interfaces/css/nsIDOMNSCSS2Properties.idl
dom/interfaces/css/nsIDOMSVGCSS2Properties.idl
layout/style/nsCSSPropList.h
layout/style/nsComputedDOMStyle.cpp
layout/style/nsDOMCSSDeclaration.cpp
layout/style/nsDOMCSSDeclaration.h
layout/style/test/property_database.js
--- a/dom/base/nsDOMClassInfo.cpp
+++ b/dom/base/nsDOMClassInfo.cpp
@@ -2625,23 +2625,25 @@ nsDOMClassInfo::Init()
 
   DOM_CLASSINFO_MAP_BEGIN(CSSStyleSheet, nsIDOMCSSStyleSheet)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMCSSStyleSheet)
   DOM_CLASSINFO_MAP_END
 
   DOM_CLASSINFO_MAP_BEGIN(CSSStyleDeclaration, nsIDOMCSSStyleDeclaration)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMCSSStyleDeclaration)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMCSS2Properties)
+    DOM_CLASSINFO_MAP_ENTRY(nsIDOMSVGCSS2Properties)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSCSS2Properties)
   DOM_CLASSINFO_MAP_END
 
   DOM_CLASSINFO_MAP_BEGIN_NO_CLASS_IF(ComputedCSSStyleDeclaration,
                                       nsIDOMCSSStyleDeclaration)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMCSSStyleDeclaration)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMCSS2Properties)
+    DOM_CLASSINFO_MAP_ENTRY(nsIDOMSVGCSS2Properties)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSCSS2Properties)
   DOM_CLASSINFO_MAP_END
 
   DOM_CLASSINFO_MAP_BEGIN_NO_CLASS_IF(ROCSSPrimitiveValue,
                                       nsIDOMCSSPrimitiveValue)
     DOM_CLASSINFO_MAP_ENTRY(nsIDOMCSSPrimitiveValue)
   DOM_CLASSINFO_MAP_END
 
--- a/dom/interfaces/css/Makefile.in
+++ b/dom/interfaces/css/Makefile.in
@@ -67,13 +67,14 @@ XPIDLSRCS =					\
 	nsIDOMCSSPageRule.idl			\
 	nsIDOMCSSStyleRule.idl			\
 	nsIDOMCSSUnknownRule.idl		\
 	nsIDOMCounter.idl			\
 	nsIDOMDocumentCSS.idl			\
 	nsIDOMNSCSS2Properties.idl		\
 	nsIDOMRGBColor.idl			\
 	nsIDOMRect.idl				\
+	nsIDOMSVGCSS2Properties.idl		\
 	nsIDOMViewCSS.idl			\
 	nsIDOMNSRGBAColor.idl			\
 	$(NULL)
 
 include $(topsrcdir)/config/rules.mk
--- a/dom/interfaces/css/nsIDOMNSCSS2Properties.idl
+++ b/dom/interfaces/css/nsIDOMNSCSS2Properties.idl
@@ -33,20 +33,20 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
-#include "nsIDOMCSS2Properties.idl"
+#include "nsIDOMSVGCSS2Properties.idl"
 
-[scriptable, uuid(cc0a6325-770b-476d-8cb8-c2a02a43c348)]
-interface nsIDOMNSCSS2Properties : nsIDOMCSS2Properties
+[scriptable, uuid(be39bc6d-3b24-4421-9599-8fdf3ad33baf)]
+interface nsIDOMNSCSS2Properties : nsIDOMSVGCSS2Properties
 {
            /* Non-DOM 2 extensions */
 
            /* Mozilla extension CSS properties */
            attribute DOMString        MozAppearance;
                                         // raises(DOMException) on setting
 
            attribute DOMString        MozBackgroundClip;
new file mode 100644
--- /dev/null
+++ b/dom/interfaces/css/nsIDOMSVGCSS2Properties.idl
@@ -0,0 +1,136 @@
+/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is Takeshi Kurosawa
+ * Portions created by the Initial Developer are Copyright (C) 2008
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Robert Longson <longsonr@gmail.com>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#include "nsIDOMCSS2Properties.idl"
+
+[scriptable, uuid(b555e226-a387-4953-b2bc-c77296d146ec)]
+interface nsIDOMSVGCSS2Properties : nsIDOMCSS2Properties
+{
+           /* SVG CSS properties */
+           attribute DOMString        clipPath;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        clipRule;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        colorInterpolation;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        colorInterpolationFilters;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        dominantBaseline;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        fill;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        fillOpacity;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        fillRule;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        filter;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        floodColor;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        floodOpacity;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        imageRendering;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        lightingColor;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        marker;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        markerEnd;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        markerMid;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        markerStart;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        mask;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        shapeRendering;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        stopColor;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        stopOpacity;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        stroke;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        strokeDasharray;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        strokeDashoffset;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        strokeLinecap;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        strokeLinejoin;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        strokeMiterlimit;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        strokeOpacity;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        strokeWidth;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        textAnchor;
+                                        // raises(DOMException) on setting
+
+           attribute DOMString        textRendering;
+                                        // raises(DOMException) on setting
+};
--- a/layout/style/nsCSSPropList.h
+++ b/layout/style/nsCSSPropList.h
@@ -2702,19 +2702,16 @@ CSS_PROP_FONT(
     mScriptMinSize,
     eCSSType_Value,
     nsnull,
     CSS_PROP_NO_OFFSET,
     eStyleAnimType_None)
 #endif
 #endif
 
-// XXX treat SVG's CSS Properties as internal for now.
-// Do we want to create an nsIDOMSVGCSS2Properties interface?
-#ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_SVGRESET(
     clip-path,
     clip_path,
     ClipPath,
     0,
     SVG,
     mClipPath,
     eCSSType_Value,
@@ -3040,17 +3037,16 @@ CSS_PROP_SVG(
     TextRendering,
     0,
     SVG,
     mTextRendering,
     eCSSType_Value,
     kTextRenderingKTable,
     offsetof(nsStyleSVG, mTextRendering),
     eStyleAnimType_EnumU8)
-#endif /* !defined (CSS_PROP_LIST_EXCLUDE_INTERNAL) */
 
 // Callers that want information on the properties that are in
 // the style structs but not in the nsCSS* structs should define
 // |CSS_PROP_INCLUDE_NOT_CSS|.  (Some of these are also in nsRuleData*,
 // and a distinction might be needed at some point.)
 // The first 3 parameters don't matter, but some compilers don't like
 // empty arguments to macros.
 #ifdef CSS_PROP_INCLUDE_NOT_CSS
--- a/layout/style/nsComputedDOMStyle.cpp
+++ b/layout/style/nsComputedDOMStyle.cpp
@@ -163,16 +163,18 @@ NS_INTERFACE_TABLE_HEAD(nsComputedDOMSty
     NS_INTERFACE_TABLE_ENTRY(nsComputedDOMStyle,
                              nsIDOMCSSStyleDeclaration)
     NS_INTERFACE_TABLE_ENTRY(nsComputedDOMStyle, nsISupports)
   NS_OFFSET_AND_INTERFACE_TABLE_END
   NS_OFFSET_AND_INTERFACE_TABLE_TO_MAP_SEGUE
   NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION(nsComputedDOMStyle)
   NS_INTERFACE_MAP_ENTRY_AGGREGATED(nsIDOMCSS2Properties,
                                     new CSS2PropertiesTearoff(this))
+  NS_INTERFACE_MAP_ENTRY_AGGREGATED(nsIDOMSVGCSS2Properties,
+                                    new CSS2PropertiesTearoff(this))
   NS_INTERFACE_MAP_ENTRY_AGGREGATED(nsIDOMNSCSS2Properties,
                                     new CSS2PropertiesTearoff(this))
   NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(ComputedCSSStyleDeclaration)
 NS_INTERFACE_MAP_END
 
 
 static void doDestroyComputedDOMStyle(nsComputedDOMStyle *aComputedStyle)
 {
--- a/layout/style/nsDOMCSSDeclaration.cpp
+++ b/layout/style/nsDOMCSSDeclaration.cpp
@@ -62,16 +62,18 @@ NS_INTERFACE_TABLE_HEAD(nsDOMCSSDeclarat
   NS_OFFSET_AND_INTERFACE_TABLE_BEGIN(nsDOMCSSDeclaration)
     NS_INTERFACE_TABLE_ENTRY(nsDOMCSSDeclaration, nsICSSDeclaration)
     NS_INTERFACE_TABLE_ENTRY(nsDOMCSSDeclaration, nsIDOMCSSStyleDeclaration)
     NS_INTERFACE_TABLE_ENTRY(nsDOMCSSDeclaration, nsISupports)
   NS_OFFSET_AND_INTERFACE_TABLE_END
   NS_OFFSET_AND_INTERFACE_TABLE_TO_MAP_SEGUE
   NS_INTERFACE_MAP_ENTRY_AGGREGATED(nsIDOMCSS2Properties,
                                     new CSS2PropertiesTearoff(this))
+  NS_INTERFACE_MAP_ENTRY_AGGREGATED(nsIDOMSVGCSS2Properties,
+                                    new CSS2PropertiesTearoff(this))
   NS_INTERFACE_MAP_ENTRY_AGGREGATED(nsIDOMNSCSS2Properties,
                                     new CSS2PropertiesTearoff(this))
   NS_INTERFACE_MAP_ENTRY_CONTENT_CLASSINFO(CSSStyleDeclaration)
 NS_INTERFACE_MAP_END
 
 NS_IMETHODIMP
 nsDOMCSSDeclaration::GetPropertyValue(const nsCSSProperty aPropID,
                                       nsAString& aValue)
@@ -379,23 +381,25 @@ CSS2PropertiesTearoff::~CSS2PropertiesTe
 }
 
 NS_IMPL_CYCLE_COLLECTION_1(CSS2PropertiesTearoff, mOuter)
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(CSS2PropertiesTearoff)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(CSS2PropertiesTearoff)
 
 NS_INTERFACE_TABLE_HEAD(CSS2PropertiesTearoff)
-  NS_INTERFACE_TABLE_INHERITED2(CSS2PropertiesTearoff,
+  NS_INTERFACE_TABLE_INHERITED3(CSS2PropertiesTearoff,
                                 nsIDOMCSS2Properties,
+                                nsIDOMSVGCSS2Properties,
                                 nsIDOMNSCSS2Properties)
   NS_INTERFACE_TABLE_TO_MAP_SEGUE_CYCLE_COLLECTION(CSS2PropertiesTearoff)
 NS_INTERFACE_MAP_END_AGGREGATED(mOuter)
 
 // nsIDOMCSS2Properties
+// nsIDOMSVGCSS2Properties
 // nsIDOMNSCSS2Properties
 
 #define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_,   \
                  kwtable_, stylestruct_, stylestructoffset_, animtype_)      \
   NS_IMETHODIMP                                                              \
   CSS2PropertiesTearoff::Get##method_(nsAString& aValue)                     \
   {                                                                          \
     return mOuter->GetPropertyValue(eCSSProperty_##id_, aValue);             \
--- a/layout/style/nsDOMCSSDeclaration.h
+++ b/layout/style/nsDOMCSSDeclaration.h
@@ -54,16 +54,17 @@ class nsIDocument;
 
 class CSS2PropertiesTearoff : public nsIDOMNSCSS2Properties
 {
 public:
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_CLASS(CSS2PropertiesTearoff)
 
   NS_DECL_NSIDOMCSS2PROPERTIES
+  NS_DECL_NSIDOMSVGCSS2PROPERTIES
   NS_DECL_NSIDOMNSCSS2PROPERTIES
 
   CSS2PropertiesTearoff(nsICSSDeclaration *aOuter);
   virtual ~CSS2PropertiesTearoff();
 
 private:
   nsCOMPtr<nsICSSDeclaration> mOuter;
 };
--- a/layout/style/test/property_database.js
+++ b/layout/style/test/property_database.js
@@ -2091,262 +2091,262 @@ var gCSSProperties = {
 		type: CSS_TYPE_LONGHAND,
 		/* XXX requires position */
 		initial_values: [ "auto" ],
 		other_values: [ "0", "3", "-7000", "12000" ],
 		invalid_values: [ "3.0", "17.5" ]
 	}
 	,
 	"clip-path": {
-		domProp: null,
+		domProp: "clipPath",
 		inherited: false,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "none" ],
 		other_values: [ "url(#mypath)", "url('404.svg#mypath')" ],
 		invalid_values: []
 	},
 	"clip-rule": {
-		domProp: null,
+		domProp: "clipRule",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "nonzero" ],
 		other_values: [ "evenodd" ],
 		invalid_values: []
 	},
 	"color-interpolation": {
-		domProp: null,
+		domProp: "colorInterpolation",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "sRGB" ],
 		other_values: [ "auto", "linearRGB" ],
 		invalid_values: []
 	},
 	"color-interpolation-filters": {
-		domProp: null,
+		domProp: "colorInterpolationFilters",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "linearRGB" ],
 		other_values: [ "sRGB", "auto" ],
 		invalid_values: []
 	},
 	"dominant-baseline": {
-		domProp: null,
+		domProp: "dominantBaseline",
 		inherited: false,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "auto" ],
 		other_values: [ "use-script", "no-change", "reset-size", "ideographic", "alphabetic", "hanging", "mathematical", "central", "middle", "text-after-edge", "text-before-edge" ],
 		invalid_values: []
 	},
 	"fill": {
-		domProp: null,
+		domProp: "fill",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		prerequisites: { "color": "blue" },
 		initial_values: [ "black", "#000", "#000000", "rgb(0,0,0)", "rgba(0,0,0,1)" ],
 		other_values: [ "green", "#fc3", "url('#myserver')", "url(foo.svg#myserver)", 'url("#myserver") green', "none", "currentColor" ],
 		invalid_values: []
 	},
 	"fill-opacity": {
-		domProp: null,
+		domProp: "fillOpacity",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "1", "2.8", "1.000" ],
 		other_values: [ "0", "0.3", "-7.3" ],
 		invalid_values: []
 	},
 	"fill-rule": {
-		domProp: null,
+		domProp: "fillRule",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "nonzero" ],
 		other_values: [ "evenodd" ],
 		invalid_values: []
 	},
 	"filter": {
-		domProp: null,
+		domProp: "filter",
 		inherited: false,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "none" ],
 		other_values: [ "url(#myfilt)" ],
 		invalid_values: [ "url(#myfilt) none" ]
 	},
 	"flood-color": {
-		domProp: null,
+		domProp: "floodColor",
 		inherited: false,
 		type: CSS_TYPE_LONGHAND,
 		prerequisites: { "color": "blue" },
 		initial_values: [ "black", "#000", "#000000", "rgb(0,0,0)", "rgba(0,0,0,1)" ],
 		other_values: [ "green", "#fc3", "currentColor" ],
 		invalid_values: [ "url('#myserver')", "url(foo.svg#myserver)", 'url("#myserver") green' ]
 	},
 	"flood-opacity": {
-		domProp: null,
+		domProp: "floodOpacity",
 		inherited: false,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "1", "2.8", "1.000" ],
 		other_values: [ "0", "0.3", "-7.3" ],
 		invalid_values: []
 	},
 	"image-rendering": {
-		domProp: null,
+		domProp: "imageRendering",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "auto" ],
 		other_values: [ "optimizeSpeed", "optimizeQuality", "-moz-crisp-edges" ],
 		invalid_values: []
 	},
 	"lighting-color": {
-		domProp: null,
+		domProp: "lightingColor",
 		inherited: false,
 		type: CSS_TYPE_LONGHAND,
 		prerequisites: { "color": "blue" },
 		initial_values: [ "white", "#fff", "#ffffff", "rgb(255,255,255)", "rgba(255,255,255,1.0)", "rgba(255,255,255,42.0)" ],
 		other_values: [ "green", "#fc3", "currentColor" ],
 		invalid_values: [ "url('#myserver')", "url(foo.svg#myserver)", 'url("#myserver") green' ]
 	},
 	"marker": {
-		domProp: null,
+		domProp: "marker",
 		inherited: true,
 		type: CSS_TYPE_TRUE_SHORTHAND,
 		subproperties: [ "marker-start", "marker-mid", "marker-end" ],
 		initial_values: [ "none" ],
 		other_values: [ "url(#mysym)" ],
 		invalid_values: [ "none none", "url(#mysym) url(#mysym)", "none url(#mysym)", "url(#mysym) none" ]
 	},
 	"marker-end": {
-		domProp: null,
+		domProp: "markerEnd",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "none" ],
 		other_values: [ "url(#mysym)" ],
 		invalid_values: []
 	},
 	"marker-mid": {
-		domProp: null,
+		domProp: "markerMid",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "none" ],
 		other_values: [ "url(#mysym)" ],
 		invalid_values: []
 	},
 	"marker-start": {
-		domProp: null,
+		domProp: "markerStart",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "none" ],
 		other_values: [ "url(#mysym)" ],
 		invalid_values: []
 	},
 	"mask": {
-		domProp: null,
+		domProp: "mask",
 		inherited: false,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "none" ],
 		other_values: [ "url(#mymask)" ],
 		invalid_values: []
 	},
 	"shape-rendering": {
-		domProp: null,
+		domProp: "shapeRendering",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "auto" ],
 		other_values: [ "optimizeSpeed", "crispEdges", "geometricPrecision" ],
 		invalid_values: []
 	},
 	"stop-color": {
-		domProp: null,
+		domProp: "stopColor",
 		inherited: false,
 		type: CSS_TYPE_LONGHAND,
 		prerequisites: { "color": "blue" },
 		initial_values: [ "black", "#000", "#000000", "rgb(0,0,0)", "rgba(0,0,0,1)" ],
 		other_values: [ "green", "#fc3", "currentColor" ],
 		invalid_values: [ "url('#myserver')", "url(foo.svg#myserver)", 'url("#myserver") green' ]
 	},
 	"stop-opacity": {
-		domProp: null,
+		domProp: "stopOpacity",
 		inherited: false,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "1", "2.8", "1.000" ],
 		other_values: [ "0", "0.3", "-7.3" ],
 		invalid_values: []
 	},
 	"stroke": {
-		domProp: null,
+		domProp: "stroke",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "none" ],
 		other_values: [ "black", "#000", "#000000", "rgb(0,0,0)", "rgba(0,0,0,1)", "green", "#fc3", "url('#myserver')", "url(foo.svg#myserver)", 'url("#myserver") green', "currentColor" ],
 		invalid_values: []
 	},
 	"stroke-dasharray": {
-		domProp: null,
+		domProp: "strokeDasharray",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "none" ],
 		other_values: [ "5px,3px,2px", "5px 3px 2px", "  5px ,3px	, 2px ", "1px", "5%", "3em" ],
 		invalid_values: []
 	},
 	"stroke-dashoffset": {
-		domProp: null,
+		domProp: "strokeDashoffset",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "0", "-0px", "0em" ],
 		other_values: [ "3px", "3%", "1em" ],
 		invalid_values: []
 	},
 	"stroke-linecap": {
-		domProp: null,
+		domProp: "strokeLinecap",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "butt" ],
 		other_values: [ "round", "square" ],
 		invalid_values: []
 	},
 	"stroke-linejoin": {
-		domProp: null,
+		domProp: "strokeLinejoin",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "miter" ],
 		other_values: [ "round", "bevel" ],
 		invalid_values: []
 	},
 	"stroke-miterlimit": {
-		domProp: null,
+		domProp: "strokeMiterlimit",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "4" ],
 		other_values: [ "1", "7", "5000", "1.1" ],
 		invalid_values: [ "0.9", "0", "-1", "3px", "-0.3" ]
 	},
 	"stroke-opacity": {
-		domProp: null,
+		domProp: "strokeOpacity",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "1", "2.8", "1.000" ],
 		other_values: [ "0", "0.3", "-7.3" ],
 		invalid_values: []
 	},
 	"stroke-width": {
-		domProp: null,
+		domProp: "strokeWidth",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "1px" ],
 		other_values: [ "0", "0px", "-0em", "17px", "0.2em" ],
 		invalid_values: [ "-0.1px", "-3px" ]
 	},
 	"text-anchor": {
-		domProp: null,
+		domProp: "textAnchor",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "start" ],
 		other_values: [ "middle", "end" ],
 		invalid_values: []
 	},
 	"text-rendering": {
-		domProp: null,
+		domProp: "textRendering",
 		inherited: true,
 		type: CSS_TYPE_LONGHAND,
 		initial_values: [ "auto" ],
 		other_values: [ "optimizeSpeed", "optimizeLegibility", "geometricPrecision" ],
 		invalid_values: []
 	}
 }