shared_library("LibJS") {
  output_name = "js"
  include_dirs = [
    "//Userland/Libraries",

    # FIXME: Why does LibSyntax need to depend on WindowServer headers?
    "//Userland",
  ]
  deps = [
    "//AK",
    "//Userland/Libraries/LibCore",
    "//Userland/Libraries/LibCrypto",
    "//Userland/Libraries/LibFileSystem",
    "//Userland/Libraries/LibLocale",
    "//Userland/Libraries/LibRegex",
    "//Userland/Libraries/LibSyntax",
    "//Userland/Libraries/LibUnicode",
  ]
  sources = [
    "AST.cpp",
    "Bytecode/ASTCodegen.cpp",
    "Bytecode/BasicBlock.cpp",
    "Bytecode/CodeGenerationError.cpp",
    "Bytecode/Executable.cpp",
    "Bytecode/Generator.cpp",
    "Bytecode/IdentifierTable.cpp",
    "Bytecode/Instruction.cpp",
    "Bytecode/Interpreter.cpp",
    "Bytecode/Op.cpp",
    "Bytecode/RegexTable.cpp",
    "Bytecode/StringTable.cpp",
    "Console.cpp",
    "Contrib/Test262/262Object.cpp",
    "Contrib/Test262/AgentObject.cpp",
    "Contrib/Test262/GlobalObject.cpp",
    "Contrib/Test262/IsHTMLDDA.cpp",
    "CyclicModule.cpp",
    "Heap/BlockAllocator.cpp",
    "Heap/Cell.cpp",
    "Heap/CellAllocator.cpp",
    "Heap/Handle.cpp",
    "Heap/Heap.cpp",
    "Heap/HeapBlock.cpp",
    "Heap/MarkedVector.cpp",
    "Interpreter.cpp",
    "Lexer.cpp",
    "MarkupGenerator.cpp",
    "Module.cpp",
    "Parser.cpp",
    "ParserError.cpp",
    "Print.cpp",
    "Runtime/AbstractOperations.cpp",
    "Runtime/AggregateError.cpp",
    "Runtime/AggregateErrorConstructor.cpp",
    "Runtime/AggregateErrorPrototype.cpp",
    "Runtime/ArgumentsObject.cpp",
    "Runtime/Array.cpp",
    "Runtime/ArrayBuffer.cpp",
    "Runtime/ArrayBufferConstructor.cpp",
    "Runtime/ArrayBufferPrototype.cpp",
    "Runtime/ArrayConstructor.cpp",
    "Runtime/ArrayIterator.cpp",
    "Runtime/ArrayIteratorPrototype.cpp",
    "Runtime/ArrayPrototype.cpp",
    "Runtime/AsyncFromSyncIterator.cpp",
    "Runtime/AsyncFromSyncIteratorPrototype.cpp",
    "Runtime/AsyncFunctionConstructor.cpp",
    "Runtime/AsyncFunctionDriverWrapper.cpp",
    "Runtime/AsyncFunctionPrototype.cpp",
    "Runtime/AsyncGenerator.cpp",
    "Runtime/AsyncGeneratorFunctionConstructor.cpp",
    "Runtime/AsyncGeneratorFunctionPrototype.cpp",
    "Runtime/AsyncGeneratorPrototype.cpp",
    "Runtime/AsyncIteratorPrototype.cpp",
    "Runtime/AtomicsObject.cpp",
    "Runtime/BigInt.cpp",
    "Runtime/BigIntConstructor.cpp",
    "Runtime/BigIntObject.cpp",
    "Runtime/BigIntPrototype.cpp",
    "Runtime/BooleanConstructor.cpp",
    "Runtime/BooleanObject.cpp",
    "Runtime/BooleanPrototype.cpp",
    "Runtime/BoundFunction.cpp",
    "Runtime/Completion.cpp",
    "Runtime/ConsoleObject.cpp",
    "Runtime/DataView.cpp",
    "Runtime/DataViewConstructor.cpp",
    "Runtime/DataViewPrototype.cpp",
    "Runtime/Date.cpp",
    "Runtime/DateConstructor.cpp",
    "Runtime/DatePrototype.cpp",
    "Runtime/DeclarativeEnvironment.cpp",
    "Runtime/DisposableStack.cpp",
    "Runtime/DisposableStackConstructor.cpp",
    "Runtime/DisposableStackPrototype.cpp",
    "Runtime/ECMAScriptFunctionObject.cpp",
    "Runtime/Environment.cpp",
    "Runtime/Error.cpp",
    "Runtime/ErrorConstructor.cpp",
    "Runtime/ErrorPrototype.cpp",
    "Runtime/ErrorTypes.cpp",
    "Runtime/ExecutionContext.cpp",
    "Runtime/FinalizationRegistry.cpp",
    "Runtime/FinalizationRegistryConstructor.cpp",
    "Runtime/FinalizationRegistryPrototype.cpp",
    "Runtime/FunctionConstructor.cpp",
    "Runtime/FunctionEnvironment.cpp",
    "Runtime/FunctionObject.cpp",
    "Runtime/FunctionPrototype.cpp",
    "Runtime/GeneratorFunctionConstructor.cpp",
    "Runtime/GeneratorFunctionPrototype.cpp",
    "Runtime/GeneratorObject.cpp",
    "Runtime/GeneratorPrototype.cpp",
    "Runtime/GlobalEnvironment.cpp",
    "Runtime/GlobalObject.cpp",
    "Runtime/IndexedProperties.cpp",
    "Runtime/Intl/AbstractOperations.cpp",
    "Runtime/Intl/Collator.cpp",
    "Runtime/Intl/CollatorCompareFunction.cpp",
    "Runtime/Intl/CollatorConstructor.cpp",
    "Runtime/Intl/CollatorPrototype.cpp",
    "Runtime/Intl/DateTimeFormat.cpp",
    "Runtime/Intl/DateTimeFormatConstructor.cpp",
    "Runtime/Intl/DateTimeFormatFunction.cpp",
    "Runtime/Intl/DateTimeFormatPrototype.cpp",
    "Runtime/Intl/DisplayNames.cpp",
    "Runtime/Intl/DisplayNamesConstructor.cpp",
    "Runtime/Intl/DisplayNamesPrototype.cpp",
    "Runtime/Intl/DurationFormat.cpp",
    "Runtime/Intl/DurationFormatConstructor.cpp",
    "Runtime/Intl/DurationFormatPrototype.cpp",
    "Runtime/Intl/Intl.cpp",
    "Runtime/Intl/ListFormat.cpp",
    "Runtime/Intl/ListFormatConstructor.cpp",
    "Runtime/Intl/ListFormatPrototype.cpp",
    "Runtime/Intl/Locale.cpp",
    "Runtime/Intl/LocaleConstructor.cpp",
    "Runtime/Intl/LocalePrototype.cpp",
    "Runtime/Intl/MathematicalValue.cpp",
    "Runtime/Intl/NumberFormat.cpp",
    "Runtime/Intl/NumberFormatConstructor.cpp",
    "Runtime/Intl/NumberFormatFunction.cpp",
    "Runtime/Intl/NumberFormatPrototype.cpp",
    "Runtime/Intl/PluralRules.cpp",
    "Runtime/Intl/PluralRulesConstructor.cpp",
    "Runtime/Intl/PluralRulesPrototype.cpp",
    "Runtime/Intl/RelativeTimeFormat.cpp",
    "Runtime/Intl/RelativeTimeFormatConstructor.cpp",
    "Runtime/Intl/RelativeTimeFormatPrototype.cpp",
    "Runtime/Intl/SegmentIterator.cpp",
    "Runtime/Intl/SegmentIteratorPrototype.cpp",
    "Runtime/Intl/Segmenter.cpp",
    "Runtime/Intl/SegmenterConstructor.cpp",
    "Runtime/Intl/SegmenterPrototype.cpp",
    "Runtime/Intl/Segments.cpp",
    "Runtime/Intl/SegmentsPrototype.cpp",
    "Runtime/Intrinsics.cpp",
    "Runtime/Iterator.cpp",
    "Runtime/IteratorConstructor.cpp",
    "Runtime/IteratorHelper.cpp",
    "Runtime/IteratorHelperPrototype.cpp",
    "Runtime/IteratorPrototype.cpp",
    "Runtime/JSONObject.cpp",
    "Runtime/JobCallback.cpp",
    "Runtime/Map.cpp",
    "Runtime/MapConstructor.cpp",
    "Runtime/MapIterator.cpp",
    "Runtime/MapIteratorPrototype.cpp",
    "Runtime/MapPrototype.cpp",
    "Runtime/MathObject.cpp",
    "Runtime/ModuleEnvironment.cpp",
    "Runtime/ModuleNamespaceObject.cpp",
    "Runtime/NativeFunction.cpp",
    "Runtime/NumberConstructor.cpp",
    "Runtime/NumberObject.cpp",
    "Runtime/NumberPrototype.cpp",
    "Runtime/Object.cpp",
    "Runtime/ObjectConstructor.cpp",
    "Runtime/ObjectEnvironment.cpp",
    "Runtime/ObjectPrototype.cpp",
    "Runtime/PrimitiveString.cpp",
    "Runtime/PrivateEnvironment.cpp",
    "Runtime/Promise.cpp",
    "Runtime/PromiseCapability.cpp",
    "Runtime/PromiseConstructor.cpp",
    "Runtime/PromiseJobs.cpp",
    "Runtime/PromisePrototype.cpp",
    "Runtime/PromiseReaction.cpp",
    "Runtime/PromiseResolvingElementFunctions.cpp",
    "Runtime/PromiseResolvingFunction.cpp",
    "Runtime/PropertyDescriptor.cpp",
    "Runtime/ProxyConstructor.cpp",
    "Runtime/ProxyObject.cpp",
    "Runtime/Realm.cpp",
    "Runtime/Reference.cpp",
    "Runtime/ReflectObject.cpp",
    "Runtime/RegExpConstructor.cpp",
    "Runtime/RegExpLegacyStaticProperties.cpp",
    "Runtime/RegExpObject.cpp",
    "Runtime/RegExpPrototype.cpp",
    "Runtime/RegExpStringIterator.cpp",
    "Runtime/RegExpStringIteratorPrototype.cpp",
    "Runtime/Set.cpp",
    "Runtime/SetConstructor.cpp",
    "Runtime/SetIterator.cpp",
    "Runtime/SetIteratorPrototype.cpp",
    "Runtime/SetPrototype.cpp",
    "Runtime/ShadowRealm.cpp",
    "Runtime/ShadowRealmConstructor.cpp",
    "Runtime/ShadowRealmPrototype.cpp",
    "Runtime/Shape.cpp",
    "Runtime/SharedArrayBufferConstructor.cpp",
    "Runtime/SharedArrayBufferPrototype.cpp",
    "Runtime/StringConstructor.cpp",
    "Runtime/StringIterator.cpp",
    "Runtime/StringIteratorPrototype.cpp",
    "Runtime/StringObject.cpp",
    "Runtime/StringPrototype.cpp",
    "Runtime/SuppressedError.cpp",
    "Runtime/SuppressedErrorConstructor.cpp",
    "Runtime/SuppressedErrorPrototype.cpp",
    "Runtime/Symbol.cpp",
    "Runtime/SymbolConstructor.cpp",
    "Runtime/SymbolObject.cpp",
    "Runtime/SymbolPrototype.cpp",
    "Runtime/Temporal/AbstractOperations.cpp",
    "Runtime/Temporal/Calendar.cpp",
    "Runtime/Temporal/CalendarConstructor.cpp",
    "Runtime/Temporal/CalendarPrototype.cpp",
    "Runtime/Temporal/Duration.cpp",
    "Runtime/Temporal/DurationConstructor.cpp",
    "Runtime/Temporal/DurationPrototype.cpp",
    "Runtime/Temporal/ISO8601.cpp",
    "Runtime/Temporal/Instant.cpp",
    "Runtime/Temporal/InstantConstructor.cpp",
    "Runtime/Temporal/InstantPrototype.cpp",
    "Runtime/Temporal/Now.cpp",
    "Runtime/Temporal/PlainDate.cpp",
    "Runtime/Temporal/PlainDateConstructor.cpp",
    "Runtime/Temporal/PlainDatePrototype.cpp",
    "Runtime/Temporal/PlainDateTime.cpp",
    "Runtime/Temporal/PlainDateTimeConstructor.cpp",
    "Runtime/Temporal/PlainDateTimePrototype.cpp",
    "Runtime/Temporal/PlainMonthDay.cpp",
    "Runtime/Temporal/PlainMonthDayConstructor.cpp",
    "Runtime/Temporal/PlainMonthDayPrototype.cpp",
    "Runtime/Temporal/PlainTime.cpp",
    "Runtime/Temporal/PlainTimeConstructor.cpp",
    "Runtime/Temporal/PlainTimePrototype.cpp",
    "Runtime/Temporal/PlainYearMonth.cpp",
    "Runtime/Temporal/PlainYearMonthConstructor.cpp",
    "Runtime/Temporal/PlainYearMonthPrototype.cpp",
    "Runtime/Temporal/Temporal.cpp",
    "Runtime/Temporal/TimeZone.cpp",
    "Runtime/Temporal/TimeZoneConstructor.cpp",
    "Runtime/Temporal/TimeZonePrototype.cpp",
    "Runtime/Temporal/ZonedDateTime.cpp",
    "Runtime/Temporal/ZonedDateTimeConstructor.cpp",
    "Runtime/Temporal/ZonedDateTimePrototype.cpp",
    "Runtime/ThrowableStringBuilder.cpp",
    "Runtime/TypedArray.cpp",
    "Runtime/TypedArrayConstructor.cpp",
    "Runtime/TypedArrayPrototype.cpp",
    "Runtime/Utf16String.cpp",
    "Runtime/VM.cpp",
    "Runtime/Value.cpp",
    "Runtime/WeakContainer.cpp",
    "Runtime/WeakMap.cpp",
    "Runtime/WeakMapConstructor.cpp",
    "Runtime/WeakMapPrototype.cpp",
    "Runtime/WeakRef.cpp",
    "Runtime/WeakRefConstructor.cpp",
    "Runtime/WeakRefPrototype.cpp",
    "Runtime/WeakSet.cpp",
    "Runtime/WeakSetConstructor.cpp",
    "Runtime/WeakSetPrototype.cpp",
    "Runtime/WrapForValidIteratorPrototype.cpp",
    "Runtime/WrappedFunction.cpp",
    "Script.cpp",
    "SourceCode.cpp",
    "SourceTextModule.cpp",
    "SyntaxHighlighter.cpp",
    "SyntheticModule.cpp",
    "Token.cpp",
  ]
}
