Commit Graph
1253 Commits
Author SHA1 Message Date
Eric Rosenbaum 75ec76cd57 Fix unit test 2017-11-14 14:58:16 -05:00
Eric Rosenbaum 9665b3ed25 Always yield on first run of a timed block 2017-11-14 14:40:27 -05:00
Eric Rosenbaum 7a65fe7d07 Limit number of concurrent drum sounds 2017-11-14 14:39:50 -05:00
Eric Rosenbaum b64152637e Play drums! 2017-11-14 14:39:11 -05:00
Eric Rosenbaum 73dbc82411 Get number of drums from drum info array 2017-11-14 14:36:34 -05:00
Eric Rosenbaum 14e2ca8d99 Round the drum num arg 2017-11-14 14:35:26 -05:00
Eric Rosenbaum c26198d050 Load drum sounds into an array of buffers 2017-11-14 14:33:14 -05:00
Eric Rosenbaum 91878adfe1 Build menus using drum and instrument info arrays 2017-11-14 14:32:14 -05:00
Eric Rosenbaum 9f1bcd2594 Arrays with drum and instrument name and filename 2017-11-14 14:30:44 -05:00
Eric Rosenbaum f5b25a190e Add assets (drum sounds) for music extension 2017-11-13 16:23:10 -05:00
Eric Rosenbaum 961b3476b2 Move the music extension into a new extensions directory 2017-11-13 16:22:37 -05:00
Eric Rosenbaum 37d627bc89 Fix unit test 2017-11-13 10:57:36 -05:00
Eric Rosenbaum be25cd93bd Use stack timer for timing of drum, note and rest blocks. 2017-11-13 10:43:09 -05:00
Eric Rosenbaum db3b0ca204 Move musical timing into music extension
and use the stackframe timer, which improves timing accuracy.
2017-11-09 17:49:42 -05:00
Andrew Sliwinski 3fa1599b90 Merge pull request #701 from Scimonster/variable-xml-names
Correctly deserialize HTML entities in block DOM
2017-11-08 08:03:56 -05:00
Eric Rosenbaum 61c7a2473e Merge pull request #769 from ericrosenbaum/feature/extension-music
Move music blocks into an extension
2017-11-07 18:36:20 -05:00
Eric Rosenbaum c0fdbc2f4d Fix sound integration test 2017-11-07 16:26:35 -05:00
Eric Rosenbaum dc4767646f Move music-related unit tests into a separate file 2017-11-07 16:26:20 -05:00
Eric Rosenbaum 50c646259c Merge branch 'develop' of https://github.com/LLK/scratch-vm into feature/extension-music 2017-11-07 15:54:38 -05:00
Eric Rosenbaum 112bb55b9b JSDoc 2017-11-07 15:21:47 -05:00
Eric Rosenbaum 9bd48e8761 Mark the buildMenu function private 2017-11-07 15:21:20 -05:00
Ray Schamp 8d2ee7a590 Merge pull request #752 from LLK/greenkeeper/scratch-storage-0.3.0
Update scratch-storage to the latest version 🚀
2017-11-07 12:20:30 -05:00
Ray Schamp b07bbd4745 Merge pull request #765 from mzgoddard/execute-is-promise-deopt
Write src/engine/execute so it can be optimized
2017-11-07 12:19:58 -05:00
Ray Schamp 180e545b4e Merge pull request #766 from mzgoddard/execute-handle-report-block-utility
Extract handleReport and BlockUtility from inside the execute function
2017-11-07 12:19:23 -05:00
Eric Rosenbaum 87cf546b03 Remove music opcodes from sound bocks 2017-11-07 11:28:04 -05:00
Eric Rosenbaum 533ed60d98 Update sb2 specmap with music extension blocks 2017-11-07 11:27:50 -05:00
Eric Rosenbaum b2941f8c5a Load music as internal extension 2017-11-07 11:27:33 -05:00
Paul Kaplan 1f98960636 Merge pull request #764 from paulkaplan/ask-answer-events
Ask/answer opcode implementation with runtime events.
2017-11-07 10:49:48 -05:00
Ray Schamp 5290570fc5 Merge pull request #758 from mzgoddard/done-threads-indexof
Constant time check if a thread is in doneThreads
2017-11-07 10:30:15 -05:00
Michael "Z" Goddard e3dfe24d7f Store references to target in say blocks
As part of reusing the block utility object, asynchronous say block
functions cannot use the utility in a promise or timeout asynchronous
handle. Store the needed target reference so utility is not needed
later.
2017-11-07 10:21:52 -05:00
Michael "Z" Goddard bbe7981703 Extract blockUtility from execute to reduce allocations
blockUtility as an object literal inside execute creates 11 objects,
one for the object, and 10 for the function closures. As a separate
object and allocated once, setting its sequencer and thread members,
block functions can share the same util object. Extract blockUtility to
cut down on allocations.
2017-11-07 10:21:51 -05:00
Michael "Z" Goddard 78847de660 Extract handleReport and add arguments to prevent closure alloc
`handleReport` inside `src/engine/execute.js`'s `execute` method needs
to allocate a closure to be able to refer to the higher scoped
variables. `execute` is called frequently that this has a noticable
impact on memory allocation and later collection. Extract handleReport
and add arguments to prevent the allocation.
2017-11-07 10:21:51 -05:00
Andrew Sliwinski 1efc312c36 Merge pull request #767 from mzgoddard/docs-blocks-param-names
Replace duplicate documentation on getProcedureParamNames
2017-11-06 19:34:51 -05:00
Michael "Z" Goddard 888da915a5 Replace duplicate documentation on getProcedureParamNames
Replace the duplicate getProcedureDefintion documentation block above
getProcedureParamNames.
2017-11-06 17:28:34 -05:00
Eric Rosenbaum fbeb1de1c1 Add music extension file 2017-11-06 16:57:16 -05:00
Michael "Z" Goddard cd9004ce5b Write src/engine/execute so it can be optimized
Testing with implicitly casted `value` and `value.then` is deoptimizing
isPromise, which deoptimizes execute. In this case deoptimizing means
that the JavaScript VM cannot compile the functions into a form that
can be run faster.
2017-11-06 15:54:22 -05:00
Paul Kaplan 73ffc6a797 Ask/answer opcode implementation with runtime events. 2017-11-06 15:08:15 -05:00
Eric Rosenbaum a735459427 Merge pull request #762 from ericrosenbaum/bugfix/wedo-tilt-reporter-shape
Fix shape of boolean tilt reporter
2017-11-06 11:21:12 -05:00
Eric Rosenbaum c3cebd46f2 Merge pull request #761 from ericrosenbaum/feature/wedo-block-icon
Add WeDo extension block icon
2017-11-06 11:19:23 -05:00
Eric Rosenbaum 59e0c75abf Fix shape of boolean tilt reporter 2017-11-06 10:17:53 -05:00
Eric Rosenbaum 323fde3859 Appease the linter 2017-11-06 10:10:41 -05:00
Eric Rosenbaum cc35bcc791 Merge branch 'develop' of https://github.com/LLK/scratch-vm into feature/wedo-block-icon 2017-11-06 10:02:57 -05:00
Eric Rosenbaum 0540640684 Merge pull request #754 from ericrosenbaum/feature/pen-block-icon
Extension block icons (including pen icon)
2017-11-06 10:02:23 -05:00
Eric Rosenbaum 14087ef24f Add wedo block icon 2017-11-06 10:00:13 -05:00
Paul Kaplan 67cb026e02 Merge pull request #759 from paulkaplan/fix-pen-transparency
Add back pen transparency from color number
2017-11-06 09:55:39 -05:00
Paul Kaplan caa9b97520 Fix linting 2017-11-04 10:10:17 -04:00
Paul Kaplan 8616390fab Add back pen transparency from color number 2017-11-03 21:24:47 -04:00
Michael "Z" Goddard 6d82c0f115 In place filter threads at end of stepThreads
Skip a large array allocation by filtering done threads in place with a
for loop.
2017-11-03 17:48:52 -04:00
Michael "Z" Goddard 4e24a3f380 Constant time check if thread is in doneThreads
Remove indexOf tests for thread existence in doneThreads. Maintain a
list of null and thread objects mirroring the index position of threads
that are done in runtime.threads. Filter out null values after
filtering out done threads from runtime.threads.

This has a small side effect that threads that normally became DONE and
were added to doneThreads before being removed or restarted will not be
in doneThreads in this version. Restarted threads (_restartThread) do
not appear in this version but new copies will be in Runtime
this.threads supporting glow and monitor updates. Removed threads
(_removeThread) do not appear in this version if they are removed after
they were seen as DONE by the prior version. Threads removed before
they are seen as DONE do not appear in doneThreads in the prior or this
version.

Threads that are removed before normally becoming DONE do not appear in
doneThreads in either case. Threads that are restarted before the loop
checks if the thread is done do not appear in doneThreads in either
case.
2017-11-03 17:46:50 -04:00
Chris Willis-Ford ef961c5a4b Merge pull request #756 from cwillisf/autoload-extensions
Autoload extensions
2017-11-03 13:59:01 -07:00