diff --git a/packages/ember-runtime/lib/system/core_object.js b/packages/ember-runtime/lib/system/core_object.js index e0a5d13ad66..7a41c7bdc49 100644 --- a/packages/ember-runtime/lib/system/core_object.js +++ b/packages/ember-runtime/lib/system/core_object.js @@ -9,6 +9,7 @@ import { guidFor, getName, setName, + NAME_KEY, makeArray, HAS_NATIVE_PROXY, isInternalSymbol, @@ -608,7 +609,7 @@ CoreObject.PrototypeMixin = Mixin.create({ let hasToStringExtension = typeof this.toStringExtension === 'function'; let extension = hasToStringExtension ? `:${this.toStringExtension()}` : ''; - let ret = `<${getName(this) || FACTORY_FOR.get(this) || this.constructor.toString()}:${guidFor( + let ret = `<${ this[NAME_KEY] || getName(this) || FACTORY_FOR.get(this) || this.constructor.toString()}:${guidFor( this )}${extension}>`; diff --git a/packages/ember/index.js b/packages/ember/index.js index 1dae9790a3a..6afbce78811 100644 --- a/packages/ember/index.js +++ b/packages/ember/index.js @@ -201,7 +201,24 @@ Ember.canInvoke = utils.canInvoke; Ember.tryInvoke = utils.tryInvoke; Ember.wrap = utils.wrap; Ember.uuid = utils.uuid; -Ember.NAME_KEY = utils.NAME_KEY; +Ember.setName = utils.setName; + +Object.defineProperty(Ember, 'NAME_KEY', { + enumerable: false, + get() { + deprecate( + 'Using `Ember.NAME_KEY` is deprecated, please use `Ember.setName` instead', + false, + { + id: 'ember-name-key-usage', + until: '4.0.0', + } + ); + + return utils.NAME_KEY; + }, +}); + Ember._Cache = utils.Cache; // ****container**** diff --git a/packages/ember/tests/reexports_test.js b/packages/ember/tests/reexports_test.js index 17d07c0fadf..8c62e6446eb 100644 --- a/packages/ember/tests/reexports_test.js +++ b/packages/ember/tests/reexports_test.js @@ -34,6 +34,12 @@ moduleFor( }, /EXTEND_PROTOTYPES is deprecated/); } + ['@test Ember.NAME_KEY is deprecated'](assert) { + expectDeprecation(() => { + Ember.NAME_KEY; + }, /`NAME_KEY` is deprecated/); + } + '@test Ember.FEATURES is exported'(assert) { for (let feature in FEATURES) { assert.equal( @@ -64,7 +70,7 @@ let allExports = [ ['canInvoke', 'ember-utils'], ['tryInvoke', 'ember-utils'], ['wrap', 'ember-utils'], - ['NAME_KEY', 'ember-utils'], + ['setName', 'ember-utils'], // container ['Registry', 'container', 'Registry'],