return two independent copies of the foo module, thus messing up any state stored in that module) the visible evidence of this is that commands (such as keyboard movements) could not be found
52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
|
|
function require(module, callback) {
|
|
|
|
if (Array.isArray(module)) {
|
|
var params = [];
|
|
module.forEach(function(m) {
|
|
params.push(require.modules[m]);
|
|
}, this);
|
|
|
|
if (callback) {
|
|
callback.apply(null, params);
|
|
}
|
|
}
|
|
|
|
if (typeof module === 'string') {
|
|
var payload = require.modules[module];
|
|
var module_name = module;
|
|
if (payload == null) {
|
|
console.error('Missing module: ' + module);
|
|
}
|
|
|
|
if (typeof payload === 'function') {
|
|
var exports = {};
|
|
var module = {
|
|
id: '',
|
|
uri: ''
|
|
};
|
|
payload(require, exports, module);
|
|
payload = exports;
|
|
// cache the resulting module object for next time
|
|
require.modules[module_name] = payload;
|
|
}
|
|
|
|
if (callback) {
|
|
callback();
|
|
}
|
|
|
|
return payload;
|
|
}
|
|
}
|
|
require.modules = {};
|
|
|
|
function define(module, payload) {
|
|
if (typeof module !== 'string') {
|
|
console.error('dropping module because define wasn\'t munged.');
|
|
console.trace();
|
|
return;
|
|
}
|
|
|
|
console.log('defining module: ' + module + ' as a ' + typeof payload);
|
|
require.modules[module] = payload;
|
|
}
|