From adfd4ace3e10ca27dc2a9be7b606dcb852ba3ce8 Mon Sep 17 00:00:00 2001 From: Seyyed Parsa Neshaei Date: Sat, 29 Jan 2022 21:29:36 +0330 Subject: [PATCH] Fixed issue #38 - Validate input for get method (and others potentially) --- ndarray.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ndarray.js b/ndarray.js index 43c9b5a..c3e54ef 100644 --- a/ndarray.js +++ b/ndarray.js @@ -145,7 +145,9 @@ return [0,2,1];\ //view.set(i0, ..., v): code.push( "proto.set=function "+className+"_set("+args.join(",")+",v){") - if(useGetters) { + if (index_str === +index_str && index_str === (index_str|0)) { // https://stackoverflow.com/a/3885844/4915882 + code.push("throw 'set parameter should be integer'") + } else if(useGetters) { code.push("return this.data.set("+index_str+",v)}") } else { code.push("return this.data["+index_str+"]=v}") @@ -153,7 +155,9 @@ return [0,2,1];\ //view.get(i0, ...): code.push("proto.get=function "+className+"_get("+args.join(",")+"){") - if(useGetters) { + if (index_str === +index_str && index_str === (index_str|0)) { // https://stackoverflow.com/a/3885844/4915882 + code.push("throw 'get parameter should be integer'") + } else if (useGetters) { code.push("return this.data.get("+index_str+")}") } else { code.push("return this.data["+index_str+"]}")