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;