[BUGFIX beta] Avoid storing container on the prototype. #15163
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In order to support
this.container
(deprecated since 2.3) being available to objects for backwards compatibility, we define thecontainer
property on all classes that we instantiate via normal DI APIs.The bulk of the work to support this was done in prior refactorings. This change is targetted at ensuring that we do not leak the container instance onto the object's prototype in the
CONTAINER_OVERRIDE
slot.After these changes, we still support all of the APIs that we supported previously, but will fallback to the current objects owner
__container__
property (instead of storing it on the prototype directly).Also, the test being updated here was not providing the
owner
to the container in the unit test. This test being changed was previously only doing part of the required setup for creating aregistry
/container
/owner
group.