You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ditemukan oleh worker saat mengerjakan issue #210 (sudah closed via PR #219). PR #221 (closed, konflik dengan #219 yang sudah merge duluan) menemukan gap TERPISAH yang belum ter-cover oleh fix #219: arrow function yang jadi value di object-literal pair (const service = { list: (ctx) => {...}, create: (ctx) => {...} }) tidak pernah terdaftar sebagai node, jadi calls di dalam body-nya invisible ke reference counting.
_parse_variable_declarator di ts_backend_parser.py/js_backend_parser.py hanya handle value berupa arrow_function/function_expression/defineStore(...) call langsung — kalau value adalah object node (object literal), return None, dan arrow function di dalam pair-nya tidak pernah diregister.
Konteks
Pattern ini umum untuk "service object" / "handler map" style code (grouping related functions sebagai object daripada named exports terpisah) — mirip Pinia defineStore yang SUDAH dihandle khusus di fix #219, tapi object-literal biasa (tanpa defineStore) belum.
Tujuan
Tambah dukungan: kalau variable_declarator's value adalah object literal (object node type), walk semua property/pair yang value-nya arrow_function/function_expression, register sebagai node dengan nama <varName>.<key> (persis seperti approach worker: assignmentService.list, assignmentService.create), supaya calls di dalam body-nya ter-collect dengan benar.
Mengapa
Ditemukan oleh worker saat mengerjakan issue #210 (sudah closed via PR #219). PR #221 (closed, konflik dengan #219 yang sudah merge duluan) menemukan gap TERPISAH yang belum ter-cover oleh fix #219: arrow function yang jadi value di object-literal pair (
const service = { list: (ctx) => {...}, create: (ctx) => {...} }) tidak pernah terdaftar sebagai node, jadi calls di dalam body-nya invisible ke reference counting.Reproduksi worker (sebelum fix, TS parser):
_parse_variable_declaratordits_backend_parser.py/js_backend_parser.pyhanya handle value berupaarrow_function/function_expression/defineStore(...)call langsung — kalau value adalahobjectnode (object literal), return None, dan arrow function di dalam pair-nya tidak pernah diregister.Konteks
Pattern ini umum untuk "service object" / "handler map" style code (grouping related functions sebagai object daripada named exports terpisah) — mirip Pinia
defineStoreyang SUDAH dihandle khusus di fix #219, tapi object-literal biasa (tanpa defineStore) belum.Tujuan
Tambah dukungan: kalau
variable_declarator's value adalah object literal (objectnode type), walk semua property/pair yang value-nya arrow_function/function_expression, register sebagai node dengan nama<varName>.<key>(persis seperti approach worker:assignmentService.list,assignmentService.create), supaya calls di dalam body-nya ter-collect dengan benar.Constraint
<file>:<line>format, bukan node baru dengan skema berbeda)Definition of Done
const service = {method: (ctx) => {...}}) — call di dalam method ter-extract dengan benarsearch --mode symboluntuk fungsi yang dipanggil hanya lewat pattern ini menunjukkanrcyang benar (bukan 0)Checklist Laporan Worker