Problem
The JS resolution benchmark reports a false positive edge runCallThis@bind-call-apply.js -> handler@bind-call-apply.js that is not in expected-edges.json.
This was introduced by PR #1405 (call/apply this-rebinding resolution). The handler function object is passed as the first argument to invoker.call(handler, 10) — as a this rebinding, NOT as a call target. The resolver is incorrectly emitting an edge from runCallThis to handler.
The correct expected edge is runCallThis → invoker (the actual callee) and invoker → handler (this-rebinding dispatch), both of which ARE in expected-edges.json.
Impact
Prevents the JS precision floor from reaching 1.0 even after #1425 is fixed. Currently masked by the pre-publish benchmark gate running in artifact mode, but will surface when fixtures are rebuilt.
Fix
Investigate why handler is being emitted as a call target for runCallThis. Likely the .call() argument extractor is treating the first argument as a callee rather than the this-context binding.
Problem
The JS resolution benchmark reports a false positive edge
runCallThis@bind-call-apply.js -> handler@bind-call-apply.jsthat is not inexpected-edges.json.This was introduced by PR #1405 (call/apply this-rebinding resolution). The
handlerfunction object is passed as the first argument toinvoker.call(handler, 10)— as athisrebinding, NOT as a call target. The resolver is incorrectly emitting an edge fromrunCallThistohandler.The correct expected edge is
runCallThis → invoker(the actual callee) andinvoker → handler(this-rebinding dispatch), both of which ARE in expected-edges.json.Impact
Prevents the JS precision floor from reaching 1.0 even after #1425 is fixed. Currently masked by the pre-publish benchmark gate running in artifact mode, but will surface when fixtures are rebuilt.
Fix
Investigate why
handleris being emitted as a call target forrunCallThis. Likely the .call() argument extractor is treating the first argument as a callee rather than the this-context binding.