ladybird/Tests/LibJS/Runtime/functions
Andreas Kling 8a9d5ee1a1 LibJS: Separate raw and capturing native functions
NativeFunction previously stored an AK::Function for every builtin,
even when the callable was just a plain C++ entry point. That mixed
together two different representations, made simple builtins carry
capture storage they did not need, and forced the GC to treat every
native function as if it might contain captured JS values.

Introduce RawNativeFunction for plain NativeFunctionPointer callees
and keep AK::Function-backed callables on a CapturingNativeFunction
subclass. Update the straightforward native registrations in LibJS
and LibWeb to use the raw representation, while leaving exported
Wasm functions on the capturing path because they still capture
state.

Wrap UniversalGlobalScope's byte-length strategy lambda in
Function<...> explicitly so it keeps selecting the capturing
NativeFunction::create overload.
2026-04-15 15:57:48 +02:00
..
arrow-functions.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
constructor-basic.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-assignment-in-arguments.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-declaration-scoping-with-destructured-params.js LibJS: Fix scoping of function declarations with destructured params 2026-02-12 16:59:47 +01:00
function-default-parameters.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-destructuring-parameters.js LibJS: Reject duplicate params across destructuring patterns in C++ 2026-03-19 09:43:11 +01:00
function-duplicate-parameters.js LibJS: Reject duplicate params across destructuring patterns in C++ 2026-03-19 09:43:11 +01:00
function-evaluation-order.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-expression-scoping.js LibJS: Mark named function expression identifiers at individual level 2026-01-27 10:58:39 +01:00
function-hoisting.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-length.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-missing-arg.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-name.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-nesting.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-new-target.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-prototype-writable.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-rest-params.js Tests/LibJS: Add test for rest-only param with arguments object access 2026-02-10 02:05:20 +01:00
function-spread.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-strict-mode.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-this-in-arguments.js LibJS: Move tests to /Tests/LibJS 2026-01-22 07:46:48 -05:00
function-TypeError.js LibJS: Separate raw and capturing native functions 2026-04-15 15:57:48 +02:00
method-functions-are-not-constructors.js LibJS: Treat concise methods as non-constructors 2026-03-20 15:58:05 -05:00