From a842dcdee349905c8c83830c1ec5716bbe8640b8 Mon Sep 17 00:00:00 2001 From: nightwing Date: Sun, 26 Apr 2015 14:38:49 +0400 Subject: [PATCH] do not retain ref to the first editor (fixes #2469) --- experiments/debug_mem_leak.html | 59 +++++++++++++++++++++++++++++++++ lib/ace/lib/event.js | 9 ++--- 2 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 experiments/debug_mem_leak.html diff --git a/experiments/debug_mem_leak.html b/experiments/debug_mem_leak.html new file mode 100644 index 00000000..b8ee8726 --- /dev/null +++ b/experiments/debug_mem_leak.html @@ -0,0 +1,59 @@ + + + + + + + + +

+ +
+ + + \ No newline at end of file diff --git a/lib/ace/lib/event.js b/lib/ace/lib/event.js index 16805ce2..57924056 100644 --- a/lib/ace/lib/event.js +++ b/lib/ace/lib/event.js @@ -326,13 +326,14 @@ exports.addCommandKeyListener = function(el, callback) { }); if (!pressedKeys) { - pressedKeys = Object.create(null); - addListener(window, "focus", function(e) { - pressedKeys = Object.create(null); - }); + resetPressedKeys(); + addListener(window, "focus", resetPressedKeys); } } }; +function resetPressedKeys(e) { + pressedKeys = Object.create(null); +} if (window.postMessage && !useragent.isOldIE) { var postMessageId = 1;