mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-05-31 02:41:32 +08:00
revert: fix(Scope): aggressively clean up scope on $destroy to minimize leaks
This reverts commit f552f25171.
The commit is causing regressions.
Closes #6897
This commit is contained in:
@@ -731,26 +731,15 @@ function $RootScopeProvider(){
|
||||
|
||||
forEach(this.$$listenerCount, bind(null, decrementListenerCount, this));
|
||||
|
||||
// sever all the references to parent scopes (after this cleanup, the current scope should
|
||||
// not be retained by any of our references and should be eligible for garbage collection)
|
||||
if (parent.$$childHead == this) parent.$$childHead = this.$$nextSibling;
|
||||
if (parent.$$childTail == this) parent.$$childTail = this.$$prevSibling;
|
||||
if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling;
|
||||
if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling;
|
||||
|
||||
// This is bogus code that works around V8's memory leak coming from ICs
|
||||
// see: https://code.google.com/p/v8/issues/detail?id=2073#c26
|
||||
//
|
||||
// for more info also see:
|
||||
// - https://github.com/angular/angular.js/issues/6794#issuecomment-38648909
|
||||
// - https://github.com/angular/angular.js/issues/1313#issuecomment-10378451
|
||||
for (var prop in this) {
|
||||
if (hasOwnProperty.call(this, prop)) {
|
||||
this[prop] = null;
|
||||
}
|
||||
}
|
||||
// recreate the $$destroyed flag
|
||||
this.$$destroyed = true;
|
||||
// This is bogus code that works around Chrome's GC leak
|
||||
// see: https://github.com/angular/angular.js/issues/1313#issuecomment-10378451
|
||||
this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead =
|
||||
this.$$childTail = null;
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user