make sure the worker also works with the packages version
This commit is contained in:
parent
4af6988ece
commit
23a2e368fc
2 changed files with 45 additions and 23 deletions
|
|
@ -7,33 +7,48 @@ var window = {
|
|||
console: console
|
||||
};
|
||||
|
||||
var require = function(name) {
|
||||
if (require.modules[name])
|
||||
return require.modules[name].exports;
|
||||
var require = function(id) {
|
||||
var module = require.modules[id];
|
||||
if (module) {
|
||||
if (!module.initialized) {
|
||||
module.exports = module.factory().exports;
|
||||
module.initialized = true;
|
||||
}
|
||||
return module.exports;
|
||||
}
|
||||
|
||||
var chunks = name.split("/");
|
||||
var chunks = id.split("/");
|
||||
chunks[0] = require.tlns[chunks[0]] || chunks[0];
|
||||
path = require.baseUrl + "/" + chunks.join("/") + ".js"
|
||||
|
||||
require.id = name;
|
||||
importScripts(path);
|
||||
return require.modules[name].exports;
|
||||
require.id = id;
|
||||
importScripts(path);
|
||||
return require(id);
|
||||
};
|
||||
|
||||
require.modules = {};
|
||||
require.tlns = {};
|
||||
require.baseUrl;
|
||||
|
||||
var define = function(factory) {
|
||||
var module = {
|
||||
exports: {}
|
||||
var define = function(id, factory) {
|
||||
if (!factory) {
|
||||
factory = id;
|
||||
id = require.id;
|
||||
}
|
||||
if (id.indexOf("text!") == 0)
|
||||
return;
|
||||
|
||||
require.modules[id] = {
|
||||
factory: function() {
|
||||
var module = {
|
||||
exports: {}
|
||||
};
|
||||
var returnExports = factory(require, module.exports, module);
|
||||
if (returnExports)
|
||||
module.exports = exports;
|
||||
return module;
|
||||
}
|
||||
};
|
||||
|
||||
var name = require.id;
|
||||
var returnExports = factory(require, module.exports, module);
|
||||
if (returnExports)
|
||||
module.exports = exports;
|
||||
|
||||
require.modules[name] = module;
|
||||
};
|
||||
|
||||
function initBaseUrls(baseUrl, topLevelNamespaces) {
|
||||
|
|
@ -81,6 +96,7 @@ onmessage = function(e) {
|
|||
main[msg.command].apply(main, msg.args);
|
||||
else if (msg.init) {
|
||||
initBaseUrls(msg.base, msg.tlns);
|
||||
require("pilot/fixoldbrowsers");
|
||||
sender = initSender();
|
||||
var clazz = require(msg.module)[msg.classname];
|
||||
main = new clazz(sender);
|
||||
|
|
|
|||
|
|
@ -14,13 +14,19 @@ var EventEmitter = require("pilot/event_emitter").EventEmitter;
|
|||
var WorkerClient = function(baseUrl, topLevelNamespaces, module, classname) {
|
||||
|
||||
this.callbacks = [];
|
||||
var workerUrl = require.nameToUrl("ace/worker/host", null, "_");
|
||||
var worker = this.$worker = new Worker(workerUrl);
|
||||
|
||||
var tlns = {};
|
||||
for (var i=0; i<topLevelNamespaces.length; i++) {
|
||||
var ns = topLevelNamespaces[i];
|
||||
tlns[ns] = require.nameToUrl(ns, null, "_").replace(/.js$/, "").replace(require.config.baseUrl, "");
|
||||
if (require.packaged) {
|
||||
var worker = this.$worker = new Worker("host.js");
|
||||
}
|
||||
else {
|
||||
var workerUrl = require.nameToUrl("ace/worker/host", null, "_");
|
||||
var worker = this.$worker = new Worker(workerUrl);
|
||||
|
||||
var tlns = {};
|
||||
for (var i=0; i<topLevelNamespaces.length; i++) {
|
||||
var ns = topLevelNamespaces[i];
|
||||
tlns[ns] = require.nameToUrl(ns, null, "_").replace(/.js$/, "").replace(require.config.baseUrl, "");
|
||||
}
|
||||
}
|
||||
|
||||
this.$worker.postMessage({
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue