Tim Mickel
|
b1a3026ea1
|
Blockly XML encoding for Blocks object
Provide two functions, `toXML` and `blockToXML`, which can be used to generate workspaces based on the VM representation of the blocks.
|
2016-08-31 11:38:45 -04:00 |
|
Tim Mickel
|
c58bda1839
|
Record coordinate changes in block representation
|
2016-08-31 11:34:29 -04:00 |
|
Tim Mickel
|
05a5369d7b
|
Switch Blockly listener to normal function (not closure/generated)
|
2016-08-31 11:34:17 -04:00 |
|
Tim Mickel
|
aa70c1bc3b
|
Add shadow, x, y properties to block adapter
|
2016-08-31 11:32:59 -04:00 |
|
Tim Mickel
|
bdc95cffc0
|
Rename trigger->activate/start
|
2016-08-29 10:26:26 -04:00 |
|
Tim Mickel
|
1098a06985
|
Various renames for hat opcodes/top blocks, allScriptsDo
|
2016-08-29 10:18:49 -04:00 |
|
Tim Mickel
|
3ccfdf3df0
|
Use hasOwnProperty in getIsHat /getIsEdgeTriggeredHat
|
2016-08-29 10:03:21 -04:00 |
|
Tim Mickel
|
40c90bbcc7
|
Add isActiveThread and simplify broadcast-and-wait accordingly
|
2016-08-29 10:01:31 -04:00 |
|
Tim Mickel
|
64b82f4dc2
|
Switch back j->i
|
2016-08-29 09:52:34 -04:00 |
|
Tim Mickel
|
29887e24c9
|
Simplify execute hat check.
In case a reporter has side-effects, we'd probably like to run hat predicates even if there is no next block.
|
2016-08-24 11:04:23 -04:00 |
|
Tim Mickel
|
4f2cccf279
|
Fix issue when broadcasting in a when-broadcast
|
2016-08-23 18:37:03 -04:00 |
|
Tim Mickel
|
b4cf64009f
|
General-purpose hat implementation
|
2016-08-23 18:12:32 -04:00 |
|
Tim Mickel
|
39fdbaf983
|
Add atStackTop helper to Thread
|
2016-08-23 18:12:19 -04:00 |
|
Tim Mickel
|
43f3b59f7c
|
Add retireThread to seqeuencer
|
2016-08-23 15:53:34 -04:00 |
|
Tim Mickel
|
94e389c8fb
|
Refactor script glowing into its own runtime function
|
2016-08-23 15:47:21 -04:00 |
|
Tim Mickel
|
aebcfde492
|
Add VM "I/O devices", clock, mouse as demo
|
2016-08-15 21:37:36 -04:00 |
|
Tim Mickel
|
4faaf1b685
|
Rename stacks to scripts
Further pushing toward removing ambiguity of what "stack" means in the codebase.
|
2016-08-11 11:11:27 -04:00 |
|
Tim Mickel
|
7780b25c46
|
Project wide rename substack -> branch
|
2016-08-10 11:43:49 -04:00 |
|
Andrew Sliwinski
|
32b1d4ec61
|
Remove memoizee dependency and usage in adapter. Resolves GH-2
|
2016-08-08 17:07:50 -04:00 |
|
Tim Mickel
|
1f19d7a209
|
Only visually report when an actual value was returned
|
2016-07-07 19:44:26 -04:00 |
|
Tim Mickel
|
9c6dca8131
|
Add visual reporting of top-level reporter execution
|
2016-07-07 19:42:38 -04:00 |
|
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 |
|