After I land https://bugs.webkit.org/show_bug.cgi?id=164258, we will emit Spread(ArrayUse:@child) only when we know that the iterator protocol is proven to be non-observable. This means we can CSE two Spread(ArrayUse:@child) together when we've proven that nobody changes @child in between the two Spreads.
It's important to also note that Spread will allocate a JSFixedArray, but JSFixedArray is a VM internal cell, it's not observable to user code. Therefore, it's ok to simply drop the second allocation and use the first one.
Since the comment mentioning this bug was removed in r227229, can this be changed to RESOLVED/WONTFIX?
(In reply to David Kilzer (:ddkilzer) from comment #2) > Since the comment mentioning this bug was removed in r227229, can this be > changed to RESOLVED/WONTFIX? I think it's worth keeping this. We could theoretically do this if we speculated in some particular way. Or if we proved the input to Spread doesn't have a symbol iterator.