source: Dev/trunk/src/client/dojo/_base/configSpidermonkey.js @ 529

Last change on this file since 529 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 2.2 KB
Line 
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
8if(dojo.config["baseUrl"]){
9        dojo.baseUrl = dojo.config["baseUrl"];
10}else{
11        dojo.baseUrl = "./";
12}
13
14dojo._name = 'spidermonkey';
15
16
17
18dojo.isSpidermonkey = true;
19dojo.exit = function(exitcode){
20        quit(exitcode);
21};
22
23if(typeof print == "function"){
24        console.debug = print;
25}
26
27if(typeof line2pc == 'undefined'){
28        throw new Error("attempt to use SpiderMonkey host environment when no 'line2pc' global");
29}
30
31dojo._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
62dojo._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.
76if(dojo.config["modulePaths"]){
77        for(var param in dojo.config["modulePaths"]){
78                dojo.registerModulePath(param, dojo.config["modulePaths"][param]);
79        }
80}
Note: See TracBrowser for help on using the repository browser.