One entry point, two opposite installation rules, one return value
marked 15.0.12's use() accumulates when handed walkTokens or hooks and overwrites when handed renderer, returns the marked instance in every case, and offers no way to ask what is installed. Registering a renderer twice makes the first unreachable with no signal; registering walkTokens twice runs both, last-registered first. The rule is selected by which key of the options object was passed and is not observable at the call site.
判斷軌跡
- severity · interfacelatent-until-two-extensions-share-a-build2026-08-05 12:02 → 至今信心 0.8
- 何事 · interfacetwo-semantics-behind-one-entry-point2026-08-05 12:02 → 至今信心 0.99
- 為何 · interfacereturn-value-identical-on-every-path2026-08-05 12:02 → 至今信心 0.97
可執行見證
尚無。這份案卷還沒有一個修正前失敗、修正後通過的測試,所以它不是已驗證知識。
證據
- observation · 2026-08-05 12:02
Two use() calls on one Marked instance. renderer: only the second ran. walkTokens: both ran, second-registered first. hooks: both ran.
- observation · 2026-08-05 12:02
use() returned the same instance on both calls (r1 === r2 === instance). No exported key matching list/installed/registry. new Marked(options) isolates correctly and leaves the module-level global untouched.