diff --git a/runtime/JavaScript/src/antlr4/IntervalSet.js b/runtime/JavaScript/src/antlr4/IntervalSet.js index be7c8b3b8..8a711e301 100644 --- a/runtime/JavaScript/src/antlr4/IntervalSet.js +++ b/runtime/JavaScript/src/antlr4/IntervalSet.js @@ -7,11 +7,16 @@ const {Token} = require('./Token'); /* stop is not included! */ class Interval { + constructor(start, stop) { this.start = start; this.stop = stop; } + clone() { + return new Interval(this.start, this.stop); + } + contains(item) { return item >= this.start && item < this.stop; } @@ -55,7 +60,7 @@ class IntervalSet { addInterval(toAdd) { if (this.intervals === null) { this.intervals = []; - this.intervals.push(toAdd); + this.intervals.push(toAdd.clone()); } else { // find insert pos for (let pos = 0; pos < this.intervals.length; pos++) { @@ -78,7 +83,7 @@ class IntervalSet { } } // greater than any existing - this.intervals.push(toAdd); + this.intervals.push(toAdd.clone()); } }