text: /*
   * SpiderMonkey host environment
   */
  
  if(dojo.config["baseUrl"]){
  	dojo.baseUrl = dojo.config["baseUrl"];
  }else{
  	dojo.baseUrl = "./";
  }
  
  dojo._name = 'spidermonkey';
  
  /*=====
  dojo.isSpidermonkey = {
  	// summary: Detect 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.debug("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]);
  	}
  }
  