diff --git a/spec/parser/javascript/repeat_spec.js b/spec/parser/javascript/repeat_spec.js index f3fc132..147145d 100644 --- a/spec/parser/javascript/repeat_spec.js +++ b/spec/parser/javascript/repeat_spec.js @@ -54,6 +54,13 @@ describe('parser/javascript/repeat.js', function() { hasSkip: false, hasLoop: false }, + '{0}': { + minimum: 0, + maximum: 0, + greedy: true, + hasSkip: true, + hasLoop: false + }, '{1}?': { minimum: 1, maximum: 1, @@ -202,6 +209,11 @@ describe('parser/javascript/repeat.js', function() { maximum: -1, label: undefined }, + { + minimum: 0, + maximum: 0, + label: undefined + }, { minimum: 2, maximum: -1, diff --git a/src/js/parser/javascript/repeat.js b/src/js/parser/javascript/repeat.js index e753d02..715d888 100644 --- a/src/js/parser/javascript/repeat.js +++ b/src/js/parser/javascript/repeat.js @@ -33,6 +33,9 @@ export default { label: { get: function() { if (this.minimum === this.maximum) { + if (this.minimum === 0) { + return undefined; + } return formatTimes(this.minimum - 1); } else if (this.minimum <= 1 && this.maximum >= 2) { return `at most ${formatTimes(this.maximum - 1)}`;