let g = newGlobal({newCompartment: true});
let dbg = new Debugger(g);
let count = 0;
dbg.onEnterFrame = function(frame) { if (frame.type === "eval") { return;
}
// This test assumes the hello1 and hello2 functions have prologue bytecode.
assertEq(frame.script.mainOffset > 0, true);
// Prologue bytecode ops are never marked as break/step points.
let prologueData = frame.script.getOffsetMetadata(0);
assertEq(prologueData.isBreakpoint, false);
assertEq(prologueData.isStepStart, false);
// Prologue ops are also never marked as entry points.
let location = frame.script.getOffsetLocation(0);
assertEq(location.isEntryPoint, false); if (count == 0) { // hello1
assertEq(location.lineNumber, 3);
assertEq(location.columnNumber, 5);
} else { // hello2
assertEq(location.lineNumber, 5);
assertEq(location.columnNumber, 18);
}
// getPossibleBreakpointOffsets shouldn't return prologue offsets. for (let offset of frame.script.getPossibleBreakpointOffsets()) {
assertEq(offset >= frame.script.mainOffset, true);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.