For bad historic reasons, if you disable AMD compilation with compileModules: false, it opts you into the using the Ember global via modulesAPIPolyfill and debug-macros. This is a problem because we absolutely do want to disable AMD compilation as we move toward strict-es-modules, but the Ember global has been gone since 4.0.
It's possible to work around the modulesAPIPolyfill issue by explicitly turning the polyfill off. But it's impossible to work around the debug-macros problem, because we don't want to turn them off, we want to keep them on but tell them to use imports instead of globals.
In both cases, it's a bad default that emits code that could never possibly work. This PR makes Ember 4.0 the hard cutoff, after which we will never emit globals, because they don't work there anyway.
For bad historic reasons, if you disable AMD compilation with
compileModules: false
, it opts you into the using theEmber
global via modulesAPIPolyfill and debug-macros. This is a problem because we absolutely do want to disable AMD compilation as we move toward strict-es-modules, but the Ember global has been gone since 4.0.It's possible to work around the modulesAPIPolyfill issue by explicitly turning the polyfill off. But it's impossible to work around the debug-macros problem, because we don't want to turn them off, we want to keep them on but tell them to use imports instead of globals.
In both cases, it's a bad default that emits code that could never possibly work. This PR makes Ember 4.0 the hard cutoff, after which we will never emit globals, because they don't work there anyway.