Skip to content

fix(resolver): runCallThis→handler false positive in bind-call-apply.js JS fixture #1426

@carlos-alm

Description

@carlos-alm

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions