From 548aa6dd70efd3ff89100cf30257b7e1b6f7e2bb Mon Sep 17 00:00:00 2001 From: Ray Schamp Date: Mon, 15 May 2017 21:11:38 -0700 Subject: [PATCH] Fix no-useless-call todo The linter is correct that `devObject[func].call(devObject, args)` is unnecessary because it's equivalent to `devObject[func](args)`. @tmickel probably either meant to allow passing an array of arguments to be applied, or to call the function with the provided argument. Since we probably want to be able to use multi-argument functions, use `apply` and fix the one place that uses `ioQuery` with an argument. --- src/blocks/scratch3_sensing.js | 2 +- src/engine/execute.js | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/blocks/scratch3_sensing.js b/src/blocks/scratch3_sensing.js index e01f0cfdc..98eeac97d 100644 --- a/src/blocks/scratch3_sensing.js +++ b/src/blocks/scratch3_sensing.js @@ -114,7 +114,7 @@ class Scratch3SensingBlocks { } getKeyPressed (args, util) { - return util.ioQuery('keyboard', 'getKeyIsDown', args.KEY_OPTION); + return util.ioQuery('keyboard', 'getKeyIsDown', [args.KEY_OPTION]); } daysSince2000 () { diff --git a/src/engine/execute.js b/src/engine/execute.js index 2b66c5e73..010130899 100644 --- a/src/engine/execute.js +++ b/src/engine/execute.js @@ -202,12 +202,7 @@ const execute = function (sequencer, thread) { // Find the I/O device and execute the query/function call. if (runtime.ioDevices[device] && runtime.ioDevices[device][func]) { const devObject = runtime.ioDevices[device]; - // @todo Figure out why eslint complains about no-useless-call - // no-useless-call can't tell if the call is useless for dynamic - // expressions... or something. Not exactly sure why it - // complains here. - // eslint-disable-next-line no-useless-call - return devObject[func].call(devObject, args); + return devObject[func].apply(devObject, args); } } });