LibJS: Split PutBy* instructions into specialized per-kind variants

This allows the compiler to fold away lots of unused code for each kind.

1.10x speed-up on MicroBench/pic-add-own.js :^)
This commit is contained in:
Andreas Kling 2025-10-10 12:09:34 +02:00 committed by Andreas Kling
commit b47f8f94fe
Notes: github-actions[bot] 2025-10-11 18:10:13 +00:00
5 changed files with 439 additions and 305 deletions

View file

@ -123,12 +123,37 @@
O(PrepareYield) \
O(PostfixDecrement) \
O(PostfixIncrement) \
O(PutById) \
O(PutByNumericId) \
O(PutByIdWithThis) \
O(PutNormalById) \
O(PutOwnById) \
O(PutGetterById) \
O(PutSetterById) \
O(PutPrototypeById) \
O(PutNormalByNumericId) \
O(PutOwnByNumericId) \
O(PutGetterByNumericId) \
O(PutSetterByNumericId) \
O(PutPrototypeByNumericId) \
O(PutNormalByIdWithThis) \
O(PutOwnByIdWithThis) \
O(PutGetterByIdWithThis) \
O(PutSetterByIdWithThis) \
O(PutPrototypeByIdWithThis) \
O(PutNormalByNumericIdWithThis) \
O(PutOwnByNumericIdWithThis) \
O(PutGetterByNumericIdWithThis) \
O(PutSetterByNumericIdWithThis) \
O(PutPrototypeByNumericIdWithThis) \
O(PutBySpread) \
O(PutByValue) \
O(PutByValueWithThis) \
O(PutNormalByValue) \
O(PutOwnByValue) \
O(PutGetterByValue) \
O(PutSetterByValue) \
O(PutPrototypeByValue) \
O(PutNormalByValueWithThis) \
O(PutOwnByValueWithThis) \
O(PutGetterByValueWithThis) \
O(PutSetterByValueWithThis) \
O(PutPrototypeByValueWithThis) \
O(PutPrivateById) \
O(ResolveSuperBase) \
O(ResolveThisBinding) \