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
|
console: console
|
||||||
};
|
};
|
||||||
|
|
||||||
var require = function(name) {
|
var require = function(id) {
|
||||||
if (require.modules[name])
|
var module = require.modules[id];
|
||||||
return require.modules[name].exports;
|
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];
|
chunks[0] = require.tlns[chunks[0]] || chunks[0];
|
||||||
path = require.baseUrl + "/" + chunks.join("/") + ".js"
|
path = require.baseUrl + "/" + chunks.join("/") + ".js"
|
||||||
|
|
||||||
require.id = name;
|
require.id = id;
|
||||||
importScripts(path);
|
importScripts(path);
|
||||||
return require.modules[name].exports;
|
return require(id);
|
||||||
};
|
};
|
||||||
|
|
||||||
require.modules = {};
|
require.modules = {};
|
||||||
require.tlns = {};
|
require.tlns = {};
|
||||||
require.baseUrl;
|
require.baseUrl;
|
||||||
|
|
||||||
var define = function(factory) {
|
var define = function(id, factory) {
|
||||||
var module = {
|
if (!factory) {
|
||||||
exports: {}
|
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) {
|
function initBaseUrls(baseUrl, topLevelNamespaces) {
|
||||||
|
|
@ -81,6 +96,7 @@ onmessage = function(e) {
|
||||||
main[msg.command].apply(main, msg.args);
|
main[msg.command].apply(main, msg.args);
|
||||||
else if (msg.init) {
|
else if (msg.init) {
|
||||||
initBaseUrls(msg.base, msg.tlns);
|
initBaseUrls(msg.base, msg.tlns);
|
||||||
|
require("pilot/fixoldbrowsers");
|
||||||
sender = initSender();
|
sender = initSender();
|
||||||
var clazz = require(msg.module)[msg.classname];
|
var clazz = require(msg.module)[msg.classname];
|
||||||
main = new clazz(sender);
|
main = new clazz(sender);
|
||||||
|
|
|
||||||
|
|
@ -14,13 +14,19 @@ var EventEmitter = require("pilot/event_emitter").EventEmitter;
|
||||||
var WorkerClient = function(baseUrl, topLevelNamespaces, module, classname) {
|
var WorkerClient = function(baseUrl, topLevelNamespaces, module, classname) {
|
||||||
|
|
||||||
this.callbacks = [];
|
this.callbacks = [];
|
||||||
var workerUrl = require.nameToUrl("ace/worker/host", null, "_");
|
|
||||||
var worker = this.$worker = new Worker(workerUrl);
|
|
||||||
|
|
||||||
var tlns = {};
|
if (require.packaged) {
|
||||||
for (var i=0; i<topLevelNamespaces.length; i++) {
|
var worker = this.$worker = new Worker("host.js");
|
||||||
var ns = topLevelNamespaces[i];
|
}
|
||||||
tlns[ns] = require.nameToUrl(ns, null, "_").replace(/.js$/, "").replace(require.config.baseUrl, "");
|
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({
|
this.$worker.postMessage({
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue