<NME> index.ts
<BEF> import { ENV } from '@ember/-internals/environment';

/**
  Set `EmberENV.FEATURES` in your application's `config/environment.js` file
  to enable canary features in your application.

  See the [feature flag guide](https://guides.emberjs.com/release/configuring-ember/feature-flags/)
  for more details.

  @module @ember/canary-features
  @public
*/

export const DEFAULT_FEATURES = {
  EMBER_LIBRARIES_ISREGISTERED: null,
  EMBER_IMPROVED_INSTRUMENTATION: null,
  EMBER_UNIQUE_ID_HELPER: true,
  EMBER_NAMED_BLOCKS: null,
  EMBER_GLIMMER_SET_COMPONENT_TEMPLATE: true,
  EMBER_ROUTING_MODEL_ARG: true,
  EMBER_CACHE_API: true,
  EMBER_DESTROYABLES: true,
  EMBER_GLIMMER_HELPER_MANAGER: true,
  EMBER_GLIMMER_INVOKE_HELPER: true,

  @class FEATURES
  @static
  @since 1.1.0
  @public
*/
export const FEATURES = Object.assign(DEFAULT_FEATURES, ENV.FEATURES);

/**
  Determine whether the specified `feature` is enabled. Used by Ember's
  build tools to exclude experimental features from beta/stable builds.

  You can define the following configuration options:

  * `EmberENV.ENABLE_OPTIONAL_FEATURES` - enable any features that have not been explicitly
    enabled/disabled.

  @method isEnabled
  @param {String} feature The feature to check
  @return {Boolean}
  @since 1.1.0
  @public
*/
export function isEnabled(feature: string): boolean {
  let value = FEATURES[feature];

  if (value === true || value === false) {
    return value;
  } else if (ENV.ENABLE_OPTIONAL_FEATURES) {
    return true;
  } else {
    return false;
  }
}

function featureValue(value: null | boolean) {
  if (ENV.ENABLE_OPTIONAL_FEATURES && value === null) {
    return true;
  }

  return value;
}

export const EMBER_LIBRARIES_ISREGISTERED = featureValue(FEATURES.EMBER_LIBRARIES_ISREGISTERED);
export const EMBER_IMPROVED_INSTRUMENTATION = featureValue(FEATURES.EMBER_IMPROVED_INSTRUMENTATION);
export const EMBER_UNIQUE_ID_HELPER = featureValue(FEATURES.EMBER_UNIQUE_ID_HELPER);
export const EMBER_DEFAULT_HELPER_MANAGER = featureValue(FEATURES.EMBER_DEFAULT_HELPER_MANAGER);
  FEATURES.EMBER_GLIMMER_SET_COMPONENT_TEMPLATE
);
export const EMBER_ROUTING_MODEL_ARG = featureValue(FEATURES.EMBER_ROUTING_MODEL_ARG);
export const EMBER_CACHE_API = featureValue(FEATURES.EMBER_CACHE_API);
export const EMBER_DESTROYABLES = featureValue(FEATURES.EMBER_DESTROYABLES);
export const EMBER_GLIMMER_HELPER_MANAGER = featureValue(FEATURES.EMBER_GLIMMER_HELPER_MANAGER);
export const EMBER_GLIMMER_INVOKE_HELPER = featureValue(FEATURES.EMBER_GLIMMER_INVOKE_HELPER);

<MSG> Merge pull request #19204 from andreisebastianc/clean-ember-cache-api-feature-flag-18060


<DFF> @@ -18,7 +18,6 @@ export const DEFAULT_FEATURES = {
   EMBER_NAMED_BLOCKS: null,
   EMBER_GLIMMER_SET_COMPONENT_TEMPLATE: true,
   EMBER_ROUTING_MODEL_ARG: true,
-  EMBER_CACHE_API: true,
   EMBER_DESTROYABLES: true,
   EMBER_GLIMMER_HELPER_MANAGER: true,
   EMBER_GLIMMER_INVOKE_HELPER: true,
@@ -78,7 +77,6 @@ export const EMBER_GLIMMER_SET_COMPONENT_TEMPLATE = featureValue(
   FEATURES.EMBER_GLIMMER_SET_COMPONENT_TEMPLATE
 );
 export const EMBER_ROUTING_MODEL_ARG = featureValue(FEATURES.EMBER_ROUTING_MODEL_ARG);
-export const EMBER_CACHE_API = featureValue(FEATURES.EMBER_CACHE_API);
 export const EMBER_DESTROYABLES = featureValue(FEATURES.EMBER_DESTROYABLES);
 export const EMBER_GLIMMER_HELPER_MANAGER = featureValue(FEATURES.EMBER_GLIMMER_HELPER_MANAGER);
 export const EMBER_GLIMMER_INVOKE_HELPER = featureValue(FEATURES.EMBER_GLIMMER_INVOKE_HELPER);

{'commit': "diff --git a/packages/@ember/-internals/metal/lib/cache.ts b/packages/@ember/-internals/metal/lib/cache.ts\nindex 4f1826fd9..afc7080c6 100644\n--- a/packages/@ember/-internals/metal/lib/cache.ts\n+++ b/packages/@ember/-internals/metal/lib/cache.ts\n@@ -8,7 +8,6 @@ export { createCache, getValue, isConst } from '@glimmer/validator';\n   updated.\n \n   @module @glimmer/tracking/primitives/cache\n-  @category EMBER_CACHE_API\n   @public\n */\n \n@@ -49,7 +48,6 @@ export { createCache, getValue, isConst } from '@glimmer/validator';\n   ```\n \n   @method createCache\n-  @category EMBER_CACHE_API\n   @static\n   @for @glimmer/tracking/primitives/cache\n   @public\n@@ -72,7 +70,6 @@ export { createCache, getValue, isConst } from '@glimmer/validator';\n   ```\n \n   @method getValue\n-  @category EMBER_CACHE_API\n   @static\n   @for @glimmer/tracking/primitives/cache\n   @public\n@@ -120,7 +117,6 @@ export { createCache, getValue, isConst } from '@glimmer/validator';\n   accident.\n \n   @method isConst\n-  @category EMBER_CACHE_API\n   @static\n   @for @glimmer/tracking/primitives/cache\n   @public\ndiff --git a/packages/@ember/canary-features/index.ts b/packages/@ember/canary-features/index.ts\nindex 8e2b946bf..364e152ed 100644\n--- a/packages/@ember/canary-features/index.ts\n+++ b/packages/@ember/canary-features/index.ts\n@@ -18,7 +18,6 @@ export const DEFAULT_FEATURES = {\n   EMBER_NAMED_BLOCKS: null,\n   EMBER_GLIMMER_SET_COMPONENT_TEMPLATE: true,\n   EMBER_ROUTING_MODEL_ARG: true,\n-  EMBER_CACHE_API: true,\n   EMBER_DESTROYABLES: true,\n   EMBER_GLIMMER_HELPER_MANAGER: true,\n   EMBER_GLIMMER_INVOKE_HELPER: true,\n@@ -78,7 +77,6 @@ export const EMBER_GLIMMER_SET_COMPONENT_TEMPLATE = featureValue(\n   FEATURES.EMBER_GLIMMER_SET_COMPONENT_TEMPLATE\n );\n export const EMBER_ROUTING_MODEL_ARG = featureValue(FEATURES.EMBER_ROUTING_MODEL_ARG);\n-export const EMBER_CACHE_API = featureValue(FEATURES.EMBER_CACHE_API);\n export const EMBER_DESTROYABLES = featureValue(FEATURES.EMBER_DESTROYABLES);\n export const EMBER_GLIMMER_HELPER_MANAGER = featureValue(FEATURES.EMBER_GLIMMER_HELPER_MANAGER);\n export const EMBER_GLIMMER_INVOKE_HELPER = featureValue(FEATURES.EMBER_GLIMMER_INVOKE_HELPER);\ndiff --git a/packages/ember/index.js b/packages/ember/index.js\nindex 488a3a1cd..791aeb0f3 100644\n--- a/packages/ember/index.js\n+++ b/packages/ember/index.js\n@@ -13,7 +13,6 @@ import {\n   EMBER_GLIMMER_HELPER_MANAGER,\n   EMBER_GLIMMER_INVOKE_HELPER,\n   EMBER_GLIMMER_SET_COMPONENT_TEMPLATE,\n-  EMBER_CACHE_API,\n   EMBER_DESTROYABLES,\n   EMBER_MODERNIZED_BUILT_IN_COMPONENTS,\n } from '@ember/canary-features';\n@@ -351,11 +350,9 @@ Ember.observer = metal.observer;\n Ember.mixin = metal.mixin;\n Ember.Mixin = metal.Mixin;\n \n-if (EMBER_CACHE_API) {\n-  Ember._createCache = metal.createCache;\n-  Ember._cacheGetValue = metal.getValue;\n-  Ember._cacheIsConst = metal.isConst;\n-}\n+Ember._createCache = metal.createCache;\n+Ember._cacheGetValue = metal.getValue;\n+Ember._cacheIsConst = metal.isConst;\n \n if (EMBER_DESTROYABLES) {\n   Ember._registerDestructor = registerDestructor;\n", 'commit_subject': 'Merge pull request #19204 from andreisebastianc/clean-ember-cache-api-feature-flag-18060', 'repo_name': 'emberjs/ember.js', 'committer': {'name': 'GitHub', 'email': '1505422b2465e9a84f6fdfaa161078890c593f06@github.com', 'time_sec': '1602865828', 'tz_offset': '-240', 'date': {'seconds': '1602865828'}}, 'commit_tree': '562b6f870fd3d477644e8333625812ca94c6ddb9', 'commit_message': 'Merge pull request #19204 from andreisebastianc/clean-ember-cache-api-feature-flag-18060\n\n', 'language_name': 'TypeScript', 'license': 'mit', 'hunks': '@@ -18,7 +18,6 @@ export const DEFAULT_FEATURES = {\n   EMBER_NAMED_BLOCKS: null,\n   EMBER_GLIMMER_SET_COMPONENT_TEMPLATE: true,\n   EMBER_ROUTING_MODEL_ARG: true,\n-  EMBER_CACHE_API: true,\n   EMBER_DESTROYABLES: true,\n   EMBER_GLIMMER_HELPER_MANAGER: true,\n   EMBER_GLIMMER_INVOKE_HELPER: true,\n@@ -78,7 +77,6 @@ export const EMBER_GLIMMER_SET_COMPONENT_TEMPLATE = featureValue(\n   FEATURES.EMBER_GLIMMER_SET_COMPONENT_TEMPLATE\n );\n export const EMBER_ROUTING_MODEL_ARG = featureValue(FEATURES.EMBER_ROUTING_MODEL_ARG);\n-export const EMBER_CACHE_API = featureValue(FEATURES.EMBER_CACHE_API);\n export const EMBER_DESTROYABLES = featureValue(FEATURES.EMBER_DESTROYABLES);\n export const EMBER_GLIMMER_HELPER_MANAGER = featureValue(FEATURES.EMBER_GLIMMER_HELPER_MANAGER);\n export const EMBER_GLIMMER_INVOKE_HELPER = featureValue(FEATURES.EMBER_GLIMMER_INVOKE_HELPER);\n', 'addition_count': 0, 'deletion_count': 2, 'src_file': 'a/packages/@ember/canary-features/index.ts', 'tgt_file': 'b/packages/@ember/canary-features/index.ts', 'file_extension': '.ts', 'before_file': "import { ENV } from '@ember/-internals/environment';\n\n/**\n  Set `EmberENV.FEATURES` in your application's `config/environment.js` file\n  to enable canary features in your application.\n\n  See the [feature flag guide](https://guides.emberjs.com/release/configuring-ember/feature-flags/)\n  for more details.\n\n  @module @ember/canary-features\n  @public\n*/\n\nexport const DEFAULT_FEATURES = {\n  EMBER_LIBRARIES_ISREGISTERED: null,\n  EMBER_IMPROVED_INSTRUMENTATION: null,\n  EMBER_UNIQUE_ID_HELPER: true,\n  EMBER_NAMED_BLOCKS: null,\n  EMBER_GLIMMER_SET_COMPONENT_TEMPLATE: true,\n  EMBER_ROUTING_MODEL_ARG: true,\n  EMBER_CACHE_API: true,\n  EMBER_DESTROYABLES: true,\n  EMBER_GLIMMER_HELPER_MANAGER: true,\n  EMBER_GLIMMER_INVOKE_HELPER: true,\n\n  @class FEATURES\n  @static\n  @since 1.1.0\n  @public\n*/\nexport const FEATURES = Object.assign(DEFAULT_FEATURES, ENV.FEATURES);\n\n/**\n  Determine whether the specified `feature` is enabled. Used by Ember's\n  build tools to exclude experimental features from beta/stable builds.\n\n  You can define the following configuration options:\n\n  * `EmberENV.ENABLE_OPTIONAL_FEATURES` - enable any features that have not been explicitly\n    enabled/disabled.\n\n  @method isEnabled\n  @param {String} feature The feature to check\n  @return {Boolean}\n  @since 1.1.0\n  @public\n*/\nexport function isEnabled(feature: string): boolean {\n  let value = FEATURES[feature];\n\n  if (value === true || value === false) {\n    return value;\n  } else if (ENV.ENABLE_OPTIONAL_FEATURES) {\n    return true;\n  } else {\n    return false;\n  }\n}\n\nfunction featureValue(value: null | boolean) {\n  if (ENV.ENABLE_OPTIONAL_FEATURES && value === null) {\n    return true;\n  }\n\n  return value;\n}\n\nexport const EMBER_LIBRARIES_ISREGISTERED = featureValue(FEATURES.EMBER_LIBRARIES_ISREGISTERED);\nexport const EMBER_IMPROVED_INSTRUMENTATION = featureValue(FEATURES.EMBER_IMPROVED_INSTRUMENTATION);\nexport const EMBER_UNIQUE_ID_HELPER = featureValue(FEATURES.EMBER_UNIQUE_ID_HELPER);\nexport const EMBER_DEFAULT_HELPER_MANAGER = featureValue(FEATURES.EMBER_DEFAULT_HELPER_MANAGER);\n  FEATURES.EMBER_GLIMMER_SET_COMPONENT_TEMPLATE\n);\nexport const EMBER_ROUTING_MODEL_ARG = featureValue(FEATURES.EMBER_ROUTING_MODEL_ARG);\nexport const EMBER_CACHE_API = featureValue(FEATURES.EMBER_CACHE_API);\nexport const EMBER_DESTROYABLES = featureValue(FEATURES.EMBER_DESTROYABLES);\nexport const EMBER_GLIMMER_HELPER_MANAGER = featureValue(FEATURES.EMBER_GLIMMER_HELPER_MANAGER);\nexport const EMBER_GLIMMER_INVOKE_HELPER = featureValue(FEATURES.EMBER_GLIMMER_INVOKE_HELPER);\n", 'message': 'Merge pull request #19204 from andreisebastianc/clean-ember-cache-api-feature-flag-18060\n\n', 'author_name': 'GitHub', 'lang': 'ts'}