[web/debugger.js] Convert the Stepper
to a standard class
Also, removes a couple of unnecessary local variables in the `Stepper.breakIt` method. Finally, this patch also disables the ESLint `no-var` rule, in preparation for the next patch, for a couple of data-structures that need to remain globally available.
This commit is contained in:
parent
3f187c2c6d
commit
82afa8ccf0
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-var
|
||||||
var FontInspector = (function FontInspectorClosure() {
|
var FontInspector = (function FontInspectorClosure() {
|
||||||
var fonts;
|
var fonts;
|
||||||
var active = false;
|
var active = false;
|
||||||
@ -158,6 +159,8 @@ var FontInspector = (function FontInspectorClosure() {
|
|||||||
var opMap;
|
var opMap;
|
||||||
|
|
||||||
// Manages all the page steppers.
|
// Manages all the page steppers.
|
||||||
|
//
|
||||||
|
// eslint-disable-next-line no-var
|
||||||
var StepperManager = (function StepperManagerClosure() {
|
var StepperManager = (function StepperManagerClosure() {
|
||||||
var steppers = [];
|
var steppers = [];
|
||||||
var stepperDiv = null;
|
var stepperDiv = null;
|
||||||
@ -239,8 +242,8 @@ var StepperManager = (function StepperManagerClosure() {
|
|||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
// The stepper for each page's IRQueue.
|
// The stepper for each page's operatorList.
|
||||||
var Stepper = (function StepperClosure() {
|
const Stepper = (function StepperClosure() {
|
||||||
// Shorter way to create element and optionally set textContent.
|
// Shorter way to create element and optionally set textContent.
|
||||||
function c(tag, textContent) {
|
function c(tag, textContent) {
|
||||||
var d = document.createElement(tag);
|
var d = document.createElement(tag);
|
||||||
@ -282,17 +285,18 @@ var Stepper = (function StepperClosure() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line no-shadow
|
// eslint-disable-next-line no-shadow
|
||||||
function Stepper(panel, pageIndex, initialBreakPoints) {
|
class Stepper {
|
||||||
this.panel = panel;
|
constructor(panel, pageIndex, initialBreakPoints) {
|
||||||
this.breakPoint = 0;
|
this.panel = panel;
|
||||||
this.nextBreakPoint = null;
|
this.breakPoint = 0;
|
||||||
this.pageIndex = pageIndex;
|
this.nextBreakPoint = null;
|
||||||
this.breakPoints = initialBreakPoints;
|
this.pageIndex = pageIndex;
|
||||||
this.currentIdx = -1;
|
this.breakPoints = initialBreakPoints;
|
||||||
this.operatorListIdx = 0;
|
this.currentIdx = -1;
|
||||||
}
|
this.operatorListIdx = 0;
|
||||||
Stepper.prototype = {
|
}
|
||||||
init: function init(operatorList) {
|
|
||||||
|
init(operatorList) {
|
||||||
var panel = this.panel;
|
var panel = this.panel;
|
||||||
var content = c("div", "c=continue, s=step");
|
var content = c("div", "c=continue, s=step");
|
||||||
var table = c("table");
|
var table = c("table");
|
||||||
@ -307,8 +311,9 @@ var Stepper = (function StepperClosure() {
|
|||||||
panel.appendChild(content);
|
panel.appendChild(content);
|
||||||
this.table = table;
|
this.table = table;
|
||||||
this.updateOperatorList(operatorList);
|
this.updateOperatorList(operatorList);
|
||||||
},
|
}
|
||||||
updateOperatorList: function updateOperatorList(operatorList) {
|
|
||||||
|
updateOperatorList(operatorList) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
function cboxOnClick() {
|
function cboxOnClick() {
|
||||||
@ -383,8 +388,9 @@ var Stepper = (function StepperClosure() {
|
|||||||
}
|
}
|
||||||
this.operatorListIdx = operatorList.fnArray.length;
|
this.operatorListIdx = operatorList.fnArray.length;
|
||||||
this.table.appendChild(chunk);
|
this.table.appendChild(chunk);
|
||||||
},
|
}
|
||||||
getNextBreakPoint: function getNextBreakPoint() {
|
|
||||||
|
getNextBreakPoint() {
|
||||||
this.breakPoints.sort(function (a, b) {
|
this.breakPoints.sort(function (a, b) {
|
||||||
return a - b;
|
return a - b;
|
||||||
});
|
});
|
||||||
@ -394,33 +400,33 @@ var Stepper = (function StepperClosure() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
},
|
}
|
||||||
breakIt: function breakIt(idx, callback) {
|
|
||||||
|
breakIt(idx, callback) {
|
||||||
StepperManager.selectStepper(this.pageIndex, true);
|
StepperManager.selectStepper(this.pageIndex, true);
|
||||||
var self = this;
|
this.currentIdx = idx;
|
||||||
var dom = document;
|
|
||||||
self.currentIdx = idx;
|
const listener = evt => {
|
||||||
var listener = function (e) {
|
switch (evt.keyCode) {
|
||||||
switch (e.keyCode) {
|
|
||||||
case 83: // step
|
case 83: // step
|
||||||
dom.removeEventListener("keydown", listener);
|
document.removeEventListener("keydown", listener);
|
||||||
self.nextBreakPoint = self.currentIdx + 1;
|
this.nextBreakPoint = this.currentIdx + 1;
|
||||||
self.goTo(-1);
|
this.goTo(-1);
|
||||||
callback();
|
callback();
|
||||||
break;
|
break;
|
||||||
case 67: // continue
|
case 67: // continue
|
||||||
dom.removeEventListener("keydown", listener);
|
document.removeEventListener("keydown", listener);
|
||||||
var breakPoint = self.getNextBreakPoint();
|
this.nextBreakPoint = this.getNextBreakPoint();
|
||||||
self.nextBreakPoint = breakPoint;
|
this.goTo(-1);
|
||||||
self.goTo(-1);
|
|
||||||
callback();
|
callback();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
dom.addEventListener("keydown", listener);
|
document.addEventListener("keydown", listener);
|
||||||
self.goTo(idx);
|
this.goTo(idx);
|
||||||
},
|
}
|
||||||
goTo: function goTo(idx) {
|
|
||||||
|
goTo(idx) {
|
||||||
var allRows = this.panel.getElementsByClassName("line");
|
var allRows = this.panel.getElementsByClassName("line");
|
||||||
for (var x = 0, xx = allRows.length; x < xx; ++x) {
|
for (var x = 0, xx = allRows.length; x < xx; ++x) {
|
||||||
var row = allRows[x];
|
var row = allRows[x];
|
||||||
@ -431,11 +437,12 @@ var Stepper = (function StepperClosure() {
|
|||||||
row.style.backgroundColor = null;
|
row.style.backgroundColor = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
};
|
}
|
||||||
return Stepper;
|
return Stepper;
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-var
|
||||||
var Stats = (function Stats() {
|
var Stats = (function Stats() {
|
||||||
var stats = [];
|
var stats = [];
|
||||||
function clear(node) {
|
function clear(node) {
|
||||||
|
Loading…
Reference in New Issue
Block a user