Commit fa19d0c
Your Name
feat(writes): expand WRITES detection to all obj.field = value assignments
Previously handle_readwrites only captured this.X = value (requiring the
receiver to be this/base/self). In JS/TS, most state mutations use
obj.field = value where obj is a parameter or local variable:
filter.captureNodeId = captureNodeIds
session.recordedFiles = files
metadata.startTime = clipStartTime
These were invisible to WRITES edge detection.
Fix: remove the this/base/self receiver check from the member_expression
branch. Now extracts the property name from ANY obj.field = value pattern.
The registry resolution step in pass_usages.c filters out names that don't
match any Property/Method node, preventing noise from built-in properties
like x.length or result.data.
Tested on JS repo: WRITES 1 → 14 edges. New edges correctly identify
functions that mutate object state (getUpdaterStatusById → status,
updateSimulatorSessionFileUploadStatus → status).
Requires full reindex.1 parent 09b843c commit fa19d0c
1 file changed
+16
-23
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
275 | 275 | | |
276 | 276 | | |
277 | 277 | | |
278 | | - | |
279 | | - | |
280 | | - | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
281 | 285 | | |
282 | 286 | | |
283 | | - | |
284 | 287 | | |
285 | | - | |
| 288 | + | |
286 | 289 | | |
287 | 290 | | |
288 | 291 | | |
289 | | - | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
307 | 300 | | |
308 | 301 | | |
309 | 302 | | |
| |||
0 commit comments