| 'use strict'; | 
|   | 
| const ErrorReportingMixinBase = require('./mixin-base'); | 
| const PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin'); | 
| const Mixin = require('../../utils/mixin'); | 
|   | 
| class ErrorReportingPreprocessorMixin extends ErrorReportingMixinBase { | 
|     constructor(preprocessor, opts) { | 
|         super(preprocessor, opts); | 
|   | 
|         this.posTracker = Mixin.install(preprocessor, PositionTrackingPreprocessorMixin); | 
|         this.lastErrOffset = -1; | 
|     } | 
|   | 
|     _reportError(code) { | 
|         //NOTE: avoid reporting error twice on advance/retreat | 
|         if (this.lastErrOffset !== this.posTracker.offset) { | 
|             this.lastErrOffset = this.posTracker.offset; | 
|             super._reportError(code); | 
|         } | 
|     } | 
| } | 
|   | 
| module.exports = ErrorReportingPreprocessorMixin; |