refactor(LiveChat): Only store required video info values #281
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.
Description
The LiveChat object will be used by users of this library for a much longer amount of time than the VideoInfo, as it needs to stick around for the events to be emitted. By storing the video and channel IDs directly inside the LiveChat object instead of storing the whole (large) VideoInfo object, we allow the JavaScript VM to garbage collect the VideoInfo object (and the many objects inside of it) when there are no more references to it in the library user's code, lowering the memory usage.
In FreeTube for example we read the info that we want from the VideoInfo object, then get the live chat if there is one, after that the FreeTube code no longer references the VideoInfo object. With this change, YouTube.js won't hold any references to it either, so it can get garbage collected.
Type of change
Checklist: