The CCW call benchmark in bug 1211795 creates a ton of wrappers. A profile shows a few % under ProxyObject::New malloc'ing the ProxyValueArray. If we could nursery allocate the proxy, we could allocate this array in the nursery as well. Allocating nursery objects can also avoid the much slower full GCs. This is complicated because proxy_finalize also calls the handler's finalize() so we'd have to make sure this is a nop. We'd probably also have to add barriers to the wrapper map etc.
Most simply, could we just fast-path transparent CCW proxies, assuming they have a trivial finalize?