Martin Vogel
34c64bf8a1
feat(extract): record JS/TS receiver binding facts for imports and AMD
...
The same-module guard for #1128 needs to know, from the caller's own
source, whether a member call's receiver is bound to another module.
Two facts were missing:
- A JS/TS import statement that binds no local name (side-effect
`import './x'`, a re-export, a bare or destructured `require('x')`,
`require('x').y`) still records the path's last segment as its
local_name, so `require('node:stream').Readable` made every `stream`
parameter look import-bound. CBMImport.local_name_synthesized marks
those stand-ins. A lazy `x = require('x')` and
`const x = require('x').member` do bind that very name and stay
unmarked. local_name itself is unchanged, so IMPORTS edges and the
import map are untouched.
- AMD `define([...], function (dep) {...})` / `require([...], fn)` bind
each factory parameter to the dependency at the same position. That
binding is local to the factory and is not an import (no IMPORTS
edge), so the unified walk carries it like the Python parameter
bindings: the loader call notes its factory, the factory's frame binds
the dependency parameters, the frame's pop unwinds them. The
CommonJS-wrapper pseudo dependencies (`exports`, `module`, `require`)
stay unbound. O(1) per node, no ancestor walk. The JS member-call
branch reads it into CBMCall.receiver_is_amd_dependency.
Nothing reads either fact yet; the graph is unchanged by this commit.
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com >
2026-11-10 20:01:40 +01:00
..
2026-10-14 04:08:22 +02:00
2026-09-18 23:27:23 +02:00
2026-10-14 04:08:22 +02:00
2026-10-15 18:07:25 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-06-05 21:53:25 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-09-05 06:05:08 +02:00
2026-07-13 01:50:03 +02:00
2026-03-15 22:37:34 +01:00
2026-09-12 16:50:42 +02:00
2026-08-11 13:37:32 +02:00
2026-09-28 00:30:10 +02:00
2026-09-04 21:45:24 +07:00
2026-10-11 20:16:34 +02:00
2026-09-18 03:31:22 +02:00
2026-10-01 19:59:02 +02:00
2026-06-29 09:45:28 -06:00
2026-07-22 17:48:20 +02:00
2026-10-13 18:33:40 +02:00
2026-07-18 15:52:50 +02:00
2026-10-01 00:10:39 +02:00
2026-10-13 19:35:11 +02:00
2026-10-13 00:33:09 +02:00
2026-10-13 18:33:40 +02:00
2026-09-11 23:26:33 +02:00
2026-09-08 02:04:51 +02:00
2026-10-04 16:22:57 +02:00
2026-09-25 22:56:39 +02:00
2026-10-14 22:09:37 +02:00
2026-08-04 16:37:06 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-06 03:19:38 +02:00
2026-10-06 03:19:38 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-06-06 22:16:04 +02:00
2026-10-10 15:24:17 +02:00
2026-08-14 06:46:05 -04:00
2026-07-18 15:52:50 +02:00
2026-10-14 21:05:58 +02:00
2026-10-14 22:54:02 +02:00
2026-10-05 18:52:26 +02:00
2026-09-25 23:03:56 +02:00
2026-09-30 23:33:54 +02:00
2026-08-09 13:06:42 +02:00
2026-07-18 11:48:59 +02:00
2026-10-11 16:57:48 +02:00
2026-08-11 13:37:32 +02:00
2026-09-28 00:01:56 +02:00
2026-09-06 16:23:45 +02:00
2026-08-13 14:04:51 +02:00
2026-09-05 06:05:08 +02:00
2026-10-11 12:00:31 +02:00
2026-10-12 19:07:09 +02:00
2026-10-09 02:55:23 +02:00
2026-10-11 12:43:35 +02:00
2026-10-09 02:55:23 +02:00
2026-10-10 23:13:18 +02:00
2026-10-11 02:09:04 +02:00
2026-10-12 19:11:19 +02:00
2026-10-11 12:43:35 +02:00
2026-10-11 16:46:52 +02:00
2026-10-11 02:09:04 +02:00
2026-10-11 02:09:04 +02:00
2026-10-10 11:34:47 +02:00
2026-10-11 02:09:04 +02:00
2026-10-09 18:24:01 +02:00
2026-09-22 08:48:33 +02:00
2026-06-23 06:38:45 +09:00
2026-08-27 10:15:09 +02:00
2026-03-25 09:28:11 +01:00
2026-10-13 00:02:21 +02:00
2026-10-09 01:56:17 +02:00
2026-10-09 01:54:53 +02:00
2026-11-10 20:01:40 +01:00
2026-08-18 15:56:41 +08:00
2026-10-13 18:47:51 +02:00
2026-10-12 20:18:19 +02:00
2026-10-11 11:42:35 +02:00
2026-10-01 22:56:52 +02:00
2026-10-14 20:18:55 +02:00
2026-09-30 23:50:03 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-09-01 15:51:50 +08:00
2026-08-26 22:51:29 +02:00
2026-10-11 02:08:58 +02:00
2026-06-07 19:13:01 +02:00
2026-06-07 19:13:01 +02:00
2026-06-07 19:13:01 +02:00
2026-06-27 16:23:26 +02:00
2026-06-07 20:05:24 +02:00
2026-10-16 18:16:50 +02:00
2026-10-10 15:40:21 +02:00
2026-08-28 21:30:06 +02:00
2026-10-10 17:19:41 +02:00
2026-10-14 22:54:02 +02:00
2026-10-05 18:52:31 +02:00
2026-10-06 03:19:38 +02:00
2026-09-18 23:27:23 +02:00
2026-09-30 23:50:03 +02:00
2026-08-17 22:07:11 +03:00
2026-10-11 20:16:34 +02:00
2026-08-28 20:56:33 +02:00
2026-09-26 07:14:58 +02:00
2026-10-16 02:10:53 +02:00
2026-09-09 16:06:59 +08:00
2026-10-02 20:51:31 +02:00
2026-09-26 07:14:58 +02:00
2026-10-13 00:33:07 +02:00
2026-07-18 13:48:06 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-06 18:07:16 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-06 18:07:16 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-06-02 18:52:37 +02:00
2026-07-18 15:52:50 +02:00
2026-07-18 15:52:50 +02:00
2026-10-05 18:52:31 +02:00
2026-10-05 18:52:31 +02:00
2026-10-10 13:37:44 +02:00
2026-09-10 10:21:35 +02:00
2026-10-11 22:11:56 +02:00
2026-09-04 15:42:15 +02:00
2026-09-05 07:59:14 +02:00
2026-08-29 17:30:00 +02:00
2026-03-15 22:37:34 +01:00
2026-10-14 22:19:02 +02:00
2026-07-18 01:26:08 +02:00
2026-06-08 22:55:23 +02:00
2026-07-18 15:52:50 +02:00
2026-10-14 18:26:57 +02:00
2026-09-04 22:02:47 +02:00
2026-08-11 17:01:24 +02:00
2026-09-18 23:27:23 +02:00
2026-10-14 22:54:02 +02:00
2026-09-13 13:52:08 +03:00
2026-06-12 02:17:39 +02:00
2026-08-20 21:20:44 +02:00
2026-10-11 02:08:58 +02:00
2026-09-28 19:45:45 +02:00
2026-10-13 00:02:21 +02:00
2026-09-06 13:12:20 +08:00
2026-10-12 20:23:13 +02:00
2026-10-02 05:34:41 +02:00
2026-07-18 15:52:50 +02:00
2026-10-13 00:02:21 +02:00
2026-10-05 02:15:08 +02:00
2026-10-05 23:55:25 +02:00
2026-10-16 18:16:50 +02:00
2026-10-10 15:40:21 +02:00
2026-07-18 01:26:08 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-07-18 01:26:08 +02:00
2026-08-10 16:40:31 +02:00
2026-10-12 21:29:00 +02:00
2026-05-09 14:16:15 +02:00
2026-10-13 00:33:09 +02:00
2026-10-18 19:58:19 +05:30
2026-08-11 17:01:24 +02:00
2026-09-04 22:02:47 +02:00
2026-08-18 22:30:28 +02:00
2026-06-23 13:52:08 -03:00
2026-10-03 18:37:19 +02:00
2026-10-15 18:07:25 +02:00
2026-07-18 15:52:50 +02:00
2026-09-28 00:13:39 +02:00
2026-08-03 15:42:32 +02:00
2026-10-11 20:42:19 +02:00
2026-10-03 18:37:19 +02:00
2026-09-13 01:27:43 +02:00
2026-10-15 03:18:42 +02:00
2026-10-11 18:23:58 +02:00
2026-08-08 17:35:05 +02:00
2026-09-30 23:46:46 +02:00
2026-10-11 15:46:00 +02:00
2026-10-02 06:50:04 +02:00
2026-09-18 03:31:42 +02:00
2026-09-18 23:27:23 +02:00
2026-06-28 21:57:35 -06:00
2026-09-30 23:21:43 +02:00
2026-09-21 11:29:04 +03:00
2026-07-25 00:37:05 +02:00
2026-09-13 13:52:00 +03:00
2026-08-07 14:58:22 +02:00
2026-10-06 02:44:56 +02:00
2026-09-25 18:37:16 +02:00
2026-08-10 12:57:34 +01:00
2026-10-14 21:20:07 +02:00
2026-03-20 20:32:38 +01:00
2026-10-07 19:20:08 +02:00
2026-07-03 20:16:39 +02:00
2026-10-05 23:55:25 +02:00
2026-10-13 18:33:40 +02:00
2026-10-14 21:05:58 +02:00
2026-10-14 18:26:57 +02:00
2026-10-03 23:55:18 +02:00
2026-10-14 21:20:07 +02:00
2026-03-24 23:48:23 +01:00
2026-09-21 20:29:27 +02:00
2026-10-11 20:16:34 +02:00
2026-10-05 02:15:08 +02:00
2026-10-05 18:52:26 +02:00
2026-10-03 23:55:18 +02:00
2026-10-05 02:15:08 +02:00
2026-10-13 18:33:40 +02:00
2026-10-09 01:59:34 +02:00
2026-10-03 23:55:18 +02:00
2026-10-05 02:15:08 +02:00
2026-10-05 02:15:08 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-09-30 23:29:52 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-03 23:55:18 +02:00
2026-10-13 18:33:40 +02:00
2026-10-05 18:52:31 +02:00
2026-10-06 18:07:16 +02:00
2026-10-06 05:58:39 +02:00
2026-10-06 03:53:49 +02:00
2026-09-18 23:26:05 +02:00
2026-09-02 21:55:30 -04:00
2026-10-03 20:16:31 +02:00
2026-06-10 12:11:02 +02:00
2026-07-21 15:32:15 +02:00
2026-10-13 20:57:12 +02:00
2026-10-11 23:14:24 +02:00
2026-10-03 23:55:18 +02:00
2026-08-08 17:35:05 +02:00
2026-10-07 18:20:52 +02:00
2026-09-04 09:41:30 +02:00
2026-10-16 18:09:06 +02:00
2026-10-03 23:55:18 +02:00
2026-10-06 03:36:33 +02:00
2026-10-06 03:36:33 +02:00
2026-08-08 17:35:05 +02:00
2026-06-05 21:53:25 +02:00
2026-08-14 00:21:31 +02:00
2026-08-14 04:40:07 +02:00
2026-08-14 12:48:40 +02:00
2026-10-03 18:37:19 +02:00
2026-10-11 16:57:48 +02:00
2026-09-12 16:21:30 +02:00
2026-10-03 23:55:18 +02:00
2026-09-09 16:06:59 +08:00
2026-06-06 19:48:48 +02:00
2026-09-20 21:40:37 +02:00
2026-09-09 16:06:59 +08:00
2026-10-04 19:08:28 +02:00
2026-03-24 23:48:23 +01:00
2026-04-15 23:56:03 +02:00