Latihan 1: Remote Debugging — Debugging

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

Lengkapi dua function di kode awal. Data, pemanggilan, dan enam console.log di bawahnya sudah ada, biarkan begitu.

  1. createSourceMap(mappings): mappings berisi object { minLine, minCol, origFile, origLine, origCol }. Kembalikan object yang punya method resolve(minLine, minCol):
    • Cari pemetaan yang minLine dan minCol-nya sama persis.
    • Ketemu: kembalikan { file: origFile, line: origLine, col: origCol }.
    • Gak ketemu: kembalikan null (bukan pemetaan terdekat, bukan undefined).
  2. formatStackTrace(frames, sourceMap): frames berisi { fn, file, line, col } (posisi di bundle). Untuk tiap frame, panggil sourceMap.resolve(frame.line, frame.col), lalu kembalikan array string berpola fn (file:line:col). Kalau resolve mengembalikan null, pakai file, line, dan col milik frame itu sendiri.

Output-nya harus persis enam baris ini, berurutan:

  1. auth.ts
  2. 45
  3. login.ts
  4. null
  5. validateUser (auth.ts:45:2)
  6. handleLogin (login.ts:103:4)

Ada juga cek dengan pemetaan lain: resolve(3, 7) harus ketemu, dan resolve(3, 8) di pemetaan yang sama harus null.

Hint