diff --git a/core/modules/filters/range.js b/core/modules/filters/range.js index d51822b7f..b08bce1bb 100644 --- a/core/modules/filters/range.js +++ b/core/modules/filters/range.js @@ -17,23 +17,22 @@ Export our filter function */ exports.range = function(source,operator,options) { var results = []; - // Split the operand into numbers delimited by these symbols - var parts = operator.operand.split(/[,:;]/g), beg, end, inc, i, fixed = 0; - - for (i = 0; i < parts.length; ++i) { + var parts = operator.operand.split(/[,:;]/g), + beg, end, inc, i, fixed = 0; + for (i=0; i 10000) return ["range: too many steps (over 10K)"]; - + if((end - beg) / inc > 10000) { + return ["range: too many steps (over 10K)"]; + } // Avoid rounding error on last step - end += direction * 0.5 * Math.pow(0.1, fixed); - + end += direction * 0.5 * Math.pow(0.1,fixed); var safety = 10010; - // Enumerate the range - if (end end; i += inc) {results.push(i.toFixed(fixed)); if (--safety<0) break;}} - else {for (i = beg; i < end; i += inc) {results.push(i.toFixed(fixed)); if (--safety<0) break;}} - - if (safety<0) return ["range: unexpectedly large output"]; - + if (endend; i+=inc) { + results.push(i.toFixed(fixed)); + if(--safety<0) { + break; + } + } + } else { + for(i=beg; i