Ist es möglich, in ES5 eine benutzerdefinierte JavaScript-Debugger-Konsole zu erstellen? [geschlossen]

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Ist es möglich, in ES5 eine benutzerdefinierte JavaScript-Debugger-Konsole zu erstellen? [geschlossen]

by Anonymous » 17 Jan 2025, 10:32

Ich arbeite an der Erstellung einer benutzerdefinierten JavaScript-Debugger-Konsole mit den folgenden Funktionen:
Schrittweise Ausführung: Code Zeile für Zeile ausführen.
Bewahrung des Bereichs: Beibehalten Der Ausführungskontext (Variablen, Funktionen usw.) über Zeilen hinweg, sodass zuvor deklarierte Variablen in nachfolgenden Zeilen zugänglich sind.
Debugger-Funktionen: Implementieren Sie Debugging-Funktionen wie das Ein- und Aussteigen in den Code und das Setzen von Haltepunkten.
Hier ist eine Beispiel für die Problem, auf das ich gestoßen bin:

Code: Select all

let codeString = `
function test(param){
return param;
}
console.log(test("param"));
`;

let codeLines = codeString.split("\n"); // Split code into lines

function execute() {
for (let line of codeLines) {
if (line.trim()) {
try {
eval(line); // Execute each line independently
} catch (error) {
console.error("Error executing line:", line, error);
}
}
}
}

execute();
Das Problem:
Bereichsprobleme: Im obigen Beispiel ist die in der ersten Zeile deklarierte Testfunktion für die Anweisung console.log nicht zugänglich in der zweiten Zeile. Dies geschieht, weil eval jede Zeile isoliert ausführt.
Gewünschtes Verhalten: Ich möchte eine Möglichkeit haben, JavaScript-Code Zeile für Zeile auszuführen und dabei den gemeinsamen Ausführungskontext beizubehalten, wie er in einer typischen JavaScript-Laufzeit zu sehen ist.
Anforderungen:< /p>
Die Lösung muss mit ES5 kompatibel sein (keine modernen ES6+-Funktionen).
Sie sollte die Implementierung allgemeiner Debugging-Funktionen wie Stepping, Haltepunkte und Inspektion ermöglichen Bereich/Variablen.
Was ich versucht habe:
Eval verwenden: Funktioniert für einzelne Zeilen, behält aber den Bereich über Zeilen hinweg nicht bei.
Untersuchung von Alternativen wie dem Funktionskonstruktor : Bin auf ähnliche Bereichsprobleme gestoßen.
Ist es möglich, eine Debugger-Konsole in ES5 zu implementieren, die diese Anforderungen erfüllt? Wenn ja, welchen Ansatz würden Sie empfehlen?

Top