Commit Graph
1491 Commits
Author SHA1 Message Date
Luke Schlangen f8dced53dc round numbers but break tests 2018-01-31 08:23:08 -06:00
Chris Willis-Ford 372c50ef69 Merge pull request #921 from cwillisf/use-render-umd
Playground: load renderer as UMD
2018-01-30 12:20:17 -08:00
Christopher Willis-Ford 3717394f00 Playground: load renderer as UMD
The recent changes to the renderer's build output packaging broke this
repository's playground / benchmark suite. These changes aren't the only
way to fix the issue, but this is consistent with the way that the
storage module was already being loaded.
2018-01-29 14:04:19 -08:00
kchadha 490248f652 Merge pull request #914 from kchadha/bugfix-909
Keep block xml up-to-date after renaming a variable.
2018-01-29 09:30:10 -05:00
Chris Willis-Ford 188aa990f2 Merge pull request #917 from mzgoddard/push-reported
Push reported
2018-01-26 15:48:05 -08:00
Karishma Chadha 0b2eaa9e19 Moving block updating code into blocks instead of runtime. 2018-01-26 16:58:45 -05:00
Eric Rosenbaum 229cd7a50c Merge pull request #911 from ericrosenbaum/bugfix/music-ext-safari-onended
Keep playing notes and drums forever on Safari
2018-01-26 13:00:56 -05:00
Michael "Z" Goddard 10acf3c4f5 Add BlocksExecuteCache
Add a Blocks cache available only to execute. This cache lets execute
get a blocks inputs, fields, opcode, and mutation in one request and an
object execute can further modify to store derivative values it use
this and every later execute iteration to perform its duties quicker.
2018-01-24 17:00:42 -05:00
Michael "Z" Goddard 41d6a8f925 Check if a thread's target is null in sequencer
Before calling execute, if a thread's target is null, retire that
thread.

This saves repeatedly checking if the thread's target is null in
recursive calls where even if scratch-gui or blocks, or some other
related library set the target to null, that will not happen during
block execution. It will happen at some time outside of the sequencer
letting the sequencer check once instead of execute checking at every
recursive level.
2018-01-24 17:00:37 -05:00
Michael "Z" Goddard 4286e3e982 Add Thread.blockContainer
Store the thread's blocks at blockContainer letting execute quickly
determine the block source. Monitor threads are a monitor thread. They
do not become a target thread suddenly.
2018-01-24 17:00:35 -05:00
Michael "Z" Goddard ab8d8e5f34 Add optional recursiveCall argument to execute
When execute calls itself to step into the next stack level, pass
RECURSIVE to the recursiveCall level. This argument provides
opportunity to recursed calls in execute to reduce the time needed for
some checks.

- Reduce time for checking around setting
  thread.requestScriptGlowInFrame
- Call thread.pushReportedValue at end of execute when in a recursive
  call

A boolean check is faster than a type lookup, command blocks will only
be executed in non-recursive calls. This saves a minor amount of time
for any result reporting blocks like blocks that get variables or add
two inputs together.

If the block is not returning a promise and execute is a recursed call,
that implies that the block is neither a hat or that the thread is not
at the top. That reduces handleReport to pushReportedValue. Using the
recursiveCall argument the final block calling handleReport can
shortcut the extra work in handleReport and reduce it to immediately
calling pushReportedValue.
2018-01-24 17:00:24 -05:00
Michael "Z" Goddard 6b7582f1c7 Report block result to stackFrame.justReported
- Add stackFrame.justReported

Report the block result to a known key `justReported` instead of a
dynamic key on `reported`. Assuming blocks with a promised value are
relatively infrequent the most common recursive input flow immediately
reads the value "just" reported. In the assumed uncommon case of a
promised thread status, empty the already argValues assigned values
onto the currentStackFrame's reported member. In the next execute call
on this stackFrame, values assigned to reported are read back off onto
argValues, and execute will returned to the assumed common case. This
is a safe assumption since a thread in the promise state will not exit
that state until the next frame when javascript has a chance to call
the resolve handle, setting the thread's state back to another
executable state.

Using direct assignment to `justReported` saves building an object
dynamically. Instead of always building `reported` and `argValues` only
`argValues` is built until a promised state is reached. This also gives
a known time when `reported` is used, allowing cleanup of a
stackFrame's reported to only happen when it was used to persist
already reported values.
2018-01-24 17:00:12 -05:00
Andrew Sliwinski 2ea4c0a21a Merge pull request #907 from LLK/greenkeeper/tap-11.0.1
chore(package): update tap to version 11.0.1
2018-01-24 09:20:47 -05:00
Eric Rosenbaum 115184a2a3 Merge pull request #891 from ericrosenbaum/bugfix/audioplayer-clone-state
Audio effects state for clones
2018-01-23 11:55:39 -05:00
Eric Rosenbaum 275b0c7944 Get customState but don’t create it 2018-01-22 16:38:45 -05:00
Karishma Chadha 784341909b Update block xml for all blocks that use a variable that was just renamed. 2018-01-22 15:14:43 -05:00
Eric Rosenbaum 073ee84a91 Keep bufferSource refs so onended fires on safari 2018-01-22 11:57:06 -05:00
Eric Rosenbaum ad4b31263c Merge pull request #908 from ericrosenbaum/bugfix/load-music-ext-safari
Fix music extension asset loading on safari
2018-01-22 11:13:00 -05:00
Eric Rosenbaum 9eaf67b504 Fix eslint-disable-line 2018-01-22 10:27:16 -05:00
Eric Rosenbaum 4778ab8d4f Fix music extension asset loading on safari 2018-01-22 10:15:41 -05:00
Ray Schamp cc1923f982 Merge pull request #901 from mzgoddard/benchmark-prototype
Benchmark prototype
2018-01-19 13:52:13 -05:00
Andrew Sliwinski a9dd658445 Merge branch 'develop' into greenkeeper/tap-11.0.1 2018-01-19 08:45:58 -05:00
Paul Kaplan 90e9e1c0b0 Merge pull request #889 from paulkaplan/fix-mouse-positions
Fix mouse positions for different stage zoom levels
2018-01-17 13:49:23 -05:00
Michael "Z" Goddard 4d4966cba9 Save and compare results, show individual results in iframe 2018-01-17 12:25:07 -05:00
DD Liu c2ff39ef06 Merge pull request #900 from paulkaplan/fix-text-encoder-require
Require TextEncoder correctly
2018-01-17 12:24:33 -05:00
Michael "Z" Goddard 775d38d8d5 Truncate benchmark selfTime and totalTime values 2018-01-17 12:16:08 -05:00
Michael "Z" Goddard 479f1ba163 Produce a benchmark share link storing the report in the url 2018-01-17 12:16:06 -05:00
Michael "Z" Goddard c6f4d89371 Add benchmark suite, run and report on multiple benchmark projects 2018-01-17 12:10:27 -05:00
Michael "Z" Goddard b02d7e8cd8 Read benchmark warm up time and recording time from uri 2018-01-17 11:59:58 -05:00
Paul Kaplan d649b2555b Require TextEncoder correctly 2018-01-17 11:41:24 -05:00
Ray Schamp 81f1b8c0d0 Merge pull request #898 from LLK/revert-897-textencoding
Revert "Use text-encoding library for text encoder"
2018-01-17 10:59:42 -05:00
Ray Schamp e83141e810 Revert "Use text-encoding library for text encoder" 2018-01-17 10:59:28 -05:00
Ray Schamp 301fcdc518 Merge pull request #897 from fsih/textencoding
Use text-encoding library for text encoder
2018-01-17 10:02:10 -05:00
Ray Schamp c0db708986 Fix import syntax 2018-01-17 09:47:01 -05:00
Paul Kaplan 06160ccdb6 Merge pull request #896 from paulkaplan/fix-import-droppable
Update sb2 specmap for sensing blocks that are now fixed menus.
2018-01-17 08:09:45 -05:00
DD 2c1412dda4 Use text-encoding library for text encoder 2018-01-16 17:41:18 -05:00
Paul Kaplan 57f3d43f4f Update specmap for sensing blocks that are now fixed menus. 2018-01-13 13:23:33 -05:00
Paul Kaplan f12d825a5e Merge pull request #894 from paulkaplan/fix-duplicate-drag
Fix dragging duplicated sprites
2018-01-12 14:49:27 -05:00
Paul Kaplan 223575f850 Remove extra call to initDrawable that was erasing existing drawable.
initDrawable is called in createClone previously, where the new costumes
are installed. Calling this again here erases those loaded skins and
causes an error when trying to calculate the uniforms when a drag
starts.
2018-01-12 11:20:17 -05:00
DD Liu c6c01e7c93 Merge pull request #893 from fsih/nameName
Unique sprite and backdrop names
2018-01-12 10:33:43 -05:00
DD 7ed58da1cf fix set editing target function 2018-01-11 16:43:18 -05:00
DD Liu dfe4cc1e55 Merge pull request #890 from fsih/dropdownMonitor
Update monitor on dropdown change
2018-01-11 12:09:28 -05:00
DD bc64e6ed3e Unique sprite and backdrop names 2018-01-11 11:28:21 -05:00
DD 323aafd165 Update VM's model of monitored blocks 2018-01-10 17:57:04 -05:00
DD fce83dc2c3 make it work for non-droppable inputs 2018-01-10 17:50:48 -05:00
Eric Rosenbaum eca66e9dde Check for runtime 2018-01-09 19:22:33 -05:00
Eric Rosenbaum 283804c21c Init and dispose audio player 2018-01-09 15:57:33 -05:00
Eric Rosenbaum 7c0117e9ed Clones get synced to parent’s sound state 2018-01-09 15:56:58 -05:00
DD db662b8584 fix lint 2018-01-09 14:55:46 -05:00
Paul Kaplan 327d1179d9 Update the mouse io to give scratch coordinates and client coordinates
Fixes GUI #642 https://github.com/LLK/scratch-gui/issues/642

Fixes GUI #179 https://github.com/LLK/scratch-gui/issues/179
2018-01-09 10:37:16 -05:00