mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2024-12-22 22:12:28 -05:00
Always yield thread when a promise is returned.
This commit is contained in:
parent
9881ee76b9
commit
9a7ab57f6f
1 changed files with 6 additions and 2 deletions
|
@ -93,6 +93,11 @@ var execute = function (sequencer, thread) {
|
|||
typeof primitiveReportedValue.then === 'function'
|
||||
);
|
||||
if (isPromise) {
|
||||
if (thread.status === Thread.STATUS_RUNNING) {
|
||||
// Primitive returned a promise; automatically yield thread.
|
||||
thread.status = Thread.STATUS_YIELD;
|
||||
}
|
||||
// Promise handlers
|
||||
primitiveReportedValue.then(function(resolvedValue) {
|
||||
// Promise resolved: the primitive reported a value.
|
||||
if (DEBUG_BLOCK_CALLS) {
|
||||
|
@ -107,8 +112,7 @@ var execute = function (sequencer, thread) {
|
|||
console.warn('primitive rejected promise: ', rejectionReason);
|
||||
}
|
||||
sequencer.proceedThread(thread);
|
||||
}
|
||||
);
|
||||
});
|
||||
} else if (thread.status === Thread.STATUS_RUNNING) {
|
||||
if (DEBUG_BLOCK_CALLS) {
|
||||
console.log('reporting value: ', primitiveReportedValue);
|
||||
|
|
Loading…
Reference in a new issue