I think we could make JSPropertyNameEnumerator destructorless by allocating the m_propertyNames vector out of GC copied space instead. The "vector" never changes size after construction anyway.
Created attachment 265463 [details] Hack for EWS
Created attachment 265464 [details] Patch With missing CopyToken + ChangeLog.
Comment on attachment 265464 [details] Patch r=me
Comment on attachment 265464 [details] Patch Clearing flags on attachment: 265464 Committed r192416: <http://trac.webkit.org/changeset/192416>
All reviewed patches have been landed. Closing bug.
(In reply to comment #4) > Comment on attachment 265464 [details] > Patch > > Clearing flags on attachment: 265464 > > Committed r192416: <http://trac.webkit.org/changeset/192416> It made API tests assert on the 32 bit Apple Mac bots: https://build.webkit.org/builders/Apple%20El%20Capitan%2032-bit%20JSC%20%28BuildAndTest%29
(In reply to comment #6) > (In reply to comment #4) > > Comment on attachment 265464 [details] > > Patch > > > > Clearing flags on attachment: 265464 > > > > Committed r192416: <http://trac.webkit.org/changeset/192416> > > It made API tests assert on the 32 bit Apple Mac bots: > https://build.webkit.org/builders/Apple%20El%20Capitan%2032- > bit%20JSC%20%28BuildAndTest%29 and ~40 JSC tests fail on Apple Windows and 32 bit ARM bots: - https://build.webkit.org/builders/Apple%20Win%207%20Release%20%28Tests%29/builds/55097 - https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Thumb2%20Release - https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Traditional%20Release
(In reply to comment #6) > (In reply to comment #4) > > Comment on attachment 265464 [details] > > Patch > > > > Clearing flags on attachment: 265464 > > > > Committed r192416: <http://trac.webkit.org/changeset/192416> > > It made API tests assert on the 32 bit Apple Mac bots: > https://build.webkit.org/builders/Apple%20El%20Capitan%2032- > bit%20JSC%20%28BuildAndTest%29 Aha! It looks like copied space allocations are expected to be 8-byte divisible on 32-bit platforms too, even though pointers are 4 bytes there. I will make a quick fix that rounds up allocation sizes to the nearest multiple of 8 (same idea as DirectArguments when it allocates out of copied space.) Thanks for letting me know about the issue!
Created attachment 265485 [details] Follow-up patch to fix 32-bit platforms
Comment on attachment 265485 [details] Follow-up patch to fix 32-bit platforms r=me
Comment on attachment 265485 [details] Follow-up patch to fix 32-bit platforms Clearing flags on attachment: 265485 Committed r192443: <http://trac.webkit.org/changeset/192443>
Re-opened since this is blocked by bug 151285
Created attachment 265702 [details] Patch for relanding This had a subtle problem on 32-bit, where WriteBarrier<Unknown> is 64-bit and WriteBarrier<JSString> is 64-bit, and so you really can't go around reinterpret_casting one to the other!
(In reply to comment #14) > Created attachment 265702 [details] > Patch for relanding > > This had a subtle problem on 32-bit, where WriteBarrier<Unknown> is 64-bit > and WriteBarrier<JSString> is 64-bit, and so you really can't go around > reinterpret_casting one to the other! I meant to say that WriteBarrier<Unknown> is 64-bit, and WriteBarrier<JSString> is 32-bit. :)
Comment on attachment 265702 [details] Patch for relanding Clearing flags on attachment: 265702 Committed r192536: <http://trac.webkit.org/changeset/192536>
Re-opened since this is blocked by bug 151593