Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Temporary patch to frobnicate kwargs in indy mode.
CompiledIRMethod calls frobnicate to restructure the keyword args entering a given call, separating symbol keys from non-symbol keys and duplicating the original hash. This is an expensive step but currently a neessary one. When we bind method calls via invokedynamic, CompiledIRMethod is skipped in favor of directly binding the target Ruby method's indy handle directly. This direct binding did not call frobnicate. Rather than complicate the indy binding logic, I have opted to have indy binding back off to the slower path that goes through CompiledIRMethod when the target method receives kwargs. This is a temporary fix until we can do a better job of representing keyword args from call site to callee without frobnicating. See #4725