ember-inspector 4.13.1-alpha.2025.7.3 → 4.13.1-alpha.2025.7.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/index.html +1 -1
- package/app/styles/app.scss +1 -0
- package/dist/bookmarklet/load_inspector.js +1 -0
- package/dist/bookmarklet/panes-3-16-0/assets/{chunk.524.12f8b1dc0628d8e548c0.js → chunk.524.984a16186ec2ee340140.js} +4 -4
- package/dist/{firefox/panes-3-16-0/assets/chunk.582.8a5f06f7065ffe209555.js → bookmarklet/panes-3-16-0/assets/chunk.582.866bd83d4661b3b843fd.js} +5 -5
- package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.css +835 -0
- package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.js +42 -4
- package/dist/bookmarklet/panes-3-16-0/assets/vendor.css +0 -836
- package/dist/bookmarklet/panes-3-16-0/assets/vendor.js +3967 -4019
- package/dist/bookmarklet/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
- package/dist/bookmarklet/panes-3-16-0/basic-DfbgtngO.js +144 -0
- package/dist/bookmarklet/panes-3-16-0/basic-debug.js +6 -0
- package/dist/bookmarklet/panes-3-16-0/bookmarklet-debug.js +34 -0
- package/dist/bookmarklet/panes-3-16-0/chrome-debug.js +12 -0
- package/dist/bookmarklet/panes-3-16-0/ember.js +108 -0
- package/dist/bookmarklet/panes-3-16-0/ember_debug.js +22 -10646
- package/dist/bookmarklet/panes-3-16-0/evented-BCTya3yE.js +62 -0
- package/dist/bookmarklet/panes-3-16-0/firefox-debug.js +32 -0
- package/dist/bookmarklet/panes-3-16-0/index.html +3 -3
- package/dist/bookmarklet/panes-3-16-0/internals-CRmXMEzb.js +12 -0
- package/dist/bookmarklet/panes-3-16-0/main.js +7642 -0
- package/dist/bookmarklet/panes-3-16-0/port.js +108 -0
- package/dist/bookmarklet/panes-3-16-0/profile-node.js +60 -0
- package/dist/bookmarklet/panes-3-16-0/promise-assembler.js +218 -0
- package/dist/bookmarklet/panes-3-16-0/runloop-CF-Qpqgy.js +1138 -0
- package/dist/bookmarklet/panes-3-16-0/start-inspector-BPAW_WLv.js +376 -0
- package/dist/bookmarklet/panes-3-16-0/type-check.js +119 -0
- package/dist/bookmarklet/panes-3-16-0/version.js +90 -0
- package/dist/bookmarklet/panes-3-16-0/versions.js +4 -0
- package/dist/bookmarklet/panes-3-16-0/web-extension-C3pMNVSY.js +144 -0
- package/dist/bookmarklet/panes-3-16-0/websocket-debug.js +60 -0
- package/dist/chrome/content-script.js +1 -0
- package/dist/chrome/manifest.json +3 -3
- package/dist/{firefox/panes-3-16-0/assets/chunk.524.12f8b1dc0628d8e548c0.js → chrome/panes-3-16-0/assets/chunk.524.984a16186ec2ee340140.js} +4 -4
- package/dist/{bookmarklet/panes-3-16-0/assets/chunk.582.8a5f06f7065ffe209555.js → chrome/panes-3-16-0/assets/chunk.582.866bd83d4661b3b843fd.js} +5 -5
- package/dist/chrome/panes-3-16-0/assets/ember-inspector.css +835 -0
- package/dist/chrome/panes-3-16-0/assets/ember-inspector.js +42 -4
- package/dist/chrome/panes-3-16-0/assets/vendor.css +0 -836
- package/dist/chrome/panes-3-16-0/assets/vendor.js +3967 -4019
- package/dist/chrome/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
- package/dist/chrome/panes-3-16-0/basic-DfbgtngO.js +144 -0
- package/dist/chrome/panes-3-16-0/basic-debug.js +6 -0
- package/dist/chrome/panes-3-16-0/bookmarklet-debug.js +34 -0
- package/dist/chrome/panes-3-16-0/chrome-debug.js +12 -0
- package/dist/chrome/panes-3-16-0/ember.js +108 -0
- package/dist/chrome/panes-3-16-0/ember_debug.js +12 -10658
- package/dist/chrome/panes-3-16-0/evented-BCTya3yE.js +62 -0
- package/dist/chrome/panes-3-16-0/firefox-debug.js +32 -0
- package/dist/chrome/panes-3-16-0/index.html +3 -3
- package/dist/chrome/panes-3-16-0/internals-CRmXMEzb.js +12 -0
- package/dist/chrome/panes-3-16-0/main.js +7642 -0
- package/dist/chrome/panes-3-16-0/port.js +108 -0
- package/dist/chrome/panes-3-16-0/profile-node.js +60 -0
- package/dist/chrome/panes-3-16-0/promise-assembler.js +218 -0
- package/dist/chrome/panes-3-16-0/runloop-CF-Qpqgy.js +1138 -0
- package/dist/chrome/panes-3-16-0/start-inspector-BPAW_WLv.js +376 -0
- package/dist/chrome/panes-3-16-0/type-check.js +119 -0
- package/dist/chrome/panes-3-16-0/version.js +90 -0
- package/dist/chrome/panes-3-16-0/versions.js +4 -0
- package/dist/chrome/panes-3-16-0/web-extension-C3pMNVSY.js +144 -0
- package/dist/chrome/panes-3-16-0/websocket-debug.js +60 -0
- package/dist/firefox/content-script.js +1 -0
- package/dist/firefox/manifest.json +3 -3
- package/dist/{chrome/panes-3-16-0/assets/chunk.524.12f8b1dc0628d8e548c0.js → firefox/panes-3-16-0/assets/chunk.524.984a16186ec2ee340140.js} +4 -4
- package/dist/{websocket/assets/chunk.582.8a5f06f7065ffe209555.js → firefox/panes-3-16-0/assets/chunk.582.866bd83d4661b3b843fd.js} +5 -5
- package/dist/firefox/panes-3-16-0/assets/ember-inspector.css +835 -0
- package/dist/firefox/panes-3-16-0/assets/ember-inspector.js +42 -4
- package/dist/firefox/panes-3-16-0/assets/vendor.css +0 -836
- package/dist/firefox/panes-3-16-0/assets/vendor.js +3967 -4019
- package/dist/firefox/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
- package/dist/firefox/panes-3-16-0/basic-DfbgtngO.js +144 -0
- package/dist/firefox/panes-3-16-0/basic-debug.js +6 -0
- package/dist/firefox/panes-3-16-0/bookmarklet-debug.js +34 -0
- package/dist/firefox/panes-3-16-0/chrome-debug.js +12 -0
- package/dist/firefox/panes-3-16-0/ember.js +108 -0
- package/dist/firefox/panes-3-16-0/ember_debug.js +28 -10654
- package/dist/firefox/panes-3-16-0/evented-BCTya3yE.js +62 -0
- package/dist/firefox/panes-3-16-0/firefox-debug.js +32 -0
- package/dist/firefox/panes-3-16-0/index.html +3 -3
- package/dist/firefox/panes-3-16-0/internals-CRmXMEzb.js +12 -0
- package/dist/firefox/panes-3-16-0/main.js +7642 -0
- package/dist/firefox/panes-3-16-0/port.js +108 -0
- package/dist/firefox/panes-3-16-0/profile-node.js +60 -0
- package/dist/firefox/panes-3-16-0/promise-assembler.js +218 -0
- package/dist/firefox/panes-3-16-0/runloop-CF-Qpqgy.js +1138 -0
- package/dist/firefox/panes-3-16-0/start-inspector-BPAW_WLv.js +376 -0
- package/dist/firefox/panes-3-16-0/type-check.js +119 -0
- package/dist/firefox/panes-3-16-0/version.js +90 -0
- package/dist/firefox/panes-3-16-0/versions.js +4 -0
- package/dist/firefox/panes-3-16-0/web-extension-C3pMNVSY.js +144 -0
- package/dist/firefox/panes-3-16-0/websocket-debug.js +60 -0
- package/dist/websocket/assets/{chunk.524.12f8b1dc0628d8e548c0.js → chunk.524.984a16186ec2ee340140.js} +4 -4
- package/dist/{chrome/panes-3-16-0/assets/chunk.582.8a5f06f7065ffe209555.js → websocket/assets/chunk.582.866bd83d4661b3b843fd.js} +5 -5
- package/dist/websocket/assets/ember-inspector.css +835 -0
- package/dist/websocket/assets/ember-inspector.js +42 -4
- package/dist/websocket/assets/vendor.css +0 -836
- package/dist/websocket/assets/vendor.js +3967 -4019
- package/dist/websocket/base-object-HAEdWjmg.js +59 -0
- package/dist/websocket/basic-DfbgtngO.js +144 -0
- package/dist/websocket/basic-debug.js +6 -0
- package/dist/websocket/bookmarklet-debug.js +34 -0
- package/dist/websocket/chrome-debug.js +12 -0
- package/dist/websocket/ember.js +108 -0
- package/dist/websocket/ember_debug.js +36 -10634
- package/dist/websocket/evented-BCTya3yE.js +62 -0
- package/dist/websocket/firefox-debug.js +32 -0
- package/dist/websocket/index.html +3 -3
- package/dist/websocket/internals-CRmXMEzb.js +12 -0
- package/dist/websocket/main.js +7642 -0
- package/dist/websocket/port.js +108 -0
- package/dist/websocket/profile-node.js +60 -0
- package/dist/websocket/promise-assembler.js +218 -0
- package/dist/websocket/runloop-CF-Qpqgy.js +1138 -0
- package/dist/websocket/start-inspector-BPAW_WLv.js +376 -0
- package/dist/websocket/type-check.js +119 -0
- package/dist/websocket/version.js +90 -0
- package/dist/websocket/versions.js +4 -0
- package/dist/websocket/web-extension-C3pMNVSY.js +144 -0
- package/dist/websocket/websocket-debug.js +60 -0
- package/ember-cli-build.js +28 -91
- package/ember_debug/adapters/basic.js +9 -29
- package/ember_debug/adapters/web-extension.js +4 -4
- package/ember_debug/adapters/websocket.js +2 -2
- package/ember_debug/container-debug.js +1 -1
- package/ember_debug/data-debug.js +2 -2
- package/ember_debug/debug-port.js +1 -1
- package/ember_debug/deprecation-debug.js +6 -6
- package/ember_debug/entrypoints/basic-debug.js +6 -0
- package/ember_debug/entrypoints/bookmarklet-debug.js +6 -0
- package/ember_debug/entrypoints/chrome-debug.js +6 -0
- package/ember_debug/entrypoints/firefox-debug.js +6 -0
- package/ember_debug/entrypoints/websocket-debug.js +6 -0
- package/ember_debug/general-debug.js +3 -3
- package/ember_debug/lib/boot-ember-inspector.js +9 -0
- package/ember_debug/lib/get-applications.js +27 -0
- package/ember_debug/lib/load-ember-debug-in-webpage.js +30 -0
- package/ember_debug/lib/send-apps.js +14 -0
- package/ember_debug/lib/send-version-miss.js +39 -0
- package/ember_debug/lib/setup-instance-initializer.js +16 -0
- package/ember_debug/lib/start-inspector.js +211 -0
- package/ember_debug/lib/version-test.js +73 -0
- package/ember_debug/lib/versions.js +3 -0
- package/ember_debug/libs/capture-render-tree.js +1 -1
- package/ember_debug/libs/promise-assembler.js +4 -4
- package/ember_debug/libs/render-tree.js +5 -5
- package/ember_debug/libs/source-map.js +1 -1
- package/ember_debug/libs/view-inspection.js +3 -3
- package/ember_debug/main.js +17 -20
- package/ember_debug/models/profile-manager.js +5 -6
- package/ember_debug/models/profile-node.js +1 -1
- package/ember_debug/models/promise.js +2 -2
- package/ember_debug/object-inspector.js +9 -9
- package/ember_debug/package.json +3 -1
- package/ember_debug/port.js +4 -4
- package/ember_debug/promise-debug.js +4 -4
- package/ember_debug/render-debug.js +5 -5
- package/ember_debug/rollup.config.js +5 -29
- package/ember_debug/route-debug.js +7 -7
- package/ember_debug/services/session.js +1 -1
- package/ember_debug/utils/ember/object/internals.js +1 -6
- package/ember_debug/utils/ember/runloop.js +2 -7
- package/ember_debug/utils/ember-object-names.js +2 -2
- package/ember_debug/utils/ember.js +72 -28
- package/ember_debug/utils/get-object-name.js +1 -1
- package/ember_debug/utils/type-check.js +2 -2
- package/ember_debug/view-debug.js +4 -4
- package/package.json +5 -9
- package/skeletons/bookmarklet/load_inspector.js +1 -0
- package/skeletons/web-extension/content-script.js +1 -0
- package/skeletons/web-extension/manifest.json +3 -3
- package/tests/ember_debug/profile-manager-test.js +1 -3
- package/tests/index.html +1 -2
- package/tests/integration/injection-test.js +3 -3
- package/tests/test-helper.js +0 -3
- package/ember_debug/utils/ember/debug.js +0 -21
- package/ember_debug/utils/ember/instrumentation.js +0 -11
- package/ember_debug/utils/rsvp.js +0 -14
- package/ember_debug/vendor/loader.js +0 -54
- package/ember_debug/vendor/startup-wrapper.js +0 -402
- package/lib/ui/app/components/ui/disclosure-triangle.js +0 -1
- package/lib/ui/app/components/ui/disclosure.js +0 -1
- package/lib/ui/app/components/ui/drag-handle.js +0 -1
- package/lib/ui/app/components/ui/draggable-column.js +0 -1
- package/lib/ui/app/components/ui/empty-message.js +0 -1
- package/lib/ui/app/components/ui/error-page.js +0 -1
- package/lib/ui/app/components/ui/open-links-in-new-window.js +0 -1
- package/lib/ui/app/components/ui/resizable-column.js +0 -1
- package/lib/ui/app/components/ui/send-to-console.js +0 -1
- package/lib/ui/app/components/ui/toolbar-clear-button.js +0 -1
- package/lib/ui/app/components/ui/toolbar-divider.js +0 -1
- package/lib/ui/app/components/ui/toolbar-reload-button.js +0 -1
- package/lib/ui/app/components/ui/toolbar-search-field.js +0 -1
- package/lib/ui/app/components/ui/warning-message.js +0 -1
- package/lib/ui/index.js +0 -34
- package/lib/ui/package.json +0 -13
- /package/{lib/ui/addon/components → app/components/ui}/disclosure-triangle.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/disclosure.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/disclosure.js +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/drag-handle.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/drag-handle.js +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/draggable-column.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/draggable-column.js +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/empty-message.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/error-page.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/open-links-in-new-window.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/open-links-in-new-window.js +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/resizable-column.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/resizable-column.js +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/send-to-console.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/toolbar-clear-button.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/toolbar-divider.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/toolbar-reload-button.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/toolbar-search-field.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/toolbar-search-field.js +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/warning-message.hbs +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_disclosure-triangle.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_drag-handle.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_empty-message.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_error-page.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_goto-source.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_list.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_nav.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_object-inspector-toggle.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_pill.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_send-to-console.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_split.scss +0 -0
- /package/{lib/ui/addon/styles/addon.scss → app/styles/ui/_ui.scss} +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_warning.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_checkbox.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_divider.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_icon-button.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_index.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_radio.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_search.scss +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* eslint-disable ember/new-module-imports */
|
|
2
|
+
export default function setupInstanceInitializer(Ember, app, callback) {
|
|
3
|
+
if (!app.__inspector__setup) {
|
|
4
|
+
app.__inspector__setup = true;
|
|
5
|
+
|
|
6
|
+
// We include the app's guid in the initializer name because in Ember versions < 3
|
|
7
|
+
// registering an instance initializer with the same name, even if on a different app,
|
|
8
|
+
// triggers an error because instance initializers seem to be global instead of per app.
|
|
9
|
+
app.instanceInitializer({
|
|
10
|
+
name: 'ember-inspector-app-instance-booted-' + Ember.guidFor(app),
|
|
11
|
+
initialize: function (instance) {
|
|
12
|
+
callback(instance);
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/* eslint-disable ember/new-module-imports, ember/no-test-import-export */
|
|
2
|
+
|
|
3
|
+
import versionTest from './version-test';
|
|
4
|
+
import { EMBER_VERSIONS_SUPPORTED } from './versions';
|
|
5
|
+
import sendApps from './send-apps';
|
|
6
|
+
import getApplications from './get-applications';
|
|
7
|
+
import bootEmberInspector from './boot-ember-inspector';
|
|
8
|
+
import setupInstanceInitializer from './setup-instance-initializer';
|
|
9
|
+
import sendVersionMiss from './send-version-miss';
|
|
10
|
+
|
|
11
|
+
let Ember;
|
|
12
|
+
|
|
13
|
+
function onReady(callback) {
|
|
14
|
+
if (
|
|
15
|
+
document.readyState === 'complete' ||
|
|
16
|
+
document.readyState === 'interactive'
|
|
17
|
+
) {
|
|
18
|
+
setTimeout(completed);
|
|
19
|
+
} else {
|
|
20
|
+
document.addEventListener('DOMContentLoaded', completed, false);
|
|
21
|
+
// For some reason DOMContentLoaded doesn't always work
|
|
22
|
+
window.addEventListener('load', completed, false);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function completed() {
|
|
26
|
+
document.removeEventListener('DOMContentLoaded', completed, false);
|
|
27
|
+
window.removeEventListener('load', completed, false);
|
|
28
|
+
callback();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function onEmberReady(callback) {
|
|
33
|
+
var triggered = false;
|
|
34
|
+
var triggerOnce = function () {
|
|
35
|
+
if (triggered) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (!Ember) {
|
|
40
|
+
try {
|
|
41
|
+
Ember = requireModule('ember/barrel')['default'];
|
|
42
|
+
} catch {
|
|
43
|
+
// noop
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
Ember = Ember || requireModule('ember')['default'];
|
|
47
|
+
} catch {
|
|
48
|
+
Ember = window.Ember;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (!Ember) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
// `Ember.Application` load hook triggers before all of Ember is ready.
|
|
56
|
+
// In this case we ignore and wait for the `Ember` load hook.
|
|
57
|
+
if (!Ember.RSVP) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
triggered = true;
|
|
61
|
+
callback();
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// Newest Ember versions >= 1.10
|
|
65
|
+
|
|
66
|
+
const later = () => setTimeout(triggerOnce, 0);
|
|
67
|
+
window.addEventListener('Ember', later, { once: true });
|
|
68
|
+
// Oldest Ember versions or if this was injected after Ember has loaded.
|
|
69
|
+
onReady(triggerOnce);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export function startInspector(adapter) {
|
|
73
|
+
// There's probably a better way
|
|
74
|
+
// to determine when the application starts
|
|
75
|
+
// but this definitely works
|
|
76
|
+
function onApplicationStart(callback) {
|
|
77
|
+
if (typeof Ember === 'undefined') {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const adapterInstance = new adapter();
|
|
82
|
+
|
|
83
|
+
adapterInstance.onMessageReceived(function (message) {
|
|
84
|
+
if (message.type === 'app-picker-loaded') {
|
|
85
|
+
sendApps(adapterInstance, getApplications(Ember));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (message.type === 'app-selected') {
|
|
89
|
+
let current = window.EmberInspector._application;
|
|
90
|
+
let selected = getApplications(Ember).find(
|
|
91
|
+
(app) => Ember.guidFor(app) === message.applicationId,
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
if (
|
|
95
|
+
selected &&
|
|
96
|
+
current !== selected &&
|
|
97
|
+
selected.__deprecatedInstance__
|
|
98
|
+
) {
|
|
99
|
+
bootEmberInspector(selected.__deprecatedInstance__);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
var apps = getApplications(Ember);
|
|
105
|
+
|
|
106
|
+
sendApps(adapterInstance, apps);
|
|
107
|
+
|
|
108
|
+
function loadInstance(app) {
|
|
109
|
+
const applicationInstances = app._applicationInstances && [
|
|
110
|
+
...app._applicationInstances,
|
|
111
|
+
];
|
|
112
|
+
let instance = app.__deprecatedInstance__ || applicationInstances[0];
|
|
113
|
+
if (instance) {
|
|
114
|
+
// App started
|
|
115
|
+
setupInstanceInitializer(Ember, app, callback);
|
|
116
|
+
callback(instance);
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
var app;
|
|
122
|
+
for (var i = 0, l = apps.length; i < l; i++) {
|
|
123
|
+
app = apps[i];
|
|
124
|
+
// We check for the existance of an application instance because
|
|
125
|
+
// in Ember > 3 tests don't destroy the app when they're done but the app has no booted instances.
|
|
126
|
+
if (app._readinessDeferrals === 0) {
|
|
127
|
+
if (loadInstance(app)) {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// app already run initializers, but no instance, use _bootPromise and didBecomeReady
|
|
133
|
+
if (app._bootPromise) {
|
|
134
|
+
app._bootPromise.then((app) => {
|
|
135
|
+
loadInstance(app);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
app.reopen({
|
|
140
|
+
didBecomeReady() {
|
|
141
|
+
this._super.apply(this, arguments);
|
|
142
|
+
setTimeout(() => loadInstance(app), 0);
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
Ember.Application.initializer({
|
|
147
|
+
name: 'ember-inspector-booted',
|
|
148
|
+
initialize: function (app) {
|
|
149
|
+
setupInstanceInitializer(app, callback);
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return async function startInspector() {
|
|
155
|
+
// global to prevent injection
|
|
156
|
+
if (window.NO_EMBER_DEBUG) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// If Ember doesn't exist, we should stop here to avoid issues with accessing `Ember.VERSION`
|
|
161
|
+
if (!Ember) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if (!versionTest(Ember.VERSION, EMBER_VERSIONS_SUPPORTED)) {
|
|
166
|
+
// Wrong inspector version. Redirect to the correct version.
|
|
167
|
+
sendVersionMiss(Ember);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// prevent from injecting twice
|
|
172
|
+
if (!window.EmberInspector) {
|
|
173
|
+
let emberDebugMainModule = (await import('../main')).default;
|
|
174
|
+
if (!emberDebugMainModule) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
window.EmberInspector = emberDebugMainModule;
|
|
178
|
+
window.EmberInspector.Adapter = adapter;
|
|
179
|
+
|
|
180
|
+
onApplicationStart(function appStarted(instance) {
|
|
181
|
+
let app = instance.application;
|
|
182
|
+
if (!('__inspector__booted' in app)) {
|
|
183
|
+
// Watch for app reset/destroy
|
|
184
|
+
app.reopen({
|
|
185
|
+
reset: function () {
|
|
186
|
+
this.__inspector__booted = false;
|
|
187
|
+
this._super.apply(this, arguments);
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
if (instance && !('__inspector__booted' in instance)) {
|
|
193
|
+
instance.reopen({
|
|
194
|
+
// Clean up on instance destruction
|
|
195
|
+
willDestroy() {
|
|
196
|
+
if (window.EmberInspector.owner === instance) {
|
|
197
|
+
window.EmberInspector.destroyContainer();
|
|
198
|
+
window.EmberInspector.clear();
|
|
199
|
+
}
|
|
200
|
+
return this._super.apply(this, arguments);
|
|
201
|
+
},
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
if (!window.EmberInspector._application) {
|
|
205
|
+
setTimeout(() => bootEmberInspector(instance), 0);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/* eslint-disable ember/no-test-import-export */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @method compare
|
|
5
|
+
* @param {Number} val
|
|
6
|
+
* @param {Number} number
|
|
7
|
+
* @return {Number}
|
|
8
|
+
* 0: same
|
|
9
|
+
* -1: <
|
|
10
|
+
* 1: >
|
|
11
|
+
*/
|
|
12
|
+
function compare(val, number) {
|
|
13
|
+
if (val === number) {
|
|
14
|
+
return 0;
|
|
15
|
+
} else if (val < number) {
|
|
16
|
+
return -1;
|
|
17
|
+
} else if (val > number) {
|
|
18
|
+
return 1;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Remove -alpha, -beta, etc from versions
|
|
24
|
+
*
|
|
25
|
+
* @param {String} version
|
|
26
|
+
* @return {String} The cleaned up version
|
|
27
|
+
*/
|
|
28
|
+
function cleanupVersion(version) {
|
|
29
|
+
return version.replace(/-.*/g, '');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Compares two Ember versions.
|
|
34
|
+
*
|
|
35
|
+
* Returns:
|
|
36
|
+
* `-1` if version1 < version
|
|
37
|
+
* 0 if version1 == version2
|
|
38
|
+
* 1 if version1 > version2
|
|
39
|
+
*
|
|
40
|
+
* @param {String} version1
|
|
41
|
+
* @param {String} version2
|
|
42
|
+
* @return {Boolean} result of the comparison
|
|
43
|
+
*/
|
|
44
|
+
function compareVersion(version1, version2) {
|
|
45
|
+
let compared, i;
|
|
46
|
+
version1 = cleanupVersion(version1).split('.');
|
|
47
|
+
version2 = cleanupVersion(version2).split('.');
|
|
48
|
+
for (i = 0; i < 3; i++) {
|
|
49
|
+
compared = compare(+version1[i], +version2[i]);
|
|
50
|
+
if (compared !== 0) {
|
|
51
|
+
return compared;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Checks if a version is between two different versions.
|
|
59
|
+
* version should be >= left side, < right side
|
|
60
|
+
*
|
|
61
|
+
* @param {String} version1
|
|
62
|
+
* @param {String} version2
|
|
63
|
+
* @return {Boolean}
|
|
64
|
+
*/
|
|
65
|
+
export default function versionTest(version, between) {
|
|
66
|
+
var fromVersion = between[0];
|
|
67
|
+
var toVersion = between[1];
|
|
68
|
+
|
|
69
|
+
if (compareVersion(version, fromVersion) === -1) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
return !toVersion || compareVersion(version, toVersion) === -1;
|
|
73
|
+
}
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
and Yapp Labs (@yapplabs).
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import Promise from '
|
|
9
|
-
import RSVP from '
|
|
10
|
-
import BaseObject from '
|
|
11
|
-
import Evented from '
|
|
8
|
+
import Promise from '../models/promise';
|
|
9
|
+
import { RSVP } from '../utils/ember';
|
|
10
|
+
import BaseObject from '../utils/base-object';
|
|
11
|
+
import Evented from '../utils/evented';
|
|
12
12
|
|
|
13
13
|
class PromiseAssembler extends BaseObject {
|
|
14
14
|
// RSVP lib to debug
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import captureRenderTree from './capture-render-tree';
|
|
2
|
-
import { guidFor } from '
|
|
3
|
-
import { inspect } from '
|
|
4
|
-
import { isInVersionSpecifier } from '
|
|
1
|
+
import captureRenderTree from './capture-render-tree.js';
|
|
2
|
+
import { guidFor } from '../utils/ember/object/internals';
|
|
3
|
+
import { inspect } from '../utils/type-check';
|
|
4
|
+
import { isInVersionSpecifier } from '../utils/version';
|
|
5
5
|
import {
|
|
6
6
|
VERSION,
|
|
7
7
|
EmberDestroyable,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
GlimmerReference,
|
|
10
10
|
GlimmerRuntime,
|
|
11
11
|
GlimmerUtil,
|
|
12
|
-
} from '
|
|
12
|
+
} from '../utils/ember';
|
|
13
13
|
|
|
14
14
|
class InElementSupportProvider {
|
|
15
15
|
constructor(owner) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import classify from '
|
|
2
|
-
import bound from '
|
|
3
|
-
import getObjectName from '../utils/get-object-name';
|
|
1
|
+
import classify from '../utils/classify';
|
|
2
|
+
import bound from '../utils/bound-method';
|
|
3
|
+
import getObjectName from '../utils/get-object-name.js';
|
|
4
4
|
|
|
5
5
|
function makeHighlight(id) {
|
|
6
6
|
return `<div id="ember-inspector-highlight-${id}" role="presentation"></div>`;
|
package/ember_debug/main.js
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
import BasicAdapter from '
|
|
2
|
-
import Port from '
|
|
3
|
-
import ObjectInspector from '
|
|
4
|
-
import GeneralDebug from '
|
|
5
|
-
import RenderDebug from '
|
|
6
|
-
import ViewDebug from '
|
|
7
|
-
import RouteDebug from '
|
|
8
|
-
import DataDebug from '
|
|
9
|
-
import PromiseDebug from '
|
|
10
|
-
import ContainerDebug from '
|
|
11
|
-
import DeprecationDebug from '
|
|
12
|
-
import Session from '
|
|
13
|
-
|
|
14
|
-
import { Application, Namespace } from '
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} from 'ember-debug/utils/ember/object/internals';
|
|
19
|
-
import { run } from 'ember-debug/utils/ember/runloop';
|
|
20
|
-
import BaseObject from 'ember-debug/utils/base-object';
|
|
1
|
+
import BasicAdapter from './adapters/basic';
|
|
2
|
+
import Port from './port';
|
|
3
|
+
import ObjectInspector from './object-inspector';
|
|
4
|
+
import GeneralDebug from './general-debug';
|
|
5
|
+
import RenderDebug from './render-debug';
|
|
6
|
+
import ViewDebug from './view-debug';
|
|
7
|
+
import RouteDebug from './route-debug';
|
|
8
|
+
import DataDebug from './data-debug';
|
|
9
|
+
import PromiseDebug from './promise-debug';
|
|
10
|
+
import ContainerDebug from './container-debug';
|
|
11
|
+
import DeprecationDebug from './deprecation-debug';
|
|
12
|
+
import Session from './services/session';
|
|
13
|
+
|
|
14
|
+
import { Application, Namespace } from './utils/ember';
|
|
15
|
+
import { guidFor, setGuidPrefix } from './utils/ember/object/internals';
|
|
16
|
+
import { run } from './utils/ember/runloop';
|
|
17
|
+
import BaseObject from './utils/base-object';
|
|
21
18
|
|
|
22
19
|
class EmberDebug extends BaseObject {
|
|
23
20
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import ProfileNode from './profile-node';
|
|
2
|
-
import
|
|
3
|
-
import { compareVersion } from '
|
|
1
|
+
import ProfileNode from './profile-node.js';
|
|
2
|
+
import { VERSION } from '../utils/ember';
|
|
3
|
+
import { compareVersion } from '../utils/version';
|
|
4
4
|
|
|
5
|
-
import { later, scheduleOnce, cancel } from '
|
|
5
|
+
import { later, scheduleOnce, cancel } from '../utils/ember/runloop';
|
|
6
6
|
|
|
7
7
|
function getEdges(first, last, closest) {
|
|
8
8
|
let start = null;
|
|
@@ -75,8 +75,7 @@ export default class ProfileManager {
|
|
|
75
75
|
this.stylesheet = insertStylesheet();
|
|
76
76
|
// keep track of all the active highlights
|
|
77
77
|
this.highlights = [];
|
|
78
|
-
|
|
79
|
-
this.isHighlightEnabled = compareVersion(Ember?.VERSION, '3.20.0') !== -1;
|
|
78
|
+
this.isHighlightEnabled = compareVersion(VERSION, '3.20.0') !== -1;
|
|
80
79
|
}
|
|
81
80
|
|
|
82
81
|
began(timestamp, payload, now) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { typeOf } from '
|
|
2
|
-
import BaseObject from '
|
|
1
|
+
import { typeOf } from '../utils/type-check';
|
|
2
|
+
import BaseObject from '../utils/base-object';
|
|
3
3
|
|
|
4
4
|
const dateComputed = function () {
|
|
5
5
|
return function (target, propertyKey) {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/* eslint-disable ember/no-private-routing-service */
|
|
2
|
-
import DebugPort from './debug-port';
|
|
3
|
-
import bound from '
|
|
2
|
+
import DebugPort from './debug-port.js';
|
|
3
|
+
import bound from './utils/bound-method';
|
|
4
4
|
import {
|
|
5
5
|
isComputed,
|
|
6
6
|
getDescriptorFor,
|
|
7
7
|
typeOf,
|
|
8
8
|
inspect,
|
|
9
|
-
} from '
|
|
10
|
-
import { compareVersion } from '
|
|
9
|
+
} from './utils/type-check';
|
|
10
|
+
import { compareVersion } from './utils/version';
|
|
11
11
|
import {
|
|
12
12
|
EmberObject,
|
|
13
13
|
meta as emberMeta,
|
|
@@ -21,11 +21,11 @@ import {
|
|
|
21
21
|
GlimmerComponent,
|
|
22
22
|
GlimmerReference,
|
|
23
23
|
GlimmerValidator,
|
|
24
|
-
} from '
|
|
25
|
-
import { cacheFor, guidFor } from '
|
|
26
|
-
import { _backburner, join } from '
|
|
27
|
-
import emberNames from './utils/ember-object-names';
|
|
28
|
-
import getObjectName from './utils/get-object-name';
|
|
24
|
+
} from './utils/ember';
|
|
25
|
+
import { cacheFor, guidFor } from './utils/ember/object/internals';
|
|
26
|
+
import { _backburner, join } from './utils/ember/runloop';
|
|
27
|
+
import emberNames from './utils/ember-object-names.js';
|
|
28
|
+
import getObjectName from './utils/get-object-name.js';
|
|
29
29
|
|
|
30
30
|
let tagValue, tagValidate, track, tagForProperty;
|
|
31
31
|
|
package/ember_debug/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ember-debug",
|
|
3
|
+
"version": "0.0.0",
|
|
3
4
|
"private": true,
|
|
4
5
|
"type": "module",
|
|
5
6
|
"scripts": {
|
|
@@ -17,9 +18,10 @@
|
|
|
17
18
|
"backburner.js": "^2.8.0",
|
|
18
19
|
"glob": "^11.0.2",
|
|
19
20
|
"rollup": "^4.39.0",
|
|
21
|
+
"rollup-plugin-delete": "^3.0.1",
|
|
20
22
|
"source-map-js": "^1.2.1"
|
|
21
23
|
},
|
|
22
24
|
"exports": {
|
|
23
|
-
"./*": "
|
|
25
|
+
"./*": "./dist/*.js"
|
|
24
26
|
}
|
|
25
27
|
}
|
package/ember_debug/port.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { guidFor } from '
|
|
2
|
-
import { run } from '
|
|
3
|
-
import BaseObject from '
|
|
4
|
-
import Evented from '
|
|
1
|
+
import { guidFor } from './utils/ember/object/internals';
|
|
2
|
+
import { run } from './utils/ember/runloop';
|
|
3
|
+
import BaseObject from './utils/base-object';
|
|
4
|
+
import Evented from './utils/evented';
|
|
5
5
|
|
|
6
6
|
export default class extends BaseObject {
|
|
7
7
|
constructor(data) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import DebugPort from './debug-port';
|
|
2
|
-
import PromiseAssembler from '
|
|
3
|
-
import { debounce } from '
|
|
4
|
-
import RSVP from '
|
|
1
|
+
import DebugPort from './debug-port.js';
|
|
2
|
+
import PromiseAssembler from './libs/promise-assembler';
|
|
3
|
+
import { debounce } from './utils/ember/runloop';
|
|
4
|
+
import { RSVP } from './utils/ember';
|
|
5
5
|
|
|
6
6
|
export default class extends DebugPort {
|
|
7
7
|
get objectInspector() {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import DebugPort from './debug-port';
|
|
2
|
-
import ProfileManager from './models/profile-manager';
|
|
1
|
+
import DebugPort from './debug-port.js';
|
|
2
|
+
import ProfileManager from './models/profile-manager.js';
|
|
3
3
|
|
|
4
|
-
import { subscribe } from '
|
|
5
|
-
import { _backburner } from '
|
|
6
|
-
import bound from '
|
|
4
|
+
import { subscribe } from './utils/ember';
|
|
5
|
+
import { _backburner } from './utils/ember/runloop';
|
|
6
|
+
import bound from './utils/bound-method';
|
|
7
7
|
|
|
8
8
|
// Initial setup, that has to occur before the EmberObject init for some reason
|
|
9
9
|
let profileManager = new ProfileManager();
|
|
@@ -2,47 +2,23 @@ import { nodeResolve } from '@rollup/plugin-node-resolve';
|
|
|
2
2
|
import commonjs from '@rollup/plugin-commonjs';
|
|
3
3
|
import { babel } from '@rollup/plugin-babel';
|
|
4
4
|
import { globSync } from 'glob';
|
|
5
|
+
import del from 'rollup-plugin-delete';
|
|
5
6
|
|
|
6
7
|
export default {
|
|
7
8
|
input: [
|
|
8
9
|
'main.js',
|
|
9
|
-
...globSync('adapters/**/*.js'),
|
|
10
10
|
'utils/version.js',
|
|
11
|
+
'utils/type-check.js',
|
|
11
12
|
'port.js',
|
|
12
13
|
'utils/ember.js',
|
|
13
14
|
'models/profile-node.js',
|
|
14
15
|
'libs/promise-assembler.js',
|
|
16
|
+
'lib/versions.js',
|
|
17
|
+
...globSync('entrypoints/*.js'),
|
|
15
18
|
],
|
|
16
19
|
output: {
|
|
17
|
-
format: 'amd',
|
|
18
|
-
amd: {
|
|
19
|
-
autoId: true,
|
|
20
|
-
// id: 'ember-debug/[name]',
|
|
21
|
-
basePath: 'ember-debug',
|
|
22
|
-
},
|
|
23
|
-
chunkFileNames: '[name].js',
|
|
24
20
|
dir: 'dist',
|
|
25
21
|
},
|
|
26
22
|
|
|
27
|
-
plugins: [
|
|
28
|
-
babel(),
|
|
29
|
-
nodeResolve(),
|
|
30
|
-
commonjs(),
|
|
31
|
-
/**
|
|
32
|
-
* this plugin forces each of the intenral dependencies for each of the chunks to be prefixed with ember-debug
|
|
33
|
-
*/
|
|
34
|
-
{
|
|
35
|
-
name: 'rollup-plugin-name-amd-modules',
|
|
36
|
-
renderChunk(code) {
|
|
37
|
-
let splitCode = code.split('\n');
|
|
38
|
-
|
|
39
|
-
splitCode[0] = splitCode[0].replaceAll(
|
|
40
|
-
/'\.\/([^']*)'/g,
|
|
41
|
-
`'ember-debug/$1'`,
|
|
42
|
-
);
|
|
43
|
-
|
|
44
|
-
return splitCode.join('\n');
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
],
|
|
23
|
+
plugins: [babel(), nodeResolve(), commonjs(), del({ targets: 'dist' })],
|
|
48
24
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/* eslint-disable ember/no-private-routing-service */
|
|
2
|
-
import DebugPort from './debug-port';
|
|
3
|
-
import { compareVersion } from '
|
|
4
|
-
import { VERSION } from '
|
|
5
|
-
import classify from '
|
|
6
|
-
import dasherize from '
|
|
7
|
-
import { _backburner, later } from '
|
|
8
|
-
import bound from '
|
|
2
|
+
import DebugPort from './debug-port.js';
|
|
3
|
+
import { compareVersion } from './utils/version';
|
|
4
|
+
import { VERSION } from './utils/ember';
|
|
5
|
+
import classify from './utils/classify';
|
|
6
|
+
import dasherize from './utils/dasherize';
|
|
7
|
+
import { _backburner, later } from './utils/ember/runloop';
|
|
8
|
+
import bound from './utils/bound-method';
|
|
9
9
|
|
|
10
10
|
const { hasOwnProperty } = Object.prototype;
|
|
11
11
|
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
// eslint-disable-next-line ember/new-module-imports
|
|
4
|
-
let cacheFor = ObjectInternals?.cacheFor ?? Ember.cacheFor;
|
|
5
|
-
// eslint-disable-next-line ember/new-module-imports
|
|
6
|
-
let emberGuidFor = ObjectInternals?.guidFor ?? Ember.guidFor;
|
|
1
|
+
import { cacheFor, guidFor as emberGuidFor } from '../../ember.js';
|
|
7
2
|
|
|
8
3
|
// it can happen that different ember apps/iframes have the same id for different objects
|
|
9
4
|
// since the implementation is just a counter, so we add a prefix per iframe & app
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as runloop from './own-runloop';
|
|
1
|
+
import { Runloop as EmberRunloop } from '../ember.js';
|
|
2
|
+
import * as runloop from './own-runloop.js';
|
|
3
3
|
|
|
4
4
|
// it could happen that runloop is available but _backburner is not exported (dead code)
|
|
5
5
|
// then we need to use our own.
|
|
@@ -11,11 +11,6 @@ const keys = ['cancel', 'debounce', 'join', 'later', 'scheduleOnce'];
|
|
|
11
11
|
if (EmberRunloop) {
|
|
12
12
|
module = EmberRunloop;
|
|
13
13
|
_backburner = EmberRunloop._backburner || EmberRunloop.backburner;
|
|
14
|
-
} else {
|
|
15
|
-
// eslint-disable-next-line ember/new-module-imports
|
|
16
|
-
module = Ember?.run || module;
|
|
17
|
-
// eslint-disable-next-line ember/new-module-imports
|
|
18
|
-
_backburner = Ember?.run?.backburner || _backburner;
|
|
19
14
|
}
|
|
20
15
|
|
|
21
16
|
if (!keys.every((k) => k in module)) {
|