Commit graph

1427 commits

Author SHA1 Message Date
Michael "Z" Goddard
ff82699440
Add Block % stats panel
Enable profiler when Block % is visible and display percent of time
block functions get to execute versus drawing and any overhead.
2017-11-14 14:57:32 -05:00
Michael "Z" Goddard
f73dae828e
Add enableProfiling and disableProfiling to Runtime 2017-11-14 14:57:32 -05:00
Michael "Z" Goddard
516d4f6f30
Add Profiler events to Runtime, Sequencer and execute 2017-11-14 14:57:32 -05:00
Michael "Z" Goddard
a5b55a5128
Add runtime Profiler
Profile internal virtual machine performance down to which blocks take
how long.
2017-11-14 14:57:31 -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
DD
9048a9b9e7 Pipe through whether a monitor is sprite-specific 2017-11-14 12:20:24 -05:00
Karishma Chadha
386045f033 Some code cleanup. 2017-11-13 16:55:57 -05:00
Karishma Chadha
3f444138db Updating tests for refactoring lists. Updating demo fixture -- now we have IDs and variable types for variables. 2017-11-13 16:30:47 -05:00
Karishma Chadha
26d4a3a069 Refactoring representation of variable type. 2017-11-13 16:29:38 -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
Karishma Chadha
1d4acde7dc Fixing unit/integration tests. 2017-11-13 14:25:12 -05:00
Karishma Chadha
038a65b460 Finishing up lists. 2017-11-13 14:24:30 -05:00
Karishma Chadha
b18938963f Fixing linting errors 2017-11-13 14:22:36 -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
Paul Kaplan
95ca10038b
Merge pull request #772 from kchadha/improving-test-coverage
Improving test coverage
2017-11-13 10:17:09 -05:00
Paul Kaplan
ba5b3093f6
Merge pull request #771 from paulkaplan/ask-with-say
Allow ask to use say bubble via events
2017-11-10 10:24:07 -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
Karishma Chadha
70959cc7f5 First cut at turning lists into typed variables 2017-11-09 17:19:34 -05:00
Karishma Chadha
c31fff8c4c Fixing linter errors. 2017-11-09 09:18:44 -05:00
Karishma Chadha
7fae93f6e6 Removing unnecessary comments from edits. 2017-11-08 15:59:35 -05:00
Karishma Chadha
70081132cb Changes to src/virtual-machine based on minor bugs found during testing. This was supposed to be included with the previous commit. 2017-11-08 15:49:51 -05:00
Karishma Chadha
bf6b78137a Test coverage for virtual-machine's deleteSprite and duplicateSprite functions. 2017-11-08 15:48:24 -05:00
Paul Kaplan
16ca994818 Allow ask to use say bubble via events 2017-11-08 11:12:12 -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