Bin
2025-12-16 9e0b2ba2c317b1a86212f24cbae3195ad1f3dbfa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const { I } = inject();
 
function startErrorsCollector() {
  function CEErrorsCollector() {
    this.errors = [];
    this.errorHandler = this.errorHandler.bind(this);
    this._start();
  }
 
  CEErrorsCollector.prototype.errorHandler = function (ev) {
    this.errors.push(ev.message);
  };
  CEErrorsCollector.prototype.destroy = function () {
    this.errors = null;
    this._finish();
  };
  CEErrorsCollector.prototype._start = function () {
    window.addEventListener("error", this.errorHandler);
  };
  CEErrorsCollector.prototype._finish = function () {
    window.removeEventListener("error", this.errorHandler);
  };
  window._ceErrorsCollector = new CEErrorsCollector();
}
 
function stopErrorsCollector() {
  window._ceErrorsCollector.destroy();
}
 
function getErrors() {
  return window._ceErrorsCollector.errors;
}
 
module.exports = {
  run() {
    I.executeScript(startErrorsCollector);
  },
  stop() {
    I.executeScript(stopErrorsCollector);
  },
  async grabErrors() {
    const errors = await I.executeScript(getErrors);
 
    return errors;
  },
};