diff --git a/lib/ace/ace.js b/lib/ace/ace.js index 500b458f..6c8a6126 100644 --- a/lib/ace/ace.js +++ b/lib/ace/ace.js @@ -107,6 +107,7 @@ exports.edit = function(el) { event.addListener(window, "resize", env.onResize); editor.on("destroy", function() { event.removeListener(window, "resize", env.onResize); + env.editor.container.env = null; // prevent memory leak on old ie }); editor.container.env = editor.env = env; return editor; diff --git a/lib/ace/config.js b/lib/ace/config.js index 94e9465f..6116da96 100644 --- a/lib/ace/config.js +++ b/lib/ace/config.js @@ -81,6 +81,10 @@ exports.moduleUrl = function(name, component) { // todo make this configurable or get rid of '-' var sep = component == "snippets" ? "/" : "-"; var base = parts[parts.length - 1]; + if (component == "worker" && sep == "-") { + var re = new RegExp("^" + component + "[\\-_]|[\\-_]" + component + "$", "g"); + base = base.replace(re, ""); + } if ((!base || base == component) && parts.length > 1) base = parts[parts.length - 2]; diff --git a/lib/ace/edit_session.js b/lib/ace/edit_session.js index 73a184fd..f563579d 100644 --- a/lib/ace/edit_session.js +++ b/lib/ace/edit_session.js @@ -966,17 +966,13 @@ var EditSession = function(text, mode) { }; this.$startWorker = function() { - if (typeof Worker !== "undefined" && !require.noWorker) { - try { - this.$worker = this.$mode.createWorker(this); - } catch (e) { - console.log("Could not load worker"); - console.log(e); - this.$worker = null; - } - } - else + try { + this.$worker = this.$mode.createWorker(this); + } catch (e) { + console.log("Could not load worker"); + console.log(e); this.$worker = null; + } }; /**