preprocessor-mixin.js 800 B

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