mirror of
				https://git.tt-rss.org/fox/tt-rss.git
				synced 2025-10-31 11:51:17 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // TODO: this file needs to be converted to the v1.7 loader
 | |
| 
 | |
| // module:
 | |
| //		configSpidermonkey
 | |
| // summary:
 | |
| //		 SpiderMonkey host environment
 | |
| 
 | |
| if(dojo.config["baseUrl"]){
 | |
| 	dojo.baseUrl = dojo.config["baseUrl"];
 | |
| }else{
 | |
| 	dojo.baseUrl = "./";
 | |
| }
 | |
| 
 | |
| dojo._name = 'spidermonkey';
 | |
| 
 | |
| 
 | |
| 
 | |
| dojo.isSpidermonkey = true;
 | |
| dojo.exit = function(exitcode){
 | |
| 	quit(exitcode);
 | |
| };
 | |
| 
 | |
| if(typeof print == "function"){
 | |
| 	console.debug = print;
 | |
| }
 | |
| 
 | |
| if(typeof line2pc == 'undefined'){
 | |
| 	throw new Error("attempt to use SpiderMonkey host environment when no 'line2pc' global");
 | |
| }
 | |
| 
 | |
| dojo._spidermonkeyCurrentFile = function(depth){
 | |
| 	//
 | |
| 	//	This is a hack that determines the current script file by parsing a
 | |
| 	//	generated stack trace (relying on the non-standard "stack" member variable
 | |
| 	//	of the SpiderMonkey Error object).
 | |
| 	//
 | |
| 	//	If param depth is passed in, it'll return the script file which is that far down
 | |
| 	//	the stack, but that does require that you know how deep your stack is when you are
 | |
| 	//	calling.
 | |
| 	//
 | |
| 	var s = '';
 | |
| 	try{
 | |
| 		throw Error("whatever");
 | |
| 	}catch(e){
 | |
| 		s = e.stack;
 | |
| 	}
 | |
| 	// lines are like: bu_getCurrentScriptURI_spidermonkey("ScriptLoader.js")@burst/Runtime.js:101
 | |
| 	var matches = s.match(/[^@]*\.js/gi);
 | |
| 	if(!matches){
 | |
| 		throw Error("could not parse stack string: '" + s + "'");
 | |
| 	}
 | |
| 	var fname = (typeof depth != 'undefined' && depth) ? matches[depth + 1] : matches[matches.length - 1];
 | |
| 	if(!fname){
 | |
| 		throw Error("could not find file name in stack string '" + s + "'");
 | |
| 	}
 | |
| 	//print("SpiderMonkeyRuntime got fname '" + fname + "' from stack string '" + s + "'");
 | |
| 	return fname;
 | |
| };
 | |
| 
 | |
| // print(dojo._spidermonkeyCurrentFile(0));
 | |
| 
 | |
| dojo._loadUri = function(uri){
 | |
| 	// spidermonkey load() evaluates the contents into the global scope (which
 | |
| 	// is what we want).
 | |
| 	// TODO: sigh, load() does not return a useful value.
 | |
| 	// Perhaps it is returning the value of the last thing evaluated?
 | |
| 	// var ok =
 | |
| 	load(uri);
 | |
| 	// console.log("spidermonkey load(", uri, ") returned ", ok);
 | |
| 	return 1;
 | |
| };
 | |
| 
 | |
| //Register any module paths set up in djConfig. Need to do this
 | |
| //in the hostenvs since hostenv_browser can read djConfig from a
 | |
| //script tag's attribute.
 | |
| if(dojo.config["modulePaths"]){
 | |
| 	for(var param in dojo.config["modulePaths"]){
 | |
| 		dojo.registerModulePath(param, dojo.config["modulePaths"][param]);
 | |
| 	}
 | |
| }
 |