Currently put_by_id may turn into a three-node lowering: AllocatePropertyStorage, PutByOffset, PutStructure. This barely works. We should use a single node ("PutByOffsetWithPropertyAllocationTransition", or something with a shorter name) so that code motion of things that GC and exit doesn't have to tiptoe around this.
An alternate approach might be: https://bugs.webkit.org/show_bug.cgi?id=142924