From ce2a1cd28010fc64fc3fc97a2346f61df1303e99 Mon Sep 17 00:00:00 2001 From: Simon Ihmig Date: Mon, 3 Jun 2024 16:26:16 +0200 Subject: [PATCH] Deprecate array prototype extensions (cherry picked from commit 18c65f22abbeed65291b005cf9b6df06cbf2132b) --- packages/@ember/-internals/deprecations/index.ts | 10 ++++++++++ packages/@ember/-internals/environment/lib/env.ts | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/packages/@ember/-internals/deprecations/index.ts b/packages/@ember/-internals/deprecations/index.ts index 2e3ed564e3f..646093887c2 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;