[Sie-announce] SIEコード [1904] イベントの効率化とバグの修正

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2010年 6月 19日 (土) 23:54:51 JST


Revision: 1904
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1904
Author:   dhrname
Date:     2010-06-19 23:54:51 +0900 (Sat, 19 Jun 2010)

Log Message:
-----------
イベントの効率化とバグの修正

Modified Paths:
--------------
    branches/06x/061/org/w3c/dom/events.js

Modified: branches/06x/061/org/w3c/dom/events.js
===================================================================
--- branches/06x/061/org/w3c/dom/events.js	2010-06-19 14:45:01 UTC (rev 1903)
+++ branches/06x/061/org/w3c/dom/events.js	2010-06-19 14:54:51 UTC (rev 1904)
@@ -390,7 +390,6 @@
   n.parentNode = this;
   /*ここから*/
   var evt = this.ownerDocument.createEvent("MutationEvents");
-  evt.target = n;
   evt.initMutationEvent("DOMNodeInserted", true, false, this, null, null, null, null);
   n.dispatchEvent(evt);
   /*以下のDOMNodeInsertedIntoDocumentイベントは、間接的、あるいは直接ノードが
@@ -398,7 +397,6 @@
    *このイベントは浮上しないことに注意を要する
    */
   evt = this.ownerDocument.createEvent("MutationEvents");
-  evt.target = n;
   evt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
   n.dispatchEvent(evt);
   if (!n.hasChildNodes()) {                       //子ノードがないので終了
@@ -406,14 +404,14 @@
   }
   var descend = n.getElementsByTagNameNS("*", "*"); //全子孫要素を取得
   if (descend) {
+    evt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
     for (var i=0,dli=descend.length;i<dli;++i) {
       var di = descend[i];
       evt.target = di;
-      evt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
       var tce = di._capter; //tceは登録しておいたリスナーのリスト
       for (var j=0,tcli=tce.length;j<tcli;++j){
         if (tce[j]) {
-          tce[j].handleEvent(evtt);
+          tce[j].handleEvent(evt);
         }
       }
       j = tcli = di = null;
@@ -430,25 +428,22 @@
   }
   /*ここから*/
   var evt = this.ownerDocument.createEvent("MutationEvents");
-  evt.target = ele;
   /*以下のDOMNodeRemovedFromDocumentイベントは、間接的、あるいは直接ノードが
    *除去されたときに発火する。間接的な除去とは、サブツリーをいっぺんに除去する場合など。
    *このイベントは浮上しないことに注意を要する
    */
   evt.initMutationEvent("DOMNodeRemovedFromDocument", false, false, null, null, null, null, null);
-  n.dispatchEvent(evt);
+  ele.dispatchEvent(evt);
   var descend = n.getElementsByTagNameNS("*", "*"); //全子孫要素を取得
   if (descend) {
+    evt.initMutationEvent("DOMNodeRemovedFromDocument", false, false, null, null, null, null, null);
     for (var i=0,dli=descend.length;i<dli;++i) {
       var di = descend[i];
       evt.target = di;
-      evt.initMutationEvent("DOMNodeRemovedFromDocument", false, false, null, null, null, null, null);
       di.dispatchEvent(evt);
       di = null;
     }
   }
-  evt = this.ownerDocument.createEvent("MutationEvents");
-  evt.target = ele;
   evt.initMutationEvent("DOMNodeRemoved", true, false, this, null, null, null, null);
   ele.dispatchEvent(evt);
   evt = descend = null;
@@ -470,9 +465,8 @@
   this.length = this.data.length;
   /*ここから*/
   var evt = this.ownerDocument.createEvent("MutationEvents");
-  evt.target = this.parentNode;
   evt.initMutationEvent("DOMCharacterDataModified", true, false, null, pd, this.data, null, null);
-  ele.dispatchEvent(evt);
+  this.parentNode.dispatchEvent(evt);
   evt = arg = pd = null;
   /*ここまで追加*/
 };
@@ -484,9 +478,8 @@
   this.length = this.data.length;
   /*ここから*/
   var evt = this.ownerDocument.createEvent("MutationEvents");
-  evt.target = this.parentNode;
   evt.initMutationEvent("DOMCharacterDataModified", true, false, null, pd, this.data, null, null);
-  ele.dispatchEvent(evt);
+  this.parentNode.dispatchEvent(evt);
   evt = arg = pd = null;
   /*ここまで追加*/
 };
@@ -501,9 +494,8 @@
   this.length = this.data.length;
   /*ここから*/
   var evt = this.ownerDocument.createEvent("MutationEvents");
-  evt.target = this.parentNode;
   evt.initMutationEvent("DOMCharacterDataModified", true, false, null, pd, this.data, null, null);
-  ele.dispatchEvent(evt);
+  this.parentNode.dispatchEvent(evt);
   evt = pd = null;
   /*ここまで追加*/
 };




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