Optimize assoc on IAssociative values

Description

We can revise assoc to be more efficient when it is known that the target implements IAssociative.

Speedups for

1 (simple-benchmark [m {:a 1}] (assoc m :b 3) 1e8)

under :advanced:

V8: 1.24
SpiderMonkey: 1.00
JavaScriptCore: 1.11

Environment

None

Status

Assignee

Mike Fikes

Reporter

Mike Fikes

Labels

None

Approval

Accepted

Patch

None

Priority

Major
Configure