mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2025-01-09 06:21:59 -05:00
Virtual Machine used to represent, run, and maintain the state of programs for Scratch 3.0
e8089cd2a5
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. |
||
---|---|---|
src | ||
test | ||
.eslintrc | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
Makefile | ||
package.json | ||
README.md | ||
TRADEMARK | ||
vm.js | ||
vm.min.js | ||
webpack.config.js |
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