diff --git a/packages/@ember/-internals/deprecations/index.ts b/packages/@ember/-internals/deprecations/index.ts index 560d1355405..855ecf206a3 100644 --- a/packages/@ember/-internals/deprecations/index.ts +++ b/packages/@ember/-internals/deprecations/index.ts @@ -129,6 +129,16 @@ export const DEPRECATIONS = { enabled: '5.10.0', }, }), + DEPRECATE_ARRAY_PROTOTYPE_EXTENSIONS: deprecation({ + id: 'deprecate-array-prototype-extensions', + url: 'https://deprecations.emberjs.com/id/deprecate-deprecate-array-prototype-extensions', + until: '6.0.0', + for: 'ember-source', + since: { + available: '5.10.0', + enabled: '5.10.0', + }, + }), }; export function deprecateUntil(message: string, deprecation: DeprecationObject) { diff --git a/packages/@ember/-internals/environment/lib/env.ts b/packages/@ember/-internals/environment/lib/env.ts index ae161ca5a39..6547cbe9e6d 100644 --- a/packages/@ember/-internals/environment/lib/env.ts +++ b/packages/@ember/-internals/environment/lib/env.ts @@ -1,3 +1,4 @@ +import { DEPRECATIONS, deprecateUntil } from '@ember/-internals/deprecations'; import { DEBUG } from '@glimmer/env'; import global from './global'; @@ -202,6 +203,14 @@ export const ENV = { } let { EXTEND_PROTOTYPES } = EmberENV; + + if (EXTEND_PROTOTYPES !== false) { + deprecateUntil( + 'Array prototype extensions are deprecated. Follow the deprecation guide for migration instructions, and set EmberENV.EXTEND_PROTOTYPES to false in your config/environment.js', + DEPRECATIONS.DEPRECATE_ARRAY_PROTOTYPE_EXTENSIONS + ); + } + if (EXTEND_PROTOTYPES !== undefined) { if (typeof EXTEND_PROTOTYPES === 'object' && EXTEND_PROTOTYPES !== null) { ENV.EXTEND_PROTOTYPES.Array = EXTEND_PROTOTYPES.Array !== false;