Commit graph

218 commits

Author SHA1 Message Date
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
f802faa461 operator_not in primitive table 2016-06-30 18:56:23 -04:00
Tim Mickel
f210c12d4d Add more operators for testing 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
7ef3807b18 Example of a yielding reporter (returns random number after 1s) 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
34659c9b7b Allow console timers 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
578d02cba0 Merge pull request #85 from tmickel/feature/worker
Update to allow running in a WebWorker
2016-06-22 12:20:22 -04:00
Tim Mickel
59ff650de1 Update playground to use unified interface and worker 2016-06-21 15:30:36 -04:00
Tim Mickel
b97974e2ac Implement WebWorker interface 2016-06-21 15:30:27 -04:00
Tim Mickel
020bf1ef65 Use absolute version number for webpack-dev-server 2016-06-21 15:28:47 -04:00
Tim Mickel
783a3688aa Update index.js to support worker environment 2016-06-21 14:48:54 -04:00
Tim Mickel
01aecb3372 Allow worker in eslintrc environment 2016-06-21 14:42:34 -04:00
Tim Mickel
b144ca7a2e Add dev server to help with WebWorker development 2016-06-21 14:42:24 -04:00
Tim Mickel
652cc8a31c Fix references to window 2016-06-21 14:29:40 -04:00
Tim Mickel
28432b6f01 Merge pull request #81 from tmickel/feature/update-playground-june-14
Update playground and block implementations to match scratch-blocks
2016-06-17 11:55:44 -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
da4313cf05 Merge pull request #76 from tmickel/feature/no-try-catch
Remove try/catch in execution - fix #75
2016-06-17 11:37:17 -04:00
Tim Mickel
9f89caa0e6 Add regression test for adapter's empty field handling 2016-06-14 18:14:15 -04:00
Tim Mickel
7427fe4ff3 Add fix for adapter to deal with empty fields 2016-06-14 18:14:04 -04:00
Tim Mickel
a1be1d6566 Update playground and block implementations to match scratch-blocks 2016-06-14 18:08:41 -04:00
Tim Mickel
056fb76492 Remove try/catch in execution - fix #75 2016-06-13 11:23:39 -04:00
Tim Mickel
07354cddbc Merge pull request #72 from tmickel/feature/execute-with-args
Refactor for block execution
2016-06-13 11:05:00 -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.groupEnds 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
ca68c55d57 Implement logic_equals, if blocks 2016-06-10 10:36:05 -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
2cd6bf93bb Fix argument for repeat block 2016-06-09 17:05:08 -04:00
Tim Mickel
d52938c255 Bind thread.yield passed to primitive to actual thread 2016-06-09 15:06:24 -04:00
Tim Mickel
27064ce163 Fix implementation of "wait" block 2016-06-09 15:06:11 -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
bcd058bdc4 Disable unimplemented broadcast block 2016-06-09 14:23:45 -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