1 | function(exports, global, doEval){
|
2 | var origDefine = global.define;
|
3 |
|
4 | var get = function(name){
|
5 | var parts = name.split("."),
|
6 | cur = global,
|
7 | i;
|
8 | for(i = 0 ; i < parts.length; i++){
|
9 | if(!cur) {
|
10 | break;
|
11 | }
|
12 | cur = cur[parts[i]];
|
13 | }
|
14 | return cur;
|
15 | };
|
16 | var set = function(name, val){
|
17 | var parts = name.split("."),
|
18 | cur = global,
|
19 | i, part, next;
|
20 | for(i = 0; i < parts.length - 1; i++) {
|
21 | part = parts[i];
|
22 | next = cur[part];
|
23 | if(!next) {
|
24 | next = cur[part] = {};
|
25 | }
|
26 | cur = next;
|
27 | }
|
28 | part = parts[parts.length - 1];
|
29 | cur[part] = val;
|
30 | };
|
31 | var useDefault = function(mod){
|
32 | if(!mod || !mod.__esModule) return false;
|
33 | var esProps = { __esModule: true, "default": true };
|
34 | for(var p in mod) {
|
35 | if(!esProps[p]) return false;
|
36 | }
|
37 | return true;
|
38 | };
|
39 |
|
40 | var hasCjsDependencies = function(deps) {
|
41 | return (
|
42 | deps[0] === "require" &&
|
43 | deps[1] === "exports" &&
|
44 | deps[2] === "module"
|
45 | );
|
46 | };
|
47 |
|
48 | var modules = (global.define && global.define.modules) ||
|
49 | (global._define && global._define.modules) || {};
|
50 | var ourDefine = global.define = function(moduleName, deps, callback){
|
51 | var module;
|
52 | if(typeof deps === "function") {
|
53 | callback = deps;
|
54 | deps = [];
|
55 | }
|
56 | var args = [],
|
57 | i;
|
58 | for(i =0; i < deps.length; i++) {
|
59 | args.push( exports[deps[i]] ? get(exports[deps[i]]) : ( modules[deps[i]] || get(deps[i]) ) );
|
60 | }
|
61 | // CJS has no dependencies but 3 callback arguments
|
62 | if (hasCjsDependencies(deps) || (!deps.length && callback.length)) {
|
63 | module = { exports: {} };
|
64 | args[0] = function(name) {
|
65 | return exports[name] ? get(exports[name]) : modules[name];
|
66 | };
|
67 | args[1] = module.exports;
|
68 | args[2] = module;
|
69 | }
|
70 | // Babel uses the exports and module object.
|
71 | else if(!args[0] && deps[0] === "exports") {
|
72 | module = { exports: {} };
|
73 | args[0] = module.exports;
|
74 | if(deps[1] === "module") {
|
75 | args[1] = module;
|
76 | }
|
77 | } else if(!args[0] && deps[0] === "module") {
|
78 | args[0] = { id: moduleName };
|
79 | }
|
80 |
|
81 | global.define = origDefine;
|
82 | var result = callback ? callback.apply(null, args) : undefined;
|
83 | global.define = ourDefine;
|
84 |
|
85 |
|
86 | result = module && module.exports ? module.exports : result;
|
87 | modules[moduleName] = result;
|
88 |
|
89 |
|
90 | var globalExport = exports[moduleName];
|
91 | if(globalExport && !get(globalExport)) {
|
92 | if(useDefault(result)) {
|
93 | result = result["default"];
|
94 | }
|
95 | set(globalExport, result);
|
96 | }
|
97 | };
|
98 | global.define.orig = origDefine;
|
99 | global.define.modules = modules;
|
100 | global.define.amd = true;
|
101 | ourDefine("@loader", [], function(){
|
102 |
|
103 | var noop = function(){};
|
104 | return {
|
105 | get: function(){
|
106 | return { prepareGlobal: noop, retrieveGlobal: noop };
|
107 | },
|
108 | global: global,
|
109 | __exec: function(__load){
|
110 | doEval(__load.source, global);
|
111 | }
|
112 | };
|
113 | });
|
114 | }
|