To reuse it for generators.
<rdar://problem/55080640>
The goal of making Generator internal-field-object is avoiding op_get_by_id_direct for generators. Each generator has different structure since [[Prototype]] of them are different (defined in the spec). As a result, Generator.prototype.next's internal field accesses are getting super generic get_by_id.
(In reply to Yusuke Suzuki from comment #2) > The goal of making Generator internal-field-object is avoiding > op_get_by_id_direct for generators. > Each generator has different structure since [[Prototype]] of them are > different (defined in the spec). As a result, Generator.prototype.next's > internal field accesses are getting super generic get_by_id. If multiple generators exist in one app, we hits this slow-case. And JetStream2/Basic is the one I think.
Created attachment 378113 [details] Patch
Created attachment 378114 [details] Patch
Created attachment 378116 [details] Patch
Comment on attachment 378116 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=378116&action=review Looks nice and simple to me. > Source/JavaScriptCore/llint/LowLevelInterpreter.asm:168 > +const JSInternalFieldObjectImpl_internalFields = JSInternalFieldObjectImpl::m_internalFields Is this constant just a stylistic matter? Just curious since we weren't using one before.
Comment on attachment 378116 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=378116&action=review >> Source/JavaScriptCore/llint/LowLevelInterpreter.asm:168 >> +const JSInternalFieldObjectImpl_internalFields = JSInternalFieldObjectImpl::m_internalFields > > Is this constant just a stylistic matter? Just curious since we weren't using one before. I used it since `<>` syntax is not available in LLInt right now.
Committed r249547: <https://trac.webkit.org/changeset/249547>