Skip to content

Merge mw-next into develop#6

Merged
Mistium merged 127 commits into
developfrom
mw-next
Jul 14, 2026
Merged

Merge mw-next into develop#6
Mistium merged 127 commits into
developfrom
mw-next

Conversation

@Mistium

@Mistium Mistium commented Jul 14, 2026

Copy link
Copy Markdown
Member

Brings mw-next into develop (127 commits). Highlights:

  • Merge upstream compiler while preserving MistWarp compatibility
  • Native Patching category: compile Mist utils, migrate legacy patch blocks, originOS support
  • Native switch/case blocks with vanilla-project lowering on save/load
  • Numerous compiler and load-time performance fixes (project validation, stage caching)
  • Fix toggleScript confusion when block ID is reused across targets (Fix toggleScript confusion when block ID is reused across targets TurboWarp/scratch-vm#347)
  • Run no-op rAF workaround on Chrome Android

🤖 Generated with Claude Code


View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.

Tacodiva and others added 30 commits June 16, 2024 13:10
A future test project will be designed such that failing to
quit the VM after timing out would severely inhibit the
performance of the other tests.
- Node.js 22
- Replace npm run test with npm run tap to avoid unnecessarily running ESLint twice
- update actions/setup-node to fix extra 10 minute delay in CI
- update Node.js
- use version ranges instead of commit hashes to get future updates
  automatically (we already trust the GitHub Actions team)
- don't use npm cache in deploy workflow
ampelectrecuted and others added 29 commits December 15, 2025 18:51
)

This is because beepbox's script:
https://cdn.jsdelivr.net/npm/beepbox@4.2.0/global/beepbox_synth.min.js
has a sourceMappingURL comment at the bottom for whatever
reason, causing it to become
//# sourceMappingURL=beepbox_synth.min.js.map;return beepbox;
This is obviously going to break and might also be the case with
other libraries too, hot just beepbox.

Ported from AmpMod:
https://codeberg.org/ampmod/ampmod/commit/0daf1021bdc8e67a1f0d08b91ce500605fcaa711
It is still not perfect. Better though
Fixes TurboWarp#257
Closes TurboWarp#324
(this one uses a different approach and restricts to 30 FPS and checks
if the platform is known to benefit before we turn on battery draining
workarounds)
They can return 0 if the sprite does not exist
Fixes TurboWarp#262
Closes TurboWarp#325
(this one uses a different fix and has tests)

There are broader issues about compiled sensing_of not handling dynamic
sprite create/delete. We should tackle that later. The other PR wouldn't
really fix this either.
It can return 0 when fencing is disabled
Fixes stringifying -0, objects, arrays
Why:
* We use immutable.js 3.8.2 which is ancient and not getting updates
* immutable.js adds 55KB to the bundle, of which we use almost nothing
* immutable.js's treatment of 0 and -0 is nonsensical and would require weird workarounds like TurboWarp#320
* We don't benefit from the whole immutability thing

What we're doing instead:
* We have our own MonitorState and MonitorRecord classes
* We track dirty-ness at modification time instead of equality checking every tick
* scratch-gui and packager can continue to think we use immutable.js without causing issues in either direction
  * our objects have enough stubs that immutable.js-expecting consumers are ok
  * when receiving an object, we check if it looks like an immutable.js one and ask for the plain JS version so that works okay too
I thought this may have been part of fixing a sb2 -> sb3 corruption issue.
But from commit log, it seems this was added to prevent extensions from making mistakes.
With the scratch-parser change, those mistakes are now considered features.
Seems safe to just do remove these checks all the time.
Closes TurboWarp#332
…rboWarp#335)

Co-authored-by: Cubester <78769806+CubesterYT@users.noreply.github.com>
Co-authored-by: Thomas Weber <muffin@muffin.ink>
Our editor relies on the mutation for control_stop to know if there is a connection below.
Spork does not export that mutation anymore.
Instead, we will just generate the mutation to fix errors on loading.
Fixes TurboWarp/sb3fix#125 in the safest way that
hopefully has no unforseen breakages on weird behaviors
@Mistium
Mistium merged commit 02a6d13 into develop Jul 14, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants