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++){