mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-17 15:59:43 +00:00
Everywhere: Hoist the Libraries folder to the top-level
This commit is contained in:
parent
950e819ee7
commit
93712b24bf
Notes:
github-actions[bot]
2024-11-10 11:51:52 +00:00
Author: https://github.com/trflynn89
Commit: 93712b24bf
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2256
Reviewed-by: https://github.com/sideshowbarker
4547 changed files with 104 additions and 113 deletions
74
Libraries/LibJS/Bytecode/Builtins.h
Normal file
74
Libraries/LibJS/Bytecode/Builtins.h
Normal file
|
@ -0,0 +1,74 @@
|
|||
/*
|
||||
* Copyright (c) 2023, Simon Wanner <simon@skyrising.xyz>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AK/Format.h>
|
||||
#include <LibJS/Forward.h>
|
||||
|
||||
namespace JS::Bytecode {
|
||||
|
||||
// TitleCaseName, snake_case_name, base, property, argument_count
|
||||
#define JS_ENUMERATE_BUILTINS(O) \
|
||||
O(MathAbs, math_abs, Math, abs, 1) \
|
||||
O(MathLog, math_log, Math, log, 1) \
|
||||
O(MathPow, math_pow, Math, pow, 2) \
|
||||
O(MathExp, math_exp, Math, exp, 1) \
|
||||
O(MathCeil, math_ceil, Math, ceil, 1) \
|
||||
O(MathFloor, math_floor, Math, floor, 1) \
|
||||
O(MathRound, math_round, Math, round, 1) \
|
||||
O(MathSqrt, math_sqrt, Math, sqrt, 1)
|
||||
|
||||
enum class Builtin : u8 {
|
||||
#define DEFINE_BUILTIN_ENUM(name, ...) name,
|
||||
JS_ENUMERATE_BUILTINS(DEFINE_BUILTIN_ENUM)
|
||||
#undef DEFINE_BUILTIN_ENUM
|
||||
__Count,
|
||||
};
|
||||
|
||||
static StringView builtin_name(Builtin value)
|
||||
{
|
||||
switch (value) {
|
||||
#define DEFINE_BUILTIN_CASE(name, snake_case_name, base, property, ...) \
|
||||
case Builtin::name: \
|
||||
return #base "." #property##sv;
|
||||
JS_ENUMERATE_BUILTINS(DEFINE_BUILTIN_CASE)
|
||||
#undef DEFINE_BUILTIN_CASE
|
||||
case Builtin::__Count:
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
inline size_t builtin_argument_count(Builtin value)
|
||||
{
|
||||
switch (value) {
|
||||
#define DEFINE_BUILTIN_CASE(name, snake_case_name, base, property, arg_count, ...) \
|
||||
case Builtin::name: \
|
||||
return arg_count;
|
||||
JS_ENUMERATE_BUILTINS(DEFINE_BUILTIN_CASE)
|
||||
#undef DEFINE_BUILTIN_CASE
|
||||
case Builtin::__Count:
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
Optional<Builtin> get_builtin(MemberExpression const& expression);
|
||||
|
||||
}
|
||||
|
||||
namespace AK {
|
||||
|
||||
template<>
|
||||
struct Formatter<JS::Bytecode::Builtin> : Formatter<StringView> {
|
||||
ErrorOr<void> format(FormatBuilder& builder, JS::Bytecode::Builtin value)
|
||||
{
|
||||
return Formatter<StringView>::format(builder, builtin_name(value));
|
||||
}
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue