mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2024-12-22 22:12:28 -05:00
Merge pull request #76 from tmickel/feature/no-try-catch
Remove try/catch in execution - fix #75
This commit is contained in:
commit
da4313cf05
1 changed files with 21 additions and 29 deletions
|
@ -58,37 +58,29 @@ var execute = function (sequencer, thread) {
|
|||
console.log('and stack frame: ', currentStackFrame);
|
||||
}
|
||||
var primitiveReturnValue = null;
|
||||
try {
|
||||
// @todo deal with the return value
|
||||
primitiveReturnValue = blockFunction(argValues, {
|
||||
yield: thread.yield.bind(thread),
|
||||
done: function() {
|
||||
sequencer.proceedThread(thread);
|
||||
},
|
||||
timeout: YieldTimers.timeout,
|
||||
stackFrame: currentStackFrame,
|
||||
startSubstack: function (substackNum) {
|
||||
sequencer.stepToSubstack(thread, substackNum);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch(e) {
|
||||
console.error(
|
||||
'Exception calling block function for opcode: ' +
|
||||
opcode + '\n' + e);
|
||||
} finally {
|
||||
// Update if the thread has set a yield timer ID
|
||||
// @todo hack
|
||||
if (YieldTimers.timerId > oldYieldTimerId) {
|
||||
thread.yieldTimerId = YieldTimers.timerId;
|
||||
// @todo deal with the return value
|
||||
primitiveReturnValue = blockFunction(argValues, {
|
||||
yield: thread.yield.bind(thread),
|
||||
done: function() {
|
||||
sequencer.proceedThread(thread);
|
||||
},
|
||||
timeout: YieldTimers.timeout,
|
||||
stackFrame: currentStackFrame,
|
||||
startSubstack: function (substackNum) {
|
||||
sequencer.stepToSubstack(thread, substackNum);
|
||||
}
|
||||
if (DEBUG_BLOCK_CALLS) {
|
||||
console.log('ending stack frame: ', currentStackFrame);
|
||||
console.log('returned: ', primitiveReturnValue);
|
||||
console.groupEnd();
|
||||
}
|
||||
return primitiveReturnValue;
|
||||
});
|
||||
// Update if the thread has set a yield timer ID
|
||||
// @todo hack
|
||||
if (YieldTimers.timerId > oldYieldTimerId) {
|
||||
thread.yieldTimerId = YieldTimers.timerId;
|
||||
}
|
||||
if (DEBUG_BLOCK_CALLS) {
|
||||
console.log('ending stack frame: ', currentStackFrame);
|
||||
console.log('returned: ', primitiveReturnValue);
|
||||
console.groupEnd();
|
||||
}
|
||||
return primitiveReturnValue;
|
||||
};
|
||||
|
||||
module.exports = execute;
|
||||
|
|
Loading…
Reference in a new issue