[Sie-announce] SIEコード [2519] setPropertyメソッドを整理して、軽量化した

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2011年 3月 28日 (月) 22:28:29 JST


Revision: 2519
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2519
Author:   dhrname
Date:     2011-03-28 22:28:29 +0900 (Mon, 28 Mar 2011)

Log Message:
-----------
setPropertyメソッドを整理して、軽量化した

Modified Paths:
--------------
    branches/07x/074/org/w3c/dom/css.js

Modified: branches/07x/074/org/w3c/dom/css.js
===================================================================
--- branches/07x/074/org/w3c/dom/css.js	2011-03-28 13:00:23 UTC (rev 2518)
+++ branches/07x/074/org/w3c/dom/css.js	2011-03-28 13:28:29 UTC (rev 2519)
@@ -192,6 +192,7 @@
   cssText : "",
   /*long*/ length : 0,
   /*CSSRule*/ parentRule : null,
+  _urlreg : /url\(#([^)]+)/,
   /*getPropertyValueメソッド
    *CSSの値を返す。この値は継承ではなくて、明示的に表記されているもの
    */
@@ -257,7 +258,7 @@
 /*void*/     setProperty : function( /*string*/ propertyName, /*string*/ value, /*string*/ priority) {
     var cssText = "",
         tg = null,
-        ti, paintType,
+        ti, paintType, v1,
         uri = null,
         color = null,
         fill, stroke;
@@ -278,23 +279,21 @@
          */
         ti = new SVGPaint();
         paintType = /*SVGPaint.SVG_PAINTTYPE_UNKNOWN*/ 0;
-        if (value === "none") {
-          paintType = SVGPaint.SVG_PAINTTYPE_NONE;
+        v1 = value.charAt(0);
+        if ((v1 === "#") || ti._keywords[value] || (v1 === "r")) {
+          paintType = /*SVGPaint.SVG_PAINTTYPE_RGBCOLOR*/ 1;
+          color = value;
+        } else if (value === "none") {
+          paintType = /*SVGPaint.SVG_PAINTTYPE_NONE*/ 101;
+        } else if (this._urlreg.test(value)) {                   //fill属性の値がurl(#id)ならば
+          paintType = /*SVGPaint.SVG_PAINTTYPE_URI*/ 107;
+          uri = RegExp.$1;
         } else if (value === "currentColor") {
-          paintType = SVGPaint.SVG_PAINTTYPE_CURRENTCOLOR;
+          paintType = /*SVGPaint.SVG_PAINTTYPE_CURRENTCOLOR*/ 102;
           color = this.getPropertyValue("color");
-        } else {
-          var _urlreg = /url\(#([^)]+)/;
-          if (_urlreg.test(value)) {                   //fill属性の値がurl(#id)ならば
-            paintType = SVGPaint.SVG_PAINTTYPE_URI;
-            uri = RegExp.$1;
-          } else {
-            paintType = SVGPaint.SVG_PAINTTYPE_RGBCOLOR;
-            color = value;
-          }
         }
         ti.setPaint(paintType, uri, color, null);
-        paintType = uri = color = null;
+        paintType = v1 = uri = color = null;
       } else if (propertyName === "color") {
         ti = new CSSPrimitiveValue();
         fill = this.getPropertyCSSValue("fill");




Sie-announce メーリングリストの案内
Back to archive index