Tim Mickel
|
d4353458ff
|
Don't quit loop when a thread is yielding
|
2016-07-06 14:16:44 -04:00 |
|
Tim Mickel
|
0ae0ea5f22
|
Run threads for 60fps
|
2016-07-01 16:30:33 -04:00 |
|
Tim Mickel
|
660029010d
|
Feed in requestAnimationFrame events to VM
Not sure exactly how to use these yet, but it seems helpful to have them in there.
|
2016-07-01 11:52:43 -04:00 |
|
Tim Mickel
|
ad30fa8059
|
Temporarily remove per-block glow
|
2016-07-01 11:27:01 -04:00 |
|
Tim Mickel
|
dda4fc8332
|
Yield frame on an empty substack
|
2016-07-01 11:24:06 -04:00 |
|
Tim Mickel
|
de6ba08866
|
Add single-frame yield mode
|
2016-07-01 10:44:43 -04:00 |
|
Tim Mickel
|
bb5acd1ef4
|
Fix merge issue in execute.js
|
2016-06-30 19:01:19 -04:00 |
|
Tim Mickel
|
1eaed6fff3
|
Implement graphic effects and size blocks
|
2016-06-30 18:59:47 -04:00 |
|
Tim Mickel
|
19da0b0032
|
Add renderer demo using scratch-render-webgl
|
2016-06-30 18:59:47 -04:00 |
|
Tim Mickel
|
809528abdc
|
Straw-man implementation of targets/sprites/clones
|
2016-06-30 18:59:17 -04:00 |
|
Tim Mickel
|
1c24770f8c
|
Remove debug calls from execute
|
2016-06-30 18:56:31 -04:00 |
|
Tim Mickel
|
ec4567aa8a
|
Simplify logic for Thread status
|
2016-06-30 18:56:31 -04:00 |
|
Tim Mickel
|
ab6e0d3839
|
Remove YieldTimers, unused WeDo blocks
|
2016-06-30 18:56:31 -04:00 |
|
Tim Mickel
|
6daee9a70e
|
Remove VM-locking yield mode per discussion
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
9a7ab57f6f
|
Always yield thread when a promise is returned.
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
9881ee76b9
|
Deal with promise rejection also.
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
57057bfffc
|
Remove unused require to fix build
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
d72cc55c11
|
Example that uses promises instead of util.report
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
09b9c506a9
|
Check for blocking case in stepToReporter
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
405ad1044e
|
getBlockingThread_ returns null when none available.
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
d44b806b4f
|
Add blocking yield mode
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
c63747e61b
|
Move stepping logic for reporters to sequencer
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
e56c6e6980
|
Rename primitiveReturnValue -> primitiveReportedValue
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
e83cfa6049
|
Add comment and clear currentStackFrame.reported
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
9d9749681b
|
Comment and else for reporter finishes right away
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
b21c9edf04
|
Commenting improvements
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
173f0615d3
|
Refactor: always push reports to the stack frame
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
6181bcd5cb
|
Refactor Thread.peekParentStackFrame
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
bed3e28c02
|
Simplifications of execute ordering
and always cache returned reporter values in currentStackFrame.reported.
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
d15c93af05
|
Keep "waiting reporter name" on the stack frame.
Also add highlighting for inputs.
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
97f7571c6f
|
Prototype implementation of yielding reporters
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
190208b620
|
Clean up yield-timers: support multiple, move logic to Threads.
|
2016-06-30 18:56:23 -04:00 |
|
Tim Mickel
|
652cc8a31c
|
Fix references to window
|
2016-06-21 14:29:40 -04:00 |
|
Tim Mickel
|
695d0bd7fd
|
Merge pull request #80 from tmickel/bugfix/empty-fields
Handling empty fields
|
2016-06-17 11:46:36 -04:00 |
|
Tim Mickel
|
7427fe4ff3
|
Add fix for adapter to deal with empty fields
|
2016-06-14 18:14:04 -04:00 |
|
Tim Mickel
|
056fb76492
|
Remove try/catch in execution - fix #75
|
2016-06-13 11:23:39 -04:00 |
|
Tim Mickel
|
a58fa43572
|
Add reset to numYieldingThreads and comment about YieldTimers
|
2016-06-10 13:38:35 -04:00 |
|
Tim Mickel
|
e9eb7c6e57
|
Remove leftover console.groupEnd s in execute
|
2016-06-10 13:34:07 -04:00 |
|
Tim Mickel
|
0bf9ab59a1
|
Add implementation for ifElse
|
2016-06-10 10:40:15 -04:00 |
|
Tim Mickel
|
506e9c32be
|
Don't attempt to glow a block that isn't known in the VM
|
2016-06-10 08:48:39 -04:00 |
|
Tim Mickel
|
7cc0c00da6
|
Correctly deal with empty substacks.
The stack needs to be popped in this situation.
|
2016-06-10 08:47:54 -04:00 |
|
Tim Mickel
|
559a2a0fab
|
Remove redundant piece of code
The stack is pushed in after the thread finishes (`proceedThread`).
|
2016-06-10 08:41:44 -04:00 |
|
Tim Mickel
|
526a260101
|
Simplify execution by removing nextBlock
Everything is managed by the stack, including what the execute() function does.
|
2016-06-09 17:08:30 -04:00 |
|
Tim Mickel
|
d52938c255
|
Bind thread.yield passed to primitive to actual thread
|
2016-06-09 15:06:24 -04:00 |
|
Tim Mickel
|
88402ee68c
|
Move popStack to inside execute
|
2016-06-09 14:45:54 -04:00 |
|
Tim Mickel
|
b0441e2ef5
|
Implement stub for number and add blocks
|
2016-06-09 14:29:07 -04:00 |
|
Tim Mickel
|
a987d9d9cc
|
Only include field value in execute.argValues
|
2016-06-09 14:27:11 -04:00 |
|
Tim Mickel
|
c21700380f
|
Pull sequencer-related callbacks out of execute
|
2016-06-09 14:23:34 -04:00 |
|
Tim Mickel
|
9df470255e
|
Add helpers to thread object
|
2016-06-09 14:22:58 -04:00 |
|
Tim Mickel
|
1d16a97115
|
Recursive evaluation for block arguments
|
2016-06-09 13:28:50 -04:00 |
|
Tim Mickel
|
c4517a451b
|
Add isInput execution property to avoid proceeding the thread
|
2016-06-09 13:28:06 -04:00 |
|
Tim Mickel
|
6e5ebcf6df
|
Split execution into separate function and file
|
2016-06-09 13:27:30 -04:00 |
|
Tim Mickel
|
3898fe1c45
|
Instrument blocks.js with getters for fields and inputs
|
2016-06-09 13:26:07 -04:00 |
|
Tim Mickel
|
bd7f3245a2
|
Move scratch3 blocks into separate packages.
|
2016-06-09 11:45:58 -04:00 |
|
Tim Mickel
|
b9bd037963
|
Fixing eslint JSDoc from merge
|
2016-06-08 17:25:26 -04:00 |
|
Tim Mickel
|
42d03db28b
|
Merge branch 'develop' into feature/eslint-jsdoc
# Conflicts:
# .eslintrc
# src/index.js
|
2016-06-08 17:23:41 -04:00 |
|
Tim Mickel
|
d17ffbb99b
|
Merge pull request #60 from tmickel/feature/vm-playground-execution
Instrument VM and playground for better execution debugging
|
2016-06-08 17:15:36 -04:00 |
|
Tim Mickel
|
1f1a4941f3
|
Add .eslintrc rule to check JSDoc syntax
And fix the broken syntax rules
|
2016-06-08 16:57:08 -04:00 |
|
Tim Mickel
|
7a42e9ae68
|
Move blockListener to blocks.js; combine flyout listener
|
2016-06-08 13:44:09 -04:00 |
|
Tim Mickel
|
8fa29bc6de
|
Spacing fix in blocks.js
|
2016-06-08 13:27:01 -04:00 |
|
Tim Mickel
|
c1e30cf2ee
|
Add sequencer-level debug console logs
|
2016-06-07 21:05:32 -04:00 |
|
Tim Mickel
|
5767e05d56
|
Add block-by-block feedback to the VM playground
|
2016-06-07 20:59:34 -04:00 |
|
Tim Mickel
|
2339c5e710
|
Additional tests for invalid adapter inputs
|
2016-06-07 12:01:47 -04:00 |
|
Tim Mickel
|
3b4a00ce46
|
Add check for null substackNum , fix numbering
|
2016-06-07 11:32:29 -04:00 |
|
Tim Mickel
|
fd95d3045d
|
Fix property check of topLevel in createBlock
|
2016-06-06 15:58:54 -04:00 |
|
Tim Mickel
|
f63e261892
|
Remove breaking check for blockId
|
2016-06-06 15:58:40 -04:00 |
|
Tim Mickel
|
dbb31462ad
|
Extend getSubstack to support multiple substacks
|
2016-06-06 15:31:14 -04:00 |
|
Tim Mickel
|
9be33089a8
|
Refactor block management into a separate module.
|
2016-06-06 15:29:34 -04:00 |
|
Tim Mickel
|
25c3a38c16
|
Allow top-level creation of shadow blocks in adapter
|
2016-06-06 14:57:58 -04:00 |
|
Tim Mickel
|
aa152fd604
|
Rewrite of moveBlock to better reflect Blockly
|
2016-06-06 14:55:01 -04:00 |
|
Tim Mickel
|
214daa8087
|
Always unset topLevel in deleteStack_
Blocks may have topLevel set even if they are not present in this.stacks
|
2016-06-06 14:54:32 -04:00 |
|
Tim Mickel
|
18e4228399
|
Update runtime's handling of delete for new blocks structure
|
2016-06-06 14:53:59 -04:00 |
|
Tim Mickel
|
285c2792ef
|
Only add to stacks if topLevel is true in CREATE
|
2016-06-06 14:53:42 -04:00 |
|
Tim Mickel
|
9fef9d7edd
|
Fix up adapter's domToBlock
|
2016-06-06 14:44:51 -04:00 |
|
Tim Mickel
|
0dfc72893c
|
Update Runtime createBlock for new structure; _addStack helper.
|
2016-06-06 14:12:43 -04:00 |
|
Tim Mickel
|
b28c50e6a5
|
Rewrite of adapter to support trees of blocks, inputs
|
2016-06-06 14:09:27 -04:00 |
|
Tim Mickel
|
dd53b86b8c
|
Reduce amount of time for executing blocks
|
2016-05-05 13:09:37 -04:00 |
|
Tim Mickel
|
5c03167ec3
|
Hack helper for distance sensors
|
2016-05-03 17:39:02 -04:00 |
|
Tim Mickel
|
659c9b274a
|
Add motorStop patch to stopAll
|
2016-05-03 17:18:28 -04:00 |
|
Tim Mickel
|
79b50e5172
|
Remove block glows from sequencer
|
2016-05-03 17:18:21 -04:00 |
|
Tim Mickel
|
833f40cfe5
|
Allow pushing threads that are not on this.stacks
For flyout running
|
2016-05-03 15:58:20 -04:00 |
|
Tim Mickel
|
9363432456
|
Hacked implementation of broadcasts
|
2016-05-03 14:57:10 -04:00 |
|
Tim Mickel
|
5f5fe6fafd
|
Fix to check if block still exists
|
2016-05-03 14:35:02 -04:00 |
|
Tim Mickel
|
8facd64376
|
Hack for getting argument values
|
2016-05-03 14:25:12 -04:00 |
|
Tim Mickel
|
90a5982ff9
|
Fix Runtime.stopAll
Removing threads as we were looping was causing not all of them to be hit.
|
2016-05-03 14:11:37 -04:00 |
|
Tim Mickel
|
5b834667eb
|
Merge pull request #19 from tmickel/feature/repeats
Stacks management, stack frames, repeat, forever
|
2016-05-03 14:04:50 -04:00 |
|
Tim Mickel
|
548d95b765
|
Fix attempt to pop from the stack
-Keeps it in newThreads
-Update thread status to STATUS_RUNNING to keep it going
|
2016-05-03 13:53:52 -04:00 |
|
Tim Mickel
|
852b11519a
|
Fix for empty substacks
|
2016-05-03 13:45:22 -04:00 |
|
Tim Mickel
|
add3e9dec9
|
Strip blockExecutionData
|
2016-05-03 13:31:03 -04:00 |
|
Tim Mickel
|
379b2dec79
|
Stack management, stack frames, forever and repeat
|
2016-05-03 13:28:24 -04:00 |
|
Christopher Willis-Ford
|
e1109e8ca6
|
Improve error exception report for Android Monitor
Android Monitor doesn't support passing multiple arguments to
`console.error`, so this change instead builds a single string for the
report.
|
2016-05-03 09:48:12 -07:00 |
|
Tim Mickel
|
4c6f08f665
|
Add mechanism for per-block metadata
|
2016-05-03 11:45:25 -04:00 |
|
Tim Mickel
|
4de24cfc30
|
Implement thread status, YieldTimer, block glow, wait
|
2016-05-03 11:26:28 -04:00 |
|
Tim Mickel
|
3eeccf1970
|
Update nextBlock to be set before primitive call
|
2016-05-03 11:26:15 -04:00 |
|
Tim Mickel
|
6bbeb2d0fe
|
Shuffle moveBlock to allow case where e.oldParent !== undefined
|
2016-05-02 22:31:00 -04:00 |
|
Christopher Willis-Ford
|
751ca97733
|
Fix eslint errors
This includes adding a line to `.eslintrc` to allow `console.log`,
`console.warn`, and `console.error`.
|
2016-05-02 11:56:52 -07:00 |
|
Christopher Willis-Ford
|
4a3276d026
|
Improve block primitive lookup and execution
Slightly simplify export of block primitives from a block package.
Catch and report exceptions from block functions.
|
2016-05-02 11:31:37 -07:00 |
|
Christopher Willis-Ford
|
27c06ce476
|
Add framework for block execution
The runtime now stores a mapping of opcode to function.
The `wedo2` and `scratch3` packages are currently stubs.
|
2016-05-02 11:31:25 -07:00 |
|
Tim Mickel
|
79f6725ff3
|
Add stack glow and infrastructure for block glow
|
2016-05-02 13:09:38 -04:00 |
|
Tim Mickel
|
773f2e1bbc
|
Improve JSDoc on Thread
|
2016-05-02 13:05:48 -04:00 |
|