Detect monkey patching and emit a deprecation warning.

This isn't comprehensive but it should be broad enough to ensure that most
people who would be affected by blocking monkey patching see a warning.
Covers the jasmine namespace as well as classes that are monkey patched by
zone.js.

Replacing globals (describe/it/etc) doesn't trigger a warning because they
belong to the user and are expected to be replaced.
This commit is contained in:
Steve Gravrock
2025-11-25 16:54:08 -08:00
parent 32168be6c7
commit 23894c1a0a
15 changed files with 315 additions and 47 deletions

View File

@@ -67,12 +67,15 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
* @function
* @return {Env}
*/
j$.getEnv = function(options) {
const env = (j$.private.currentEnv_ =
j$.private.currentEnv_ || new j$.private.Env(options));
//jasmine. singletons in here (setTimeout blah blah).
return env;
};
Object.defineProperty(j$, 'getEnv', {
enumerable: true,
value: function(options) {
const env = (j$.private.currentEnv_ =
j$.private.currentEnv_ || new j$.private.Env(options));
//jasmine. singletons in here (setTimeout blah blah).
return env;
}
});
j$.private.isArray = function(value) {
return j$.private.isA('Array', value);