Reputation: 55769
If I have an object that would normally be garbage collected, but has been logged to the console, will it still be eligible for garbage collection?
(function(){
var o = { foo: {} };
console.log(o);
}())
// Can o be collected?
If yes, are there any circumstances where writing to the console (using any of its methods) can affect eligibility for garbage collection?
Edit: I dont believe it will affect eligibility for collection based on watching the heap in Chrome dev tools. But will any category of writing to the console do so?
Upvotes: 22
Views: 2944
Reputation: 200
If you log an object to the console it can not be garbage collected.
You can verify this by entering in the chrome console:
var Foo = function() {};
console.log(new Foo());
Go to “Profiles” and “Take Heap Snapshot”. This will do a garbage collection automatically. Search for class “Foo”. There will be a 1
in column “Objects count“.
Upvotes: 6