commit
6d205a8f7e
3 changed files with 65 additions and 5 deletions
59
experiments/debug_mem_leak.html
Normal file
59
experiments/debug_mem_leak.html
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<script src="../demo/kitchen-sink/require.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
require.config({
|
||||||
|
paths: { ace: "../lib/ace" },
|
||||||
|
waitSeconds: 0
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p><button onclick="toggleEditor()">Toggle editor</button></p>
|
||||||
|
|
||||||
|
<div id="container"></div>
|
||||||
|
<script>
|
||||||
|
var editor;
|
||||||
|
var counter = 0
|
||||||
|
|
||||||
|
function toggleEditor() {
|
||||||
|
if (!editor) {
|
||||||
|
var root = document.createElement("div");
|
||||||
|
root.style.height = "100px";
|
||||||
|
root.setAttribute("id", "editor");
|
||||||
|
root.textContent = "function foo(items) {\nvar x = 'All this is syntax highlighted';\nreturn x;\n}";
|
||||||
|
|
||||||
|
document.getElementById("container").appendChild(root);
|
||||||
|
|
||||||
|
editor = ace.edit(root);
|
||||||
|
|
||||||
|
if (counter++ % 2)
|
||||||
|
editor.setTheme("ace/theme/monokai");
|
||||||
|
else
|
||||||
|
editor.setTheme("ace/theme/clouds");
|
||||||
|
|
||||||
|
editor.session.setMode("ace/mode/javascript");
|
||||||
|
} else {
|
||||||
|
editor.destroy();
|
||||||
|
var el = editor.container;
|
||||||
|
el.parentNode.removeChild(el);
|
||||||
|
|
||||||
|
editor.container = null
|
||||||
|
editor.renderer = null
|
||||||
|
|
||||||
|
editor = null;
|
||||||
|
|
||||||
|
var root = document.getElementById("editor")
|
||||||
|
if (root)
|
||||||
|
root.parentNode.removeChild(root);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
require(["ace/ace"], function(ace) {
|
||||||
|
window.ace = ace;
|
||||||
|
toggleEditor();
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -39,7 +39,7 @@ var AppConfig = require("./lib/app_config").AppConfig;
|
||||||
module.exports = exports = new AppConfig();
|
module.exports = exports = new AppConfig();
|
||||||
|
|
||||||
var global = (function() {
|
var global = (function() {
|
||||||
return this;
|
return this || typeof window != "undefined" && window;
|
||||||
})();
|
})();
|
||||||
|
|
||||||
var options = {
|
var options = {
|
||||||
|
|
|
||||||
|
|
@ -326,13 +326,14 @@ exports.addCommandKeyListener = function(el, callback) {
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!pressedKeys) {
|
if (!pressedKeys) {
|
||||||
pressedKeys = Object.create(null);
|
resetPressedKeys();
|
||||||
addListener(window, "focus", function(e) {
|
addListener(window, "focus", resetPressedKeys);
|
||||||
pressedKeys = Object.create(null);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
function resetPressedKeys(e) {
|
||||||
|
pressedKeys = Object.create(null);
|
||||||
|
}
|
||||||
|
|
||||||
if (window.postMessage && !useragent.isOldIE) {
|
if (window.postMessage && !useragent.isOldIE) {
|
||||||
var postMessageId = 1;
|
var postMessageId = 1;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue