]> git.wh0rd.org - tt-rss.git/blob - lib/dojo/_base/configSpidermonkey.js
upgrade dojo to 1.8.3 (refs #570)
[tt-rss.git] / lib / dojo / _base / configSpidermonkey.js
1 // TODO: this file needs to be converted to the v1.7 loader
2
3 // module:
4 // configSpidermonkey
5 // summary:
6 // SpiderMonkey host environment
7
8 if(dojo.config["baseUrl"]){
9 dojo.baseUrl = dojo.config["baseUrl"];
10 }else{
11 dojo.baseUrl = "./";
12 }
13
14 dojo._name = 'spidermonkey';
15
16
17
18 dojo.isSpidermonkey = true;
19 dojo.exit = function(exitcode){
20 quit(exitcode);
21 };
22
23 if(typeof print == "function"){
24 console.debug = print;
25 }
26
27 if(typeof line2pc == 'undefined'){
28 throw new Error("attempt to use SpiderMonkey host environment when no 'line2pc' global");
29 }
30
31 dojo._spidermonkeyCurrentFile = function(depth){
32 //
33 // This is a hack that determines the current script file by parsing a
34 // generated stack trace (relying on the non-standard "stack" member variable
35 // of the SpiderMonkey Error object).
36 //
37 // If param depth is passed in, it'll return the script file which is that far down
38 // the stack, but that does require that you know how deep your stack is when you are
39 // calling.
40 //
41 var s = '';
42 try{
43 throw Error("whatever");
44 }catch(e){
45 s = e.stack;
46 }
47 // lines are like: bu_getCurrentScriptURI_spidermonkey("ScriptLoader.js")@burst/Runtime.js:101
48 var matches = s.match(/[^@]*\.js/gi);
49 if(!matches){
50 throw Error("could not parse stack string: '" + s + "'");
51 }
52 var fname = (typeof depth != 'undefined' && depth) ? matches[depth + 1] : matches[matches.length - 1];
53 if(!fname){
54 throw Error("could not find file name in stack string '" + s + "'");
55 }
56 //print("SpiderMonkeyRuntime got fname '" + fname + "' from stack string '" + s + "'");
57 return fname;
58 };
59
60 // print(dojo._spidermonkeyCurrentFile(0));
61
62 dojo._loadUri = function(uri){
63 // spidermonkey load() evaluates the contents into the global scope (which
64 // is what we want).
65 // TODO: sigh, load() does not return a useful value.
66 // Perhaps it is returning the value of the last thing evaluated?
67 // var ok =
68 load(uri);
69 // console.log("spidermonkey load(", uri, ") returned ", ok);
70 return 1;
71 };
72
73 //Register any module paths set up in djConfig. Need to do this
74 //in the hostenvs since hostenv_browser can read djConfig from a
75 //script tag's attribute.
76 if(dojo.config["modulePaths"]){
77 for(var param in dojo.config["modulePaths"]){
78 dojo.registerModulePath(param, dojo.config["modulePaths"][param]);
79 }
80 }