| '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; |