Latihan 1: Breakpoints & Stepping — Debugging

Latihan 1 dari materi Breakpoints & Stepping di Debugging — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Kode awal sudah punya traceStepThrough dan enam baris console.log, biarkan semuanya. Tugasmu melengkapi makeBreakpointRunner(), runtime kecil yang meniru conditional breakpoint.

  1. makeBreakpointRunner() mengembalikan object dengan tiga method:
    • addBreakpoint(line, condition): simpan breakpoint di line. condition adalah function yang menerima state dan menjawab true atau false.
    • step(line, state): satu langkah eksekusi. Kalau ada breakpoint di line dan condition(state) bernilai true, catat { line, state } sebagai satu hit.
    • getHits(): kembalikan array semua hit, urut sesuai kejadiannya.
  2. traceStepThrough di kode awal memasang breakpoint di baris 10 dengan kondisi s.count > 5 dan di baris 20 dengan kondisi !!s.error, lalu menjalankan enam langkah lewat step().

Yang dicek, satu per baris di console, urut:

Ada juga cek dengan breakpoint lain: makeBreakpointRunner() baru, breakpoint di baris 4 dengan kondisi s.n === 2, lalu step(4, { n: 1 }), step(4, { n: 2 }), step(9, { n: 2 }). Hasilnya harus tepat satu hit, di baris 4, dengan n bernilai 2.

Hint