Fix closure placement to tail position and increase bytecode limit #103
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 PR fixes the closure placement in large block refactoring to use tail position instead of head position, which preserves lexical scoping for variable declarations.
Changes
Tail Position Closures: Rewrote to place closures at the end of blocks instead of the beginning. This ensures variable declarations execute before closures that might use them.
Skip Unsafe Control Flow: Removed error throwing for blocks with unsafe control flow (last/next/redo/goto). Now simply skips refactoring for such blocks.
Increased Bytecode Limit: Raised from 30000 to 40000 bytes to allow larger blocks before requiring refactoring.
Testing
Tested with :
Impact
This change improves lexical scoping preservation when refactoring is enabled, allowing variable declarations to remain visible to subsequent code including closures.