Skip to content

Commit

Permalink
Merge branch 'TurboWarp:develop' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
LilyMakesThings authored Jan 31, 2024
2 parents d9dfb2e + ec1f7de commit be70656
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/compiler/compile.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const IRGenerator = require('./irgen');
const {IRGenerator} = require('./irgen');
const JSGenerator = require('./jsgen');

const compile = thread => {
Expand Down
5 changes: 4 additions & 1 deletion src/compiler/irgen.js
Original file line number Diff line number Diff line change
Expand Up @@ -1693,4 +1693,7 @@ class IRGenerator {
}
}

module.exports = IRGenerator;
module.exports = {
ScriptTreeGenerator,
IRGenerator
};
3 changes: 3 additions & 0 deletions src/engine/thread.js
Original file line number Diff line number Diff line change
Expand Up @@ -514,4 +514,7 @@ class Thread {
}
}

// for extensions
Thread._StackFrame = _StackFrame;

module.exports = Thread;
12 changes: 11 additions & 1 deletion src/virtual-machine.js
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,17 @@ class VirtualMachine extends EventEmitter {
this.exports = {
Sprite,
RenderedTarget,
JSZip
JSZip,

i_will_not_ask_for_help_when_these_break: () => {
console.warn('You are using unsupported APIs. WHEN your code breaks, do not expect help.');
return ({
JSGenerator: require('./compiler/jsgen.js'),
IRGenerator: require('./compiler/irgen.js').IRGenerator,
ScriptTreeGenerator: require('./compiler/irgen.js').ScriptTreeGenerator,
Thread: require('./engine/thread.js')
});
}
};
}

Expand Down
Binary file modified test/fixtures/tw-block-returning-promise-like.sb3
Binary file not shown.
8 changes: 6 additions & 2 deletions test/integration/tw_block_returning_promise_like.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ class TestExtension {
};
}
test () {
// returns a PromiseLike that calls handler immediately.
// returns a PromiseLike that calls handler immediately instead of in next microtask.
const promise = {
then (callbackFn) {
callbackFn();
return promise;
}
// intentionally omit catch() as that is not part of PromiseLike
// intentionally omit catch() as that is not part of PromiseLike, so it should not be used
};
return promise;
}
Expand All @@ -45,6 +45,10 @@ for (const compilerEnabled of [false, true]) {
});
t.equal(vm.runtime.compilerOptions.enabled, compilerEnabled, 'sanity check');

vm.runtime.on('COMPILE_ERROR', () => {
t.fail('Compile error');
});

vm.loadProject(fixture).then(() => {
let ended = 0;
vm.runtime.on('SAY', (target, type, text) => {
Expand Down

0 comments on commit be70656

Please sign in to comment.