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

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

Post by Anonymous »

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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post