Gamelab: add this.debuggerEnabled to avoid leak #25229
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.
this.debuggerEnabled
state variable to remember whether or not it needs to worry about the debugger. Previously, it checkedshowDebugButtons || showDebugConsole
only for callingjsDebugger.initialize()
and potentiallyjsDebugger.open()
. But, it would still callattach()
,detach()
, andappendLog()
when it didn't really need to.JSInterpreter
instance for each Run/Reset when we did this, but only onBlockly
gamelab levels. TheBlockly
instance holds out to a previous redux store state, that contains the previousJSInterpreter
(even though we did properlynull
out thejsInterpreter
state duringjsDebugger.detach()
). This may warrant further investigation, but the change above avoids the massive leak ofJSInterpreter
,p5
, and everything else attached.