Commit Graph
5659 Commits
Author SHA1 Message Date
Muffin 1decd331ad Alow LOOP and CONDITION blocks to use startBranch in interpreter and remove rounding 2023-08-23 14:50:42 -05:00
Muffin 8b43eae4de Make addBuiltinExtension per-VM, not global 2023-08-23 13:37:04 -05:00
GarboMuffin 1cb2549c6b Merge pull request #158 from TurboWarp/loops-2
Implement LOOP and CONDITION blocks in interpreter and compiler
2023-08-22 17:07:45 -05:00
Muffin 7fd9495703 Update snapshots 2023-08-22 16:54:21 -05:00
Muffin 9acb696d5a Implement LOOP blocks in compiler 2023-08-22 16:34:47 -05:00
Muffin e9f0a3686c Implement LOOP blocks in interpreter 2023-08-22 16:34:47 -05:00
Muffin 87119eadb7 Implement CONDITIONAL blocks in interpreter 2023-08-22 16:34:47 -05:00
Muffin db0776711f Implement CONDITIONAL blocks in compiler 2023-08-22 16:34:47 -05:00
Muffin 2027b9288f Update snapshot 2023-08-22 16:34:34 -05:00
Muffin d25389aaf2 Remove unused code 2023-08-22 16:26:38 -05:00
Muffin 14ed3a9b99 Fix custom reporters when used inside of "repeat ( )" block in interpreter 2023-08-22 16:25:47 -05:00
Muffin 6399562b90 Revert running unsandboxed extensions with fetch() and new AsyncFunction instead of <script>
It causes other issues:
 - It *will* break projects
 - Stack traces from errors in extensions are unusable
 - We do not even get some of the originally intended benefits like parallel loading
2023-08-22 11:24:20 -05:00
GarboMuffin 9caca1c510 Merge pull request #157 from TurboWarp/modernize-loading
Use fetch() and AsyncFunction instead of `<script>` for unsandboxed extensions
2023-08-22 10:48:54 -05:00
Muffin 683620994f Fix tests 2023-08-22 10:43:04 -05:00
Muffin 55cda8242c Run unsandboxed extensions with fetch() and new AsyncFunction instead of <script>
Benefits:
 - IIFE no longer needed
 - Extensions can await
 - Better error messages
Downsides:
 - CORS now required to load extensions
2023-08-22 10:00:36 -05:00
Muffin b23fb1e8be Refactor ScratchX compatibility layer 2023-08-16 16:39:09 -05:00
GarboMuffin c787bcc44c Merge pull request #156 from TurboWarp/fonts
Custom fonts - VM part
2023-08-16 10:45:57 -05:00
Muffin b9e84b7db2 Implement custom font manager 2023-08-16 10:34:06 -05:00
Muffin efa7e9d639 Refactor asset serialization 2023-08-14 11:27:32 -05:00
GarboMuffin 0690b9b84d Merge pull request #155 from TurboWarp/hats-revisit
Significantly improve hat blocks and event blocks
2023-08-13 16:58:42 -05:00
Muffin 186ad43b5b Add extensive event and hat test 2023-08-13 16:53:25 -05:00
Muffin afb04f83d8 Run existing hat tests in both interpreter and compiler 2023-08-13 16:53:25 -05:00
Muffin 391c3dc979 Do not ignore compilation errors related to edge-activated hats
They can now be compiled, so this code is dead.
2023-08-13 16:53:25 -05:00
Muffin 49d1785496 Improve interpreter's hat block implementation
Improve handling of promises and stackClick with predicate-based hats
2023-08-13 16:53:25 -05:00
Muffin ff41d1dcf8 Fix compiler's hat implementation
Now supports edge-activated and predicate-based hats
2023-08-13 16:53:25 -05:00
Muffin 843b4c3839 Add API to add a new "builtin" extension at runtime
This will be used by tests
2023-08-13 16:53:25 -05:00
Muffin c549569651 Comment out test entirely to clean up logs 2023-08-08 22:56:17 -05:00
GarboMuffin 461ef267da Merge pull request #144 from TurboWarp/xml-blocktype
BlockType.XML
2023-08-06 22:08:30 -05:00
Muffin c32c66679f Add test 2023-08-06 21:48:18 -05:00
GarboMuffin 7115abb56d BlockType.XML 2023-08-06 21:46:59 -05:00
Muffin a1d2cd108a Modify saveProjectSb3DontZip asset order to match saveProjectSb3 2023-07-31 22:37:16 -05:00
Muffin 4631dfc6a7 Add Turboloader AudioStream to default extension URLs 2023-07-29 23:15:55 -05:00
Muffin 2bd4d4201a Include compile errors in snapshot tests 2023-07-29 10:50:52 -05:00
Muffin 791189b7b9 Fix incorrect command in snapshot test error 2023-07-29 10:50:37 -05:00
Muffin 9cded93814 Fix return value of non-existent procedure in compiler 2023-07-29 10:45:28 -05:00
GarboMuffin fbc62badf6 Merge pull request #150 from TurboWarp/return
Allow custom blocks to return values - VM part
2023-07-29 09:56:57 -05:00
GarboMuffin edae502def Merge pull request #154 from TurboWarp/serialize-block-fixes
Add API to export blocks with extension metadata
2023-07-28 23:33:09 -05:00
Muffin 2158aef763 Refactor default extension URL handling 2023-07-28 23:27:14 -05:00
Muffin 1d314182a7 Remove unnecessary helper function 2023-07-28 23:02:07 -05:00
Muffin 67afd7e8e3 Add API to export blocks with extension metadata
Will be used to make backpack work properly with custom extensions
2023-07-28 22:59:06 -05:00
Muffin 8453a47848 Update addon block tests 2023-07-26 20:39:34 -05:00
Muffin d3d3cfe6e3 Allow controlling addon block return shape 2023-07-26 20:39:23 -05:00
Muffin 8cd117ce45 Implement reporter-shaped addon blocks in compiler 2023-07-26 20:33:04 -05:00
Muffin 0d857e4019 Make arguments optional in addAddonBlock 2023-07-26 20:12:13 -05:00
GarboMuffin a56307f3f8 Merge pull request #151 from TurboWarp/serialize-fixes 2023-07-25 23:58:11 -05:00
Muffin 6681b22349 Include extension list in exported .sprite3 files
closes https://github.com/TurboWarp/extensions/issues/767
2023-07-25 23:53:31 -05:00
Muffin 88b49da0d9 Serialize costumes before sounds
If file saving breaks and we write a truncated file, this order matters.
Sounds tend to be large (so few will be recoverable) and generally
aren't even original, so recovery is often meaningless. Costumes
are much more likely to be original, and they're much smaller
so more will be recovered.
2023-07-25 23:53:31 -05:00
Muffin b8892efba6 Disable tests that are now intentionally broken 2023-07-23 15:17:44 -05:00
Muffin f0bb852f10 Revert "Update behavior of non-existant procedures in compiler to match interpreter"
This reverts commit b04df3eda7.

There are still subtle issues related to execution order (JS is left-to-right while
Scratch is depth-first). As there will inherently be some issues, we may as well
do what runs faster.
2023-07-23 15:06:29 -05:00
GarboMuffin efd2ac0bf9 Revert "Merge pull request #148 from TurboWarp/trampoline-tts"
This reverts commit 102946bbf5, reversing
changes made to 9ee3974242.

Turns out there's a lot more of these than anticipated. Cloudflare might
not be a big fan of us putting audio files through their CDN, so turning
this off for now.
2023-07-16 21:47:41 -05:00