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メソッド