From 0623e92d49df5a5bee28e49251e3f1d720ae123d Mon Sep 17 00:00:00 2001 From: DrMaxNix Date: Sun, 2 Oct 2022 17:46:26 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=B8=20add=20some=20more=20data=20type?= =?UTF-8?q?=20validation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/command/add.js | 8 ++++++++ src/command/div.js | 8 ++++++++ src/command/mod.js | 8 ++++++++ src/command/sub.js | 8 ++++++++ 4 files changed, 32 insertions(+) diff --git a/src/command/add.js b/src/command/add.js index e6752c4..f3aad3e 100644 --- a/src/command/add.js +++ b/src/command/add.js @@ -23,6 +23,14 @@ Juicescript.command_define({ // get its value let value = runner.variable_get(variable); + // validate data type + let data_type = runner.data_type(value); + if(data_type !== Juicescript.data_type.NUM && data_type !== Juicescript.data_type.STR){ + // ignore with warning + runner.warning_argument(1, "expected data type NUM or STR, but got " + Juicescript.data_type.name(data_type)); + return; + } + // ADD OTHER VALUES // for(var q = 2; q <= runner.command.argument.length; q++){ diff --git a/src/command/div.js b/src/command/div.js index 1692228..943388f 100644 --- a/src/command/div.js +++ b/src/command/div.js @@ -23,6 +23,14 @@ Juicescript.command_define({ // get its value let value = runner.variable_get(variable); + // validate data type + let data_type = runner.data_type(value); + if(data_type !== Juicescript.data_type.NUM){ + // ignore with warning + runner.warning_argument(1, "expected data type NUM, but got " + Juicescript.data_type.name(data_type)); + return; + } + // DEVIDE BY OTHER VALUES // for(var q = 2; q <= runner.command.argument.length; q++){ diff --git a/src/command/mod.js b/src/command/mod.js index ecbf657..b95247b 100644 --- a/src/command/mod.js +++ b/src/command/mod.js @@ -23,6 +23,14 @@ Juicescript.command_define({ // get its value let value = runner.variable_get(variable); + // validate data type + let data_type = runner.data_type(value); + if(data_type !== Juicescript.data_type.NUM){ + // ignore with warning + runner.warning_argument(1, "expected data type NUM, but got " + Juicescript.data_type.name(data_type)); + return; + } + // APPLY MODULO FROM OTHER ARGUMENTS // for(var q = 2; q <= runner.command.argument.length; q++){ diff --git a/src/command/sub.js b/src/command/sub.js index c6b12d6..45b581a 100644 --- a/src/command/sub.js +++ b/src/command/sub.js @@ -23,6 +23,14 @@ Juicescript.command_define({ // get its value let value = runner.variable_get(variable); + // validate data type + let data_type = runner.data_type(value); + if(data_type !== Juicescript.data_type.NUM){ + // ignore with warning + runner.warning_argument(1, "expected data type NUM, but got " + Juicescript.data_type.name(data_type)); + return; + } + // SUBTRACT OTHER VALUES // for(var q = 2; q <= runner.command.argument.length; q++){