ladybird/Libraries/LibJS/Runtime
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
..
Intl LibJS: Convert FilterLocales and CoerceOptionsToObject to GC::Ref 2025-04-08 06:50:40 -04:00
Temporal LibCrypto: Remove the concept of invalid big integers 2025-04-28 12:05:26 +02:00
AbstractOperations.cpp LibJS: Make mapped arguments objects way less allocation-happy 2025-05-11 14:00:40 +02:00
AbstractOperations.h LibJS: Add a TRY_OR_CLOSE_ITERATOR macro for IfAbruptCloseIterator 2025-04-29 07:33:08 -04:00
Accessor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Accessor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Agent.cpp LibJS: Switch Agent [[CanBlock]] slot to a enum member 2025-04-25 14:07:51 +02:00
Agent.h LibJS: Switch Agent [[CanBlock]] slot to a enum member 2025-04-25 14:07:51 +02:00
AggregateError.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AggregateError.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AggregateErrorConstructor.cpp LibJS: Use Value::to_byte_string() in fewer places 2025-03-28 12:31:40 -04:00
AggregateErrorConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AggregateErrorPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AggregateErrorPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ArgumentsObject.cpp LibJS: Make mapped arguments objects way less allocation-happy 2025-05-11 14:00:40 +02:00
ArgumentsObject.h LibJS: Make mapped arguments objects way less allocation-happy 2025-05-11 14:00:40 +02:00
Array.cpp LibJS: Skip prototype chain lookup in internal_set() for arrays 2025-05-23 14:51:32 +02:00
Array.h LibJS: Skip prototype chain lookup in internal_set() for arrays 2025-05-23 14:51:32 +02:00
ArrayBuffer.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ArrayBuffer.h LibJS: Update spec steps / links for the Float16Array proposal 2025-04-29 07:33:08 -04:00
ArrayBufferConstructor.cpp LibJS: Make Completion.[[Value]] non-optional 2025-04-05 11:20:26 +02:00
ArrayBufferConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ArrayBufferPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ArrayBufferPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ArrayConstructor.cpp LibJS: Add a TRY_OR_CLOSE_ITERATOR macro for IfAbruptCloseIterator 2025-04-29 07:33:08 -04:00
ArrayConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ArrayIterator.cpp LibJS: Disable optimization in IteratorNextUnpack if next() is redefined 2025-05-12 07:41:29 -04:00
ArrayIterator.h LibJS: Disable optimization in IteratorNextUnpack if next() is redefined 2025-05-12 07:41:29 -04:00
ArrayIteratorPrototype.cpp LibJS: Allow advancing built-in iterators without result object creation 2025-04-30 20:51:39 +02:00
ArrayIteratorPrototype.h LibJS: Disable optimization in IteratorNextUnpack if next() is redefined 2025-05-12 07:41:29 -04:00
ArrayPrototype.cpp LibJS: Skip prototype chain lookup in internal_set() for arrays 2025-05-23 14:51:32 +02:00
ArrayPrototype.h LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
AsyncDisposableStack.cpp LibJS: Implement the AsyncDisposableStack interface 2025-01-17 20:46:32 +01:00
AsyncDisposableStack.h LibJS: Implement the AsyncDisposableStack interface 2025-01-17 20:46:32 +01:00
AsyncDisposableStackConstructor.cpp LibJS: Implement the AsyncDisposableStack interface 2025-01-17 20:46:32 +01:00
AsyncDisposableStackConstructor.h LibJS: Implement the AsyncDisposableStack interface 2025-01-17 20:46:32 +01:00
AsyncDisposableStackPrototype.cpp LibJS: Make Completion.[[Value]] non-optional 2025-04-05 11:20:26 +02:00
AsyncDisposableStackPrototype.h LibJS: Implement the AsyncDisposableStack interface 2025-01-17 20:46:32 +01:00
AsyncFromSyncIterator.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncFromSyncIterator.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncFromSyncIteratorPrototype.cpp LibJS: Close sync iterator when async wrapper yields rejection 2025-04-29 07:33:08 -04:00
AsyncFromSyncIteratorPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncFunctionConstructor.cpp LibJS: Cache arguments span in ExecutionContext 2025-04-24 10:30:52 +02:00
AsyncFunctionConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncFunctionDriverWrapper.cpp LibJS: Cache rejected/fulfilled callbacks in AsyncFunctionDriverWrapper 2025-05-09 12:30:15 +02:00
AsyncFunctionDriverWrapper.h LibJS: Cache rejected/fulfilled callbacks in AsyncFunctionDriverWrapper 2025-05-09 12:30:15 +02:00
AsyncFunctionPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncFunctionPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncGenerator.cpp LibJS: Make Value() default-construct the undefined value 2025-04-05 11:20:26 +02:00
AsyncGenerator.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncGeneratorFunctionConstructor.cpp LibJS: Cache arguments span in ExecutionContext 2025-04-24 10:30:52 +02:00
AsyncGeneratorFunctionConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncGeneratorFunctionPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncGeneratorFunctionPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncGeneratorPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncGeneratorPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncGeneratorRequest.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncIteratorPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncIteratorPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AtomicsObject.cpp LibJS+LibWeb: Set [[CanBlock]] false to Agent for window agent 2025-04-22 11:50:35 -04:00
AtomicsObject.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
BigInt.cpp LibCrypto: Remove the concept of invalid big integers 2025-04-28 12:05:26 +02:00
BigInt.h LibCrypto+LibJS: Remove {Signed,Unsigned}BigInteger to_base_deprecated 2025-04-28 12:05:26 +02:00
BigIntConstructor.cpp LibCrypto: Replace {Unsigned,Signed}BigInteger impl with LibTomMath 2025-05-23 11:57:21 +02:00
BigIntConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
BigIntObject.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
BigIntObject.h LibJS: Add fast_is<T> helpers for all the primitive wrapper objects 2025-03-25 23:57:00 +00:00
BigIntPrototype.cpp LibCrypto+LibJS: Remove {Signed,Unsigned}BigInteger to_base_deprecated 2025-04-28 12:05:26 +02:00
BigIntPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
BooleanConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
BooleanConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
BooleanObject.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
BooleanObject.h LibJS: Add fast_is<T> helpers for all the primitive wrapper objects 2025-03-25 23:57:00 +00:00
BooleanPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
BooleanPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
BoundFunction.cpp LibJS: Avoid redundant ExecutionContext allocation for bound functions 2025-05-07 13:20:41 +02:00
BoundFunction.h LibJS: Avoid redundant ExecutionContext allocation for bound functions 2025-05-07 13:20:41 +02:00
ByteLength.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
CanonicalIndex.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
ClassFieldDefinition.h LibJS: Elide function wrapper for class field literal initializers 2025-04-01 23:55:20 +02:00
CommonPropertyNames.h LibJS: Implement rawJSON and isRawJSON functions 2025-04-24 09:33:49 -04:00
Completion.cpp LibJS+LibWeb: Set [[CanBlock]] false to Agent for window agent 2025-04-22 11:50:35 -04:00
Completion.h LibJS: Allow Optional<Completion> to be used in constant expressions 2025-04-22 21:19:31 -06:00
CompletionCell.cpp LibJS: Make Completion.[[Value]] non-optional 2025-04-05 11:20:26 +02:00
CompletionCell.h LibJS: Make async functions & generators faster with helper types 2025-04-01 02:30:42 +02:00
ConsoleObject.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ConsoleObject.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ConsoleObjectPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ConsoleObjectPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
DataView.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
DataView.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
DataViewConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
DataViewConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
DataViewPrototype.cpp LibJS: Update spec steps / links for the Float16Array proposal 2025-04-29 07:33:08 -04:00
DataViewPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Date.cpp LibCrypto+LibJS: Remove {Signed,Unsigned}BigInteger to_base_deprecated 2025-04-28 12:05:26 +02:00
Date.h LibJS: Add fast_is<T> helpers for all the primitive wrapper objects 2025-03-25 23:57:00 +00:00
DateConstructor.cpp LibJS: Parse dates like "Jan 15, 2025" 2025-02-14 06:27:37 -05:00
DateConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
DatePrototype.cpp LibJS: Remove ByteString internals from PrimitiveString 2025-03-28 12:31:40 -04:00
DatePrototype.h LibJS: Implement Date.prototype.toTemporalInstant 2024-11-26 15:02:07 -05:00
DeclarativeEnvironment.cpp LibJS: Use FlyString in PropertyKey instead of DeprecatedFlyString 2025-03-24 22:27:17 +00:00
DeclarativeEnvironment.h LibJS: Optimize reading known-to-be-initialized var bindings 2025-05-04 02:31:18 +02:00
DisposableStack.cpp LibJS: Bring the explicit resource management implementation up to date 2025-01-17 20:46:32 +01:00
DisposableStack.h LibJS: Bring the explicit resource management implementation up to date 2025-01-17 20:46:32 +01:00
DisposableStackConstructor.cpp LibJS: Bring the explicit resource management implementation up to date 2025-01-17 20:46:32 +01:00
DisposableStackConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
DisposableStackPrototype.cpp LibJS: Make Completion.[[Value]] non-optional 2025-04-05 11:20:26 +02:00
DisposableStackPrototype.h LibJS: Bring the explicit resource management implementation up to date 2025-01-17 20:46:32 +01:00
ECMAScriptFunctionObject.cpp LibJS: Preserve information about local variables declaration kind 2025-05-06 12:06:23 +02:00
ECMAScriptFunctionObject.h LibJS: Preserve information about local variables declaration kind 2025-05-06 12:06:23 +02:00
Environment.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Environment.h LibJS: Make a bunch of functions in Environment pure virtual 2025-04-05 11:20:26 +02:00
EnvironmentCoordinate.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Error.cpp LibJS: Use FlyString in PropertyKey instead of DeprecatedFlyString 2025-03-24 22:27:17 +00:00
Error.h Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
ErrorConstructor.cpp Everywhere: Run clang-format 2024-12-28 05:39:32 -08:00
ErrorConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ErrorPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ErrorPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ErrorTypes.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
ErrorTypes.h LibJS: Update spec steps / links for the import-assertions proposal 2025-04-29 07:33:08 -04:00
ExecutionContext.cpp LibJS: Cache arguments span in ExecutionContext 2025-04-24 10:30:52 +02:00
ExecutionContext.h LibJS: Store bytecode VM program counter in ExecutionContext 2025-04-28 21:12:48 +02:00
FinalizationRegistry.cpp LibJS: Make Value() default-construct the undefined value 2025-04-05 11:20:26 +02:00
FinalizationRegistry.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
FinalizationRegistryConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
FinalizationRegistryConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
FinalizationRegistryPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
FinalizationRegistryPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
FunctionConstructor.cpp LibJS: Cache arguments span in ExecutionContext 2025-04-24 10:30:52 +02:00
FunctionConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
FunctionEnvironment.cpp LibJS: Make Value() default-construct the undefined value 2025-04-05 11:20:26 +02:00
FunctionEnvironment.h LibJS: Make Value() default-construct the undefined value 2025-04-05 11:20:26 +02:00
FunctionKind.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
FunctionObject.cpp LibJS: Use a premade shape for NativeFunction with length and name 2025-04-09 07:22:01 +02:00
FunctionObject.h LibJS: Preserve information about local variables declaration kind 2025-05-06 12:06:23 +02:00
FunctionPrototype.cpp LibJS: Let invokers (callers) of [[Call]] allocate ExecutionContext 2025-04-28 01:23:56 +02:00
FunctionPrototype.h LibJS: Let invokers (callers) of [[Call]] allocate ExecutionContext 2025-04-28 01:23:56 +02:00
GeneratorFunctionConstructor.cpp LibJS: Cache arguments span in ExecutionContext 2025-04-24 10:30:52 +02:00
GeneratorFunctionConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
GeneratorFunctionPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
GeneratorFunctionPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
GeneratorObject.cpp LibJS: Skip iteration result allocation in AsyncFunctionDriverWrapper 2025-05-09 12:30:15 +02:00
GeneratorObject.h LibJS: Skip iteration result allocation in AsyncFunctionDriverWrapper 2025-05-09 12:30:15 +02:00
GeneratorPrototype.cpp LibJS: Skip iteration result allocation in AsyncFunctionDriverWrapper 2025-05-09 12:30:15 +02:00
GeneratorPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
GeneratorResult.cpp LibJS: Make async functions & generators faster with helper types 2025-04-01 02:30:42 +02:00
GeneratorResult.h LibJS: Make async functions & generators faster with helper types 2025-04-01 02:30:42 +02:00
GlobalEnvironment.cpp LibJS: Remove [[VarNames]] from GlobalEnvironment 2025-04-29 07:33:08 -04:00
GlobalEnvironment.h LibJS: Remove [[VarNames]] from GlobalEnvironment 2025-04-29 07:33:08 -04:00
GlobalObject.cpp AK+Everywhere: Recognise that surrogates in utf16 aren't all that common 2025-04-23 07:56:02 -06:00
GlobalObject.h LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
IndexedProperties.cpp LibJS: Make Value() default-construct the undefined value 2025-04-05 11:20:26 +02:00
IndexedProperties.h LibJS: Make Value() default-construct the undefined value 2025-04-05 11:20:26 +02:00
Intrinsics.cpp LibJS: Skip prototype chain lookup in internal_set() for arrays 2025-05-23 14:51:32 +02:00
Intrinsics.h LibJS: Skip prototype chain lookup in internal_set() for arrays 2025-05-23 14:51:32 +02:00
Iterator.cpp LibJS+LibWeb: Add fast path for builtin iterators in iterator_step() 2025-05-13 15:14:25 +03:00
Iterator.h LibJS+LibWeb: Add fast path for builtin iterators in iterator_step() 2025-05-13 15:14:25 +03:00
IteratorConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
IteratorConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
IteratorHelper.cpp LibJS: Skip iteration result allocation in AsyncFunctionDriverWrapper 2025-05-09 12:30:15 +02:00
IteratorHelper.h LibJS: Skip iteration result allocation in AsyncFunctionDriverWrapper 2025-05-09 12:30:15 +02:00
IteratorHelperPrototype.cpp LibJS: Skip iteration result allocation in AsyncFunctionDriverWrapper 2025-05-09 12:30:15 +02:00
IteratorHelperPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
IteratorPrototype.cpp LibJS+LibWeb: Add fast path for builtin iterators in iterator_step() 2025-05-13 15:14:25 +03:00
IteratorPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
JobCallback.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
JobCallback.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
JSONObject.cpp LibJS: Update spec steps / links for the JSON modules proposal 2025-04-29 07:33:08 -04:00
JSONObject.h LibJS: Update spec steps / links for the JSON modules proposal 2025-04-29 07:33:08 -04:00
KeyedCollections.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
KeyedCollections.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Map.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Map.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
MapConstructor.cpp LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
MapConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
MapIterator.cpp LibJS: Disable optimization in IteratorNextUnpack if next() is redefined 2025-05-12 07:41:29 -04:00
MapIterator.h LibJS: Disable optimization in IteratorNextUnpack if next() is redefined 2025-05-12 07:41:29 -04:00
MapIteratorPrototype.cpp LibJS: Allow advancing built-in iterators without result object creation 2025-04-30 20:51:39 +02:00
MapIteratorPrototype.h LibJS: Disable optimization in IteratorNextUnpack if next() is redefined 2025-05-12 07:41:29 -04:00
MapPrototype.cpp Everywhere: Include HashMap only where it's actually used 2024-12-09 12:31:16 +01:00
MapPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
MathObject.cpp LibJS/LibCrypto: Cleanup JS Math random() RNG 2025-05-15 07:41:02 -06:00
MathObject.h LibJS: Add builtin for Math.random() 2025-04-03 13:56:39 +02:00
ModuleEnvironment.cpp LibJS: Use FlyString in PropertyKey instead of DeprecatedFlyString 2025-03-24 22:27:17 +00:00
ModuleEnvironment.h LibJS: Use FlyString in PropertyKey instead of DeprecatedFlyString 2025-03-24 22:27:17 +00:00
ModuleNamespaceObject.cpp Revert "LibJS+LibWeb: Return Vector<PropertyKey> from… 2025-05-16 06:33:09 +01:00
ModuleNamespaceObject.h Revert "LibJS+LibWeb: Return Vector<PropertyKey> from… 2025-05-16 06:33:09 +01:00
ModuleRequest.h LibJS: Update spec steps / links for the import-assertions proposal 2025-04-29 07:33:08 -04:00
NativeFunction.cpp LibJS: Use caller_context to determine strict mode 2025-05-23 03:25:55 +02:00
NativeFunction.h LibJS: Let invokers (callers) of [[Call]] allocate ExecutionContext 2025-04-28 01:23:56 +02:00
NumberConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
NumberConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
NumberObject.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
NumberObject.h LibJS: Add fast_is<T> helpers for all the primitive wrapper objects 2025-03-25 23:57:00 +00:00
NumberPrototype.cpp LibJS: Replace some use of ByteString with String 2025-05-03 08:08:04 +02:00
NumberPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Object.cpp LibJS+LibWeb: Replace StringOrSymbol usage with PropertyKey 2025-05-17 10:08:37 -04:00
Object.h Revert "LibJS+LibWeb: Return Vector<PropertyKey> from… 2025-05-16 06:33:09 +01:00
ObjectConstructor.cpp Revert "LibJS+LibWeb: Return Vector<PropertyKey> from… 2025-05-16 06:33:09 +01:00
ObjectConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ObjectEnvironment.cpp LibJS: Use FlyString in PropertyKey instead of DeprecatedFlyString 2025-03-24 22:27:17 +00:00
ObjectEnvironment.h LibJS: Use FlyString in PropertyKey instead of DeprecatedFlyString 2025-03-24 22:27:17 +00:00
ObjectPrototype.cpp LibJS: Add cache for the string "[object Object]" 2025-04-15 13:08:27 +02:00
ObjectPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PrimitiveString.cpp LibJS: Add and use PrimitiveString::length_in_utf16_code_units 2025-05-03 16:18:47 +02:00
PrimitiveString.h LibJS: Add and use PrimitiveString::length_in_utf16_code_units 2025-05-03 16:18:47 +02:00
PrivateEnvironment.cpp LibJS: Use FlyString in PropertyKey instead of DeprecatedFlyString 2025-03-24 22:27:17 +00:00
PrivateEnvironment.h LibJS: Use FlyString in PropertyKey instead of DeprecatedFlyString 2025-03-24 22:27:17 +00:00
Promise.cpp LibJS: Make Value() default-construct the undefined value 2025-04-05 11:20:26 +02:00
Promise.h LibJS: Add a bunch of fast_is<T> helpers for commonly checked types 2025-04-18 14:45:56 +02:00
PromiseCapability.cpp Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
PromiseCapability.h LibJS: Update spec steps / links for the import-assertions proposal 2025-04-29 07:33:08 -04:00
PromiseConstructor.cpp LibJS: Cache arguments span in ExecutionContext 2025-04-24 10:30:52 +02:00
PromiseConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PromiseJobs.cpp LibJS: Make Completion.[[Value]] non-optional 2025-04-05 11:20:26 +02:00
PromiseJobs.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PromisePrototype.cpp LibJS: Replace PropertyKey(char[]) with PropertyKey(FlyString) 2025-03-24 22:27:17 +00:00
PromisePrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PromiseReaction.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PromiseReaction.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PromiseResolvingElementFunctions.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PromiseResolvingElementFunctions.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PromiseResolvingFunction.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PromiseResolvingFunction.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PropertyAttributes.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
PropertyDescriptor.cpp LibJS: Make Value() default-construct the undefined value 2025-04-05 11:20:26 +02:00
PropertyDescriptor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PropertyKey.h LibJS+LibWeb: Replace StringOrSymbol usage with PropertyKey 2025-05-17 10:08:37 -04:00
PrototypeObject.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ProxyConstructor.cpp LibJS: Replace PropertyKey(char[]) with PropertyKey(FlyString) 2025-03-24 22:27:17 +00:00
ProxyConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ProxyObject.cpp LibJS: Skip prototype chain lookup in internal_set() for arrays 2025-05-23 14:51:32 +02:00
ProxyObject.h Revert "LibJS+LibWeb: Return Vector<PropertyKey> from… 2025-05-16 06:33:09 +01:00
RawJSONObject.cpp LibJS: Implement rawJSON and isRawJSON functions 2025-04-24 09:33:49 -04:00
RawJSONObject.h LibJS: Implement rawJSON and isRawJSON functions 2025-04-24 09:33:49 -04:00
Realm.cpp LibJS+LibWeb: Join arguments into vector of registers+constants+locals 2025-04-24 10:30:52 +02:00
Realm.h LibJS+LibWeb: Add fast_is<T> helpers for Realm::HostDefined class family 2025-04-18 14:45:56 +02:00
Reference.cpp LibJS+LibWeb: Replace StringOrSymbol usage with PropertyKey 2025-05-17 10:08:37 -04:00
Reference.h LibJS: Make Value() default-construct the undefined value 2025-04-05 11:20:26 +02:00
ReflectObject.cpp Revert "LibJS+LibWeb: Return Vector<PropertyKey> from… 2025-05-16 06:33:09 +01:00
ReflectObject.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
RegExpConstructor.cpp LibJS: Update spec steps / links for the RegExp.escape proposal 2025-04-29 07:33:08 -04:00
RegExpConstructor.h LibJS: Implement the RegExp.escape proposal 2024-12-05 13:56:21 +01:00
RegExpLegacyStaticProperties.cpp LibJS: Allocate RegExp.{lastMatch,leftContext,rightContext} lazily 2025-02-09 00:28:15 +01:00
RegExpLegacyStaticProperties.h LibJS: Allocate RegExp.{lastMatch,leftContext,rightContext} lazily 2025-02-09 00:28:15 +01:00
RegExpObject.cpp AK+Everywhere: Recognise that surrogates in utf16 aren't all that common 2025-04-23 07:56:02 -06:00
RegExpObject.h LibRegex: Flatten capture group list in MatchState 2025-04-18 17:09:27 +02:00
RegExpPrototype.cpp LibJS: Use PrimitiveString more instead of Utf16String in RegExp code 2025-05-03 20:01:20 +02:00
RegExpPrototype.h LibJS: Use PrimitiveString more instead of Utf16String in RegExp code 2025-05-03 20:01:20 +02:00
RegExpStringIterator.cpp LibJS: Use PrimitiveString more instead of Utf16String in RegExp code 2025-05-03 20:01:20 +02:00
RegExpStringIterator.h LibJS: Use PrimitiveString more instead of Utf16String in RegExp code 2025-05-03 20:01:20 +02:00
RegExpStringIteratorPrototype.cpp LibJS: Use PrimitiveString more instead of Utf16String in RegExp code 2025-05-03 20:01:20 +02:00
RegExpStringIteratorPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Set.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Set.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SetConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SetConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SetIterator.cpp LibJS: Disable optimization in IteratorNextUnpack if next() is redefined 2025-05-12 07:41:29 -04:00
SetIterator.h LibJS: Disable optimization in IteratorNextUnpack if next() is redefined 2025-05-12 07:41:29 -04:00
SetIteratorPrototype.cpp LibJS: Allow advancing built-in iterators without result object creation 2025-04-30 20:51:39 +02:00
SetIteratorPrototype.h LibJS: Disable optimization in IteratorNextUnpack if next() is redefined 2025-05-12 07:41:29 -04:00
SetPrototype.cpp LibJS: Make Completion.[[Value]] non-optional 2025-04-05 11:20:26 +02:00
SetPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ShadowRealm.cpp LibJS+LibWeb: Join arguments into vector of registers+constants+locals 2025-04-24 10:30:52 +02:00
ShadowRealm.h LibJS+LibWeb: Calculate count of regs+consts+locals before EC allocation 2025-04-24 10:30:52 +02:00
ShadowRealmConstructor.cpp LibJS: Align spec comments for ShadowRealm for HostInitializeShadowRealm 2024-11-17 22:15:22 +01:00
ShadowRealmConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ShadowRealmPrototype.cpp LibJS: Remove ByteString internals from PrimitiveString 2025-03-28 12:31:40 -04:00
ShadowRealmPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Shape.cpp LibJS: Delete unused Shape::create_for_prototype() 2025-05-23 14:51:32 +02:00
Shape.h LibJS: Delete unused Shape::create_for_prototype() 2025-05-23 14:51:32 +02:00
SharedArrayBufferConstructor.cpp LibJS: Make Completion.[[Value]] non-optional 2025-04-05 11:20:26 +02:00
SharedArrayBufferConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SharedArrayBufferPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SharedArrayBufferPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
StringConstructor.cpp LibJS: Prefer Value::to_string() over to_byte_string() in more places 2025-03-24 22:27:17 +00:00
StringConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
StringIterator.cpp LibJS: Disable optimization in IteratorNextUnpack if next() is redefined 2025-05-12 07:41:29 -04:00
StringIterator.h LibJS: Disable optimization in IteratorNextUnpack if next() is redefined 2025-05-12 07:41:29 -04:00
StringIteratorPrototype.cpp LibJS: Allow advancing built-in iterators without result object creation 2025-04-30 20:51:39 +02:00
StringIteratorPrototype.h LibJS: Disable optimization in IteratorNextUnpack if next() is redefined 2025-05-12 07:41:29 -04:00
StringObject.cpp Revert "LibJS+LibWeb: Return Vector<PropertyKey> from… 2025-05-16 06:33:09 +01:00
StringObject.h Revert "LibJS+LibWeb: Return Vector<PropertyKey> from… 2025-05-16 06:33:09 +01:00
StringPrototype.cpp LibJS: Use PrimitiveString more instead of Utf16String in String code 2025-05-03 20:01:20 +02:00
StringPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SuppressedError.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SuppressedError.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SuppressedErrorConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SuppressedErrorConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SuppressedErrorPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SuppressedErrorPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Symbol.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Symbol.h LibJS+LibWeb: Replace StringOrSymbol usage with PropertyKey 2025-05-17 10:08:37 -04:00
SymbolConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SymbolConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SymbolObject.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SymbolObject.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SymbolPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SymbolPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
TypedArray.cpp LibJS: Make Completion.[[Value]] non-optional 2025-04-05 11:20:26 +02:00
TypedArray.h Revert "LibJS+LibWeb: Return Vector<PropertyKey> from… 2025-05-16 06:33:09 +01:00
TypedArrayConstructor.cpp LibJS: Use FlyString in PropertyKey instead of DeprecatedFlyString 2025-03-24 22:27:17 +00:00
TypedArrayConstructor.h LibJS: Use FlyString in PropertyKey instead of DeprecatedFlyString 2025-03-24 22:27:17 +00:00
TypedArrayPrototype.cpp LibJS: Fix integer overflow in target_offset of TypedArray.set() 2025-03-25 07:45:42 +00:00
TypedArrayPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Uint8Array.cpp AK+LibJS: Use simdutf for all base64 operations 2025-05-03 11:21:10 -04:00
Uint8Array.h AK+LibJS: Use simdutf for all base64 operations 2025-05-03 11:21:10 -04:00
Utf16String.cpp AK+Everywhere: Recognise that surrogates in utf16 aren't all that common 2025-04-23 07:56:02 -06:00
Utf16String.h AK+Everywhere: Recognise that surrogates in utf16 aren't all that common 2025-04-23 07:56:02 -06:00
Value.cpp LibCrypto+LibJS: Move Power to method of {Unsigned,Signed}BigInteger 2025-05-23 11:57:21 +02:00
Value.h LibJS: Avoid roundtrip through Value for comparison bytecode evaluation 2025-05-08 20:39:29 +02:00
ValueInlines.h LibJS: Move Value::to_i32() and to_u32() back out-of-line 2025-04-10 00:33:54 +02:00
ValueTraits.h Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
VM.cpp LibJS: Assume is_strict_mode called with running execution context 2025-05-23 03:25:55 +02:00
VM.h LibJS: Assume is_strict_mode called with running execution context 2025-05-23 03:25:55 +02:00
WeakMap.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakMap.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakMapConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakMapConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakMapPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakMapPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakRef.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakRef.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakRefConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakRefConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakRefPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakRefPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakSet.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakSet.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakSetConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakSetConstructor.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakSetPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakSetPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WrapForValidIteratorPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WrapForValidIteratorPrototype.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WrappedFunction.cpp LibJS: Let invokers (callers) of [[Call]] allocate ExecutionContext 2025-04-28 01:23:56 +02:00
WrappedFunction.h LibJS: Let invokers (callers) of [[Call]] allocate ExecutionContext 2025-04-28 01:23:56 +02:00