Skip to content

Conversation

HalidOdat
Copy link
Member

@HalidOdat HalidOdat commented Oct 2, 2025

It changes the following:

  • Prevent creation of temporary object on field access (i.e. "Hello".charCodeAt(1) creates 1 temporary String object for access to charCodeAt method through the prototype)
  • Specialize get and set property instructions
  • Add micro benchmark for object access

Benchmarks

main

PROGRESS Richards
RESULT Richards 180
PROGRESS DeltaBlue
RESULT DeltaBlue 181
PROGRESS Encrypt
PROGRESS Decrypt
RESULT Crypto 144
PROGRESS RayTrace
RESULT RayTrace 387
PROGRESS Earley
PROGRESS Boyer
RESULT EarleyBoyer 452
PROGRESS RegExp
RESULT RegExp 71.8
PROGRESS Splay
RESULT Splay 717
PROGRESS NavierStokes
RESULT NavierStokes 314
SCORE 246

PR

PROGRESS Richards
RESULT Richards 185
PROGRESS DeltaBlue
RESULT DeltaBlue 185
PROGRESS Encrypt
PROGRESS Decrypt
RESULT Crypto 143
PROGRESS RayTrace
RESULT RayTrace 401
PROGRESS Earley
PROGRESS Boyer
RESULT EarleyBoyer 464
PROGRESS RegExp
RESULT RegExp 70.4
PROGRESS Splay
RESULT Splay 736
PROGRESS NavierStokes
RESULT NavierStokes 323
SCORE 250

@HalidOdat HalidOdat changed the title Optimization/property get set Optimize get/set property access Oct 2, 2025
@HalidOdat HalidOdat added the performance Performance related changes and issues label Oct 2, 2025
Copy link

github-actions bot commented Oct 2, 2025

Test262 conformance changes

Test result main count PR count difference
Total 50,595 50,595 0
Passed 47,620 47,620 0
Ignored 2,056 2,056 0
Failed 919 919 0
Panics 0 0 0
Conformance 94.12% 94.12% 0.00%

@HalidOdat HalidOdat marked this pull request as ready for review October 5, 2025 13:26
@HalidOdat HalidOdat requested a review from a team October 5, 2025 13:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance Performance related changes and issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant