mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2026-04-18 18:00:31 +00:00
LibJS: Convert Object bitfields to a flags byte
Replace individual bool bitfields in Object (m_is_extensible, m_has_parameter_map, m_has_magical_length_property, etc.) with a single u8 m_flags field and Flag:: constants. This consolidates 8 scattered bitfields into one byte with explicit bit positions, making them easy to access from generated assembly code at a known offset. It also converts the virtual is_function() and is_ecmascript_function_object() methods to flag-based checks, avoiding virtual dispatch for these hot queries. ProxyObject now explicitly clears the IsFunction flag in its constructor when wrapping a non-callable target, instead of relying on a virtual is_function() override.
This commit is contained in:
parent
643f2884cc
commit
c5427e5f4e
Notes:
github-actions[bot]
2026-03-07 12:12:35 +00:00
Author: https://github.com/awesomekling
Commit: c5427e5f4e
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/8299
10 changed files with 68 additions and 47 deletions
|
|
@ -162,6 +162,7 @@ ECMAScriptFunctionObject::ECMAScriptFunctionObject(
|
|||
, m_environment(parent_environment)
|
||||
, m_private_environment(private_environment)
|
||||
{
|
||||
set_is_ecmascript_function_object();
|
||||
if (!is_arrow_function() && kind() == FunctionKind::Normal)
|
||||
unsafe_set_shape(realm()->intrinsics().normal_function_shape());
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue