RESOLVED FIXED 201513
[JSC] Generalize Get/PutPromiseInternalField for InternalFieldObjectImpl
https://bugs.webkit.org/show_bug.cgi?id=201513
Summary [JSC] Generalize Get/PutPromiseInternalField for InternalFieldObjectImpl
Yusuke Suzuki
Reported 2019-09-05 13:01:02 PDT
To reuse it for generators.
Attachments
Patch (64.15 KB, patch)
2019-09-05 13:38 PDT, Yusuke Suzuki
no flags
Patch (64.17 KB, patch)
2019-09-05 13:45 PDT, Yusuke Suzuki
no flags
Patch (64.16 KB, patch)
2019-09-05 13:57 PDT, Yusuke Suzuki
ross.kirsling: review+
Radar WebKit Bug Importer
Comment 1 2019-09-05 13:09:56 PDT
Yusuke Suzuki
Comment 2 2019-09-05 13:13:13 PDT
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.
Yusuke Suzuki
Comment 3 2019-09-05 13:13:49 PDT
(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.
Yusuke Suzuki
Comment 4 2019-09-05 13:38:45 PDT
Yusuke Suzuki
Comment 5 2019-09-05 13:45:50 PDT
Yusuke Suzuki
Comment 6 2019-09-05 13:57:19 PDT
Ross Kirsling
Comment 7 2019-09-05 14:01:52 PDT
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.
Yusuke Suzuki
Comment 8 2019-09-05 14:39:09 PDT
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.
Yusuke Suzuki
Comment 9 2019-09-05 14:48:50 PDT
Note You need to log in before you can comment on or make changes to this bug.