fix(vm): missing check for thread status after executing hats and typo of stackFrames in retireThread - #687
Open
alexcui03 wants to merge 2 commits into
Open
fix(vm): missing check for thread status after executing hats and typo of stackFrames in retireThread#687alexcui03 wants to merge 2 commits into
alexcui03 wants to merge 2 commits into
Conversation
Contributor
|
All contributors have signed the CLA ✍️ ✅ |
Author
|
I have read the CLA Document and I hereby sign the CLA |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Resolves
Resolves #685
thread.stackFramesinSequencer.retireThread, leading to uncleared stack frames.Thread.goToNextBlockinstartHats, since the thread maybe done after callingexecuteandthead.goToNextBlock()will raise an error if the above typo is fixed.Proposed Changes
thread.stackFramesinSequencer.retireThread.thead.goToNextBlock(). Thread will only go to next block iff it hasn't been done.reuseStackForNextBlockto be null in jsdoc.Reason for Changes
Stackframes is not cleared when thread is retired due to typo error. To fix that typo, thread status must be checked before invoking
thread.goToNextBlock()instartHats. Previously, when callinggoToNextBlock,thread.stackis empty andthread.stackFramesis not empty, then the following code:scratch-editor/packages/scratch-vm/src/engine/thread.js
Lines 256 to 259 in a54b373
will execute as normal, since
thread.stack[-1] = null;is valid in javascript. It will assign null value to property '-1', andthread.stack.lengthwill keep 0.Test Coverage
pass
vm/integration/stack-click.js