rem: s = new String( fn ); 
add: var s = new String( fn ); 
context: function CallStack__fill( depth ){	this.mStack = new Array();		// set stack depth to default	if( depth == null )		depth = 10;	++depth;	var fn = JsUtil.prototype.getCaller( CallStack__fill );	while( fn != null && depth > 0 )	{		s = new String( fn );		--depth;		// Extract function name and argument list		var r = /function (\w+)([^\{\}]*\))/;		r.exec( s );		var f = new String( RegExp.$1 );		var args = new String( RegExp.$2 );		this.mStack.push(( f + args ).replace( /\s/g, "" ));		// Retrieve caller function		if( fn == JsUtil.prototype.getCaller( fn ))		{			// Some interpreter's caller use global objects and may start			// an endless recursion.			this.mStack.push( "[JavaScript recursion]" );			break;		}		else			fn = JsUtil.prototype.getCaller( fn );	}	if( fn == null )		this.mStack.push( "[JavaScript engine]" );	// remove direct calling function CallStack or CallStack_fill	this.mStack.shift();}
meta: 1373	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/1373/417c946d26cfec7e41e63f42267f05ec6f03e7fb/JsUtil.js/clean/jsunit/lib/JsUtil.js