diff --git a/src/virtual-machine.js b/src/virtual-machine.js index dad6eadb..b84fa32d 100644 --- a/src/virtual-machine.js +++ b/src/virtual-machine.js @@ -188,6 +188,12 @@ class VirtualMachine extends EventEmitter { this.runtime.on(Runtime.COMPILE_ERROR, (target, error) => { this.emit(Runtime.COMPILE_ERROR, target, error); }); + this.runtime.on(Runtime.TURBO_MODE_OFF, () => { + this.emit(Runtime.TURBO_MODE_OFF); + }); + this.runtime.on(Runtime.TURBO_MODE_ON, () => { + this.emit(Runtime.TURBO_MODE_ON); + }); this.extensionManager = new ExtensionManager(this.runtime); diff --git a/test/fixtures/tw-stored-settings/turbo-mode.sb3 b/test/fixtures/tw-stored-settings/turbo-mode.sb3 new file mode 100644 index 00000000..060dff8c Binary files /dev/null and b/test/fixtures/tw-stored-settings/turbo-mode.sb3 differ diff --git a/test/unit/tw_stored_settings.js b/test/unit/tw_stored_settings.js index dd916c51..7b88bf53 100644 --- a/test/unit/tw_stored_settings.js +++ b/test/unit/tw_stored_settings.js @@ -87,3 +87,14 @@ test('Storing settings emits project changed', t => { t.end(); }); }); + +test('Stored turbo mode emits event on VM', async t => { + const vm = makeVM(); + const project = readFileToBuffer(path.resolve(__dirname, '../fixtures/tw-stored-settings/turbo-mode.sb3')); + t.plan(1); + vm.on('TURBO_MODE_ON', () => { + t.pass('emitted TURBO_MODE_ON'); + }); + await vm.loadProject(project); + t.end(); +});