[Sie-announce] SIEコード [2500] eventモジュールに関して、var文を整理

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2011年 3月 22日 (火) 23:28:00 JST


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

Log Message:
-----------
eventモジュールに関して、var文を整理

Modified Paths:
--------------
    branches/07x/073/org/w3c/dom/events.js

Modified: branches/07x/073/org/w3c/dom/events.js
===================================================================
--- branches/07x/073/org/w3c/dom/events.js	2011-03-22 14:27:11 UTC (rev 2499)
+++ branches/07x/073/org/w3c/dom/events.js	2011-03-22 14:28:00 UTC (rev 2500)
@@ -111,19 +111,20 @@
 /*void*/  Node.prototype.addEventListener = function( /*string*/ type, /*EventListener*/ listener, /*boolean*/ useCapture) {
   try{
     this.removeEventListener(type, listener, useCapture);  //いったん、(あれば)リスナーを離す。
-    var s = new EventListener(useCapture, type, listener); //リスナーを作成
+    var s = new EventListener(useCapture, type, listener), //リスナーを作成
+        t = type.charAt(0),
+        node, evt;
     this._capter[this._capter.length] = s;                 //このノードにリスナーを登録しておく
-    var t = type.charAt(0);
     if (t !== "D" && t !== "S" && type !== "beginEvent" && type !== "endEvent" && type !== "repeatEvent") { //MouseEventsならば
-      var node = this;
+      node = this;
       node._tar.attachEvent("on" +type, function(){
-        var evt = node.ownerDocument.createEvent("MouseEvents");
+        evt = node.ownerDocument.createEvent("MouseEvents");
         evt.initMouseEvent(type, true, true, node.ownerDocument.defaultView, 0);
         node.dispatchEvent(evt);
         evt = null;
       });
     }
-    s = t = null;
+    s = t = node = null;
   }catch(e){
     stlog.add(e, 122);
   }
@@ -135,11 +136,17 @@
       tce[i] = null;
     }
   }
+  i = tcli = tce = null;
 };
 /*boolean*/  Node.prototype.dispatchEvent = function( /*Event*/ evt) {
   if (!evt.type || evt.type === "") { //Eventの型が設定されていないとき
     throw new EventException(EventException.UNSPECIFIED_EVENT_TYPE_ERR);
   }
+  var te = this,
+      td = this.ownerDocument,
+      time, tob,
+      type = /*Event.CAPTURING_PHASE*/ 1,
+      tce;
   if (!this.ownerDocument._isLoaded) {
     /*以下では、画像の処理に時間がかかりそうな場合、処理落ちとして、遅延処理
      *を行い、バッファリングにイベント送付処理をためていく作業となる
@@ -150,11 +157,11 @@
     if (!this.ownerDocument._limit_time_) {
       this.ownerDocument._limit_time_ = evt.timeStamp;
     } else {
-      var time = this.ownerDocument._limit_time_;
+      time = this.ownerDocument._limit_time_;
       if ((evt.timeStamp - time) > 1000) {
         if (this.ownerDocument.implementation._buffer_) {
           /*1秒を超えたらバッファにため込んで後で使う*/
-          var tob = this.ownerDocument.implementation._buffer_;
+          tob = this.ownerDocument.implementation._buffer_;
           tob[tob.length] = this;
           tob[tob.length] = evt;
         } else {
@@ -166,9 +173,7 @@
   }
   evt.target = this;
   evt.eventPhase = 1;//Event.CAPTURING_PHASE
-  var te = this;
   //このノードからドキュメントノードにいたるまでの、DOMツリーのリストを作成しておく
-  var td = this.ownerDocument;
   td[/*Event.BUBBLING_PHASE*/ 3] = null;
   /*以下の処理では、documentElementのparentNodeが
    *Documentノードではなく、nullになっていることを前提としている。
@@ -184,20 +189,18 @@
   /*最初に捕獲フェーズでDOMツリーを下っていき、イベントのターゲットについたら、
    *そこで、浮上フェーズとして折り返すように、反復処理をおこなう。
    */
-  var type = /*Event.CAPTURING_PHASE*/ 1;
   while (td) {
     evt.currentTarget = td;
     if (td === this) { //イベントのターゲットに到着(折り返し地点)
       type = 2;//Event.AT_TARGET;
     }
     evt.eventPhase = type;
-    var tce = td._capter; //tceは登録しておいたリスナーのリスト
+    tce = td._capter; //tceは登録しておいたリスナーのリスト
     for (var j=0,tcli=tce.length;j<tcli;++j){
       if (tce[j] && (evt.type === tce[j]._type)) {
         tce[j].handleEvent(evt);
       }
     }
-    j = tcli = null;
     if (evt._stop) {
       break; //stopPropagationメソッドが呼ばれたら、停止する
     }
@@ -210,7 +213,7 @@
     td = td[type];
   }
   var ed = evt._default
-  evt = te = s = d = tce = n = td = type = null;
+  evt = te = tce = n = td = type = time = tob = j = tcli =null;
   return ed;
 };
 
@@ -400,7 +403,10 @@
 };
 
 /*Node*/ Node.prototype.insertBefore = function( /*Node*/ n, ref) {
-  var tp = this.parentNode;
+  var tp = this.parentNode,
+      rp, evt,
+      te = this,
+      s, descend, di;
   if (tp) {
     while (!tp) {                              //先祖をたどっていく
       if (tp === n) {                          //先祖要素が追加ノードならばエラー
@@ -426,7 +432,7 @@
       throw (new DOMException(DOMException.NOT_FOUND_ERR));
     }
     this.childNodes.splice(ref._num,1,n,ref);   //Arrayのspliceを利用して、リストにnノードを追加
-    var rp = ref.previousSibling;
+    rp = ref.previousSibling;
     if (rp) {
       rp.nextSibling = n;
     }
@@ -447,14 +453,13 @@
     ch = null;
   }
   /*ここから*/
-  var evt = this.ownerDocument.createEvent("MutationEvents");
+  evt = this.ownerDocument.createEvent("MutationEvents");
   evt.initMutationEvent("DOMNodeInserted", true, false, this, null, null, null, null);
   n.dispatchEvent(evt);
   /*以下のDOMNodeInsertedIntoDocumentイベントは、間接的、あるいは直接ノードが
    *挿入されたときに発火する。間接的な挿入とは、サブツリーを作っておいて、それをいっぺんに挿入する場合など。
    *このイベントは浮上しないことに注意を要する
    */
-  var te = this, s;
   do {
     s = te;
     te = te.parentNode;
@@ -469,16 +474,17 @@
   if (!n.hasChildNodes()) {                       //子ノードがないので終了
     return n;
   }
-  var descend = n.getElementsByTagNameNS("*", "*"); //全子孫要素を取得
+  descend = n.getElementsByTagNameNS("*", "*"); //全子孫要素を取得
   if (descend) {
     for (var i=0,dli=descend.length;i<dli;++i) {
-      var di = descend[i];
+      di = descend[i];
       di.dispatchEvent(evt);
       di = null;
     }
   }
   evt = descend = null;
   /*ここまで追加*/
+  tp = rp = te = s = di = null;
   return n;
 };
 
@@ -520,40 +526,43 @@
 };
 
 /*void*/ CharacterData.prototype.appendData = function( /*string*/ arg) {
-  var pd = this.data;
+  var pd = this.data,
+      evt;
   this.data += arg;
   this.length = this.data.length;
   /*ここから*/
-  var evt = this.ownerDocument.createEvent("MutationEvents");
+  evt = this.ownerDocument.createEvent("MutationEvents");
   evt.initMutationEvent("DOMCharacterDataModified", true, false, null, pd, this.data, null, null);
   this.parentNode.dispatchEvent(evt);
   evt = arg = pd = null;
   /*ここまで追加*/
 };
 /*void*/ CharacterData.prototype.insertData = function( /*long*/ offset, /*string*/ arg) {
-  var pd = this.data;
-  var pre = this.substring(0, offset - 1);                 //文字列を二つに分けた、前半部分
-  var next = this.substring(offset, this.length - offset); //後半部分
+  var pd = this.data,
+      pre = this.substring(0, offset - 1),                 //文字列を二つに分けた、前半部分
+      next = this.substring(offset, this.length - offset), //後半部分
+      evt;
   this.data = pre + this.data + next;
   this.length = this.data.length;
   /*ここから*/
-  var evt = this.ownerDocument.createEvent("MutationEvents");
+  evt = this.ownerDocument.createEvent("MutationEvents");
   evt.initMutationEvent("DOMCharacterDataModified", true, false, null, pd, this.data, null, null);
   this.parentNode.dispatchEvent(evt);
-  evt = arg = pd = null;
+  evt = arg = pd = pre = next = null;
   /*ここまで追加*/
 };
 /*void*/ CharacterData.prototype.deleteData = function( /*long*/ offset, /*long*/ count) {
   var pd = this.data;
-  var pre = this.substring(0, offset - 1);                    //残すべき前半部分
-  var next = this.substring(offset + count, this.length - 1); //後半部分
+      pre = this.substring(0, offset - 1),                    //残すべき前半部分
+      next = this.substring(offset + count, this.length - 1), //後半部分
+      evt;
   if (offset + count > this.length) {                         //offsetとcountの和が文字全体の長さを超える場合、offsetから最後までのを削除
     next = "";
   }
   this.data = pre + next;
   this.length = this.data.length;
   /*ここから*/
-  var evt = this.ownerDocument.createEvent("MutationEvents");
+  evt = this.ownerDocument.createEvent("MutationEvents");
   evt.initMutationEvent("DOMCharacterDataModified", true, false, null, pd, this.data, null, null);
   this.parentNode.dispatchEvent(evt);
   evt = pd = null;




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