Merge pull request #1403 from ajaxorg/mini_require

compatibility with architect-build
This commit is contained in:
Lennart Kats 2013-05-01 06:07:20 -07:00
commit 60f49118c0
3 changed files with 37 additions and 36 deletions

View file

@ -417,9 +417,7 @@ var buildAce = function(options) {
source: [{ source: [{
project: workerProject, project: workerProject,
require: [ require: [
'ace/lib/fixoldbrowsers', 'ace/worker/worker',
'ace/lib/event_emitter',
'ace/lib/oop',
'ace/mode/' + mode + '_worker' 'ace/mode/' + mode + '_worker'
] ]
}], }],
@ -428,7 +426,6 @@ var buildAce = function(options) {
}); });
copy({ copy({
source: [ source: [
ACE_HOME + "/lib/ace/worker/worker.js",
worker worker
], ],
filter: options.compress ? [copy.filter.uglifyjs] : [], filter: options.compress ? [copy.filter.uglifyjs] : [],

View file

@ -61,10 +61,13 @@ var _define = function(module, deps, payload) {
if (arguments.length == 2) if (arguments.length == 2)
payload = deps; payload = deps;
if (!_define.modules) if (!_define.modules) {
_define.modules = {}; _define.modules = Object.create(null);
_define.payloads = Object.create(null);
}
_define.modules[module] = payload; _define.payloads[module] = payload;
_define.modules[module] = null;
}; };
/** /**
@ -130,30 +133,27 @@ var lookup = function(parentId, moduleName) {
var module = _define.modules[moduleName]; var module = _define.modules[moduleName];
if (!module) { if (!module) {
return null; module = _define.payloads[moduleName];
if (typeof module === 'function') {
var exports = {};
var mod = {
id: moduleName,
uri: '',
exports: exports,
packaged: true
};
var req = function(module, callback) {
return _require(moduleName, module, callback);
};
var returnValue = module(req, exports, mod);
exports = returnValue || mod.exports;
_define.modules[moduleName] = exports;
delete _define.payloads[moduleName];
}
module = _define.modules[moduleName] = exports;
} }
if (typeof module === 'function') {
var exports = {};
var mod = {
id: moduleName,
uri: '',
exports: exports,
packaged: true
};
var req = function(module, callback) {
return _require(moduleName, module, callback);
};
var returnValue = module(req, exports, mod);
exports = returnValue || mod.exports;
// cache the resulting module object for next time
_define.modules[moduleName] = exports;
return exports;
}
return module; return module;
}; };

View file

@ -38,6 +38,10 @@ window.normalizeModule = function(parentId, moduleName) {
}; };
window.require = function(parentId, id) { window.require = function(parentId, id) {
if (!id) {
id = parentId
parentId = null;
}
if (!id.charAt) if (!id.charAt)
throw new Error("worker.js require() accepts only (parentId, id) as arguments"); throw new Error("worker.js require() accepts only (parentId, id) as arguments");
@ -102,8 +106,8 @@ window.initBaseUrls = function initBaseUrls(topLevelNamespaces) {
window.initSender = function initSender() { window.initSender = function initSender() {
var EventEmitter = require(null, "ace/lib/event_emitter").EventEmitter; var EventEmitter = require("ace/lib/event_emitter").EventEmitter;
var oop = require(null, "ace/lib/oop"); var oop = require("ace/lib/oop");
var Sender = function() {}; var Sender = function() {};
@ -145,9 +149,9 @@ window.onmessage = function(e) {
} }
else if (msg.init) { else if (msg.init) {
initBaseUrls(msg.tlns); initBaseUrls(msg.tlns);
require(null, "ace/lib/fixoldbrowsers"); require("ace/lib/es5-shim");
sender = initSender(); sender = initSender();
var clazz = require(null, msg.module)[msg.classname]; var clazz = require(msg.module)[msg.classname];
main = new clazz(sender); main = new clazz(sender);
} }
else if (msg.event && sender) { else if (msg.event && sender) {