diff --git a/.eslintrc b/.eslintrc index 0d67347a..aacaef35 100644 --- a/.eslintrc +++ b/.eslintrc @@ -8,7 +8,7 @@ "max-len": [2, 80, 4], "semi": [2, "always"], "strict": [2, "never"], - "no-console": [2, {"allow": ["log", "warn", "error"]}] + "no-console": [2, {"allow": ["log", "warn", "error", "groupCollapsed", "groupEnd"]}] }, "env": { "node": true, diff --git a/src/blocks/scratch3.js b/src/blocks/scratch3.js index 6bf32764..a2f13253 100644 --- a/src/blocks/scratch3.js +++ b/src/blocks/scratch3.js @@ -23,7 +23,6 @@ Scratch3Blocks.prototype.getPrimitives = function() { }; Scratch3Blocks.prototype.repeat = function(argValues, util) { - console.log('Running: control_repeat'); // Initialize loop if (util.stackFrame.loopCounter === undefined) { util.stackFrame.loopCounter = parseInt(argValues[0]); // @todo arg @@ -37,12 +36,10 @@ Scratch3Blocks.prototype.repeat = function(argValues, util) { }; Scratch3Blocks.prototype.forever = function(argValues, util) { - console.log('Running: control_forever'); util.startSubstack(); }; Scratch3Blocks.prototype.wait = function(argValues, util) { - console.log('Running: control_wait'); util.yield(); util.timeout(function() { util.done(); @@ -50,23 +47,19 @@ Scratch3Blocks.prototype.wait = function(argValues, util) { }; Scratch3Blocks.prototype.stop = function() { - console.log('Running: control_stop'); // @todo - don't use this.runtime this.runtime.stopAll(); }; Scratch3Blocks.prototype.whenFlagClicked = function() { - console.log('Running: event_whenflagclicked'); // No-op }; Scratch3Blocks.prototype.whenBroadcastReceived = function() { - console.log('Running: event_whenbroadcastreceived'); // No-op }; Scratch3Blocks.prototype.broadcast = function(argValues, util) { - console.log('Running: event_broadcast'); util.startHats(function(hat) { if (hat.opcode === 'event_whenbroadcastreceived') { var shadows = hat.fields.CHOICE.blocks; diff --git a/src/blocks/wedo2.js b/src/blocks/wedo2.js index 86c73de0..5074b26a 100644 --- a/src/blocks/wedo2.js +++ b/src/blocks/wedo2.js @@ -144,11 +144,9 @@ WeDo2Blocks.prototype.setColor = function(argValues, util) { }; WeDo2Blocks.prototype.whenDistanceClose = function() { - console.log('Running: wedo_whendistanceclose'); }; WeDo2Blocks.prototype.whenTilt = function() { - console.log('Running: wedo_whentilt'); }; module.exports = WeDo2Blocks; diff --git a/src/engine/sequencer.js b/src/engine/sequencer.js index 2f1126d4..a1572c3b 100644 --- a/src/engine/sequencer.js +++ b/src/engine/sequencer.js @@ -24,6 +24,12 @@ function Sequencer (runtime) { */ Sequencer.WORK_TIME = 10; +/** + * If set, block calls, args, and return values will be logged to the console. + * @const {boolean} + */ +Sequencer.DEBUG_BLOCK_CALLS = true; + /** * Step through all threads in `this.threads`, running them in order. * @return {Array.} All threads which have finished in this iteration. @@ -213,9 +219,15 @@ Sequencer.prototype.stepThread = function (thread) { console.warn('Could not get implementation for opcode: ' + opcode); } else { + if (Sequencer.DEBUG_BLOCK_CALLS) { + console.groupCollapsed('Executing: ' + opcode); + console.log('with arguments: ', argValues); + console.log('and stack frame: ', currentStackFrame); + } + var blockFunctionReturnValue = null; try { // @todo deal with the return value - blockFunction(argValues, { + blockFunctionReturnValue = blockFunction(argValues, { yield: threadYieldCallback, done: threadDoneCallback, timeout: YieldTimers.timeout, @@ -238,6 +250,11 @@ Sequencer.prototype.stepThread = function (thread) { // Thread executed without yielding - move to done threadDoneCallback(); } + if (Sequencer.DEBUG_BLOCK_CALLS) { + console.log('ending stack frame: ', currentStackFrame); + console.log('returned: ', blockFunctionReturnValue); + console.groupEnd(); + } } } }