Commit 1f1959d9 by Rashid Khan

Angular tweaks to work around chrome GC bug

parent 90c9d9ef
......@@ -12,6 +12,11 @@ function (angular, app, _) {
return {
restrict: 'A',
link: function($scope, elem) {
$scope.$on("$destroy",function() {
elem.remove();
});
$scope.$watch('panel.type', function() {
var _type = $scope.panel.type;
$scope.reset_panel(_type);
......
......@@ -13,7 +13,6 @@ function (angular) {
'<div class="row-fluid panel-extra"><div class="panel-extra-container">' +
'<span class="extra row-button" ng-show="panel.editable != false">' +
'<span confirm-click="row.panels = _.without(row.panels,panel)" '+
'confirmation="Are you sure you want to remove this {{panel.type}} panel?" class="pointer">'+
......
......@@ -8464,6 +8464,21 @@ function $RootScopeProvider(){
} else {
this.$$childHead = this.$$childTail = child;
}
// RASHID: Fix for chrome GC bug
child.$on('$destroy', function() {
if(Child)
Child.prototype = null;
// Async so that the $broadcast('$destroy') can traverse the rest
setTimeout(function() {
child.__proto__ = {};
for(var i in child)
child[i] = null;
child = null;
return null;
});
});
return child;
},
......@@ -8893,6 +8908,8 @@ function $RootScopeProvider(){
// see: https://github.com/angular/angular.js/issues/1313#issuecomment-10378451
this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead =
this.$$childTail = null;
parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead =
this.$$childTail = null;
},
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment