Commit | Line | Data |
---|---|---|
6a1aa64f DV |
1 | var JSAN = { |
2 | global: this, | |
3 | use: function (module, symbols) { | |
4 | var components = module.split(/\./); | |
5 | var fn = components.join('/') + '.js'; | |
6 | var o = JSAN.global; | |
7 | var i, c; | |
8 | for (i = 0; i < components.length; i++) { | |
9 | o = o[components[i]]; | |
10 | if (typeof(o) == 'undefined') { | |
11 | break; | |
12 | } | |
13 | } | |
14 | if (typeof(o) != 'undefined') { | |
15 | return o; | |
16 | } | |
17 | ||
18 | load(fn); | |
19 | o = JSAN.global; | |
20 | for (i = 0; i < components.length; i++) { | |
21 | o = o[components[i]]; | |
22 | if (typeof(o) == 'undefined') { | |
23 | return undefined; | |
24 | } | |
25 | } | |
26 | if (!symbols) { | |
27 | var tags = o.EXPORT_TAGS; | |
28 | if (tags) { | |
29 | symbols = tags[':common'] || tags[':all']; | |
30 | } | |
31 | } | |
32 | if (symbols) { | |
33 | for (i = 0; i < symbols.length; i++) { | |
34 | c = symbols[i]; | |
35 | JSAN.global[c] = o[c]; | |
36 | } | |
37 | } | |
38 | return o; | |
39 | } | |
40 | }; |