Author: nbelaevski
Date: 2008-01-25 19:37:14 -0500 (Fri, 25 Jan 2008)
New Revision: 5655
Modified:
branches/3.1.x/framework/impl/src/main/javascript/jquery/jquery-1.2.1.js
branches/3.1.x/framework/impl/src/main/javascript/jquery/jquery-1.2.1.min.js
branches/3.1.x/framework/impl/src/main/javascript/jquery/patches.js
Log:
JQuery memory cleaning code optimization
Modified: branches/3.1.x/framework/impl/src/main/javascript/jquery/jquery-1.2.1.js
===================================================================
--- branches/3.1.x/framework/impl/src/main/javascript/jquery/jquery-1.2.1.js 2008-01-26
00:00:01 UTC (rev 5654)
+++ branches/3.1.x/framework/impl/src/main/javascript/jquery/jquery-1.2.1.js 2008-01-26
00:37:14 UTC (rev 5655)
@@ -464,7 +464,8 @@
return target;
};
-var expando = "jQuery" + (new Date()).getTime(), uuid = 0, win = {};
+//modified by nick - added global expando property
+var expando = jQuery.expando = "jQuery" + (new Date()).getTime(), uuid = 0, win
= {};
jQuery.extend({
noConflict: function(deep) {
Modified: branches/3.1.x/framework/impl/src/main/javascript/jquery/jquery-1.2.1.min.js
===================================================================
---
branches/3.1.x/framework/impl/src/main/javascript/jquery/jquery-1.2.1.min.js 2008-01-26
00:00:01 UTC (rev 5654)
+++
branches/3.1.x/framework/impl/src/main/javascript/jquery/jquery-1.2.1.min.js 2008-01-26
00:37:14 UTC (rev 5655)
@@ -14,7 +14,7 @@
return this[0].value.replace(/\r/g,"");}}else
return
this.each(function(){if(val.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,val)>=0||jQuery.inArray(this.name,val)>=0);else
if(jQuery.nodeName(this,"select")){var
tmp=val.constructor==Array?val:[val];jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,tmp)>=0||jQuery.inArray(this.text,tmp)>=0);});if(!tmp.length)this.selectedIndex=-1;}else
this.value=val;});},html:function(val){return
val==undefined?(this.length?this[0].innerHTML:null):this.empty().append(val);},replaceWith:function(val){return
this.after(val).remove();},eq:function(i){return
this.slice(i,i+1);},slice:function(){return
this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(fn){return
this.pushStack(jQuery.map(this,function(elem,i){return
fn.call(elem,i,elem);}));},andSelf:function(){return
this.add(this.prevObject);},domManip:function(args,table,dir,fn){var
clone=this.length>1,a;return
this.each(function(){if(!a){a=jQuery.clean(args,this.ownerDocument);if(dir<0)a.reverse();}var
obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(a[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(document.createElement("tbody"));jQuery.each(a,function(){var
elem=clone?this.cloneNode(true):this;if(!evalScript(0,elem))fn.call(obj,elem);});});}};function
evalScript(i,elem){var script=jQuery.nodeName(elem,"scri!
pt");if(script){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
-jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}else
if(elem.nodeType==1)jQuery("script",elem).each(evalScript);return
script;}jQuery.extend=jQuery.fn.extend=function(){var
target=arguments[0]||{},a=1,al=arguments.length,deep=false;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};}if(al==1){target=this;a=0;}var
prop;for(;a<al;a++)if((prop=arguments[a])!=null)for(var i in
prop){if(target==prop[i])continue;if(deep&&typeof
prop[i]=='object'&&target[i])jQuery.extend(target[i],prop[i]);else
if(prop[i]!=undefined)target[i]=prop[i];}return target;};var
expando="jQuery"+(new
Date()).getTime(),uuid=0,win={};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return
jQuery;},isFunction:function(fn){return!!fn&&typeof
fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/function/i.test(fn+"");},isXMLDoc:function(elem){return
elem.documentElement&&!elem.body||elem.t!
agName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){if(window.execScript)window.execScript(data);else
if(jQuery.browser.safari)window.setTimeout(data,0);else
+jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}else
if(elem.nodeType==1)jQuery("script",elem).each(evalScript);return
script;}jQuery.extend=jQuery.fn.extend=function(){var
target=arguments[0]||{},a=1,al=arguments.length,deep=false;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};}if(al==1){target=this;a=0;}var
prop;for(;a<al;a++)if((prop=arguments[a])!=null)for(var i in
prop){if(target==prop[i])continue;if(deep&&typeof
prop[i]=='object'&&target[i])jQuery.extend(target[i],prop[i]);else
if(prop[i]!=undefined)target[i]=prop[i];}return target;};/*modified by nick - added global
expando property*/var expando = jQuery.expando = "jQuery" + (new
Date()).getTime(), uuid = 0, win =
{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return
jQuery;},isFunction:function(fn){return!!fn&&typeof
fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/function/i.test(f!
n+"");},isXMLDoc:function(elem){return
elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){if(window.execScript)window.execScript(data);else
if(jQuery.browser.safari)window.setTimeout(data,0);else
eval.call(window,data);}},nodeName:function(elem,name){return
elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?win:elem;var
id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!=undefined)jQuery.cache[id][name]=data;return
name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?win:elem;var
id=elem[expando];if(name){if(jQuery.cache[id]){delete
jQuery.cache[id][name];name="";for(name in
jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete
elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete
jQuery.cache[id];}},each:function(obj,fn,args){if(args){if(obj.length==undefined)for(var i
in obj)fn.apply(obj[i],args);else
for(var
i=0,ol=obj.length;i<ol;i++)if(fn.apply(obj[i],args)===false)break;}else{if(obj.length==undefined)for(var
i in obj)fn.call(obj[i],i,obj[i]);else
for(var
i=0,ol=obj.length,val=obj[0];i<ol&&fn.call(val,i,val)!==false;val=obj[++i]){}}return
obj;},prop:function(elem,value,type,index,prop){if(jQuery.isFunction(value))value=value.call(elem,[index]);var
exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i;return
value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(prop)?value+"px":value;},className:{add:function(elem,c){jQuery.each((c||"").split(/\s+/),function(i,cur){if(!jQuery.className.has(elem.className,cur))elem.className+=(elem.className?"
":"")+cur;});},remove:function(elem,c){elem.className=c!=undefined?jQuery.grep(elem.className.split(/\s+/),function(cur){return!jQuery.className.has(c,cur);}).join("
"):"";},has:function(t,c){return
jQuery.inArray(c,(t.className||t).toString().split(/\s+/))>-1;}},swap:function(e,o,f){for(var
i in o){e.style["old"+i]=e.style[i];e.style[i]=o[i];}f.apply(e,[]);for(var i in
o)e.style[i]=e.style["old"+i];},css:function(e,p){if(p=="height"||p=="width"){var
old={},oHeight!
,oWidth,d=["Top","Bottom","Right","Left"];jQuery.each(d,function(){old["padding"+this]=0;old["border"+this+"Width"]=0;});jQuery.swap(e,old,function(){if(jQuery(e).is(':visible')){oHeight=e.offsetHeight;oWidth=e.offsetWidth;}else{e=jQuery(e.cloneNode(true)).find(":radio").removeAttr("checked").end().css({visibility:"hidden",position:"absolute",display:"block",right:"0",left:"0"}).appendTo(e.parentNode)[0];var
parPos=jQuery.css(e.parentNode,"position")||"static";if(parPos=="static")e.parentNode.style.position="relative";oHeight=e.clientHeight;oWidth=e.clientWidth;if(parPos=="static")e.parentNode.style.position="static";e.parentNode.removeChild(e);}});return
p=="height"?oHeight:oWidth;}return
jQuery.curCSS(e,p);},curCSS:function(elem,prop,force){var ret,stack=[],swap=[];function
color(a){if(!jQuery.browser.safari)return false;var
ret=document.defaultView.getComputedStyle(a,null);return!ret||ret.getPropertyValue("color")=="";}if(prop=="opacity"&&jQuery.browser.msie){ret=jQuery.!
attr(elem.style,"opacity");return
ret==""?"1":ret;}if(prop.match(/floa
t/i))prop=styleFloat;if(!force&&elem.style[prop])ret=elem.style[prop];else
if(document.defaultView&&document.defaultView.getComputedStyle){if(prop.match(/float/i))prop="float";prop=prop.replace(/([A-Z])/g,"-$1").toLowerCase();var
cur=document.defaultView.getComputedStyle(elem,null);if(cur&&!color(elem))ret=cur.getPropertyValue(prop);else{for(var
a=elem;a&&color(a);a=a.parentNode)stack.unshift(a);for(a=0;a<stack.length;a++)if(color(stack[a])){swap[a]=stack[a].style.display;stack[a].style.display="block";}ret=prop=="display"&&swap[stack.length-1]!=null?"none":document.defaultView.getComputedStyle(elem,null).getPropertyValue(prop)||"";for(a=0;a<swap.length;a++)if(swap[a]!=null)stack[a].style.display=swap[a];}if(prop=="opacity"&&ret=="")ret="1";}else
if(elem.currentStyle){var newProp=prop.replace(/\-(\w)/g,function(m,c){return
c.toUpperCase();});ret=elem.currentStyle[prop]||elem.currentStyle[newProp];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var
style=elem.style.left;var run!
timeStyle=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;elem.style.left=ret||0;ret=elem.style.pixelLeft+"px";elem.style.left=style;elem.runtimeStyle.left=runtimeStyle;}}return
ret;},clean:function(a,doc){var
r=[];doc=doc||document;jQuery.each(a,function(i,arg){if(!arg)return;if(arg.constructor==Number)arg=arg.toString();if(typeof
arg=="string"){arg=arg.replace(/(<(\w+)[^>]*?)\/>/g,function(m,all,tag){return
tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area)$/i)?m:all+"></"+tag+">";});var
s=jQuery.trim(arg).toLowerCase(),div=doc.createElement("div"),tb=[];var
wrap=!s.indexOf("<opt")&&[1,"<select>","</select>"]||!s.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||s.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!s.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!s.indexOf("<td")||!s.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!s.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgro!
up></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""]
;div.innerHTML=wrap[1]+arg+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){if(!s.indexOf("<table")&&s.indexOf("<tbody")<0)tb=div.firstChild&&div.firstChild.childNodes;else
if(wrap[1]=="<table>"&&s.indexOf("<tbody")<0)tb=div.childNodes;for(var
n=tb.length-1;n>=0;--n)if(jQuery.nodeName(tb[n],"tbody")&&!tb[n].childNodes.length)tb[n].parentNode.removeChild(tb[n]);if(/^\s/.test(arg))div.insertBefore(doc.createTextNode(arg.match(/^\s*/)[0]),div.firstChild);}arg=jQuery.makeArray(div.childNodes);}if(0===arg.length&&(!jQuery.nodeName(arg,"form")&&!jQuery.nodeName(arg,"select")))return;if(arg[0]==undefined||jQuery.nodeName(arg,"form")||arg.options)r.push(arg);else
Modified: branches/3.1.x/framework/impl/src/main/javascript/jquery/patches.js
===================================================================
--- branches/3.1.x/framework/impl/src/main/javascript/jquery/patches.js 2008-01-26
00:00:01 UTC (rev 5654)
+++ branches/3.1.x/framework/impl/src/main/javascript/jquery/patches.js 2008-01-26
00:37:14 UTC (rev 5655)
@@ -10,7 +10,9 @@
if (window.RichFaces && window.RichFaces.Memory) {
window.RichFaces.Memory.addCleaner("jquery", function(node) {
- oldJQuery.event.remove(node);
+ if (node && node[oldJQuery.expando]) {
+ oldJQuery.event.remove(node);
+ }
});
}
};