Currently native iterators store an array of jsids when doing a key iteration (for x in y). When going through the iteration, js_IteratorNext needs to test and convert non-string ids into a string before returning, which happens within a stub call during JM. It would be simpler if the string conversion happened during construction of the iterator, rendering the test unnecessary. With some other work, all jitcode tests can be removed from IteratorNext on key iterators, which will simplify and speed things up for IM.
Created attachment 584496 [details] [diff] [review]