ladybird/Userland/Libraries/LibJS/Runtime/EnvironmentCoordinate.h
Andreas Kling 1d8ec677a3 LibJS/JIT: Add fast path for cached GetVariable accesses
We can now stay in machine code for environment variable read accesses
as long as they are cached and initialized.

20% speed-up on Octane/zlib.js :^)
2023-11-07 11:33:04 +01:00

26 lines
611 B
C++

/*
* Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Types.h>
#include <LibJS/Forward.h>
namespace JS {
struct EnvironmentCoordinate {
u32 hops { invalid_marker };
u32 index { invalid_marker };
static FlatPtr hops_offset() { return OFFSET_OF(EnvironmentCoordinate, hops); }
static FlatPtr index_offset() { return OFFSET_OF(EnvironmentCoordinate, index); }
bool is_valid() const { return hops != invalid_marker && index != invalid_marker; }
static constexpr u32 invalid_marker = 0xfffffffe;
};
}