mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-19 15:43:20 +00:00
LibJS: Export symbols causing linker errors in various consumers
After LibJS had its symbol exports optimized the targets js, test-js, test262-runner, test-wasm, and LibWeb began to get linker errors after the work to add Windows support for test-web and ladybird targets. These extra JS_API annotations fix all those linker errors.
This commit is contained in:
parent
9c67c4a270
commit
6dbb59da77
Notes:
github-actions[bot]
2025-08-23 22:06:25 +00:00
Author: https://github.com/ayeteadoe
Commit: 6dbb59da77
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5229
Reviewed-by: https://github.com/ADKaster ✅
13 changed files with 17 additions and 16 deletions
|
@ -54,7 +54,7 @@ create_ast_node(SourceRange range, Args&&... args)
|
|||
return adopt_ref(*new T(move(range), forward<Args>(args)...));
|
||||
}
|
||||
|
||||
class ASTNode : public RefCounted<ASTNode> {
|
||||
class JS_API ASTNode : public RefCounted<ASTNode> {
|
||||
public:
|
||||
virtual ~ASTNode() = default;
|
||||
|
||||
|
@ -780,7 +780,7 @@ struct FunctionParsingInsights {
|
|||
bool might_need_arguments_object { false };
|
||||
};
|
||||
|
||||
class FunctionNode {
|
||||
class JS_API FunctionNode {
|
||||
public:
|
||||
Utf16FlyString name() const { return m_name ? m_name->string() : Utf16FlyString {}; }
|
||||
RefPtr<Identifier const> name_identifier() const { return m_name; }
|
||||
|
|
|
@ -89,7 +89,7 @@ private:
|
|||
};
|
||||
|
||||
// 16.2.1.4 Abstract Module Records, https://tc39.es/ecma262/#sec-abstract-module-records
|
||||
class Module : public Cell {
|
||||
class JS_API Module : public Cell {
|
||||
GC_CELL(Module, Cell);
|
||||
GC_DECLARE_ALLOCATOR(Module);
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ JS_API GC::Ref<ObjectEnvironment> new_object_environment(Object&, bool is_with_e
|
|||
GC::Ref<FunctionEnvironment> new_function_environment(ECMAScriptFunctionObject&, Object* new_target);
|
||||
GC::Ref<PrivateEnvironment> new_private_environment(VM& vm, PrivateEnvironment* outer);
|
||||
GC::Ref<Environment> get_this_environment(VM&);
|
||||
bool can_be_held_weakly(Value);
|
||||
JS_API bool can_be_held_weakly(Value);
|
||||
Object* get_super_constructor(VM&);
|
||||
ThrowCompletionOr<Value> require_object_coercible(VM&, Value);
|
||||
JS_API ThrowCompletionOr<Value> call_impl(VM&, Value function, Value this_value, ReadonlySpan<Value> arguments = {});
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
namespace JS {
|
||||
|
||||
class ConsoleObject final : public Object {
|
||||
class JS_API ConsoleObject final : public Object {
|
||||
JS_OBJECT(ConsoleObject, Object);
|
||||
GC_DECLARE_ALLOCATOR(ConsoleObject);
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include <AK/HashMap.h>
|
||||
#include <AK/Utf16FlyString.h>
|
||||
#include <LibJS/Export.h>
|
||||
#include <LibJS/Runtime/AbstractOperations.h>
|
||||
#include <LibJS/Runtime/Completion.h>
|
||||
#include <LibJS/Runtime/Environment.h>
|
||||
|
@ -15,7 +16,7 @@
|
|||
|
||||
namespace JS {
|
||||
|
||||
class DeclarativeEnvironment : public Environment {
|
||||
class JS_API DeclarativeEnvironment : public Environment {
|
||||
JS_ENVIRONMENT(DeclarativeEnvironment, Environment);
|
||||
GC_DECLARE_ALLOCATOR(DeclarativeEnvironment);
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
namespace JS {
|
||||
|
||||
// 7.4.1 Iterator Records, https://tc39.es/ecma262/#sec-iterator-records
|
||||
class IteratorRecord final : public Cell {
|
||||
class JS_API IteratorRecord final : public Cell {
|
||||
GC_CELL(IteratorRecord, Cell);
|
||||
GC_DECLARE_ALLOCATOR(IteratorRecord);
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
namespace JS {
|
||||
|
||||
// 27.2.1.1 PromiseCapability Records, https://tc39.es/ecma262/#sec-promisecapability-records
|
||||
class PromiseCapability final : public Cell {
|
||||
class JS_API PromiseCapability final : public Cell {
|
||||
GC_CELL(PromiseCapability, Cell);
|
||||
GC_DECLARE_ALLOCATOR(PromiseCapability);
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <LibJS/Export.h>
|
||||
#include <LibJS/Runtime/Environment.h>
|
||||
#include <LibJS/Runtime/EnvironmentCoordinate.h>
|
||||
#include <LibJS/Runtime/PropertyKey.h>
|
||||
|
@ -15,7 +16,7 @@ namespace JS {
|
|||
|
||||
Reference make_private_reference(VM&, Value base_value, Utf16FlyString const& private_identifier);
|
||||
|
||||
class Reference {
|
||||
class JS_API Reference {
|
||||
public:
|
||||
enum class BaseType : u8 {
|
||||
Unresolvable,
|
||||
|
|
|
@ -26,7 +26,7 @@ struct ParseRegexPatternError {
|
|||
ErrorOr<String, ParseRegexPatternError> parse_regex_pattern(Utf16View const& pattern, bool unicode, bool unicode_sets);
|
||||
ThrowCompletionOr<String> parse_regex_pattern(VM& vm, Utf16View const& pattern, bool unicode, bool unicode_sets);
|
||||
|
||||
class RegExpObject : public Object {
|
||||
class JS_API RegExpObject : public Object {
|
||||
JS_OBJECT(RegExpObject, Object);
|
||||
GC_DECLARE_ALLOCATOR(RegExpObject);
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
namespace JS {
|
||||
|
||||
class TypedArrayBase : public Object {
|
||||
class JS_API TypedArrayBase : public Object {
|
||||
JS_OBJECT(TypedArrayBase, Object);
|
||||
|
||||
public:
|
||||
|
|
|
@ -8,12 +8,13 @@
|
|||
|
||||
#include <AK/HashMap.h>
|
||||
#include <LibGC/WeakContainer.h>
|
||||
#include <LibJS/Export.h>
|
||||
#include <LibJS/Runtime/GlobalObject.h>
|
||||
#include <LibJS/Runtime/Object.h>
|
||||
|
||||
namespace JS {
|
||||
|
||||
class WeakMap final
|
||||
class JS_API WeakMap final
|
||||
: public Object
|
||||
, public GC::WeakContainer {
|
||||
JS_OBJECT(WeakMap, Object);
|
||||
|
|
|
@ -8,12 +8,13 @@
|
|||
|
||||
#include <AK/HashTable.h>
|
||||
#include <LibGC/WeakContainer.h>
|
||||
#include <LibJS/Export.h>
|
||||
#include <LibJS/Runtime/GlobalObject.h>
|
||||
#include <LibJS/Runtime/Object.h>
|
||||
|
||||
namespace JS {
|
||||
|
||||
class WeakSet final
|
||||
class JS_API WeakSet final
|
||||
: public Object
|
||||
, public GC::WeakContainer {
|
||||
JS_OBJECT(WeakSet, Object);
|
||||
|
|
|
@ -13,12 +13,9 @@
|
|||
#include <AK/Vector.h>
|
||||
#include <LibCore/ArgsParser.h>
|
||||
#include <LibCore/File.h>
|
||||
#include <LibJS/Bytecode/BasicBlock.h>
|
||||
#include <LibJS/Bytecode/Generator.h>
|
||||
#include <LibJS/Bytecode/Interpreter.h>
|
||||
#include <LibJS/Contrib/Test262/GlobalObject.h>
|
||||
#include <LibJS/Parser.h>
|
||||
#include <LibJS/Runtime/Agent.h>
|
||||
#include <LibJS/Runtime/VM.h>
|
||||
#include <LibJS/Runtime/ValueInlines.h>
|
||||
#include <LibJS/Script.h>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue