[Sie-announce] SIEコード [2474] 各々の要素オブジェクトで、DOMNodeInsertedイベントが発火されたときの処理にバグがあったので、それを修正

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2011年 3月 12日 (土) 23:51:35 JST


Revision: 2474
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2474
Author:   dhrname
Date:     2011-03-12 23:51:35 +0900 (Sat, 12 Mar 2011)

Log Message:
-----------
各々の要素オブジェクトで、DOMNodeInsertedイベントが発火されたときの処理にバグがあったので、それを修正

Modified Paths:
--------------
    branches/07x/072/org/w3c/dom/svg.js

Modified: branches/07x/072/org/w3c/dom/svg.js
===================================================================
--- branches/07x/072/org/w3c/dom/svg.js	2011-03-12 13:13:51 UTC (rev 2473)
+++ branches/07x/072/org/w3c/dom/svg.js	2011-03-12 14:51:35 UTC (rev 2474)
@@ -1334,35 +1334,31 @@
    */
   this.addEventListener("DOMNodeInserted", function(evt){
     var tar = evt.target;
-    if (evt.eventPhase === Event.BUBBLING_PHASE) {
+    if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) {
       return; //強制終了させる
     }
-    var tnext = tar.nextSibling, tpar = tar.parentNode;
-    if (tnext && !!tpar._tar) {
-      if (!!!tnext._tar) {
-        /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
-         *use要素や実体参照などは_tarプロパティがないことに注意
-         */
-        var isLast = true;
-        while (tnext) {
-          if (!!tnext._tar) {
-            tpar._tar.insertBefore(tar._tar, tnext._tar);
-            isLast = false;
-          }          
-          tnext = tnext.nextSibling;
-        }
-        if (isLast) {
-          tpar._tar.appendChild(tar._tar);
-        }
-        isLast = null;
-      } else {
-        tpar._tar.insertBefore(tar._tar, tnext._tar);
+    var tnext = tar.nextSibling, tpar = tar.parentNode, isLast = true;
+    if (tnext && tnext._tar && tpar._tar && (tnext._tar.parentNode === tpar._tar)) {
+      tpar._tar.insertBefore(tar._tar, tnext._tar);
+    } else if (tnext && !tnext._tar && tpar._tar) {
+      /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
+       *use要素や実体参照などは_tarプロパティがないことに注意
+       */
+      while (tnext) {
+        if (tnext._tar && (tnext._tar.parentNode === tpar._tar)) {
+          tpar._tar.insertBefore(tar._tar, tnext._tar);
+          isLast = false;
+        } 
+        tnext = tnext.nextSibling;
       }
-    } else if (!!tpar._tar){
-      tpar._tar.appendChild(tar._tar);
+      if (isLast) {
+        tpar._tar.appendChild(tar._tar);
+      }
+    } else if (!tnext && tpar._tar) {
+      tpar._tar.appendChild(tar._tar);      
     }
-    tnext = tpar = null;
-    evt.target.addEventListener("DOMAttrModified", function(evt){
+    tnext = tpar = isLast = null;
+    tar.addEventListener("DOMAttrModified", function(evt){
       if (evt.eventPhase === Event.BUBBLING_PHASE) {
         return; //強制終了させる
       }
@@ -2696,34 +2692,30 @@
    */
   this.addEventListener("DOMNodeInserted", function(evt){
     var tar = evt.target;
-    if (evt.eventPhase === Event.BUBBLING_PHASE) {
+    if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) {
       return; //強制終了させる
     }
-    var tnext = tar.nextSibling, tpar = tar.parentNode;
-    if (tnext && !!tpar._tar) {
-      if (!!!tnext._tar) {
-        /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
-         *use要素や実体参照などは_tarプロパティがないことに注意
-         */
-        var isLast = true;
-        while (tnext) {
-          if (!!tnext._tar) {
-            tpar._tar.insertBefore(tar._tar, tnext._tar);
-            isLast = false;
-          }          
-          tnext = tnext.nextSibling;
-        }
-        if (isLast) {
-          tpar._tar.appendChild(tar._tar);
-        }
-        isLast = null;
-      } else {
-        tpar._tar.insertBefore(tar._tar, tnext._tar);
+    var tnext = tar.nextSibling, tpar = tar.parentNode, isLast = true;
+    if (tnext && tnext._tar && tpar._tar && (tnext._tar.parentNode === tpar._tar)) {
+      tpar._tar.insertBefore(tar._tar, tnext._tar);
+    } else if (tnext && !tnext._tar && tpar._tar) {
+      /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
+       *use要素や実体参照などは_tarプロパティがないことに注意
+       */
+      while (tnext) {
+        if (tnext._tar && (tnext._tar.parentNode === tpar._tar)) {
+          tpar._tar.insertBefore(tar._tar, tnext._tar);
+          isLast = false;
+        } 
+        tnext = tnext.nextSibling;
       }
-    } else if (!!tpar._tar){
-      tpar._tar.appendChild(tar._tar);
+      if (isLast) {
+        tpar._tar.appendChild(tar._tar);
+      }
+    } else if (!tnext && tpar._tar) {
+      tpar._tar.appendChild(tar._tar);      
     }
-    tnext = tpar = null;
+    tnext = tpar = isLast = null;
     tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt){
       /*以下の処理は、normalizedpathSegListとCTMに基づいて、
        *SVGのd属性をVMLに変換していく処理である。
@@ -3051,35 +3043,31 @@
   /*readonly SVGAnimatedLength*/ this.rx = new SVGAnimatedLength();
   /*readonly SVGAnimatedLength*/ this.ry = new SVGAnimatedLength();
   this.addEventListener("DOMNodeInserted", function(evt){
-    if (evt.eventPhase === Event.BUBBLING_PHASE) {
+    var tar = evt.target;
+    if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) {
       return; //強制終了させる
     }
-    var tar = evt.target;
-    var tnext = tar.nextSibling, tpar = tar.parentNode;
-    if (tnext && !!tpar._tar) {
-      if (!!!tnext._tar) {
-        /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
-         *use要素や実体参照などは_tarプロパティがないことに注意
-         */
-        var isLast = true;
-        while (tnext) {
-          if (!!tnext._tar) {
-            tpar._tar.insertBefore(tar._tar, tnext._tar);
-            isLast = false;
-          }          
-          tnext = tnext.nextSibling;
-        }
-        if (isLast) {
-          tpar._tar.appendChild(tar._tar);
-        }
-        isLast = null;
-      } else {
-        tpar._tar.insertBefore(tar._tar, tnext._tar);
+    var tnext = tar.nextSibling, tpar = tar.parentNode, isLast = true;
+    if (tnext && tnext._tar && tpar._tar && (tnext._tar.parentNode === tpar._tar)) {
+      tpar._tar.insertBefore(tar._tar, tnext._tar);
+    } else if (tnext && !tnext._tar && tpar._tar) {
+      /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
+       *use要素や実体参照などは_tarプロパティがないことに注意
+       */
+      while (tnext) {
+        if (tnext._tar && (tnext._tar.parentNode === tpar._tar)) {
+          tpar._tar.insertBefore(tar._tar, tnext._tar);
+          isLast = false;
+        } 
+        tnext = tnext.nextSibling;
       }
-    } else if (!!tpar._tar){
-      tpar._tar.appendChild(tar._tar);
+      if (isLast) {
+        tpar._tar.appendChild(tar._tar);
+      }
+    } else if (!tnext && tpar._tar) {
+      tpar._tar.appendChild(tar._tar);      
     }
-    tnext = tpar = null;
+    tnext = tpar = isLast = null;
     tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) {
       var tar = evt.target, style = tar.ownerDocument.defaultView.getComputedStyle(tar, "");
       var fontSize = parseFloat(style.getPropertyValue("font-size"));
@@ -3152,35 +3140,31 @@
   /*readonly SVGAnimatedLength*/ this.cy = new SVGAnimatedLength();
   /*readonly SVGAnimatedLength*/ this.r = new SVGAnimatedLength();
   this.addEventListener("DOMNodeInserted", function(evt){
-    if (evt.eventPhase === Event.BUBBLING_PHASE) {
+    var tar = evt.target;
+    if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) {
       return; //強制終了させる
     }
-    var tar = evt.target;
-    var tnext = tar.nextSibling, tpar = tar.parentNode;
-    if (tnext && !!tpar._tar) {
-      if (!!!tnext._tar) {
-        /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
-         *use要素や実体参照などは_tarプロパティがないことに注意
-         */
-        var isLast = true;
-        while (tnext) {
-          if (!!tnext._tar) {
-            tpar._tar.insertBefore(tar._tar, tnext._tar);
-            isLast = false;
-          }          
-          tnext = tnext.nextSibling;
-        }
-        if (isLast) {
-          tpar._tar.appendChild(tar._tar);
-        }
-        isLast = null;
-      } else {
-        tpar._tar.insertBefore(tar._tar, tnext._tar);
+    var tnext = tar.nextSibling, tpar = tar.parentNode, isLast = true;
+    if (tnext && tnext._tar && tpar._tar && (tnext._tar.parentNode === tpar._tar)) {
+      tpar._tar.insertBefore(tar._tar, tnext._tar);
+    } else if (tnext && !tnext._tar && tpar._tar) {
+      /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
+       *use要素や実体参照などは_tarプロパティがないことに注意
+       */
+      while (tnext) {
+        if (tnext._tar && (tnext._tar.parentNode === tpar._tar)) {
+          tpar._tar.insertBefore(tar._tar, tnext._tar);
+          isLast = false;
+        } 
+        tnext = tnext.nextSibling;
       }
-    } else if (!!tpar._tar){
-      tpar._tar.appendChild(tar._tar);
+      if (isLast) {
+        tpar._tar.appendChild(tar._tar);
+      }
+    } else if (!tnext && tpar._tar) {
+      tpar._tar.appendChild(tar._tar);      
     }
-    tnext = tpar = null;
+    tnext = tpar = isLast = null;
     tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) {
       var tar = evt.target, style = tar.ownerDocument.defaultView.getComputedStyle(tar, "");
       var fontSize = parseFloat(style.getPropertyValue("font-size"));
@@ -3233,35 +3217,31 @@
   /*readonly SVGAnimatedLength*/ this.rx = new SVGAnimatedLength();
   /*readonly SVGAnimatedLength*/ this.ry = new SVGAnimatedLength();
   this.addEventListener("DOMNodeInserted", function(evt){
-    if (evt.eventPhase === Event.BUBBLING_PHASE) {
+    var tar = evt.target;
+    if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) {
       return; //強制終了させる
     }
-    var tar = evt.target;
-    var tnext = tar.nextSibling, tpar = tar.parentNode;
-    if (tnext && !!tpar._tar) {
-      if (!!!tnext._tar) {
-        /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
-         *use要素や実体参照などは_tarプロパティがないことに注意
-         */
-        var isLast = true;
-        while (tnext) {
-          if (!!tnext._tar) {
-            tpar._tar.insertBefore(tar._tar, tnext._tar);
-            isLast = false;
-          }          
-          tnext = tnext.nextSibling;
-        }
-        if (isLast) {
-          tpar._tar.appendChild(tar._tar);
-        }
-        isLast = null;
-      } else {
-        tpar._tar.insertBefore(tar._tar, tnext._tar);
+    var tnext = tar.nextSibling, tpar = tar.parentNode, isLast = true;
+    if (tnext && tnext._tar && tpar._tar && (tnext._tar.parentNode === tpar._tar)) {
+      tpar._tar.insertBefore(tar._tar, tnext._tar);
+    } else if (tnext && !tnext._tar && tpar._tar) {
+      /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
+       *use要素や実体参照などは_tarプロパティがないことに注意
+       */
+      while (tnext) {
+        if (tnext._tar && (tnext._tar.parentNode === tpar._tar)) {
+          tpar._tar.insertBefore(tar._tar, tnext._tar);
+          isLast = false;
+        } 
+        tnext = tnext.nextSibling;
       }
-    } else if (!!tpar._tar){
-      tpar._tar.appendChild(tar._tar);
+      if (isLast) {
+        tpar._tar.appendChild(tar._tar);
+      }
+    } else if (!tnext && tpar._tar) {
+      tpar._tar.appendChild(tar._tar);      
     }
-    tnext = tpar = null;
+    tnext = tpar = isLast = null;
     tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) {
       var tar = evt.target, style = tar.ownerDocument.defaultView.getComputedStyle(tar, "");
       var fontSize = parseFloat(style.getPropertyValue("font-size"));
@@ -3315,35 +3295,31 @@
   /*readonly SVGAnimatedLength*/ this.x2 = new SVGAnimatedLength();
   /*readonly SVGAnimatedLength*/ this.y2 = new SVGAnimatedLength();
   this.addEventListener("DOMNodeInserted", function(evt){
-    if (evt.eventPhase === Event.BUBBLING_PHASE) {
+    var tar = evt.target;
+    if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) {
       return; //強制終了させる
     }
-    var tar = evt.target;
-    var tnext = tar.nextSibling, tpar = tar.parentNode;
-    if (tnext && !!tpar._tar) {
-      if (!!!tnext._tar) {
-        /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
-         *use要素や実体参照などは_tarプロパティがないことに注意
-         */
-        var isLast = true;
-        while (tnext) {
-          if (!!tnext._tar) {
-            tpar._tar.insertBefore(tar._tar, tnext._tar);
-            isLast = false;
-          }          
-          tnext = tnext.nextSibling;
-        }
-        if (isLast) {
-          tpar._tar.appendChild(tar._tar);
-        }
-        isLast = null;
-      } else {
-        tpar._tar.insertBefore(tar._tar, tnext._tar);
+    var tnext = tar.nextSibling, tpar = tar.parentNode, isLast = true;
+    if (tnext && tnext._tar && tpar._tar && (tnext._tar.parentNode === tpar._tar)) {
+      tpar._tar.insertBefore(tar._tar, tnext._tar);
+    } else if (tnext && !tnext._tar && tpar._tar) {
+      /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
+       *use要素や実体参照などは_tarプロパティがないことに注意
+       */
+      while (tnext) {
+        if (tnext._tar && (tnext._tar.parentNode === tpar._tar)) {
+          tpar._tar.insertBefore(tar._tar, tnext._tar);
+          isLast = false;
+        } 
+        tnext = tnext.nextSibling;
       }
-    } else if (!!tpar._tar){
-      tpar._tar.appendChild(tar._tar);
+      if (isLast) {
+        tpar._tar.appendChild(tar._tar);
+      }
+    } else if (!tnext && tpar._tar) {
+      tpar._tar.appendChild(tar._tar);      
     }
-    tnext = tpar = null;
+    tnext = tpar = isLast = null;
     tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) {
       var tar = evt.target, style = tar.ownerDocument.defaultView.getComputedStyle(tar, "");
       var fontSize = parseFloat(style.getPropertyValue("font-size"));
@@ -3403,35 +3379,31 @@
     evt = tar = list = tp = par = p = null;
   }, false);
   this.addEventListener("DOMNodeInserted", function(evt){
-    if (evt.eventPhase === Event.BUBBLING_PHASE) {
+    var tar = evt.target;
+    if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) {
       return; //強制終了させる
     }
-    var tar = evt.target;
-    var tnext = tar.nextSibling, tpar = tar.parentNode;
-    if (tnext && !!tpar._tar) {
-      if (!!!tnext._tar) {
-        /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
-         *use要素や実体参照などは_tarプロパティがないことに注意
-         */
-        var isLast = true;
-        while (tnext) {
-          if (!!tnext._tar) {
-            tpar._tar.insertBefore(tar._tar, tnext._tar);
-            isLast = false;
-          }          
-          tnext = tnext.nextSibling;
-        }
-        if (isLast) {
-          tpar._tar.appendChild(tar._tar);
-        }
-        isLast = null;
-      } else {
-        tpar._tar.insertBefore(tar._tar, tnext._tar);
+    var tnext = tar.nextSibling, tpar = tar.parentNode, isLast = true;
+    if (tnext && tnext._tar && tpar._tar && (tnext._tar.parentNode === tpar._tar)) {
+      tpar._tar.insertBefore(tar._tar, tnext._tar);
+    } else if (tnext && !tnext._tar && tpar._tar) {
+      /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
+       *use要素や実体参照などは_tarプロパティがないことに注意
+       */
+      while (tnext) {
+        if (tnext._tar && (tnext._tar.parentNode === tpar._tar)) {
+          tpar._tar.insertBefore(tar._tar, tnext._tar);
+          isLast = false;
+        } 
+        tnext = tnext.nextSibling;
       }
-    } else if (!!tpar._tar){
-      tpar._tar.appendChild(tar._tar);
+      if (isLast) {
+        tpar._tar.appendChild(tar._tar);
+      }
+    } else if (!tnext && tpar._tar) {
+      tpar._tar.appendChild(tar._tar);      
     }
-    tnext = tpar = null;
+    tnext = tpar = isLast = null;
     tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) {
       var tar = evt.target, tp = tar.points;
       //以下は、配列listそのものをCTMで座標変換していく処理
@@ -3879,38 +3851,31 @@
   SVGTextPositioningElement.apply(this);
   this._tar = document.createElement("v:group");
   this.addEventListener("DOMNodeInserted", function(evt){
-    if (evt.eventPhase === Event.BUBBLING_PHASE) {
+    if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) {
       return; //強制終了させる
     }
     var tar = evt.target;
-    var ttp = tar._tar;
-    if (ttp) {
-      var tnext = tar.nextSibling, tpar = tar.parentNode;
-      if (tnext && !!tpar._tar) {
-        if (!!!tnext._tar) {
-          /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
-           *use要素や実体参照などは_tarプロパティがないことに注意
-           */
-          var isLast = true;
-          while (tnext) {
-            if (!!tnext._tar) {
-              tpar._tar.insertBefore(tar._tar, tnext._tar);
-              isLast = false;
-            }          
-            tnext = tnext.nextSibling;
-          }
-          if (isLast) {
-            tpar._tar.appendChild(tar._tar);
-          }
-          isLast = null;
-        } else {
+    var tnext = tar.nextSibling, tpar = tar.parentNode, isLast = true;
+    if (tnext && tnext._tar && tpar._tar && (tnext._tar.parentNode === tpar._tar)) {
+      tpar._tar.insertBefore(tar._tar, tnext._tar);
+    } else if (tnext && !tnext._tar && tpar._tar) {
+      /*以下の処理は、_tarプロパティがない要素オブジェクトがあるため、それに対処するもの
+       *use要素や実体参照などは_tarプロパティがないことに注意
+       */
+      while (tnext) {
+        if (tnext._tar && (tnext._tar.parentNode === tpar._tar)) {
           tpar._tar.insertBefore(tar._tar, tnext._tar);
-        }
-      } else if (!!tpar._tar){
+          isLast = false;
+        } 
+        tnext = tnext.nextSibling;
+      }
+      if (isLast) {
         tpar._tar.appendChild(tar._tar);
       }
-      tnext = tpar = null;
+    } else if (!tnext && tpar._tar) {
+      tpar._tar.appendChild(tar._tar);      
     }
+    tnext = tpar = isLast = null;
     tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) {
       var tar = evt.target, ti = tar.firstChild, ttp = tar._tar;
       ttp.style.cssText = tar.style.cssText;




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