[Sie-announce] SIEコード [2160] var宣言について整理

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2010年 11月 18日 (木) 20:59:01 JST


Revision: 2160
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2160
Author:   dhrname
Date:     2010-11-18 20:59:00 +0900 (Thu, 18 Nov 2010)

Log Message:
-----------
var宣言について整理

Modified Paths:
--------------
    branches/06x/064/org/w3c/core.js

Modified: branches/06x/064/org/w3c/core.js
===================================================================
--- branches/06x/064/org/w3c/core.js	2010-11-18 11:25:46 UTC (rev 2159)
+++ branches/06x/064/org/w3c/core.js	2010-11-18 11:59:00 UTC (rev 2160)
@@ -242,7 +242,7 @@
  *指定したrefノードの前に、新たなnノードを入れる。貼り付け(ペースト)機能。
  */
 /*Node*/ insertBefore : function( /*Node*/ n, ref) {
-  var tp = this.parentNode;
+  var tp = this.parentNode, rp;
   if (tp) {
     while (!tp) {                              //先祖をたどっていく
       if (tp === n) {                          //先祖要素が追加ノードならばエラー
@@ -268,7 +268,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;
     }
@@ -278,6 +278,7 @@
   this.firstChild = this.childNodes[0];
   this.lastChild = this.childNodes[this.childNodes.length-1];
   n.parentNode = this;
+  tp = rp = ref = null;
   return n;
 },
 /*replaceChildメソッド
@@ -337,10 +338,10 @@
  *二つ以上の重複したテキストノードを一つにまとめる
  */
 /*void*/ normalize : function() {
-  var tcn = this.childNodes;
+  var tcn = this.childNodes, tcni, tcnip;
   try {
   for (var i=tcn.length-1;i<0;--i) {
-    var tcni = tcn[i], tcnip = tcni.nextSibling;
+    tcni = tcn[i], tcnip = tcni.nextSibling;
     if (tcnip) {
       if (tcni.nodeType === Node.TEXT_NODE && tcnip.nodeType === Node.TEXT_NODE) {
         tcni.appendData(tcnip.data);    //次ノードの文字列データを、現ノード文字列の後に付け加える
@@ -417,13 +418,16 @@
  *名前空間と名前を使って、ノードの集合から特定のノードを取り出す
  */
 /*Node*/ getNamedItemNS : function(/*string*/ namespaceURI, /*string*/ localName) {
+    var ta;
     for (var i=0,tali=this.length;i<tali;i++) {
-      var ta = this[i];
+      ta = this[i];
       if (ta.namespaceURI === namespaceURI && ta.localName === localName) { //名前空間と名前がそれぞれ一致すれば
         this._num = i;                                                      //場所をいったん記録しておく。(setNamedItemNSで使う)
+        i = tali = null;
         return ta;
       }
     }
+    ta = null;
     return null;
   },
 /*setNamedItemNSメソッド
@@ -434,6 +438,7 @@
     if (tgans) {                          //ノードがすでにあるならば、
       var s = this[this._num];
       this[this._num] = arg;
+      arg = null;
       return s;
     } else {
       if ( arg.ownerElement !== void 0) { //ノードがもはや別の要素で使われている
@@ -441,6 +446,7 @@
       }
       this[this.length] = arg;            //新たに、argを項目として追加する
       this.length +=  1;
+      arg = null;
       return null;
     }
   },
@@ -489,14 +495,12 @@
   this.length = this.data.length;
 };
 /*void*/ CharacterData.prototype.insertData = function( /*long*/ offset, /*string*/ arg) {
-  var pre = this.substring(0, offset - 1);                 //文字列を二つに分けた、前半部分
-  var next = this.substring(offset, this.length - offset); //後半部分
+  var pre = this.substring(0, offset - 1), next = this.substring(offset, this.length - offset); //文字列を二つに分けた、前半と後半部分
   this.data = pre + this.data + next;
   this.length = this.data.length;
 };
 /*void*/ CharacterData.prototype.deleteData = function( /*long*/ offset, /*long*/ count) {
-  var pre = this.substring(0, offset - 1);                    //残すべき前半部分
-  var next = this.substring(offset + count, this.length - 1); //後半部分
+  var pre = this.substring(0, offset - 1), next = this.substring(offset + count, this.length - 1); //残すべき前半と後半部分
   if (offset + count > this.length) {                         //offsetとcountの和が文字全体の長さを超える場合、offsetから最後までのを削除
     next = "";
   }
@@ -591,28 +595,26 @@
   return s;
 };
 /*NodeList(Array)*/ Element.prototype.getElementsByTagNameNS = function( /*string*/ namespaceURI, /*string*/ localName) {
-  var s = [], n = 0;
-  var tno = this.childNodes;
+  var s = [], n = 0, tno = this.childNodes, toni, d, ns, ln;
   for (var i=0,tcli = tno.length;i<tcli;i++) {
-    var tnoi = tno[i];
+    tnoi = tno[i];
     if (tnoi.nodeType === Node.ELEMENT_NODE) {
-      var ns = (namespaceURI === "*") ? tnoi.namespaceURI : namespaceURI;
-      var ln = (localName === "*") ? tnoi.localName : localName;
+      ns = (namespaceURI === "*") ? tnoi.namespaceURI : namespaceURI;
+      ln = (localName === "*") ? tnoi.localName : localName;
       if((tnoi.namespaceURI === ns) && (tnoi.localName === ln)) {
         s[n] = tnoi;
         n++;
       }
-      var d = tnoi.getElementsByTagNameNS(namespaceURI, localName);
+      d = tnoi.getElementsByTagNameNS(namespaceURI, localName);
       if (d) {
         for (var j=0,dli=d.length;j<dli;++j) {
           s[s.length] = d[j];
         }
-        n += d.length;
+        n += dli;
       }
-      ns = ln = d = null;
     }
   }
-  tno = i = j = tcli = dli = null;
+  tno = tnoi = d = i = j = tcli = dli = ns = ln = d = null;
   if (n === 0) {
     return null; //該当する要素なし
   }
@@ -969,6 +971,7 @@
     attr.localName = qualifiedName;
   }
   attr.ownerDocument = this;
+  namespaceURI = qualifiedName = null;
   return attr;
 };
 /*getElementsByTagNameNSメソッド




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