From 0348f23f6d2a832ce06a5804658446d6d15ca222 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Thu, 15 Dec 2016 11:36:21 -0500 Subject: [PATCH] FIX: Register a test waiter rather than using hidden properties --- app/assets/javascripts/admin/components/ace-editor.js.es6 | 1 + app/assets/javascripts/discourse/lib/load-script.js.es6 | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/admin/components/ace-editor.js.es6 b/app/assets/javascripts/admin/components/ace-editor.js.es6 index 01773d2cbf8..a03865c40ce 100644 --- a/app/assets/javascripts/admin/components/ace-editor.js.es6 +++ b/app/assets/javascripts/admin/components/ace-editor.js.es6 @@ -36,6 +36,7 @@ export default Ember.Component.extend({ loadScript("/javascripts/ace/ace.js", { scriptTag: true }).then(() => { window.ace.require(['ace/ace'], loadedAce => { + if (!this.element || this.isDestroying || this.isDestroyed) { return; } const editor = loadedAce.edit(this.$('.ace')[0]); editor.setTheme("ace/theme/chrome"); diff --git a/app/assets/javascripts/discourse/lib/load-script.js.es6 b/app/assets/javascripts/discourse/lib/load-script.js.es6 index 4edc9a452ac..cc24df86de8 100644 --- a/app/assets/javascripts/discourse/lib/load-script.js.es6 +++ b/app/assets/javascripts/discourse/lib/load-script.js.es6 @@ -5,13 +5,16 @@ const _loading = {}; function loadWithTag(path, cb) { const head = document.getElementsByTagName('head')[0]; + let finished = false; let s = document.createElement('script'); s.src = path; - if (Ember.Test) { Ember.Test.pendingAjaxRequests++; } + if (Ember.Test) { + Ember.Test.registerWaiter(() => finished); + } head.appendChild(s); s.onload = s.onreadystatechange = function(_, abort) { - if (Ember.Test) { Ember.Test.pendingAjaxRequests--; } + finished = true; if (abort || !s.readyState || s.readyState === "loaded" || s.readyState === "complete") { s = s.onload = s.onreadystatechange = null; if (!abort) {