1 cmake_minimum_required(VERSION 2.8.12)
3 set_property(DIRECTORY . PROPERTY FOLDER "JavaScriptCore")
5 list(APPEND JavaScriptCore_UNIFIED_SOURCE_LIST_FILES
9 set(JavaScriptCore_INCLUDE_DIRECTORIES
10 "${FORWARDING_HEADERS_DIR}"
13 set(JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES
15 "${JAVASCRIPTCORE_DIR}"
16 "${JAVASCRIPTCORE_DIR}/.."
17 "${JAVASCRIPTCORE_DIR}/API"
18 "${JAVASCRIPTCORE_DIR}/ForwardingHeaders"
19 "${JAVASCRIPTCORE_DIR}/assembler"
20 "${JAVASCRIPTCORE_DIR}/b3"
21 "${JAVASCRIPTCORE_DIR}/b3/air"
22 "${JAVASCRIPTCORE_DIR}/bindings"
23 "${JAVASCRIPTCORE_DIR}/builtins"
24 "${JAVASCRIPTCORE_DIR}/bytecode"
25 "${JAVASCRIPTCORE_DIR}/bytecompiler"
26 "${JAVASCRIPTCORE_DIR}/dfg"
27 "${JAVASCRIPTCORE_DIR}/disassembler"
28 "${JAVASCRIPTCORE_DIR}/disassembler/udis86"
29 "${JAVASCRIPTCORE_DIR}/disassembler/ARM64"
30 "${JAVASCRIPTCORE_DIR}/domjit"
31 "${JAVASCRIPTCORE_DIR}/ftl"
32 "${JAVASCRIPTCORE_DIR}/heap"
33 "${JAVASCRIPTCORE_DIR}/debugger"
34 "${JAVASCRIPTCORE_DIR}/inspector"
35 "${JAVASCRIPTCORE_DIR}/inspector/agents"
36 "${JAVASCRIPTCORE_DIR}/inspector/augmentable"
37 "${JAVASCRIPTCORE_DIR}/inspector/remote"
38 "${JAVASCRIPTCORE_DIR}/interpreter"
39 "${JAVASCRIPTCORE_DIR}/jit"
40 "${JAVASCRIPTCORE_DIR}/llint"
41 "${JAVASCRIPTCORE_DIR}/parser"
42 "${JAVASCRIPTCORE_DIR}/profiler"
43 "${JAVASCRIPTCORE_DIR}/runtime"
44 "${JAVASCRIPTCORE_DIR}/tools"
45 "${JAVASCRIPTCORE_DIR}/wasm"
46 "${JAVASCRIPTCORE_DIR}/wasm/js"
47 "${JAVASCRIPTCORE_DIR}/yarr"
48 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
49 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector"
50 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/runtime"
51 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/yarr"
54 set(JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES
58 set(JavaScriptCore_OBJECT_LUT_SOURCES
59 runtime/ArrayConstructor.cpp
60 runtime/ArrayIteratorPrototype.cpp
61 runtime/AsyncGeneratorPrototype.cpp
62 runtime/BigIntConstructor.cpp
63 runtime/BigIntPrototype.cpp
64 runtime/BooleanPrototype.cpp
65 runtime/DateConstructor.cpp
66 runtime/DatePrototype.cpp
67 runtime/ErrorPrototype.cpp
68 runtime/GeneratorPrototype.cpp
69 runtime/InspectorInstrumentationObject.cpp
70 runtime/IntlCollatorConstructor.cpp
71 runtime/IntlCollatorPrototype.cpp
72 runtime/IntlDateTimeFormatConstructor.cpp
73 runtime/IntlDateTimeFormatPrototype.cpp
74 runtime/IntlNumberFormatConstructor.cpp
75 runtime/IntlNumberFormatPrototype.cpp
76 runtime/JSDataViewPrototype.cpp
77 runtime/JSGlobalObject.cpp
78 runtime/JSInternalPromiseConstructor.cpp
79 runtime/JSONObject.cpp
80 runtime/JSPromiseConstructor.cpp
81 runtime/JSPromisePrototype.cpp
82 runtime/MapPrototype.cpp
83 runtime/ModuleLoaderPrototype.cpp
84 runtime/NumberConstructor.cpp
85 runtime/NumberPrototype.cpp
86 runtime/ObjectConstructor.cpp
87 runtime/ReflectObject.cpp
88 runtime/RegExpConstructor.cpp
89 runtime/RegExpPrototype.cpp
90 runtime/SetPrototype.cpp
91 runtime/StringConstructor.cpp
92 runtime/StringIteratorPrototype.cpp
93 runtime/StringPrototype.cpp
94 runtime/SymbolConstructor.cpp
95 runtime/SymbolPrototype.cpp
97 wasm/js/WebAssemblyCompileErrorConstructor.cpp
98 wasm/js/WebAssemblyCompileErrorPrototype.cpp
99 wasm/js/WebAssemblyInstanceConstructor.cpp
100 wasm/js/WebAssemblyInstancePrototype.cpp
101 wasm/js/WebAssemblyLinkErrorConstructor.cpp
102 wasm/js/WebAssemblyLinkErrorPrototype.cpp
103 wasm/js/WebAssemblyMemoryConstructor.cpp
104 wasm/js/WebAssemblyMemoryPrototype.cpp
105 wasm/js/WebAssemblyModuleConstructor.cpp
106 wasm/js/WebAssemblyModulePrototype.cpp
107 wasm/js/WebAssemblyPrototype.cpp
108 wasm/js/WebAssemblyRuntimeErrorConstructor.cpp
109 wasm/js/WebAssemblyRuntimeErrorPrototype.cpp
110 wasm/js/WebAssemblyTableConstructor.cpp
111 wasm/js/WebAssemblyTablePrototype.cpp
114 set(JavaScriptCore_LIBRARIES
116 ${ICU_I18N_LIBRARIES}
120 set(JavaScriptCore_SCRIPTS_SOURCES_DIR "${JAVASCRIPTCORE_DIR}/Scripts")
122 # Globbing relies on the fact that generator-specific file names are prefixed with their directory.
123 # Top-level scripts should have a file extension, since they are invoked during the build.
125 set(JavaScriptCore_SCRIPTS_SOURCES_PATHS
126 ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/*.pl
127 ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/*.py
128 ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/builtins/builtins*.py
131 # Force JavaScriptCore to run scripts from the same staging path as WebCore.
132 set(JavaScriptCore_SCRIPTS_DIR "${FORWARDING_HEADERS_DIR}/JavaScriptCore/Scripts")
134 file(MAKE_DIRECTORY ${JavaScriptCore_SCRIPTS_DIR})
136 # The directory flattening performed below mirrors what the Mac port does with private headers.
138 file(GLOB JavaScriptCore_SCRIPTS_SOURCES ${JavaScriptCore_SCRIPTS_SOURCES_PATHS})
140 foreach (_file ${JavaScriptCore_SCRIPTS_SOURCES})
141 get_filename_component(_script "${_file}" NAME)
143 OUTPUT ${JavaScriptCore_SCRIPTS_DIR}/${_script}
144 MAIN_DEPENDENCY ${_file}
145 WORKING_DIRECTORY ${DERIVED_SOURCES_DIR}
146 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${_file} ${JavaScriptCore_SCRIPTS_DIR}/${_script}
148 list(APPEND JavaScriptCore_SCRIPTS ${JavaScriptCore_SCRIPTS_DIR}/${_script})
152 disassembler/udis86/ud_opcode.py
156 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.c ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.h
157 DEPENDS ${UDIS_GEN_DEP}
158 WORKING_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
159 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/disassembler/udis86/ud_itab.py ${JAVASCRIPTCORE_DIR}/disassembler/udis86/optable.xml ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
162 list(APPEND JavaScriptCore_HEADERS
163 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.h
167 llint/LowLevelInterpreter.asm
168 llint/LowLevelInterpreter32_64.asm
169 llint/LowLevelInterpreter64.asm
176 offlineasm/backends.rb
179 offlineasm/instructions.rb
181 offlineasm/offsets.rb
184 offlineasm/registers.rb
186 offlineasm/self_hash.rb
187 offlineasm/settings.rb
188 offlineasm/transform.rb
193 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/BytecodeStructs.h
194 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/generate-bytecode-files
195 DEPENDS ${JAVASCRIPTCORE_DIR}/generate-bytecode-files bytecode/BytecodeList.json
196 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/generate-bytecode-files --bytecodes_h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h --init_bytecodes_asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm --bytecode_structs_h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/BytecodeStructs.h ${JAVASCRIPTCORE_DIR}/bytecode/BytecodeList.json
199 list(APPEND JavaScriptCore_HEADERS
200 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
201 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/BytecodeStructs.h
205 set(OFFLINE_ASM_BACKEND "X86_WIN, X86_64_WIN, C_LOOP")
208 set(OFFLINE_ASM_BACKEND "X86")
209 elseif (WTF_CPU_X86_64)
210 set(OFFLINE_ASM_BACKEND "X86_64")
211 elseif (WTF_CPU_ARM64)
212 set(OFFLINE_ASM_BACKEND "ARM64")
213 elseif (ARM_THUMB2_DETECTED)
214 set(OFFLINE_ASM_BACKEND "ARMv7")
215 elseif (ARM_TRADITIONAL_DETECTED)
216 set(OFFLINE_ASM_BACKEND "ARMv7_TRADITIONAL")
217 elseif (WTF_CPU_MIPS)
218 set(OFFLINE_ASM_BACKEND "MIPS")
222 set(OFFLINE_ASM_BACKEND "C_LOOP")
227 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
228 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb
229 DEPENDS ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
230 COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb -I${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h ${OFFLINE_ASM_BACKEND}
233 # We add the header files directly to the ADD_EXECUTABLE call instead of setting the
234 # OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb and
235 # generate-bytecode-files may not regenerate the .h files in case the hash it calculates does not change.
236 # In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMANDs above have
237 # changed the command will always be called because the mtime of the .h files will
238 # always be older than that of their dependencies.
239 # Additionally, setting the OBJECT_DEPENDS property will make the .h files a Makefile
240 # dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will
241 # actually be run multiple times!
242 add_executable(LLIntOffsetsExtractor
243 ${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp
244 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/BytecodeStructs.h
246 target_link_libraries(LLIntOffsetsExtractor WTF)
248 # The build system will execute asm.rb every time LLIntOffsetsExtractor's mtime is newer than
249 # LLIntAssembly.h's mtime. The problem we have here is: asm.rb has some built-in optimization
250 # that generates a checksum of the LLIntOffsetsExtractor binary, if the checksum of the new
251 # LLIntOffsetsExtractor matches, no output is generated. To make this target consistent and avoid
252 # running this command for every build, we artificially update LLIntAssembly.h's mtime (using touch)
253 # after every asm.rb run.
255 set(LLIntOutput LowLevelInterpreterWin.asm)
256 set(OFFLINE_ASM_ARGS --assembler=MASM)
258 set(LLIntOutput LLIntAssembly.h)
262 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${LLIntOutput}
263 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb
264 DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
265 COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb -I${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm $<TARGET_FILE:LLIntOffsetsExtractor> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${LLIntOutput} ${OFFLINE_ASM_ARGS}
266 COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${LLIntOutput}
267 WORKING_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
270 # The explanation for not making LLIntAssembly.h part of the OBJECT_DEPENDS property of some of
271 # the .cpp files below is similar to the one in the previous comment. However, since these .cpp
272 # files are used to build JavaScriptCore itself, we can just add LLIntAssembly.h to JSC_HEADERS
273 # since it is used in the add_library() call at the end of this file.
275 enable_language(ASM_MASM)
276 if (CMAKE_SIZEOF_VOID_P EQUAL 4)
277 # Win32 needs /safeseh with assembly, but Win64 does not.
278 set(MASM_EXECUTABLE ml)
279 set(LLINT_MASM_FLAGS /safeseh /c /Fo)
281 set(MASM_EXECUTABLE ml64)
282 set(LLINT_MASM_FLAGS /c /Fo)
285 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LowLevelInterpreterWin.obj
286 DEPENDS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LowLevelInterpreterWin.asm
287 COMMAND ${MASM_EXECUTABLE} ${LLINT_MASM_FLAGS} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LowLevelInterpreterWin.obj ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LowLevelInterpreterWin.asm
289 list(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LowLevelInterpreterWin.obj)
291 list(APPEND JavaScriptCore_HEADERS
292 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
296 # WebAssembly generator
298 macro(GENERATE_PYTHON _generator _additional_deps _input _output)
301 MAIN_DEPENDENCY ${_generator}
302 DEPENDS ${_input} ${_additional_deps}
303 COMMAND ${PYTHON_EXECUTABLE} ${_generator} ${_input} ${_output}
305 list(APPEND JavaScriptCore_HEADERS ${_output})
306 WEBKIT_ADD_SOURCE_DEPENDENCIES(${_input} ${_output})
308 GENERATE_PYTHON(${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasmOpsHeader.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasm.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/wasm.json ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WasmOps.h)
309 GENERATE_PYTHON(${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasmValidateInlinesHeader.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasm.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/wasm.json ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WasmValidateInlines.h)
310 GENERATE_PYTHON(${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasmB3IRGeneratorInlinesHeader.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasm.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/wasm.json ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WasmB3IRGeneratorInlines.h)
314 set(HASH_LUT_GENERATOR ${CMAKE_CURRENT_SOURCE_DIR}/create_hash_table)
315 macro(GENERATE_HASH_LUT _input _output)
318 MAIN_DEPENDENCY ${HASH_LUT_GENERATOR}
320 COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} > ${_output}
322 list(APPEND JavaScriptCore_HEADERS ${_output})
323 WEBKIT_ADD_SOURCE_DEPENDENCIES(${_input} ${_output})
326 # GENERATOR 1-A: LUT creator
328 foreach (_file ${JavaScriptCore_OBJECT_LUT_SOURCES})
329 get_filename_component(_name ${_file} NAME_WE)
330 GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/${_file} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
333 set(JavaScriptCore_FORWARDING_HEADERS
336 API/JSCTestRunnerUtils.h
339 API/JSContextRefPrivate.h
340 API/JSHeapFinalizerPrivate.h
342 API/JSObjectRefPrivate.h
345 API/JSStringRefBSTR.h
347 API/JSStringRefPrivate.h
350 API/JSWeakObjectMapRefInternal.h
354 API/WebKitAvailability.h
356 assembler/ARM64Assembler.h
357 assembler/ARMAssembler.h
358 assembler/ARMv7Assembler.h
359 assembler/AbortReason.h
360 assembler/AbstractMacroAssembler.h
361 assembler/AssemblerBuffer.h
362 assembler/AssemblerBufferWithConstantPool.h
363 assembler/AssemblerCommon.h
365 assembler/CodeLocation.h
366 assembler/LinkBuffer.h
367 assembler/MIPSAssembler.h
368 assembler/MacroAssembler.h
369 assembler/MacroAssemblerARM.h
370 assembler/MacroAssemblerARM64.h
371 assembler/MacroAssemblerARMv7.h
372 assembler/MacroAssemblerCodeRef.h
373 assembler/MacroAssemblerHelpers.h
374 assembler/MacroAssemblerMIPS.h
375 assembler/MacroAssemblerX86.h
376 assembler/MacroAssemblerX86Common.h
377 assembler/MacroAssemblerX86_64.h
379 assembler/X86Assembler.h
381 bindings/ScriptFunctionCall.h
382 bindings/ScriptObject.h
383 bindings/ScriptValue.h
385 builtins/BuiltinNames.h
386 builtins/BuiltinUtils.h
388 bytecode/ArrayAllocationProfile.h
389 bytecode/ArrayProfile.h
391 bytecode/BytecodeConventions.h
392 bytecode/BytecodeIntrinsicRegistry.h
394 bytecode/CallLinkInfo.h
396 bytecode/CallVariant.h
398 bytecode/CodeBlockHash.h
399 bytecode/CodeOrigin.h
401 bytecode/DFGExitProfile.h
402 bytecode/DataFormat.h
403 bytecode/DirectEvalCodeCache.h
404 bytecode/ExecutableInfo.h
405 bytecode/ExecutableToCodeBlockEdge.h
406 bytecode/ExecutionCounter.h
408 bytecode/ExitingJITType.h
409 bytecode/ExpressionRangeInfo.h
410 bytecode/HandlerInfo.h
411 bytecode/InlineCallFrame.h
412 bytecode/Instruction.h
413 bytecode/InternalFunctionAllocationProfile.h
415 bytecode/LLIntCallLinkInfo.h
416 bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h
417 bytecode/LazyOperandValueProfile.h
418 bytecode/ObjectAllocationProfile.h
419 bytecode/ObjectPropertyCondition.h
420 bytecode/PropertyCondition.h
421 bytecode/PutByIdFlags.h
422 bytecode/SpecialPointer.h
423 bytecode/SpeculatedType.h
424 bytecode/StructureSet.h
425 bytecode/SuperSampler.h
426 bytecode/ToThisStatus.h
427 bytecode/TypeLocation.h
428 bytecode/UnlinkedCodeBlock.h
429 bytecode/UnlinkedEvalCodeBlock.h
430 bytecode/UnlinkedFunctionExecutable.h
431 bytecode/UnlinkedGlobalCodeBlock.h
432 bytecode/ValueProfile.h
433 bytecode/ValueRecovery.h
434 bytecode/VariableWriteFireDetail.h
435 bytecode/VirtualRegister.h
436 bytecode/Watchpoint.h
438 debugger/Breakpoint.h
440 debugger/DebuggerCallFrame.h
441 debugger/DebuggerParseData.h
442 debugger/DebuggerPrimitives.h
445 dfg/DFGCompilationMode.h
448 domjit/DOMJITAbstractHeap.h
449 domjit/DOMJITCallDOMGetterSnippet.h
450 domjit/DOMJITEffect.h
451 domjit/DOMJITGetterSetter.h
452 domjit/DOMJITHeapRange.h
453 domjit/DOMJITSignature.h
455 heap/AlignedMemoryAllocator.h
456 heap/AllocationFailureMode.h
458 heap/AllocatorForMode.h
459 heap/BlockDirectory.h
460 heap/BlockDirectoryInlines.h
461 heap/CellAttributes.h
463 heap/CellContainerInlines.h
465 heap/CollectionScope.h
466 heap/CollectorPhase.h
467 heap/CompleteSubspace.h
468 heap/ConstraintConcurrency.h
469 heap/ConstraintParallelism.h
470 heap/ConstraintVolatility.h
472 heap/DeleteAllCodeEffort.h
473 heap/DestructionMode.h
474 heap/FastMallocAlignedMemoryAllocator.h
476 heap/FreeListInlines.h
477 heap/GCActivityCallback.h
480 heap/GCDeferralContext.h
481 heap/GCIncomingRefCounted.h
482 heap/GCIncomingRefCountedInlines.h
483 heap/GCIncomingRefCountedSet.h
486 heap/GCSegmentedArray.h
493 heap/HeapCellInlines.h
495 heap/HeapFinalizerCallback.h
498 heap/IncrementalSweeper.h
501 heap/LargeAllocation.h
502 heap/ListableHandler.h
503 heap/LocalAllocator.h
504 heap/LockDuringMarking.h
505 heap/MachineStackMarker.h
508 heap/MarkedBlockInlines.h
509 heap/MarkedBlockSet.h
511 heap/MarkingConstraint.h
515 heap/SimpleMarkingConstraint.h
517 heap/SlotVisitorInlines.h
521 heap/SubspaceInlines.h
522 heap/Synchronousness.h
523 heap/ThreadLocalCache.h
524 heap/TinyBloomFilter.h
525 heap/UnconditionalFinalizer.h
529 heap/WeakHandleOwner.h
532 heap/WeakReferenceHarvester.h
534 heap/WeakSetInlines.h
536 inspector/ConsoleMessage.h
537 inspector/ContentSearchUtilities.h
538 inspector/IdentifiersFactory.h
539 inspector/InjectedScript.h
540 inspector/InjectedScriptBase.h
541 inspector/InjectedScriptHost.h
542 inspector/InjectedScriptManager.h
543 inspector/InjectedScriptModule.h
544 inspector/InspectorAgentBase.h
545 inspector/InspectorAgentRegistry.h
546 inspector/InspectorBackendDispatcher.h
547 inspector/InspectorEnvironment.h
548 inspector/InspectorFrontendChannel.h
549 inspector/InspectorFrontendRouter.h
550 inspector/InspectorProtocolTypes.h
551 inspector/PerGlobalObjectWrapperWorld.h
552 inspector/ScriptArguments.h
553 inspector/ScriptBreakpoint.h
554 inspector/ScriptCallFrame.h
555 inspector/ScriptCallStack.h
556 inspector/ScriptCallStackFactory.h
557 inspector/ScriptDebugListener.h
558 inspector/ScriptDebugServer.h
560 inspector/agents/InspectorAgent.h
561 inspector/agents/InspectorConsoleAgent.h
562 inspector/agents/InspectorDebuggerAgent.h
563 inspector/agents/InspectorHeapAgent.h
564 inspector/agents/InspectorRuntimeAgent.h
565 inspector/agents/InspectorScriptProfilerAgent.h
567 inspector/augmentable/AugmentableInspectorControllerClient.h
569 inspector/remote/RemoteAutomationTarget.h
570 inspector/remote/RemoteControllableTarget.h
571 inspector/remote/RemoteInspectionTarget.h
572 inspector/remote/RemoteInspector.h
574 interpreter/AbstractPC.h
575 interpreter/CallFrame.h
576 interpreter/CalleeBits.h
577 interpreter/FrameTracers.h
578 interpreter/Register.h
579 interpreter/ShadowChicken.h
580 interpreter/StackVisitor.h
581 interpreter/VMEntryRecord.h
583 jit/AssemblyHelpers.h
585 jit/CompactJITCodeMap.h
586 jit/ExecutableAllocator.h
588 jit/GCAwareJITStubRoutine.h
592 jit/JITCompilationEffort.h
593 jit/JITMathICForwards.h
597 jit/PolymorphicCallStubRoutine.h
599 jit/RegisterAtOffset.h
600 jit/RegisterAtOffsetList.h
605 jit/SnippetSlowPathCalls.h
606 jit/SpillRegistersMode.h
607 jit/TagRegistersMode.h
608 jit/TempRegisterSet.h
614 parser/ParserTokens.h
616 parser/SourceProvider.h
617 parser/SourceProviderCache.h
618 parser/SourceProviderCacheItem.h
619 parser/UnlinkedSourceCode.h
620 parser/VariableEnvironment.h
622 profiler/ProfilerBytecode.h
623 profiler/ProfilerBytecodeSequence.h
624 profiler/ProfilerBytecodes.h
625 profiler/ProfilerCompilation.h
626 profiler/ProfilerCompilationKind.h
627 profiler/ProfilerCompiledBytecode.h
628 profiler/ProfilerDatabase.h
629 profiler/ProfilerEvent.h
630 profiler/ProfilerExecutionCounter.h
631 profiler/ProfilerJettisonReason.h
632 profiler/ProfilerOSRExit.h
633 profiler/ProfilerOSRExitSite.h
634 profiler/ProfilerOrigin.h
635 profiler/ProfilerOriginStack.h
636 profiler/ProfilerProfiledBytecodes.h
637 profiler/ProfilerUID.h
639 runtime/AbstractModuleRecord.h
641 runtime/ArityCheckMode.h
642 runtime/ArrayBuffer.h
643 runtime/ArrayBufferSharingMode.h
644 runtime/ArrayBufferView.h
645 runtime/ArrayConventions.h
646 runtime/ArrayPrototype.h
647 runtime/ArrayStorage.h
648 runtime/AuxiliaryBarrier.h
649 runtime/AuxiliaryBarrierInlines.h
650 runtime/BasicBlockLocation.h
651 runtime/BatchedTransitionOptimizer.h
652 runtime/BigIntPrototype.h
653 runtime/BooleanObject.h
654 runtime/BooleanPrototype.h
656 runtime/ButterflyInlines.h
657 runtime/CagedBarrierPtr.h
661 runtime/CodeSpecializationKind.h
662 runtime/CommonIdentifiers.h
663 runtime/CompilationResult.h
665 runtime/ConcurrentJSLock.h
667 runtime/ConsoleClient.h
668 runtime/ConsoleTypes.h
669 runtime/ConstantMode.h
670 runtime/ConstructAbility.h
671 runtime/ConstructData.h
672 runtime/ControlFlowProfiler.h
673 runtime/CustomGetterSetter.h
674 runtime/DOMAnnotation.h
675 runtime/DOMAttributeGetterSetter.h
677 runtime/DateInstance.h
678 runtime/DateInstanceCache.h
679 runtime/DefinePropertyAttributes.h
680 runtime/DirectArgumentsOffset.h
681 runtime/DirectEvalExecutable.h
682 runtime/DisallowScope.h
683 runtime/DisallowVMReentry.h
684 runtime/DumpContext.h
685 runtime/EnumerationMode.h
687 runtime/ErrorHandlingScope.h
688 runtime/ErrorInstance.h
689 runtime/ErrorPrototype.h
690 runtime/EvalExecutable.h
692 runtime/ExceptionEventLocation.h
693 runtime/ExceptionHelpers.h
694 runtime/ExceptionScope.h
695 runtime/ExecutableBase.h
696 runtime/Float32Array.h
697 runtime/Float64Array.h
698 runtime/FunctionConstructor.h
699 runtime/FunctionExecutable.h
700 runtime/FunctionHasExecutedCache.h
701 runtime/FunctionPrototype.h
702 runtime/FunctionRareData.h
703 runtime/GenericOffset.h
704 runtime/GenericTypedArrayView.h
705 runtime/GenericTypedArrayViewInlines.h
707 runtime/HashMapImpl.h
709 runtime/IdentifierInlines.h
710 runtime/IndexingHeader.h
711 runtime/IndexingHeaderInlines.h
712 runtime/IndexingType.h
713 runtime/InferredStructure.h
714 runtime/InferredStructureWatchpoint.h
715 runtime/InferredType.h
716 runtime/InferredTypeTable.h
717 runtime/InferredValue.h
718 runtime/InitializeThreading.h
722 runtime/InternalFunction.h
724 runtime/IterationKind.h
725 runtime/IterationStatus.h
726 runtime/IteratorOperations.h
727 runtime/IteratorPrototype.h
728 runtime/JSAPIValueWrapper.h
730 runtime/JSArrayBuffer.h
731 runtime/JSArrayBufferPrototype.h
732 runtime/JSArrayBufferView.h
733 runtime/JSArrayBufferViewInlines.h
737 runtime/JSCJSValueInlines.h
741 runtime/JSCellInlines.h
743 runtime/JSDestructibleObject.h
744 runtime/JSDestructibleObjectHeapCellType.h
745 runtime/JSExportMacros.h
747 runtime/JSFunctionInlines.h
748 runtime/JSGenericTypedArrayView.h
749 runtime/JSGenericTypedArrayViewInlines.h
750 runtime/JSGenericTypedArrayViewPrototype.h
751 runtime/JSGenericTypedArrayViewPrototypeInlines.h
752 runtime/JSGlobalLexicalEnvironment.h
753 runtime/JSGlobalObject.h
754 runtime/JSGlobalObjectInlines.h
755 runtime/JSInternalPromise.h
756 runtime/JSInternalPromiseDeferred.h
759 runtime/JSMapIterator.h
760 runtime/JSModuleLoader.h
761 runtime/JSModuleRecord.h
762 runtime/JSNativeStdFunction.h
765 runtime/JSObjectInlines.h
767 runtime/JSPromiseConstructor.h
768 runtime/JSPromiseDeferred.h
770 runtime/JSRunLoopTimer.h
772 runtime/JSScriptFetchParameters.h
773 runtime/JSScriptFetcher.h
774 runtime/JSSegmentedVariableObject.h
775 runtime/JSSegmentedVariableObjectHeapCellType.h
777 runtime/JSSetIterator.h
778 runtime/JSSourceCode.h
780 runtime/JSStringInlines.h
781 runtime/JSSymbolTableObject.h
784 runtime/JSTypedArrays.h
785 runtime/JSWithScope.h
786 runtime/JSWrapperObject.h
787 runtime/LazyClassStructure.h
788 runtime/LazyProperty.h
790 runtime/MatchResult.h
792 runtime/MemoryStatistics.h
794 runtime/ModuleProgramExecutable.h
795 runtime/NativeExecutable.h
796 runtime/NumberObject.h
797 runtime/NumberPrototype.h
798 runtime/NumericStrings.h
799 runtime/ObjectConstructor.h
800 runtime/ObjectInitializationScope.h
801 runtime/ObjectPrototype.h
805 runtime/PrivateName.h
806 runtime/ProgramExecutable.h
807 runtime/PromiseDeferredTimer.h
808 runtime/PropertyDescriptor.h
809 runtime/PropertyMapHashTable.h
810 runtime/PropertyName.h
811 runtime/PropertyNameArray.h
812 runtime/PropertyOffset.h
813 runtime/PropertySlot.h
814 runtime/PropertyStorage.h
816 runtime/PrototypeKey.h
818 runtime/PutDirectIndexMode.h
819 runtime/PutPropertySlot.h
822 runtime/RegExpObject.h
823 runtime/RuntimeFlags.h
824 runtime/RuntimeType.h
825 runtime/SamplingProfiler.h
826 runtime/ScopeOffset.h
827 runtime/ScopedArgumentsTable.h
828 runtime/ScriptExecutable.h
829 runtime/ScriptFetchParameters.h
830 runtime/ScriptFetcher.h
831 runtime/SlowPathReturnType.h
832 runtime/SmallStrings.h
833 runtime/SourceOrigin.h
834 runtime/SparseArrayValueMap.h
835 runtime/StackAlignment.h
837 runtime/StringObject.h
838 runtime/StringPrototype.h
840 runtime/StructureCache.h
841 runtime/StructureChain.h
842 runtime/StructureIDBlob.h
843 runtime/StructureIDTable.h
844 runtime/StructureInlines.h
845 runtime/StructureRareData.h
846 runtime/StructureRareDataInlines.h
847 runtime/StructureTransitionTable.h
849 runtime/SymbolPrototype.h
850 runtime/SymbolTable.h
851 runtime/TemplateRegistry.h
852 runtime/TemplateRegistryKey.h
853 runtime/TemplateRegistryKeyTable.h
854 runtime/TestRunnerUtils.h
856 runtime/ToNativeFromValue.h
859 runtime/TypedArrayAdaptors.h
860 runtime/TypedArrayController.h
861 runtime/TypedArrayInlines.h
862 runtime/TypedArrayType.h
863 runtime/TypedArrays.h
865 runtime/Uint16Array.h
866 runtime/Uint32Array.h
868 runtime/Uint8ClampedArray.h
870 runtime/VMEntryScope.h
876 runtime/WeakGCMapInlines.h
877 runtime/WriteBarrier.h
878 runtime/WriteBarrierInlines.h
883 wasm/WasmExceptionType.h
884 wasm/WasmFaultSignalHandler.h
885 wasm/WasmIndexOrName.h
887 wasm/WasmMemoryMode.h
890 wasm/WasmNameSection.h
892 wasm/WasmTierUpCount.h
894 wasm/js/JSWebAssemblyModule.h
896 yarr/RegularExpression.h
899 yarr/YarrInterpreter.h
903 yarr/YarrUnicodeProperties.h
906 # GENERATOR 1-B: particular LUT creator (for 1 file only)
907 GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h)
909 file(MAKE_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/yarr)
911 #GENERATOR: "RegExpJitTables.h": tables used by Yarr
913 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/yarr/RegExpJitTables.h
914 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/yarr/create_regex_tables
915 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/yarr/create_regex_tables ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/yarr/RegExpJitTables.h
917 list(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/yarr/RegExpJitTables.h)
918 WEBKIT_ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/yarr/YarrPattern.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/yarr/RegExpJitTables.h)
921 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/yarr/UnicodePatternTables.h
922 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/Scripts/generateYarrUnicodePropertyTables.py
923 DEPENDS ${JAVASCRIPTCORE_DIR}/Scripts/hasher.py ${JAVASCRIPTCORE_DIR}/ucd/DerivedBinaryProperties.txt ${JAVASCRIPTCORE_DIR}/ucd/DerivedCoreProperties.txt ${JAVASCRIPTCORE_DIR}/ucd/DerivedNormalizationProps.txt ${JAVASCRIPTCORE_DIR}/ucd/PropList.txt ${JAVASCRIPTCORE_DIR}/ucd/PropertyAliases.txt ${JAVASCRIPTCORE_DIR}/ucd/PropertyValueAliases.txt ${JAVASCRIPTCORE_DIR}/ucd/ScriptExtensions.txt ${JAVASCRIPTCORE_DIR}/ucd/Scripts.txt ${JAVASCRIPTCORE_DIR}/ucd/UnicodeData.txt ${JAVASCRIPTCORE_DIR}/ucd/emoji-data.txt
924 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/Scripts/generateYarrUnicodePropertyTables.py ${JAVASCRIPTCORE_DIR}/ucd ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/yarr/UnicodePatternTables.h
926 list(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/yarr/UnicodePatternTables.h)
927 WEBKIT_ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/yarr/UnicodePatternTables.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/yarr/UnicodePatternTables.h)
930 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/yarr/YarrCanonicalizeUnicode.cpp
931 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/yarr/generateYarrCanonicalizeUnicode
932 DEPENDS ${JAVASCRIPTCORE_DIR}/ucd/CaseFolding.txt
933 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/yarr/generateYarrCanonicalizeUnicode ${JAVASCRIPTCORE_DIR}/ucd/CaseFolding.txt ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/yarr/YarrCanonicalizeUnicode.cpp
936 #GENERATOR: "KeywordLookup.h": keyword decision tree used by the lexer
938 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
939 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py
940 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table
941 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py ${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
943 list(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
944 WEBKIT_ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
947 # Inspector Interfaces
949 set(JavaScriptCore_INSPECTOR_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}/inspector/scripts")
951 set(JavaScriptCore_INSPECTOR_PROTOCOL_SCRIPTS
952 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-inspector-protocol-bindings.py
953 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/cpp_generator.py
954 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/cpp_generator_templates.py
955 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_js_backend_commands.py
956 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_backend_dispatcher_header.py
957 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_backend_dispatcher_implementation.py
958 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_frontend_dispatcher_header.py
959 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_frontend_dispatcher_implementation.py
960 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_protocol_types_header.py
961 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_protocol_types_implementation.py
962 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generator.py
963 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generator_templates.py
964 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/__init__.py
965 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/models.py
968 set(JavaScriptCore_INSPECTOR_DOMAINS
969 ${JAVASCRIPTCORE_DIR}/inspector/protocol/ApplicationCache.json
970 ${JAVASCRIPTCORE_DIR}/inspector/protocol/CSS.json
971 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Canvas.json
972 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Console.json
973 ${JAVASCRIPTCORE_DIR}/inspector/protocol/DOM.json
974 ${JAVASCRIPTCORE_DIR}/inspector/protocol/DOMDebugger.json
975 ${JAVASCRIPTCORE_DIR}/inspector/protocol/DOMStorage.json
976 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Database.json
977 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Debugger.json
978 ${JAVASCRIPTCORE_DIR}/inspector/protocol/GenericTypes.json
979 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Heap.json
980 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Inspector.json
981 ${JAVASCRIPTCORE_DIR}/inspector/protocol/LayerTree.json
982 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Network.json
983 ${JAVASCRIPTCORE_DIR}/inspector/protocol/OverlayTypes.json
984 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Page.json
985 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Recording.json
986 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Runtime.json
987 ${JAVASCRIPTCORE_DIR}/inspector/protocol/ScriptProfiler.json
988 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Timeline.json
989 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Worker.json
992 if (ENABLE_INDEXED_DATABASE)
993 list(APPEND JavaScriptCore_INSPECTOR_DOMAINS
994 ${JAVASCRIPTCORE_DIR}/inspector/protocol/IndexedDB.json
998 if (ENABLE_RESOURCE_USAGE)
999 list(APPEND JavaScriptCore_INSPECTOR_DOMAINS
1000 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Memory.json
1004 if (ENABLE_SERVICE_WORKER)
1005 list(APPEND JavaScriptCore_INSPECTOR_DOMAINS
1006 ${JAVASCRIPTCORE_DIR}/inspector/protocol/ServiceWorker.json
1011 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
1012 MAIN_DEPENDENCY ${JavaScriptCore_SCRIPTS_DIR}/generate-combined-inspector-json.py
1013 DEPENDS ${JavaScriptCore_INSPECTOR_DOMAINS}
1014 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/generate-combined-inspector-json.py ${JavaScriptCore_INSPECTOR_DOMAINS} > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
1017 # Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders
1018 file(MAKE_DIRECTORY ${DERIVED_SOURCES_WEBINSPECTORUI_DIR}/UserInterface/Protocol)
1019 file(MAKE_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector)
1021 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.cpp
1022 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.h
1023 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.cpp
1024 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.h
1025 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.cpp
1026 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.h
1027 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendCommands.js
1028 MAIN_DEPENDENCY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
1029 DEPENDS ${JavaScriptCore_INSPECTOR_PROTOCOL_SCRIPTS}
1030 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-inspector-protocol-bindings.py --outputDir "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector" --framework JavaScriptCore ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
1035 set(BUILTINS_GENERATOR_SCRIPTS
1036 ${JavaScriptCore_SCRIPTS_DIR}/builtins.py
1037 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generator.py
1038 ${JavaScriptCore_SCRIPTS_DIR}/builtins_model.py
1039 ${JavaScriptCore_SCRIPTS_DIR}/builtins_templates.py
1040 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_combined_header.py
1041 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_combined_implementation.py
1042 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_header.py
1043 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_implementation.py
1044 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_wrapper_header.py
1045 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_wrapper_implementation.py
1046 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_internals_wrapper_header.py
1047 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_internals_wrapper_implementation.py
1048 ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py
1049 ${JavaScriptCore_SCRIPTS_DIR}/lazywriter.py
1052 set(JavaScriptCore_BUILTINS_SOURCES
1053 ${JAVASCRIPTCORE_DIR}/builtins/AsyncFromSyncIteratorPrototype.js
1054 ${JAVASCRIPTCORE_DIR}/builtins/ArrayConstructor.js
1055 ${JAVASCRIPTCORE_DIR}/builtins/ArrayIteratorPrototype.js
1056 ${JAVASCRIPTCORE_DIR}/builtins/ArrayPrototype.js
1057 ${JAVASCRIPTCORE_DIR}/builtins/AsyncFunctionPrototype.js
1058 ${JAVASCRIPTCORE_DIR}/builtins/AsyncIteratorPrototype.js
1059 ${JAVASCRIPTCORE_DIR}/builtins/AsyncGeneratorPrototype.js
1060 ${JAVASCRIPTCORE_DIR}/builtins/DatePrototype.js
1061 ${JAVASCRIPTCORE_DIR}/builtins/FunctionPrototype.js
1062 ${JAVASCRIPTCORE_DIR}/builtins/GeneratorPrototype.js
1063 ${JAVASCRIPTCORE_DIR}/builtins/GlobalObject.js
1064 ${JAVASCRIPTCORE_DIR}/builtins/GlobalOperations.js
1065 ${JAVASCRIPTCORE_DIR}/builtins/InspectorInstrumentationObject.js
1066 ${JAVASCRIPTCORE_DIR}/builtins/InternalPromiseConstructor.js
1067 ${JAVASCRIPTCORE_DIR}/builtins/IteratorHelpers.js
1068 ${JAVASCRIPTCORE_DIR}/builtins/IteratorPrototype.js
1069 ${JAVASCRIPTCORE_DIR}/builtins/MapIteratorPrototype.js
1070 ${JAVASCRIPTCORE_DIR}/builtins/MapPrototype.js
1071 ${JAVASCRIPTCORE_DIR}/builtins/ModuleLoaderPrototype.js
1072 ${JAVASCRIPTCORE_DIR}/builtins/NumberConstructor.js
1073 ${JAVASCRIPTCORE_DIR}/builtins/NumberPrototype.js
1074 ${JAVASCRIPTCORE_DIR}/builtins/ObjectConstructor.js
1075 ${JAVASCRIPTCORE_DIR}/builtins/PromiseConstructor.js
1076 ${JAVASCRIPTCORE_DIR}/builtins/PromiseOperations.js
1077 ${JAVASCRIPTCORE_DIR}/builtins/PromisePrototype.js
1078 ${JAVASCRIPTCORE_DIR}/builtins/ReflectObject.js
1079 ${JAVASCRIPTCORE_DIR}/builtins/RegExpPrototype.js
1080 ${JAVASCRIPTCORE_DIR}/builtins/SetIteratorPrototype.js
1081 ${JAVASCRIPTCORE_DIR}/builtins/SetPrototype.js
1082 ${JAVASCRIPTCORE_DIR}/builtins/StringConstructor.js
1083 ${JAVASCRIPTCORE_DIR}/builtins/StringIteratorPrototype.js
1084 ${JAVASCRIPTCORE_DIR}/builtins/StringPrototype.js
1085 ${JAVASCRIPTCORE_DIR}/builtins/TypedArrayConstructor.js
1086 ${JAVASCRIPTCORE_DIR}/builtins/TypedArrayPrototype.js
1090 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
1091 MAIN_DEPENDENCY ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py
1092 DEPENDS ${JavaScriptCore_BUILTINS_SOURCES} ${BUILTINS_GENERATOR_SCRIPTS}
1093 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py --framework JavaScriptCore --output-directory ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} --combined ${JavaScriptCore_BUILTINS_SOURCES}
1096 list(APPEND JavaScriptCore_HEADERS
1097 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.h
1098 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.h
1099 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.h
1100 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
1104 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/AirOpcode.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/AirOpcodeGenerated.h
1105 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/b3/air/AirOpcode.opcodes
1106 DEPENDS ${JAVASCRIPTCORE_DIR}/b3/air/opcode_generator.rb
1107 COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/b3/air/opcode_generator.rb ${JAVASCRIPTCORE_DIR}/b3/air/AirOpcode.opcodes VERBATIM
1108 WORKING_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
1111 list(APPEND JavaScriptCore_HEADERS
1112 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/AirOpcode.h
1113 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/AirOpcodeGenerated.h
1117 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
1118 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js
1119 DEPENDS ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_SCRIPTS_DIR}/jsmin.py
1120 COMMAND ${CMAKE_COMMAND} -E echo "//# sourceURL=__InjectedScript_InjectedScriptSource.js" > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
1121 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/jsmin.py < ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js >> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
1122 COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl InjectedScriptSource_js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h
1125 list(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h)
1128 if (MSVC AND ENABLE_JIT)
1130 OUTPUT ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj
1131 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm
1132 COMMAND ml64 -nologo -c -Fo ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm
1135 list(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj)
1139 WEBKIT_FRAMEWORK_DECLARE(JavaScriptCore)
1140 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
1142 WEBKIT_MAKE_FORWARDING_HEADERS(JavaScriptCore
1143 FILES ${JavaScriptCore_FORWARDING_HEADERS}
1144 DERIVED_SOURCE_DIRECTORIES ${DERIVED_SOURCES_DIR}/JavaScriptCore ${DERIVED_SOURCES_DIR}/JavaScriptCore/inspector
1148 target_include_directories(LLIntOffsetsExtractor PRIVATE
1149 ${JavaScriptCore_INCLUDE_DIRECTORIES}
1150 ${JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES}
1152 target_include_directories(LLIntOffsetsExtractor SYSTEM PRIVATE ${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES})
1154 add_subdirectory(shell)
1156 WEBKIT_COMPUTE_SOURCES(JavaScriptCore)
1157 WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
1158 WEBKIT_FRAMEWORK(JavaScriptCore)
1160 if (NOT "${PORT}" STREQUAL "Mac")
1161 if (${JavaScriptCore_LIBRARY_TYPE} STREQUAL "SHARED")
1162 WEBKIT_POPULATE_LIBRARY_VERSION(JAVASCRIPTCORE)
1163 set_target_properties(JavaScriptCore PROPERTIES VERSION ${JAVASCRIPTCORE_VERSION} SOVERSION ${JAVASCRIPTCORE_VERSION_MAJOR})
1164 install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}")
1168 # Force staging of shared scripts, even if they aren't directly used to build JavaScriptCore.
1170 add_custom_target(stageSharedScripts DEPENDS ${JavaScriptCore_SCRIPTS})
1171 add_dependencies(JavaScriptCore stageSharedScripts)
1175 TARGET JavaScriptCore
1177 COMMAND ${PERL_EXECUTABLE} ${WEBKIT_LIBRARIES_DIR}/tools/scripts/auto-version.pl ${DERIVED_SOURCES_DIR}
1181 TARGET JavaScriptCore
1183 COMMAND ${PERL_EXECUTABLE} ${WEBKIT_LIBRARIES_DIR}/tools/scripts/version-stamp.pl ${DERIVED_SOURCES_DIR} $<TARGET_FILE:JavaScriptCore>