ladybird/Libraries/LibJS/Runtime
Andreas Kling 583fa475fb LibJS: Call RawNativeFunction directly from asm Call
The asm interpreter already inlines ECMAScript calls, but builtin calls
still went through the generic C++ Call slow path even when the callee
was a plain native function pointer. That added an avoidable boundary
around hot builtin calls and kept asm from taking full advantage of the
new RawNativeFunction representation.

Teach the asm Call handler to recognize RawNativeFunction, allocate the
callee frame on the interpreter stack, copy the call-site arguments,
and jump straight to the stored C++ entry point.
NativeJavaScriptBackedFunction and other non-raw callees keep falling
through to the existing C++ slow path unchanged.
2026-04-15 15:57:48 +02:00
..
Intl LibJS: Use Substring in Intl.Segmenter 2026-04-11 00:35:36 +02:00
JavaScriptImplementations LibJS: Replace Array.fromAsync with a native JavaScript implementation 2025-11-30 11:54:54 +01:00
Temporal LibJS+LibUnicode: Update icu4x's calendar module to 2.2.0 2026-04-14 18:12:31 -04:00
AbstractOperations.cpp LibJS: Move arguments [[ParameterMap]] to Shape 2026-04-15 15:57:48 +02:00
AbstractOperations.h LibJS: Remove C++ AST 2026-03-19 21:55:10 -05:00
Accessor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Accessor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Agent.cpp LibJS: Switch Agent [[CanBlock]] slot to a enum member 2025-04-25 14:07:51 +02:00
Agent.h LibJS: Enable EXPLICIT_SYMBOL_EXPORT and annotate minimum symbol set 2025-07-22 11:51:29 -04:00
AggregateError.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AggregateError.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
AggregateErrorConstructor.cpp LibJS: Make internal_define_own_property() save added property offset 2025-09-17 12:44:44 +02:00
AggregateErrorConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
AggregateErrorPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AggregateErrorPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
ArgumentsObject.cpp LibJS: Move arguments [[ParameterMap]] to Shape 2026-04-15 15:57:48 +02:00
ArgumentsObject.h LibJS: Mark ArgumentsObject as non-interfering if parameter list empty 2025-12-10 17:40:57 -06:00
Array.cpp LibJS: Replace IndexedProperties with inline Packed/Holey/Dictionary 2026-03-17 22:28:35 -05:00
Array.h LibJS: Split packed and holey asm indexed fast paths 2026-03-17 22:28:35 -05:00
ArrayBuffer.cpp LibJS: Cache typed array data pointers for indexed access 2026-03-18 13:59:05 -05:00
ArrayBuffer.h LibJS: Cache typed array data pointers for indexed access 2026-03-18 13:59:05 -05:00
ArrayBufferConstructor.cpp LibJS: Make more use of Value::is and Value::as_if 2026-02-28 10:24:37 -05:00
ArrayBufferConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
ArrayBufferPrototype.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
ArrayBufferPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
ArrayConstructor.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
ArrayConstructor.h LibJS: Replace Array.fromAsync with a native JavaScript implementation 2025-11-30 11:54:54 +01:00
ArrayIterator.cpp LibJS: Replace IndexedProperties with inline Packed/Holey/Dictionary 2026-03-17 22:28:35 -05:00
ArrayIterator.h LibJS: Avoid IteratorRecord GC-allocation in GetIterator instruction 2025-11-02 20:05:47 +01:00
ArrayIteratorPrototype.cpp LibJS: Do more comprehensive check if next() fast path is possible 2025-06-02 00:15:36 +02:00
ArrayIteratorPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
ArrayPrototype.cpp LibJS: Add Array.prototype fast paths for packed arrays 2026-03-17 22:28:35 -05:00
ArrayPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
AsyncDisposableStack.cpp LibJS: Implement the AsyncDisposableStack interface 2025-01-17 20:46:32 +01:00
AsyncDisposableStack.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
AsyncDisposableStackConstructor.cpp LibJS: Implement the AsyncDisposableStack interface 2025-01-17 20:46:32 +01:00
AsyncDisposableStackConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
AsyncDisposableStackPrototype.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
AsyncDisposableStackPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
AsyncFromSyncIterator.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncFromSyncIterator.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
AsyncFromSyncIteratorPrototype.cpp LibJS: Avoid IteratorRecord GC-allocation in GetIterator instruction 2025-11-02 20:05:47 +01:00
AsyncFromSyncIteratorPrototype.h LibJS: Avoid IteratorRecord GC-allocation in GetIterator instruction 2025-11-02 20:05:47 +01:00
AsyncFunctionConstructor.cpp LibJS: Replace arguments Span with argument_count in ExecutionContext 2026-03-11 13:33:47 +01:00
AsyncFunctionConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
AsyncFunctionDriverWrapper.cpp LibJS: Synchronous await fast path when microtask queue is empty 2026-03-16 19:15:03 -05:00
AsyncFunctionDriverWrapper.h LibJS: Move bytecode interpreter state to VM 2026-04-13 18:29:43 +02:00
AsyncFunctionPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncFunctionPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
AsyncGenerator.cpp LibJS: Split inline frames from execution context stack 2026-04-13 18:29:43 +02:00
AsyncGenerator.h LibJS: Move bytecode interpreter state to VM 2026-04-13 18:29:43 +02:00
AsyncGeneratorFunctionConstructor.cpp LibJS: Replace arguments Span with argument_count in ExecutionContext 2026-03-11 13:33:47 +01:00
AsyncGeneratorFunctionConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
AsyncGeneratorFunctionPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
AsyncGeneratorFunctionPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
AsyncGeneratorPrototype.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
AsyncGeneratorPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04: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 LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
AtomicsObject.cpp LibJS: Compute byteIndexInBuffer sooner in Atomic's DoWait 2025-12-03 12:08:40 +01:00
AtomicsObject.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
BigInt.cpp LibJS: Add a method to stringify a BigInt to UTF-16 2025-08-14 10:27:08 +02:00
BigInt.h LibJS: Add a method to stringify a BigInt to UTF-16 2025-08-14 10:27:08 +02:00
BigIntConstructor.cpp LibCrypto: Replace {Unsigned,Signed}BigInteger impl with LibTomMath 2025-05-23 11:57:21 +02:00
BigIntConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
BigIntObject.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
BigIntObject.h LibJS: Enable EXPLICIT_SYMBOL_EXPORT and annotate minimum symbol set 2025-07-22 11:51:29 -04:00
BigIntPrototype.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
BigIntPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
BooleanConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
BooleanConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
BooleanObject.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
BooleanObject.h LibJS: Enable EXPLICIT_SYMBOL_EXPORT and annotate minimum symbol set 2025-07-22 11:51:29 -04:00
BooleanPrototype.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
BooleanPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
BoundFunction.cpp LibJS+LibWeb: Pass constants into execution context constructor 2026-03-29 13:44:06 +02:00
BoundFunction.h LibJS+LibWeb: Pass constants into execution context constructor 2026-03-29 13:44:06 +02:00
ByteLength.h
CanonicalIndex.h
ClassConstruction.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
ClassConstruction.h LibJS: Add AST-free construct_class() 2026-02-11 23:57:41 +01:00
ClassFieldDefinition.cpp LibJS+LibWeb: Add missing GC marking visits 2026-01-07 12:48:58 +01:00
ClassFieldDefinition.h LibJS+LibWeb: Add missing GC marking visits 2026-01-07 12:48:58 +01:00
CommonPropertyNames.h LibJS: Implement Iterator.zipKeyed 2026-02-26 13:54:35 -05:00
Completion.cpp WebContent: Enable in Windows CI 2025-08-23 16:04:36 -06:00
Completion.h AK: Add SentinelOptional 2026-03-20 12:03:36 +01:00
CompletionCell.cpp LibJS: Make Completion.[[Value]] non-optional 2025-04-05 11:20:26 +02:00
CompletionCell.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
ConsoleObject.cpp LibJS: Implement console.dirxml 2025-08-17 07:28:56 -04:00
ConsoleObject.h LibJS: Export symbols causing linker errors in various consumers 2025-08-23 16:04:36 -06:00
ConsoleObjectPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
ConsoleObjectPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
DataView.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
DataView.h LibJS: Enable EXPLICIT_SYMBOL_EXPORT and annotate minimum symbol set 2025-07-22 11:51:29 -04:00
DataViewConstructor.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
DataViewConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
DataViewPrototype.cpp LibJS: Update spec steps / links for the Float16Array proposal 2025-04-29 07:33:08 -04:00
DataViewPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Date.cpp LibJS: Handle time zone gaps in JS::utc_time 2026-03-20 14:46:46 +01:00
Date.h LibJS+LibWeb: Avoid out of range time values in <input> value strings 2026-04-11 18:28:56 +02:00
DateConstructor.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
DateConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
DateParser.h LibJS: DateParser for simplified ISO8601 and non-standard date strings 2025-05-26 18:48:09 +02:00
DatePrototype.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
DatePrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
DeclarativeEnvironment.cpp LibJS: Remove unused Badge-gated DeclarativeEnvironment methods 2026-02-11 23:57:41 +01:00
DeclarativeEnvironment.h LibJS: Remove unused Badge-gated DeclarativeEnvironment methods 2026-02-11 23:57:41 +01:00
DisposableStack.cpp LibJS: Bring the explicit resource management implementation up to date 2025-01-17 20:46:32 +01:00
DisposableStack.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
DisposableStackConstructor.cpp LibJS: Bring the explicit resource management implementation up to date 2025-01-17 20:46:32 +01:00
DisposableStackConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
DisposableStackPrototype.cpp LibJS: Make Completion.[[Value]] non-optional 2025-04-05 11:20:26 +02:00
DisposableStackPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
ECMAScriptFunctionObject.cpp LibJS: Cache JS-to-JS inline call eligibility 2026-04-14 08:14:43 +02:00
ECMAScriptFunctionObject.h LibJS: Cache JS-to-JS inline call eligibility 2026-04-14 08:14:43 +02:00
Environment.cpp LibJS: Limit eval() deoptimization to the containing function scope 2026-01-27 10:58:39 +01:00
Environment.h LibJS: Limit eval() deoptimization to the containing function scope 2026-01-27 10:58:39 +01:00
EnvironmentCoordinate.h LibJS: Reduce size of Optional<EnvironmentCoordinate> 2026-03-20 12:03:36 +01:00
Error.cpp LibJS+LibWeb: Make DOMException hold an [[ErrorData]] slot 2026-04-08 20:33:53 +02:00
Error.h LibJS+LibWeb: Make DOMException hold an [[ErrorData]] slot 2026-04-08 20:33:53 +02:00
ErrorConstructor.cpp LibJS+LibWeb: Make DOMException hold an [[ErrorData]] slot 2026-04-08 20:33:53 +02:00
ErrorConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
ErrorData.cpp LibJS+LibWeb: Make DOMException hold an [[ErrorData]] slot 2026-04-08 20:33:53 +02:00
ErrorData.h LibJS+LibWeb: Make DOMException hold an [[ErrorData]] slot 2026-04-08 20:33:53 +02:00
ErrorPrototype.cpp LibJS+LibWeb: Make DOMException hold an [[ErrorData]] slot 2026-04-08 20:33:53 +02:00
ErrorPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
ErrorTypes.cpp Revert "LibJS: Revert common error types to only hold a single string" 2025-08-18 13:42:22 +02:00
ErrorTypes.h Everywhere: Remove ShadowRealm support 2026-04-05 13:57:58 +02:00
ExecutionContext.cpp LibJS+LibWeb: Pass constants into execution context constructor 2026-03-29 13:44:06 +02:00
ExecutionContext.h LibJS: Split inline frames from execution context stack 2026-04-13 18:29:43 +02:00
FinalizationRegistry.cpp AK+LibJS: Make SinglyLinkedList::remove() return a new iterator 2025-12-25 20:21:37 +01:00
FinalizationRegistry.h LibJS: Enable EXPLICIT_SYMBOL_EXPORT and annotate minimum symbol set 2025-07-22 11:51:29 -04:00
FinalizationRegistryConstructor.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
FinalizationRegistryConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
FinalizationRegistryPrototype.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
FinalizationRegistryPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
FunctionConstructor.cpp LibJS: Remove C++ compiler pipeline fallback paths 2026-03-19 21:55:10 -05:00
FunctionConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
FunctionEnvironment.cpp LibJS: Introduce NativeJavaScriptBackedFunction 2025-11-30 11:54:54 +01:00
FunctionEnvironment.h LibJS: Shrink FunctionEnvironment by reordering members a bit 2025-12-21 12:08:41 -06:00
FunctionKind.h
FunctionObject.cpp LibJS: Convert Object bitfields to a flags byte 2026-03-07 13:09:59 +01:00
FunctionObject.h LibJS+LibWeb: Pass constants into execution context constructor 2026-03-29 13:44:06 +02:00
FunctionPrototype.cpp Everywhere: Remove ShadowRealm support 2026-04-05 13:57:58 +02:00
FunctionPrototype.h LibJS: Remove ExecutionContext::function_name field 2025-10-29 21:20:10 +01:00
GeneratorFunctionConstructor.cpp LibJS: Replace arguments Span with argument_count in ExecutionContext 2026-03-11 13:33:47 +01:00
GeneratorFunctionConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
GeneratorFunctionPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
GeneratorFunctionPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
GeneratorObject.cpp LibJS: Move bytecode interpreter state to VM 2026-04-13 18:29:43 +02:00
GeneratorObject.h LibJS: Move bytecode interpreter state to VM 2026-04-13 18:29:43 +02:00
GeneratorPrototype.cpp LibJS: Remove dead C++ bytecode compilation functions 2026-03-19 21:55:10 -05:00
GeneratorPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
GlobalEnvironment.cpp LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
GlobalEnvironment.h LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
GlobalObject.cpp Everywhere: Remove ShadowRealm support 2026-04-05 13:57:58 +02:00
GlobalObject.h LibJS: Enable EXPLICIT_SYMBOL_EXPORT and annotate minimum symbol set 2025-07-22 11:51:29 -04:00
IndexedProperties.cpp LibJS: Replace IndexedProperties with inline Packed/Holey/Dictionary 2026-03-17 22:28:35 -05:00
IndexedProperties.h LibJS: Replace IndexedProperties with inline Packed/Holey/Dictionary 2026-03-17 22:28:35 -05:00
InterpreterStack.cpp LibJS: Add InterpreterStack bump allocator for execution contexts 2026-03-04 18:53:12 +01:00
InterpreterStack.h LibJS+LibWeb: Pass constants into execution context constructor 2026-03-29 13:44:06 +02:00
Intrinsics.cpp LibJS: Move arguments [[ParameterMap]] to Shape 2026-04-15 15:57:48 +02:00
Intrinsics.h LibJS: Lazily instantiate "prototype" field on ECMAScriptFunctionObject 2025-12-17 12:50:17 -06:00
Iterator.cpp LibJS: Remove remaining C++ pipeline artifacts 2026-03-19 21:55:10 -05:00
Iterator.h LibJS: Implement Iterator.zip 2026-02-26 13:54:35 -05:00
IteratorConstructor.cpp LibJS: Replace GC::Weak with GC::RawPtr in inline cache entries 2026-03-08 10:27:13 +01:00
IteratorConstructor.h LibJS: Implement Iterator.zipKeyed 2026-02-26 13:54:35 -05:00
IteratorHelper.cpp LibJS: Directly indicate when the IteratorHelper generator is complete 2025-12-03 12:08:40 +01:00
IteratorHelper.h LibJS: Directly indicate when the IteratorHelper generator is complete 2025-12-03 12:08:40 +01:00
IteratorHelperPrototype.cpp LibJS: Replace [[UnderlyingIterator]] with [[UnderlyingIterators]] 2025-12-03 12:08:40 +01:00
IteratorHelperPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
IteratorPrototype.cpp LibJS: Directly indicate when the IteratorHelper generator is complete 2025-12-03 12:08:40 +01:00
IteratorPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
JobCallback.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
JobCallback.h LibJS: Enable EXPLICIT_SYMBOL_EXPORT and annotate minimum symbol set 2025-07-22 11:51:29 -04:00
JSONObject.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
JSONObject.h LibJS: Optimize JSON.stringify with single StringBuilder 2026-01-12 13:53:28 -05:00
KeyedCollections.cpp
KeyedCollections.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Map.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Map.h LibJS+LibWeb: Add missing GC marking visits 2026-01-07 12:48:58 +01:00
MapConstructor.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
MapConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
MapIterator.cpp LibJS+LibWeb: Add missing GC marking visits 2026-01-07 12:48:58 +01:00
MapIterator.h LibJS: Mark MapIterator for export 2026-02-17 12:25:27 +00:00
MapIteratorPrototype.cpp LibJS: Do more comprehensive check if next() fast path is possible 2025-06-02 00:15:36 +02:00
MapIteratorPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
MapPrototype.cpp LibJS: Implement Map.prototype.getOrInsert[Computed] 2025-10-03 08:58:40 +02:00
MapPrototype.h LibJS: Implement Map.prototype.getOrInsert[Computed] 2025-10-03 08:58:40 +02:00
MathObject.cpp LibCrypto+AK: Merge LibCrypto/SecureRandom into AK/Random 2026-01-23 15:53:27 +01:00
MathObject.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
ModuleEnvironment.cpp LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
ModuleEnvironment.h LibWeb: Support WASM modules 2026-04-03 21:21:09 +02:00
ModuleNamespaceObject.cpp LibJS: Add inline caching for adding new own properties to objects 2025-09-17 12:44:44 +02:00
ModuleNamespaceObject.h LibJS: Fast-path own-property enumeration and reduce descriptor lookups 2025-09-21 15:06:32 +02:00
ModuleRequest.h LibWeb: Support WASM modules 2026-04-03 21:21:09 +02:00
NativeFunction.cpp LibJS: Call RawNativeFunction directly from asm Call 2026-04-15 15:57:48 +02:00
NativeFunction.h LibJS: Call RawNativeFunction directly from asm Call 2026-04-15 15:57:48 +02:00
NativeJavaScriptBackedFunction.cpp LibJS: Cache JS-to-JS inline call eligibility 2026-04-14 08:14:43 +02:00
NativeJavaScriptBackedFunction.h LibJS+LibWeb: Pass constants into execution context constructor 2026-03-29 13:44:06 +02:00
NumberConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
NumberConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
NumberObject.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
NumberObject.h LibJS: Enable EXPLICIT_SYMBOL_EXPORT and annotate minimum symbol set 2025-07-22 11:51:29 -04:00
NumberPrototype.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
NumberPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Object.cpp LibJS: Separate raw and capturing native functions 2026-04-15 15:57:48 +02:00
Object.h LibJS: Call RawNativeFunction directly from asm Call 2026-04-15 15:57:48 +02:00
ObjectConstructor.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
ObjectConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
ObjectEnvironment.cpp LibJS: Make internal_define_own_property() save added property offset 2025-09-17 12:44:44 +02:00
ObjectEnvironment.h LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
ObjectPrototype.cpp LibJS+LibWeb: Make DOMException hold an [[ErrorData]] slot 2026-04-08 20:33:53 +02:00
ObjectPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
PrimitiveString.cpp LibJS: Reuse cached ASCII strings for substrings 2026-04-12 19:15:50 +02:00
PrimitiveString.h LibJS: Use Substring for string slices 2026-04-11 00:35:36 +02:00
PrivateEnvironment.cpp LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
PrivateEnvironment.h LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
Promise.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
Promise.h LibJS: Rearrange members to shrink Promise by 8 bytes 2025-12-21 12:08:41 -06:00
PromiseCapability.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
PromiseCapability.h LibJS: Export symbols causing linker errors in various consumers 2025-08-23 16:04:36 -06:00
PromiseConstructor.cpp LibJS: Replace arguments Span with argument_count in ExecutionContext 2026-03-11 13:33:47 +01:00
PromiseConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
PromiseJobs.cpp LibJS: Make Completion.[[Value]] non-optional 2025-04-05 11:20:26 +02:00
PromiseJobs.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
PromisePrototype.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
PromisePrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
PromiseReaction.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PromiseReaction.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
PromiseResolvingElementFunctions.cpp LibJS: Make internal_define_own_property() save added property offset 2025-09-17 12:44:44 +02:00
PromiseResolvingElementFunctions.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
PromiseResolvingFunction.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
PromiseResolvingFunction.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
PropertyAttributes.h LibJS: Make PropertyAttributes and default_attributes constexpr 2026-01-18 10:10:04 +01:00
PropertyDescriptor.cpp LibGC+LibJS+LibWeb: Add Visitor::visit(Optional<T>) 2026-01-06 10:55:56 +01:00
PropertyDescriptor.h LibJS+LibWeb: Add missing visits for cached cross-origin properties 2026-01-06 00:01:01 +01:00
PropertyKey.h AK: Add SentinelOptional 2026-03-20 12:03:36 +01:00
PrototypeObject.h LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
ProxyConstructor.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
ProxyConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
ProxyObject.cpp LibJS+LibWeb: Pass constants into execution context constructor 2026-03-29 13:44:06 +02:00
ProxyObject.h LibJS+LibWeb: Pass constants into execution context constructor 2026-03-29 13:44:06 +02:00
RawJSONObject.cpp LibJS: Implement rawJSON and isRawJSON functions 2025-04-24 09:33:49 -04:00
RawJSONObject.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Realm.cpp LibJS+LibWeb: Pass constants into execution context constructor 2026-03-29 13:44:06 +02:00
Realm.h LibJS: Pair-load asm global Realm metadata 2026-04-14 12:37:12 +02:00
Reference.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
Reference.h LibJS: Reduce size of Optional<EnvironmentCoordinate> 2026-03-20 12:03:36 +01:00
ReflectObject.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
ReflectObject.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
RegExpConstructor.cpp LibJS: Use Substring for legacy regexp statics 2026-04-11 00:35:36 +02:00
RegExpConstructor.h LibJS: Use Substring for legacy regexp statics 2026-04-11 00:35:36 +02:00
RegExpLegacyStaticProperties.cpp LibJS: Use Substring for legacy regexp statics 2026-04-11 00:35:36 +02:00
RegExpLegacyStaticProperties.h LibJS: Use Substring for legacy regexp statics 2026-04-11 00:35:36 +02:00
RegExpObject.cpp LibJS: Reject mixed surrogate forms in RegExp names 2026-03-31 15:59:04 +02:00
RegExpObject.h LibJS+LibRegex: Switch RegExp over to the Rust engine 2026-03-27 17:32:19 +01:00
RegExpPrototype.cpp LibJS: Use Substring for legacy regexp statics 2026-04-11 00:35:36 +02:00
RegExpPrototype.h LibJS: Skip generic call when using regexp builtins in StringPrototype 2025-12-13 13:51:12 -06:00
RegExpStringIterator.cpp LibJS: Use PrimitiveString more instead of Utf16String in RegExp code 2025-05-03 20:01:20 +02:00
RegExpStringIterator.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
RegExpStringIteratorPrototype.cpp LibJS+LibWeb: Replace JS::Utf16String with AK::Utf16String 2025-07-18 12:45:38 -04:00
RegExpStringIteratorPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Set.cpp LibJS: Mark JS::Cell::initialize() as MUST_UPCALL 2026-02-06 13:50:54 +01:00
Set.h LibJS: Add Object::fast_is<Set>() and Object::fast_is<Map>() 2025-09-26 16:21:18 +02:00
SetConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SetConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
SetIterator.cpp LibJS: Make more use of Value::is and Value::as_if 2026-02-28 10:24:37 -05:00
SetIterator.h LibJS: Avoid IteratorRecord GC-allocation in GetIterator instruction 2025-11-02 20:05:47 +01:00
SetIteratorPrototype.cpp LibJS: Do more comprehensive check if next() fast path is possible 2025-06-02 00:15:36 +02:00
SetIteratorPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
SetPrototype.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
SetPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Shape.cpp LibJS: Move arguments [[ParameterMap]] to Shape 2026-04-15 15:57:48 +02:00
Shape.h LibJS: Move arguments [[ParameterMap]] to Shape 2026-04-15 15:57:48 +02:00
SharedArrayBufferConstructor.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
SharedArrayBufferConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
SharedArrayBufferPrototype.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
SharedArrayBufferPrototype.h LibJS: Crudely implement growable SharedArrayBuffers 2026-01-04 07:47:55 +01:00
SharedFunctionInstanceData.cpp LibJS: Pack asm Call shared-data metadata 2026-04-14 12:37:12 +02:00
SharedFunctionInstanceData.h LibJS: Pack asm Call shared-data metadata 2026-04-14 12:37:12 +02:00
StringConstructor.cpp LibJS: Add a String.fromCharCode builtin opcode 2026-04-12 19:15:50 +02:00
StringConstructor.h LibJS: Add a String.fromCharCode builtin opcode 2026-04-12 19:15:50 +02:00
StringIterator.cpp LibJS: Make more use of Value::is and Value::as_if 2026-02-28 10:24:37 -05:00
StringIterator.h LibJS: Avoid IteratorRecord GC-allocation in GetIterator instruction 2025-11-02 20:05:47 +01:00
StringIteratorPrototype.cpp LibJS: Do more comprehensive check if next() fast path is possible 2025-06-02 00:15:36 +02:00
StringIteratorPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
StringObject.cpp LibJS: Use Substring for string slices 2026-04-11 00:35:36 +02:00
StringObject.h LibJS: Fast-path own-property enumeration and reduce descriptor lookups 2025-09-21 15:06:32 +02:00
StringPrototype.cpp LibJS: Add a charAt builtin bytecode fast path 2026-04-12 19:15:50 +02:00
StringPrototype.h LibJS: Explicitly prevent out-of-bounds access in String.lastIndexOf 2025-10-03 09:03:40 +02:00
SuppressedError.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SuppressedError.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
SuppressedErrorConstructor.cpp LibJS: Make internal_define_own_property() save added property offset 2025-09-17 12:44:44 +02:00
SuppressedErrorConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
SuppressedErrorPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SuppressedErrorPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Symbol.cpp LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
Symbol.h LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
SymbolConstructor.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
SymbolConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
SymbolObject.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
SymbolObject.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
SymbolPrototype.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
SymbolPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
TypedArray.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
TypedArray.h LibJS: Cache typed array data pointers for indexed access 2026-03-18 13:59:05 -05:00
TypedArrayConstructor.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
TypedArrayConstructor.h LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
TypedArrayPrototype.cpp LibJS: Make more use of Value::is and Value::as_if in JS runtime 2026-02-27 17:19:33 +01:00
TypedArrayPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Uint8Array.cpp LibJS: Use non-copying GetUint8ArrayBytes() in Uint8Array.toBase64() 2025-11-29 09:39:43 -05:00
Uint8Array.h LibJS: Use non-copying GetUint8ArrayBytes() in Uint8Array.toBase64() 2025-11-29 09:39:43 -05:00
Value.cpp LibJS: Rename Value::as_array() to Value::as_array_exotic_object()` 2026-03-29 13:45:38 +02:00
Value.h LibJS: Rename Value::as_array() to Value::as_array_exotic_object()` 2026-03-29 13:45:38 +02:00
ValueInlines.h LibJS: Sprinkle [[likely]] on the fast paths in ValueInlines.h 2025-10-11 20:08:58 +02:00
ValueTraits.h Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
VM.cpp LibJS: Split inline frames from execution context stack 2026-04-13 18:29:43 +02:00
VM.h LibJS: Call RawNativeFunction directly from asm Call 2026-04-15 15:57:48 +02:00
WeakMap.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakMap.h LibJS+LibWeb: Add various fast_is<T>() helpers for common things 2025-12-20 09:13:19 -06:00
WeakMapConstructor.cpp LibJS: Make more use of Value::is and Value::as_if 2026-02-28 10:24:37 -05:00
WeakMapConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
WeakMapPrototype.cpp LibJS: Implement WeakMap.prototype.getOrInsert[Computed] 2025-10-03 08:58:40 +02:00
WeakMapPrototype.h LibJS: Implement WeakMap.prototype.getOrInsert[Computed] 2025-10-03 08:58:40 +02:00
WeakRef.cpp LibJS: Remove bogus VERIFY_NOT_REACHED() in WeakRef::remove_dead_cells() 2026-01-07 07:52:03 -05:00
WeakRef.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
WeakRefConstructor.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
WeakRefConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
WeakRefPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakRefPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
WeakSet.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakSet.h LibJS: Export symbols causing linker errors in various consumers 2025-08-23 16:04:36 -06:00
WeakSetConstructor.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WeakSetConstructor.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
WeakSetPrototype.cpp LibJS: Pass JS::Value directly to string formatting functions 2025-12-09 21:44:13 -06:00
WeakSetPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
WrapForValidIteratorPrototype.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
WrapForValidIteratorPrototype.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00