mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-07 11:42:51 +00:00
LibJS: Allocate ExecutionContext memory using alloca() when possible
This should be faster than heap allocation. However, heap allocation is still necessary in some cases, such as with generators and async functions.
This commit is contained in:
parent
5a92929282
commit
a329868c1b
Notes:
github-actions[bot]
2025-04-24 08:32:11 +00:00
Author: https://github.com/kalenikaliaksandr
Commit: a329868c1b
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4434
Reviewed-by: https://github.com/alimpfard
10 changed files with 42 additions and 12 deletions
|
@ -119,7 +119,8 @@ ThrowCompletionOr<Value> NativeFunction::internal_call(Value this_argument, Read
|
|||
|
||||
// 2. If callerContext is not already suspended, suspend callerContext.
|
||||
// 3. Let calleeContext be a new execution context.
|
||||
auto callee_context = ExecutionContext::create(0, arguments_list.size());
|
||||
ExecutionContext* callee_context = nullptr;
|
||||
ALLOCATE_EXECUTION_CONTEXT_ON_NATIVE_STACK(callee_context, 0, arguments_list.size());
|
||||
|
||||
// 4. Set the Function of calleeContext to F.
|
||||
callee_context->function = this;
|
||||
|
@ -181,7 +182,8 @@ ThrowCompletionOr<GC::Ref<Object>> NativeFunction::internal_construct(ReadonlySp
|
|||
|
||||
// 2. If callerContext is not already suspended, suspend callerContext.
|
||||
// 3. Let calleeContext be a new execution context.
|
||||
auto callee_context = ExecutionContext::create(0, arguments_list.size());
|
||||
ExecutionContext* callee_context = nullptr;
|
||||
ALLOCATE_EXECUTION_CONTEXT_ON_NATIVE_STACK(callee_context, 0, arguments_list.size());
|
||||
|
||||
// 4. Set the Function of calleeContext to F.
|
||||
callee_context->function = this;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue