aboutsummaryrefslogtreecommitdiff
path: root/node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js')
-rw-r--r--node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js b/node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js
new file mode 100644
index 0000000..398c966
--- /dev/null
+++ b/node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js
@@ -0,0 +1,24 @@
+'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;