1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-30 22:08:12 +00:00
serenity/Userland/Libraries/LibJS/Tests/builtins
Andreas Kling d0664ce6c9 LibJS: Don't punish large arrays with generic indexed property storage
This patch rethinks the way indexed property storage works:

Instead of having a cut-off point at 200 elements where we always move
to generic property storage, we now allow arrays to stay in simple mode
as long as we don't create a gap/hole larger than 200 elements.

We also simplify generic storage to only have a hash map (for now)
instead of juggling both a vector and a hash map. This is mostly fine
since the vast majority of arrays get to stay simple now.

This is a huge speedup on anything that uses basic JS arrays with more
than 200 elements in them. :^)
2021-03-21 11:37:10 +01:00
..
Array LibJS: Don't punish large arrays with generic indexed property storage 2021-03-21 11:37:10 +01:00
ArrayBuffer Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
BigInt LibJS: Throw RangeError on BigInt exponentiation with negative exponent 2021-03-16 21:54:51 +01:00
Boolean Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Date LibJS: Add Date methods: setHours, setMinutes, setSeconds, setMilliseconds 2021-03-19 23:08:21 +01:00
Error Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Function LibJS: Change non-ScriptFunction source string to "[native code]" 2021-03-14 19:22:16 +01:00
functions Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Infinity Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
JSON Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Math LibJS: Improve correctness of rounding and bitwise operations 2021-02-05 09:38:45 +01:00
NaN Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Number Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Object Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Proxy Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Reflect Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
RegExp LibJS: Don't assume match for each capture group in RegExp.prototype.exec() 2021-02-08 18:01:23 +01:00
String LibJS: Implement (mostly) String.prototype.match 2021-03-14 11:04:50 +01:00
Symbol Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
TypedArray LibJS: Implement 'Relative Indexing Method' proposal (.at()) 2021-03-12 19:01:08 +01:00