ladybird/Libraries/LibJS/Tests/builtins
Aliaksandr Kalenik bd6750aaa5 LibJS: Skip prototype chain lookup in internal_set() for arrays
...when Array.prototype and Object.prototype are intact.

If `internal_set()` is called on an array exotic object with a numeric
PropertyKey, and:
- the prototype chain has not been modified (i.e., there are no getters
  or setters for indexed properties), and
- the array is not the target of a Proxy object,

then we can directly store the value in the receiver's indexed
properties, without checking whether it already exists somewhere in the
prototype chain.

1.7x improvement on the following program:
```js
function f() {
    let a = [];
    let i = 0;
    while (i < 10_000_000) {
        a.push(i);
        i++;
    }
}

f();
```
2025-05-23 14:51:32 +02:00
..
AggregateError
Array LibJS: Skip prototype chain lookup in internal_set() for arrays 2025-05-23 14:51:32 +02:00
ArrayBuffer
AsyncDisposableStack LibJS: Implement the AsyncDisposableStack interface 2025-01-17 20:46:32 +01:00
AsyncGenerator
Atomics LibJS: Avoid internal assertion accessing detached TA internal slots 2024-12-13 07:09:39 -08:00
BigInt LibJS+LibCrypto: Use a bitwise approach for BigInt's as*IntN methods 2025-03-20 09:44:12 +01:00
Boolean
DataView
Date LibJS: Parse dates like "Jan 15, 2025" 2025-02-14 06:27:37 -05:00
DisposableStack
Error
FinalizationRegistry
Function LibJS: Use an Intl prototype for a Function.prototype.toString test 2024-11-18 17:46:41 -05:00
functions LibJS: Fix parseFloat(-0) returning -0 instead of +0 2025-03-02 11:30:34 -05:00
Infinity
Intl LibJS: Ensure relevant extension keys are included in ICU locale data 2025-03-18 11:47:23 -04:00
Iterator LibJS: Ensure iterator parameter validation closes underlying iterator 2025-04-29 07:33:08 -04:00
JSON LibJS: Implement rawJSON and isRawJSON functions 2025-04-24 09:33:49 -04:00
Map
Math LibJS: Implement Math.sumPrecise 2025-03-03 21:46:22 +01:00
NaN
Number Meta+LibUnicode+LibJS: Upgrade to ICU 76.1 2025-01-18 17:56:40 -05:00
Object LibJS: Prevent extensions of TypedArray exotic objects 2024-11-30 11:18:26 +01:00
Promise
Proxy Revert "LibJS: Reduce number of proxy traps called during for..in… 2025-03-21 11:44:21 -05:00
Reflect
RegExp LibRegex: Fix crash when parse result exceeds max cache size 2025-04-04 16:10:25 +02:00
Set
ShadowRealm LibJS: Perform TLA async function construction in the module context 2024-11-15 18:52:22 +01:00
SharedArrayBuffer
String LibJS: Implement 'less than' for a String over code units 2025-05-17 08:00:59 -04:00
SuppressedError
Symbol
Temporal LibJS: Use Intl.DurationFormat for Temporal.Duration.p.toLocaleString 2025-03-01 14:49:20 +01:00
TypedArray AK+LibJS: Use simdutf for all base64 operations 2025-05-03 11:21:10 -04:00
WeakMap
WeakRef
WeakSet