e8089cd2a50ac97d0a77c770a7ae6c8d35b803dc
It turns out that `window.native.someMethod` always evaluates as `undefined` -- even if calling that method would succeed. This change removes checks for such methods so that the WeDo2 blocks can work. Note that the hat blocks are still unimplemented, and some assumptions are made about the form that arguments and `util` will take.
scratch-vm
Installation
npm install scratch-vm
Setup
var VirtualMachine = require('scratch-vm');
var vm = new VirtualMachine();
// Block events
// UI events
// Listen for events
Standalone Build
make build
<script src="/path/to/vm.js"></script>
<script>
var vm = new window.VirtualMachine();
// do things
</script>
Abstract Syntax Tree
Overview
Anatomy of a Block
{
"id": "^1r~63Gdl7;Dh?I*OP3_",
"opcode": "wedo_motorclockwise",
"next": null,
"fields": {
"DURATION": {
"name": "DURATION",
"value": null,
"blocks": {
"1?P=eV(OiDY3vMk!24Ip": {
"id": "1?P=eV(OiDY3vMk!24Ip",
"opcode": "math_number",
"next": null,
"fields": {
"NUM": {
"name": "NUM",
"value": "10",
"blocks": null
}
}
}
}
},
"SUBSTACK": {
"name": "SUBSTACK",
"value": "@1ln(HsUO4!]*2*%BrE|",
"blocks": null
}
}
}
Testing
make test
make coverage
make benchmark
Description
Scratch VM with a JIT compiler and more features
https://turbowarp.org/
35 MiB
0 Stars
2 Watchers
0 Forks
Languages
JavaScript
99.7%
HTML
0.2%