preprocessor-mixin.js
 1  'use strict';
 2  
 3  const ErrorReportingMixinBase = require('./mixin-base');
 4  const PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');
 5  const Mixin = require('../../utils/mixin');
 6  
 7  class ErrorReportingPreprocessorMixin extends ErrorReportingMixinBase {
 8      constructor(preprocessor, opts) {
 9          super(preprocessor, opts);
10  
11          this.posTracker = Mixin.install(preprocessor, PositionTrackingPreprocessorMixin);
12          this.lastErrOffset = -1;
13      }
14  
15      _reportError(code) {
16          //NOTE: avoid reporting error twice on advance/retreat
17          if (this.lastErrOffset !== this.posTracker.offset) {
18              this.lastErrOffset = this.posTracker.offset;
19              super._reportError(code);
20          }
21      }
22  }
23  
24  module.exports = ErrorReportingPreprocessorMixin;