1 cmake_minimum_required(VERSION 2.8.12)
3 set_property(DIRECTORY . PROPERTY FOLDER "JavaScriptCore")
5 set(JavaScriptCore_INCLUDE_DIRECTORIES
7 "${JAVASCRIPTCORE_DIR}"
8 "${JAVASCRIPTCORE_DIR}/.."
9 "${JAVASCRIPTCORE_DIR}/API"
10 "${JAVASCRIPTCORE_DIR}/ForwardingHeaders"
11 "${JAVASCRIPTCORE_DIR}/assembler"
12 "${JAVASCRIPTCORE_DIR}/b3"
13 "${JAVASCRIPTCORE_DIR}/b3/air"
14 "${JAVASCRIPTCORE_DIR}/bindings"
15 "${JAVASCRIPTCORE_DIR}/builtins"
16 "${JAVASCRIPTCORE_DIR}/bytecode"
17 "${JAVASCRIPTCORE_DIR}/bytecompiler"
18 "${JAVASCRIPTCORE_DIR}/dfg"
19 "${JAVASCRIPTCORE_DIR}/disassembler"
20 "${JAVASCRIPTCORE_DIR}/disassembler/udis86"
21 "${JAVASCRIPTCORE_DIR}/disassembler/ARM64"
22 "${JAVASCRIPTCORE_DIR}/domjit"
23 "${JAVASCRIPTCORE_DIR}/ftl"
24 "${JAVASCRIPTCORE_DIR}/heap"
25 "${JAVASCRIPTCORE_DIR}/debugger"
26 "${JAVASCRIPTCORE_DIR}/inspector"
27 "${JAVASCRIPTCORE_DIR}/inspector/agents"
28 "${JAVASCRIPTCORE_DIR}/inspector/augmentable"
29 "${JAVASCRIPTCORE_DIR}/inspector/remote"
30 "${JAVASCRIPTCORE_DIR}/interpreter"
31 "${JAVASCRIPTCORE_DIR}/jit"
32 "${JAVASCRIPTCORE_DIR}/llint"
33 "${JAVASCRIPTCORE_DIR}/parser"
34 "${JAVASCRIPTCORE_DIR}/profiler"
35 "${JAVASCRIPTCORE_DIR}/replay"
36 "${JAVASCRIPTCORE_DIR}/runtime"
37 "${JAVASCRIPTCORE_DIR}/tools"
38 "${JAVASCRIPTCORE_DIR}/wasm"
39 "${JAVASCRIPTCORE_DIR}/wasm/js"
40 "${JAVASCRIPTCORE_DIR}/yarr"
41 "${FORWARDING_HEADERS_DIR}"
42 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
43 "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector"
46 set(JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES
50 set(JavaScriptCore_SOURCES
52 API/JSCTestRunnerUtils.cpp
53 API/JSCallbackConstructor.cpp
54 API/JSCallbackFunction.cpp
55 API/JSCallbackObject.cpp
58 API/JSHeapFinalizerPrivate.cpp
59 API/JSMarkingConstraintPrivate.cpp
65 API/JSWeakObjectMapRefPrivate.cpp
67 API/OpaqueJSString.cpp
69 assembler/ARMAssembler.cpp
70 assembler/AbstractMacroAssembler.cpp
71 assembler/LinkBuffer.cpp
72 assembler/MacroAssembler.cpp
73 assembler/MacroAssemblerARM.cpp
74 assembler/MacroAssemblerARMv7.cpp
75 assembler/MacroAssemblerCodeRef.cpp
76 assembler/MacroAssemblerPrinter.cpp
77 assembler/MacroAssemblerX86Common.cpp
80 b3/air/AirAllocateRegistersAndStackByLinearScan.cpp
81 b3/air/AirAllocateRegistersByGraphColoring.cpp
82 b3/air/AirAllocateStackByGraphColoring.cpp
84 b3/air/AirBasicBlock.cpp
85 b3/air/AirBlockInsertionSet.cpp
86 b3/air/AirBreakCriticalEdges.cpp
87 b3/air/AirCCallSpecial.cpp
88 b3/air/AirCCallingConvention.cpp
91 b3/air/AirDisassembler.cpp
92 b3/air/AirEliminateDeadCode.cpp
93 b3/air/AirEmitShuffle.cpp
94 b3/air/AirFixObviousSpills.cpp
95 b3/air/AirFixPartialRegisterStalls.cpp
96 b3/air/AirFixSpillsAfterTerminals.cpp
97 b3/air/AirGenerate.cpp
98 b3/air/AirGenerated.cpp
99 b3/air/AirHandleCalleeSaves.cpp
100 b3/air/AirInsertionSet.cpp
103 b3/air/AirLogRegisterPressure.cpp
104 b3/air/AirLowerAfterRegAlloc.cpp
105 b3/air/AirLowerEntrySwitch.cpp
106 b3/air/AirLowerMacros.cpp
107 b3/air/AirLowerStackArgs.cpp
108 b3/air/AirOptimizeBlockOrder.cpp
109 b3/air/AirPadInterference.cpp
110 b3/air/AirPhaseInsertionSet.cpp
111 b3/air/AirPhaseScope.cpp
112 b3/air/AirPrintSpecial.cpp
113 b3/air/AirRegLiveness.cpp
114 b3/air/AirReportUsedRegisters.cpp
115 b3/air/AirSimplifyCFG.cpp
116 b3/air/AirSpecial.cpp
117 b3/air/AirStackAllocation.cpp
118 b3/air/AirStackSlot.cpp
119 b3/air/AirStackSlotKind.cpp
121 b3/air/AirTmpWidth.cpp
122 b3/air/AirValidate.cpp
124 b3/B3ArgumentRegValue.cpp
128 b3/B3BlockInsertionSet.cpp
129 b3/B3BreakCriticalEdges.cpp
131 b3/B3CaseCollection.cpp
132 b3/B3CheckSpecial.cpp
135 b3/B3Commutativity.cpp
138 b3/B3Const32Value.cpp
139 b3/B3Const64Value.cpp
140 b3/B3ConstDoubleValue.cpp
141 b3/B3ConstFloatValue.cpp
142 b3/B3ConstrainedValue.cpp
144 b3/B3DuplicateTails.cpp
146 b3/B3EliminateCommonSubexpressions.cpp
149 b3/B3FoldPathConstants.cpp
150 b3/B3FrequencyClass.cpp
152 b3/B3InferSwitches.cpp
153 b3/B3InsertionSet.cpp
155 b3/B3LegalizeMemoryOffsets.cpp
157 b3/B3LowerMacrosAfterOptimizations.cpp
161 b3/B3MoveConstants.cpp
162 b3/B3OpaqueByproducts.cpp
166 b3/B3PatchpointSpecial.cpp
167 b3/B3PatchpointValue.cpp
172 b3/B3ReduceDoubleToFloat.cpp
173 b3/B3ReduceStrength.cpp
174 b3/B3SSACalculator.cpp
175 b3/B3SlotBaseValue.cpp
176 b3/B3StackmapGenerationParams.cpp
177 b3/B3StackmapSpecial.cpp
178 b3/B3StackmapValue.cpp
184 b3/B3UpsilonValue.cpp
191 b3/B3VariableLiveness.cpp
192 b3/B3VariableValue.cpp
193 b3/B3WasmAddressValue.cpp
194 b3/B3WasmBoundsCheckValue.cpp
197 bindings/ScriptFunctionCall.cpp
198 bindings/ScriptObject.cpp
199 bindings/ScriptValue.cpp
201 builtins/BuiltinExecutables.cpp
202 builtins/BuiltinExecutableCreator.cpp
204 bytecode/AccessCase.cpp
205 bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp
206 bytecode/ArithProfile.cpp
207 bytecode/ArrayAllocationProfile.cpp
208 bytecode/ArrayProfile.cpp
209 bytecode/BytecodeBasicBlock.cpp
210 bytecode/BytecodeDumper.cpp
211 bytecode/BytecodeGeneratorification.cpp
212 bytecode/BytecodeIntrinsicRegistry.cpp
213 bytecode/BytecodeLivenessAnalysis.cpp
214 bytecode/BytecodeRewriter.cpp
215 bytecode/CallEdge.cpp
216 bytecode/CallLinkInfo.cpp
217 bytecode/CallLinkStatus.cpp
218 bytecode/CallMode.cpp
219 bytecode/CallVariant.cpp
220 bytecode/CodeBlock.cpp
221 bytecode/CodeBlockHash.cpp
222 bytecode/CodeBlockJettisoningWatchpoint.cpp
223 bytecode/CodeOrigin.cpp
224 bytecode/CodeType.cpp
225 bytecode/ComplexGetStatus.cpp
226 bytecode/DFGExitProfile.cpp
227 bytecode/DOMJITAccessCasePatchpointParams.cpp
228 bytecode/DataFormat.cpp
229 bytecode/DeferredCompilationCallback.cpp
230 bytecode/DeferredSourceDump.cpp
231 bytecode/DirectEvalCodeCache.cpp
232 bytecode/EvalCodeBlock.cpp
233 bytecode/ExecutionCounter.cpp
234 bytecode/ExitKind.cpp
235 bytecode/ExitingJITType.cpp
236 bytecode/FullCodeOrigin.cpp
237 bytecode/FunctionCodeBlock.cpp
238 bytecode/GetByIdStatus.cpp
239 bytecode/GetByIdVariant.cpp
240 bytecode/GetterSetterAccessCase.cpp
241 bytecode/InlineAccess.cpp
242 bytecode/InlineCallFrame.cpp
243 bytecode/InlineCallFrameSet.cpp
244 bytecode/IntrinsicGetterAccessCase.cpp
245 bytecode/JumpTable.cpp
246 bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp
247 bytecode/LazyOperandValueProfile.cpp
248 bytecode/MethodOfGettingAValueProfile.cpp
249 bytecode/ModuleNamespaceAccessCase.cpp
250 bytecode/ModuleProgramCodeBlock.cpp
251 bytecode/ObjectPropertyCondition.cpp
252 bytecode/ObjectPropertyConditionSet.cpp
254 bytecode/PolymorphicAccess.cpp
255 bytecode/PreciseJumpTargets.cpp
256 bytecode/ProgramCodeBlock.cpp
257 bytecode/PropertyCondition.cpp
258 bytecode/ProxyableAccessCase.cpp
259 bytecode/PutByIdFlags.cpp
260 bytecode/PutByIdStatus.cpp
261 bytecode/PutByIdVariant.cpp
262 bytecode/ReduceWhitespace.cpp
263 bytecode/SpecialPointer.cpp
264 bytecode/SpeculatedType.cpp
265 bytecode/StructureSet.cpp
266 bytecode/StructureStubClearingWatchpoint.cpp
267 bytecode/StructureStubInfo.cpp
268 bytecode/SuperSampler.cpp
269 bytecode/ToThisStatus.cpp
270 bytecode/TrackedReferences.cpp
271 bytecode/UnlinkedCodeBlock.cpp
272 bytecode/UnlinkedEvalCodeBlock.cpp
273 bytecode/UnlinkedFunctionCodeBlock.cpp
274 bytecode/UnlinkedFunctionExecutable.cpp
275 bytecode/UnlinkedInstructionStream.cpp
276 bytecode/UnlinkedModuleProgramCodeBlock.cpp
277 bytecode/UnlinkedProgramCodeBlock.cpp
278 bytecode/ValueRecovery.cpp
279 bytecode/VariableWriteFireDetail.cpp
280 bytecode/VirtualRegister.cpp
281 bytecode/Watchpoint.cpp
283 bytecompiler/BytecodeGenerator.cpp
284 bytecompiler/NodesCodegen.cpp
286 debugger/Debugger.cpp
287 debugger/DebuggerCallFrame.cpp
288 debugger/DebuggerLocation.cpp
289 debugger/DebuggerParseData.cpp
290 debugger/DebuggerScope.cpp
292 dfg/DFGAbstractHeap.cpp
293 dfg/DFGAbstractValue.cpp
294 dfg/DFGAdaptiveInferredPropertyValueWatchpoint.cpp
295 dfg/DFGAdaptiveStructureWatchpoint.cpp
296 dfg/DFGArgumentsEliminationPhase.cpp
297 dfg/DFGArgumentsUtilities.cpp
300 dfg/DFGAtTailAbstractState.cpp
301 dfg/DFGAvailability.cpp
302 dfg/DFGAvailabilityMap.cpp
303 dfg/DFGBackwardsPropagationPhase.cpp
304 dfg/DFGBasicBlock.cpp
305 dfg/DFGBlockInsertionSet.cpp
307 dfg/DFGByteCodeParser.cpp
309 dfg/DFGCFGSimplificationPhase.cpp
310 dfg/DFGCPSRethreadingPhase.cpp
312 dfg/DFGCapabilities.cpp
313 dfg/DFGCleanUpPhase.cpp
314 dfg/DFGClobberSet.cpp
315 dfg/DFGClobberize.cpp
316 dfg/DFGClobbersExitState.cpp
317 dfg/DFGCombinedLiveness.cpp
319 dfg/DFGCommonData.cpp
320 dfg/DFGCompilationKey.cpp
321 dfg/DFGCompilationMode.cpp
322 dfg/DFGConstantFoldingPhase.cpp
323 dfg/DFGConstantHoistingPhase.cpp
324 dfg/DFGCriticalEdgeBreakingPhase.cpp
326 dfg/DFGDOMJITPatchpointParams.cpp
327 dfg/DFGDesiredIdentifiers.cpp
328 dfg/DFGDesiredTransitions.cpp
329 dfg/DFGDesiredWatchpoints.cpp
330 dfg/DFGDesiredWeakReferences.cpp
331 dfg/DFGDisassembler.cpp
336 dfg/DFGFailedFinalizer.cpp
338 dfg/DFGFixupPhase.cpp
339 dfg/DFGFlowIndexing.cpp
340 dfg/DFGFlushFormat.cpp
342 dfg/DFGLiveCatchVariablePreservationPhase.cpp
343 dfg/DFGFrozenValue.cpp
345 dfg/DFGGraphSafepoint.cpp
346 dfg/DFGHeapLocation.cpp
347 dfg/DFGInPlaceAbstractState.cpp
348 dfg/DFGInferredTypeCheck.cpp
349 dfg/DFGInsertionSet.cpp
350 dfg/DFGIntegerCheckCombiningPhase.cpp
351 dfg/DFGIntegerRangeOptimizationPhase.cpp
352 dfg/DFGInvalidationPointInjectionPhase.cpp
354 dfg/DFGJITCompiler.cpp
355 dfg/DFGJITFinalizer.cpp
356 dfg/DFGJumpReplacement.cpp
358 dfg/DFGLazyJSValue.cpp
360 dfg/DFGLivenessAnalysisPhase.cpp
361 dfg/DFGLoopPreHeaderCreationPhase.cpp
362 dfg/DFGMaximalFlushInsertionPhase.cpp
364 dfg/DFGMinifiedGraph.cpp
365 dfg/DFGMinifiedNode.cpp
366 dfg/DFGMovHintRemovalPhase.cpp
367 dfg/DFGMultiGetByOffsetData.cpp
368 dfg/DFGNaturalLoops.cpp
370 dfg/DFGNodeAbstractValuePair.cpp
372 dfg/DFGNodeFlowProjection.cpp
373 dfg/DFGNodeOrigin.cpp
374 dfg/DFGOSRAvailabilityAnalysisPhase.cpp
376 dfg/DFGOSREntrypointCreationPhase.cpp
378 dfg/DFGOSRExitBase.cpp
379 dfg/DFGOSRExitCompiler.cpp
380 dfg/DFGOSRExitCompiler32_64.cpp
381 dfg/DFGOSRExitCompiler64.cpp
382 dfg/DFGOSRExitCompilerCommon.cpp
383 dfg/DFGOSRExitFuzz.cpp
384 dfg/DFGOSRExitJumpPlaceholder.cpp
385 dfg/DFGOSRExitPreparation.cpp
386 dfg/DFGObjectAllocationSinkingPhase.cpp
387 dfg/DFGObjectMaterializationData.cpp
388 dfg/DFGOperations.cpp
389 dfg/DFGPhantomInsertionPhase.cpp
391 dfg/DFGPhiChildren.cpp
393 dfg/DFGPrePostNumbering.cpp
394 dfg/DFGPredictionInjectionPhase.cpp
395 dfg/DFGPredictionPropagationPhase.cpp
396 dfg/DFGPromotedHeapLocation.cpp
398 dfg/DFGPutStackSinkingPhase.cpp
399 dfg/DFGRegisteredStructureSet.cpp
400 dfg/DFGSSACalculator.cpp
401 dfg/DFGSSAConversionPhase.cpp
402 dfg/DFGSSALoweringPhase.cpp
404 dfg/DFGSpeculativeJIT.cpp
405 dfg/DFGSpeculativeJIT32_64.cpp
406 dfg/DFGSpeculativeJIT64.cpp
407 dfg/DFGStackLayoutPhase.cpp
408 dfg/DFGStaticExecutionCountEstimationPhase.cpp
409 dfg/DFGStoreBarrierClusteringPhase.cpp
410 dfg/DFGStoreBarrierInsertionPhase.cpp
411 dfg/DFGStrengthReductionPhase.cpp
412 dfg/DFGStructureAbstractValue.cpp
413 dfg/DFGThreadData.cpp
415 dfg/DFGTierUpCheckInjectionPhase.cpp
416 dfg/DFGToFTLDeferredCompilationCallback.cpp
417 dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp
418 dfg/DFGTransition.cpp
419 dfg/DFGTypeCheckHoistingPhase.cpp
420 dfg/DFGUnificationPhase.cpp
423 dfg/DFGValueSource.cpp
424 dfg/DFGValueStrength.cpp
425 dfg/DFGVarargsForwardingPhase.cpp
426 dfg/DFGVariableAccessData.cpp
427 dfg/DFGVariableAccessDataDump.cpp
428 dfg/DFGVariableEvent.cpp
429 dfg/DFGVariableEventStream.cpp
430 dfg/DFGVirtualRegisterAllocationPhase.cpp
431 dfg/DFGWatchpointCollectionPhase.cpp
434 disassembler/ARM64Disassembler.cpp
435 disassembler/ARMLLVMDisassembler.cpp
436 disassembler/ARMv7Disassembler.cpp
437 disassembler/Disassembler.cpp
438 disassembler/UDis86Disassembler.cpp
439 disassembler/X86Disassembler.cpp
441 disassembler/ARM64/A64DOpcode.cpp
443 disassembler/ARMv7/ARMv7DOpcode.cpp
445 disassembler/udis86/udis86.c
446 disassembler/udis86/udis86_decode.c
447 disassembler/udis86/udis86_itab_holder.c
448 disassembler/udis86/udis86_syn-att.c
449 disassembler/udis86/udis86_syn-intel.c
450 disassembler/udis86/udis86_syn.c
452 domjit/DOMJITAbstractHeap.cpp
453 domjit/DOMJITHeapRange.cpp
455 ftl/FTLAbstractHeap.cpp
456 ftl/FTLAbstractHeapRepository.cpp
457 ftl/FTLAvailableRecovery.cpp
458 ftl/FTLCapabilities.cpp
459 ftl/FTLCommonValues.cpp
461 ftl/FTLDOMJITPatchpointParams.cpp
462 ftl/FTLExceptionTarget.cpp
463 ftl/FTLExitArgument.cpp
464 ftl/FTLExitArgumentForOperand.cpp
465 ftl/FTLExitPropertyValue.cpp
466 ftl/FTLExitTimeObjectMaterialization.cpp
469 ftl/FTLForOSREntryJITCode.cpp
471 ftl/FTLJITFinalizer.cpp
472 ftl/FTLLazySlowPath.cpp
475 ftl/FTLLowerDFGToB3.cpp
478 ftl/FTLOSRExitCompiler.cpp
479 ftl/FTLOSRExitHandle.cpp
480 ftl/FTLOperations.cpp
482 ftl/FTLPatchpointExceptionHandle.cpp
483 ftl/FTLRecoveryOpcode.cpp
484 ftl/FTLSaveRestore.cpp
485 ftl/FTLSlowPathCall.cpp
486 ftl/FTLSlowPathCallKey.cpp
489 ftl/FTLValueRange.cpp
491 heap/AllocatorAttributes.cpp
492 heap/CellContainer.cpp
493 heap/CodeBlockSet.cpp
494 heap/CollectionScope.cpp
495 heap/CollectorPhase.cpp
496 heap/ConservativeRoots.cpp
498 heap/DestructionMode.cpp
499 heap/EdenGCActivityCallback.cpp
500 heap/FullGCActivityCallback.cpp
502 heap/GCActivityCallback.cpp
510 heap/HeapFinalizerCallback.cpp
511 heap/HeapHelperPool.cpp
512 heap/HeapProfiler.cpp
513 heap/HeapSnapshot.cpp
514 heap/HeapSnapshotBuilder.cpp
515 heap/IncrementalSweeper.cpp
516 heap/JITStubRoutineSet.cpp
517 heap/LargeAllocation.cpp
518 heap/MachineStackMarker.cpp
520 heap/MarkedAllocator.cpp
523 heap/MarkingConstraint.cpp
524 heap/MarkingConstraintSet.cpp
525 heap/MutatorScheduler.cpp
526 heap/MutatorState.cpp
528 heap/SpaceTimeMutatorScheduler.cpp
529 heap/StochasticSpaceTimeMutatorScheduler.cpp
530 heap/StopIfNecessaryTimer.cpp
532 heap/SynchronousStopTheWorldMutatorScheduler.cpp
533 heap/Synchronousness.cpp
534 heap/VisitRaceKey.cpp
537 heap/WeakHandleOwner.cpp
539 heap/WriteBarrierSupport.cpp
541 inspector/AsyncStackTrace.cpp
542 inspector/ConsoleMessage.cpp
543 inspector/ContentSearchUtilities.cpp
544 inspector/EventLoop.cpp
545 inspector/IdentifiersFactory.cpp
546 inspector/InjectedScript.cpp
547 inspector/InjectedScriptBase.cpp
548 inspector/InjectedScriptHost.cpp
549 inspector/InjectedScriptManager.cpp
550 inspector/InjectedScriptModule.cpp
551 inspector/InspectorAgentRegistry.cpp
552 inspector/InspectorFrontendRouter.cpp
553 inspector/InspectorBackendDispatcher.cpp
554 inspector/InspectorValues.cpp
555 inspector/JSGlobalObjectConsoleClient.cpp
556 inspector/JSGlobalObjectInspectorController.cpp
557 inspector/JSGlobalObjectScriptDebugServer.cpp
558 inspector/JSInjectedScriptHost.cpp
559 inspector/JSInjectedScriptHostPrototype.cpp
560 inspector/JSJavaScriptCallFrame.cpp
561 inspector/JSJavaScriptCallFramePrototype.cpp
562 inspector/JavaScriptCallFrame.cpp
563 inspector/PerGlobalObjectWrapperWorld.cpp
564 inspector/ScriptArguments.cpp
565 inspector/ScriptCallFrame.cpp
566 inspector/ScriptCallStack.cpp
567 inspector/ScriptCallStackFactory.cpp
568 inspector/ScriptDebugServer.cpp
570 inspector/agents/InspectorAgent.cpp
571 inspector/agents/InspectorConsoleAgent.cpp
572 inspector/agents/InspectorDebuggerAgent.cpp
573 inspector/agents/InspectorHeapAgent.cpp
574 inspector/agents/InspectorRuntimeAgent.cpp
575 inspector/agents/InspectorScriptProfilerAgent.cpp
576 inspector/agents/JSGlobalObjectConsoleAgent.cpp
577 inspector/agents/JSGlobalObjectDebuggerAgent.cpp
578 inspector/agents/JSGlobalObjectRuntimeAgent.cpp
580 interpreter/AbstractPC.cpp
581 interpreter/CLoopStack.cpp
582 interpreter/CallFrame.cpp
583 interpreter/Interpreter.cpp
584 interpreter/ProtoCallFrame.cpp
585 interpreter/ShadowChicken.cpp
586 interpreter/StackVisitor.cpp
588 jit/AssemblyHelpers.cpp
591 jit/CachedRecovery.cpp
592 jit/CallFrameShuffleData.cpp
593 jit/CallFrameShuffler.cpp
594 jit/CallFrameShuffler32_64.cpp
595 jit/CallFrameShuffler64.cpp
596 jit/ExecutableAllocationFuzz.cpp
597 jit/ExecutableAllocator.cpp
598 jit/GCAwareJITStubRoutine.cpp
600 jit/HostCallReturnValue.cpp
602 jit/IntrinsicEmitter.cpp
604 jit/JITAddGenerator.cpp
605 jit/JITArithmetic.cpp
606 jit/JITArithmetic32_64.cpp
607 jit/JITBitAndGenerator.cpp
608 jit/JITBitOrGenerator.cpp
609 jit/JITBitXorGenerator.cpp
613 jit/JITDisassembler.cpp
614 jit/JITDivGenerator.cpp
615 jit/JITExceptions.cpp
616 jit/JITInlineCacheGenerator.cpp
617 jit/JITLeftShiftGenerator.cpp
618 jit/JITMulGenerator.cpp
619 jit/JITNegGenerator.cpp
621 jit/JITOpcodes32_64.cpp
622 jit/JITOperations.cpp
623 jit/JITPropertyAccess.cpp
624 jit/JITPropertyAccess32_64.cpp
625 jit/JITRightShiftGenerator.cpp
626 jit/JITStubRoutine.cpp
627 jit/JITSubGenerator.cpp
629 jit/JITToDFGDeferredCompilationCallback.cpp
631 jit/PCToCodeOriginMap.cpp
632 jit/PolymorphicCallStubRoutine.cpp
634 jit/RegisterAtOffset.cpp
635 jit/RegisterAtOffsetList.cpp
638 jit/ScratchRegisterAllocator.cpp
639 jit/SetupVarargsFrame.cpp
640 jit/TagRegistersMode.cpp
641 jit/TempRegisterSet.cpp
642 jit/ThunkGenerators.cpp
646 llint/LLIntEntrypoint.cpp
647 llint/LLIntExceptions.cpp
648 llint/LLIntSlowPaths.cpp
649 llint/LLIntThunks.cpp
650 llint/LowLevelInterpreter.cpp
653 parser/ModuleAnalyzer.cpp
655 parser/NodesAnalyzeModule.cpp
657 parser/ParserArena.cpp
658 parser/SourceProvider.cpp
659 parser/SourceProviderCache.cpp
660 parser/UnlinkedSourceCode.cpp
661 parser/VariableEnvironment.cpp
663 profiler/ProfilerBytecode.cpp
664 profiler/ProfilerBytecodeSequence.cpp
665 profiler/ProfilerBytecodes.cpp
666 profiler/ProfilerCompilation.cpp
667 profiler/ProfilerCompilationKind.cpp
668 profiler/ProfilerCompiledBytecode.cpp
669 profiler/ProfilerDatabase.cpp
670 profiler/ProfilerEvent.cpp
671 profiler/ProfilerJettisonReason.cpp
672 profiler/ProfilerOSRExit.cpp
673 profiler/ProfilerOSRExitSite.cpp
674 profiler/ProfilerOrigin.cpp
675 profiler/ProfilerOriginStack.cpp
676 profiler/ProfilerProfiledBytecodes.cpp
677 profiler/ProfilerUID.cpp
679 runtime/AbstractModuleRecord.cpp
681 runtime/ArrayBuffer.cpp
682 runtime/ArrayBufferNeuteringWatchpoint.cpp
683 runtime/ArrayBufferView.cpp
684 runtime/ArrayConstructor.cpp
685 runtime/ArrayConventions.cpp
686 runtime/ArrayIteratorAdaptiveWatchpoint.cpp
687 runtime/ArrayIteratorPrototype.cpp
688 runtime/ArrayPrototype.cpp
689 runtime/AtomicsObject.cpp
690 runtime/AsyncFunctionConstructor.cpp
691 runtime/AsyncFunctionPrototype.cpp
692 runtime/BasicBlockLocation.cpp
693 runtime/BooleanConstructor.cpp
694 runtime/BooleanObject.cpp
695 runtime/BooleanPrototype.cpp
697 runtime/CatchScope.cpp
698 runtime/ClassInfo.cpp
699 runtime/ClonedArguments.cpp
700 runtime/CodeCache.cpp
701 runtime/CodeSpecializationKind.cpp
702 runtime/CommonIdentifiers.cpp
703 runtime/CommonSlowPaths.cpp
704 runtime/CommonSlowPathsExceptions.cpp
705 runtime/CompilationResult.cpp
706 runtime/Completion.cpp
707 runtime/ConfigFile.cpp
708 runtime/ConsoleClient.cpp
709 runtime/ConsoleObject.cpp
710 runtime/ConstantMode.cpp
711 runtime/ConstructData.cpp
712 runtime/ControlFlowProfiler.cpp
713 runtime/CustomGetterSetter.cpp
715 runtime/DateConstructor.cpp
716 runtime/DateConversion.cpp
717 runtime/DateInstance.cpp
718 runtime/DatePrototype.cpp
719 runtime/DirectArguments.cpp
720 runtime/DirectArgumentsOffset.cpp
721 runtime/DirectEvalExecutable.cpp
722 runtime/DisallowVMReentry.cpp
723 runtime/DumpContext.cpp
724 runtime/ECMAScriptSpecInternalFunctions.cpp
726 runtime/ErrorConstructor.cpp
727 runtime/ErrorHandlingScope.cpp
728 runtime/ErrorInstance.cpp
729 runtime/ErrorPrototype.cpp
730 runtime/EvalExecutable.cpp
731 runtime/Exception.cpp
732 runtime/ExceptionEventLocation.cpp
733 runtime/ExceptionFuzz.cpp
734 runtime/ExceptionHelpers.cpp
735 runtime/ExceptionScope.cpp
736 runtime/ExecutableBase.cpp
737 runtime/FunctionConstructor.cpp
738 runtime/FunctionExecutable.cpp
739 runtime/FunctionExecutableDump.cpp
740 runtime/FunctionHasExecutedCache.cpp
741 runtime/FunctionPrototype.cpp
742 runtime/FunctionRareData.cpp
743 runtime/GeneratorFunctionConstructor.cpp
744 runtime/GeneratorFunctionPrototype.cpp
745 runtime/GeneratorPrototype.cpp
746 runtime/GetterSetter.cpp
747 runtime/HashMapImpl.cpp
748 runtime/Identifier.cpp
749 runtime/IndexingType.cpp
750 runtime/IndirectEvalExecutable.cpp
751 runtime/InferredType.cpp
752 runtime/InferredTypeTable.cpp
753 runtime/InferredValue.cpp
754 runtime/InitializeThreading.cpp
755 runtime/InspectorInstrumentationObject.cpp
756 runtime/InternalFunction.cpp
757 runtime/Intrinsic.cpp
758 runtime/IntlCollator.cpp
759 runtime/IntlCollatorConstructor.cpp
760 runtime/IntlCollatorPrototype.cpp
761 runtime/IntlDateTimeFormat.cpp
762 runtime/IntlDateTimeFormatConstructor.cpp
763 runtime/IntlDateTimeFormatPrototype.cpp
764 runtime/IntlNumberFormat.cpp
765 runtime/IntlNumberFormatConstructor.cpp
766 runtime/IntlNumberFormatPrototype.cpp
767 runtime/IntlObject.cpp
768 runtime/IteratorOperations.cpp
769 runtime/IteratorPrototype.cpp
770 runtime/JSAPIValueWrapper.cpp
772 runtime/JSArrayBuffer.cpp
773 runtime/JSArrayBufferConstructor.cpp
774 runtime/JSArrayBufferPrototype.cpp
775 runtime/JSArrayBufferView.cpp
776 runtime/JSAsyncFunction.cpp
777 runtime/JSBoundFunction.cpp
778 runtime/JSCJSValue.cpp
781 runtime/JSCustomGetterSetterFunction.cpp
782 runtime/JSDataView.cpp
783 runtime/JSDataViewPrototype.cpp
784 runtime/JSDateMath.cpp
785 runtime/JSDestructibleObjectSubspace.cpp
786 runtime/JSEnvironmentRecord.cpp
787 runtime/JSFixedArray.cpp
788 runtime/JSFunction.cpp
789 runtime/JSGeneratorFunction.cpp
790 runtime/JSGlobalLexicalEnvironment.cpp
791 runtime/JSGlobalObject.cpp
792 runtime/JSGlobalObjectDebuggable.cpp
793 runtime/JSGlobalObjectFunctions.cpp
794 runtime/JSInternalPromise.cpp
795 runtime/JSInternalPromiseConstructor.cpp
796 runtime/JSInternalPromiseDeferred.cpp
797 runtime/JSInternalPromisePrototype.cpp
799 runtime/JSLexicalEnvironment.cpp
802 runtime/JSMapIterator.cpp
803 runtime/JSModuleEnvironment.cpp
804 runtime/JSModuleLoader.cpp
805 runtime/JSModuleNamespaceObject.cpp
806 runtime/JSModuleRecord.cpp
807 runtime/JSNativeStdFunction.cpp
808 runtime/JSONObject.cpp
810 runtime/JSPromise.cpp
811 runtime/JSPromiseConstructor.cpp
812 runtime/JSPromiseDeferred.cpp
813 runtime/JSPromisePrototype.cpp
814 runtime/JSPropertyNameEnumerator.cpp
815 runtime/JSPropertyNameIterator.cpp
817 runtime/JSRunLoopTimer.cpp
819 runtime/JSScriptFetcher.cpp
820 runtime/JSSegmentedVariableObject.cpp
821 runtime/JSSegmentedVariableObjectSubspace.cpp
823 runtime/JSSetIterator.cpp
824 runtime/JSSourceCode.cpp
826 runtime/JSStringIterator.cpp
827 runtime/JSStringJoiner.cpp
828 runtime/JSStringSubspace.cpp
829 runtime/JSSymbolTableObject.cpp
830 runtime/JSTemplateRegistryKey.cpp
831 runtime/JSTypedArrayConstructors.cpp
832 runtime/JSTypedArrayPrototypes.cpp
833 runtime/JSTypedArrayViewConstructor.cpp
834 runtime/JSTypedArrayViewPrototype.cpp
835 runtime/JSTypedArrays.cpp
836 runtime/JSWeakMap.cpp
837 runtime/JSWeakSet.cpp
838 runtime/JSWithScope.cpp
839 runtime/JSWrapperObject.cpp
840 runtime/LazyClassStructure.cpp
841 runtime/LiteralParser.cpp
843 runtime/MapConstructor.cpp
844 runtime/MapIteratorPrototype.cpp
845 runtime/MapPrototype.cpp
846 runtime/MatchResult.cpp
847 runtime/MathCommon.cpp
848 runtime/MathObject.cpp
849 runtime/MemoryStatistics.cpp
850 runtime/ModuleLoaderPrototype.cpp
851 runtime/ModuleProgramExecutable.cpp
852 runtime/NativeErrorConstructor.cpp
853 runtime/NativeErrorPrototype.cpp
854 runtime/NativeExecutable.cpp
855 runtime/NativeStdFunctionCell.cpp
856 runtime/NullGetterFunction.cpp
857 runtime/NullSetterFunction.cpp
858 runtime/NumberConstructor.cpp
859 runtime/NumberObject.cpp
860 runtime/NumberPrototype.cpp
861 runtime/ObjectConstructor.cpp
862 runtime/ObjectInitializationScope.cpp
863 runtime/ObjectPrototype.cpp
864 runtime/Operations.cpp
866 runtime/ProgramExecutable.cpp
867 runtime/PromiseDeferredTimer.cpp
868 runtime/PropertyDescriptor.cpp
869 runtime/PropertySlot.cpp
870 runtime/PropertyTable.cpp
871 runtime/PrototypeMap.cpp
872 runtime/ProxyConstructor.cpp
873 runtime/ProxyObject.cpp
874 runtime/ProxyRevoke.cpp
875 runtime/ReflectObject.cpp
877 runtime/RegExpCache.cpp
878 runtime/RegExpCachedResult.cpp
879 runtime/RegExpConstructor.cpp
880 runtime/RegExpMatchesArray.cpp
881 runtime/RegExpObject.cpp
882 runtime/RegExpPrototype.cpp
883 runtime/RuntimeType.cpp
884 runtime/SamplingCounter.cpp
885 runtime/SamplingProfiler.cpp
886 runtime/ScopeOffset.cpp
887 runtime/ScopedArguments.cpp
888 runtime/ScopedArgumentsTable.cpp
889 runtime/ScriptExecutable.cpp
890 runtime/SetConstructor.cpp
891 runtime/SetIteratorPrototype.cpp
892 runtime/SetPrototype.cpp
893 runtime/SimpleTypedArrayController.cpp
894 runtime/SmallStrings.cpp
895 runtime/SparseArrayValueMap.cpp
896 runtime/StackFrame.cpp
897 runtime/StrictEvalActivation.cpp
898 runtime/StringConstructor.cpp
899 runtime/StringIteratorPrototype.cpp
900 runtime/StringObject.cpp
901 runtime/StringPrototype.cpp
902 runtime/StringRecursionChecker.cpp
903 runtime/Structure.cpp
904 runtime/StructureChain.cpp
905 runtime/StructureIDTable.cpp
906 runtime/StructureRareData.cpp
908 runtime/SymbolConstructor.cpp
909 runtime/SymbolObject.cpp
910 runtime/SymbolPrototype.cpp
911 runtime/SymbolTable.cpp
912 runtime/TemplateRegistry.cpp
913 runtime/TemplateRegistryKey.cpp
914 runtime/TemplateRegistryKeyTable.cpp
915 runtime/TestRunnerUtils.cpp
916 runtime/ThrowScope.cpp
917 runtime/TypeLocationCache.cpp
918 runtime/TypeProfiler.cpp
919 runtime/TypeProfilerLog.cpp
921 runtime/TypedArrayController.cpp
922 runtime/TypedArrayType.cpp
923 runtime/TypeofType.cpp
925 runtime/VMEntryScope.cpp
927 runtime/VarOffset.cpp
929 runtime/WeakMapConstructor.cpp
930 runtime/WeakMapData.cpp
931 runtime/WeakMapPrototype.cpp
932 runtime/WeakSetConstructor.cpp
933 runtime/WeakSetPrototype.cpp
936 tools/CodeProfile.cpp
937 tools/CodeProfiling.cpp
938 tools/FunctionOverrides.cpp
939 tools/FunctionWhitelist.cpp
940 tools/HeapVerifier.cpp
942 tools/JSDollarVMPrototype.cpp
943 tools/SigillCrashAnalyzer.cpp
944 tools/VMInspector.cpp
946 wasm/JSWebAssembly.cpp
947 wasm/WasmB3IRGenerator.cpp
951 wasm/WasmCallingConvention.cpp
952 wasm/WasmCodeBlock.cpp
954 wasm/WasmFaultSignalHandler.cpp
956 wasm/WasmIndexOrName.cpp
957 wasm/WasmMachineThreads.cpp
959 wasm/WasmMemoryInformation.cpp
961 wasm/WasmModuleInformation.cpp
962 wasm/WasmModuleParser.cpp
963 wasm/WasmNameSectionParser.cpp
965 wasm/WasmOpcodeOrigin.cpp
966 wasm/WasmPageCount.cpp
968 wasm/WasmSignature.cpp
970 wasm/WasmValidate.cpp
971 wasm/WasmWorklist.cpp
973 wasm/js/JSWebAssemblyCodeBlock.cpp
974 wasm/js/JSWebAssemblyCodeBlockSubspace.cpp
975 wasm/js/JSWebAssemblyCompileError.cpp
976 wasm/js/JSWebAssemblyInstance.cpp
977 wasm/js/JSWebAssemblyLinkError.cpp
978 wasm/js/JSWebAssemblyMemory.cpp
979 wasm/js/JSWebAssemblyModule.cpp
980 wasm/js/JSWebAssemblyRuntimeError.cpp
981 wasm/js/JSWebAssemblyTable.cpp
982 wasm/js/WebAssemblyCompileErrorConstructor.cpp
983 wasm/js/WebAssemblyCompileErrorPrototype.cpp
984 wasm/js/WebAssemblyFunction.cpp
985 wasm/js/WebAssemblyFunctionBase.cpp
986 wasm/js/WebAssemblyInstanceConstructor.cpp
987 wasm/js/WebAssemblyInstancePrototype.cpp
988 wasm/js/WebAssemblyLinkErrorConstructor.cpp
989 wasm/js/WebAssemblyLinkErrorPrototype.cpp
990 wasm/js/WebAssemblyMemoryConstructor.cpp
991 wasm/js/WebAssemblyMemoryPrototype.cpp
992 wasm/js/WebAssemblyModuleConstructor.cpp
993 wasm/js/WebAssemblyModulePrototype.cpp
994 wasm/js/WebAssemblyModuleRecord.cpp
995 wasm/js/WebAssemblyPrototype.cpp
996 wasm/js/WebAssemblyRuntimeErrorConstructor.cpp
997 wasm/js/WebAssemblyRuntimeErrorPrototype.cpp
998 wasm/js/WebAssemblyTableConstructor.cpp
999 wasm/js/WebAssemblyTablePrototype.cpp
1000 wasm/js/WebAssemblyToJSCallee.cpp
1001 wasm/js/WebAssemblyWrapperFunction.cpp
1003 yarr/RegularExpression.cpp
1004 yarr/YarrCanonicalizeUCS2.cpp
1005 yarr/YarrInterpreter.cpp
1007 yarr/YarrPattern.cpp
1008 yarr/YarrSyntaxChecker.cpp
1011 # Extra flags for compile sources can go here.
1013 set_source_files_properties(runtime/ProxyObject.cpp PROPERTIES COMPILE_FLAGS -fno-optimize-sibling-calls)
1015 # FIXME: Investigate if we need to set a similar flag on Windows.
1018 set(JavaScriptCore_OBJECT_LUT_SOURCES
1019 runtime/ArrayConstructor.cpp
1020 runtime/ArrayIteratorPrototype.cpp
1021 runtime/BooleanPrototype.cpp
1022 runtime/DateConstructor.cpp
1023 runtime/DatePrototype.cpp
1024 runtime/ErrorPrototype.cpp
1025 runtime/GeneratorPrototype.cpp
1026 runtime/InspectorInstrumentationObject.cpp
1027 runtime/IntlCollatorConstructor.cpp
1028 runtime/IntlCollatorPrototype.cpp
1029 runtime/IntlDateTimeFormatConstructor.cpp
1030 runtime/IntlDateTimeFormatPrototype.cpp
1031 runtime/IntlNumberFormatConstructor.cpp
1032 runtime/IntlNumberFormatPrototype.cpp
1033 runtime/JSDataViewPrototype.cpp
1034 runtime/JSGlobalObject.cpp
1035 runtime/JSInternalPromiseConstructor.cpp
1036 runtime/JSONObject.cpp
1037 runtime/JSPromiseConstructor.cpp
1038 runtime/JSPromisePrototype.cpp
1039 runtime/MapPrototype.cpp
1040 runtime/ModuleLoaderPrototype.cpp
1041 runtime/NumberConstructor.cpp
1042 runtime/NumberPrototype.cpp
1043 runtime/ObjectConstructor.cpp
1044 runtime/ReflectObject.cpp
1045 runtime/RegExpConstructor.cpp
1046 runtime/RegExpPrototype.cpp
1047 runtime/SetPrototype.cpp
1048 runtime/StringConstructor.cpp
1049 runtime/StringIteratorPrototype.cpp
1050 runtime/StringPrototype.cpp
1051 runtime/SymbolConstructor.cpp
1052 runtime/SymbolPrototype.cpp
1054 wasm/js/WebAssemblyCompileErrorConstructor.cpp
1055 wasm/js/WebAssemblyCompileErrorPrototype.cpp
1056 wasm/js/WebAssemblyInstanceConstructor.cpp
1057 wasm/js/WebAssemblyInstancePrototype.cpp
1058 wasm/js/WebAssemblyLinkErrorConstructor.cpp
1059 wasm/js/WebAssemblyLinkErrorPrototype.cpp
1060 wasm/js/WebAssemblyMemoryConstructor.cpp
1061 wasm/js/WebAssemblyMemoryPrototype.cpp
1062 wasm/js/WebAssemblyModuleConstructor.cpp
1063 wasm/js/WebAssemblyModulePrototype.cpp
1064 wasm/js/WebAssemblyPrototype.cpp
1065 wasm/js/WebAssemblyRuntimeErrorConstructor.cpp
1066 wasm/js/WebAssemblyRuntimeErrorPrototype.cpp
1067 wasm/js/WebAssemblyTableConstructor.cpp
1068 wasm/js/WebAssemblyTablePrototype.cpp
1071 set(JavaScriptCore_LIBRARIES
1073 ${ICU_I18N_LIBRARIES}
1077 set(JavaScriptCore_SCRIPTS_SOURCES_DIR "${JAVASCRIPTCORE_DIR}/Scripts")
1079 # Globbing relies on the fact that generator-specific file names are prefixed with their directory.
1080 # Top-level scripts should have a file extension, since they are invoked during the build.
1082 set(JavaScriptCore_SCRIPTS_SOURCES_PATHS
1083 ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/*.pl
1084 ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/*.py
1085 ${JavaScriptCore_SCRIPTS_SOURCES_DIR}/builtins/builtins*.py
1088 # Force JavaScriptCore to run scripts from the same staging path as WebCore.
1089 set(JavaScriptCore_SCRIPTS_DIR "${FORWARDING_HEADERS_DIR}/JavaScriptCore/Scripts")
1091 file(MAKE_DIRECTORY ${JavaScriptCore_SCRIPTS_DIR})
1093 # The directory flattening performed below mirrors what the Mac port does with private headers.
1095 file(GLOB JavaScriptCore_SCRIPTS_SOURCES ${JavaScriptCore_SCRIPTS_SOURCES_PATHS})
1097 foreach (_file ${JavaScriptCore_SCRIPTS_SOURCES})
1098 get_filename_component(_script "${_file}" NAME)
1100 OUTPUT ${JavaScriptCore_SCRIPTS_DIR}/${_script}
1101 MAIN_DEPENDENCY ${_file}
1102 WORKING_DIRECTORY ${DERIVED_SOURCES_DIR}
1103 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${_file} ${JavaScriptCore_SCRIPTS_DIR}/${_script}
1105 list(APPEND JavaScriptCore_SCRIPTS ${JavaScriptCore_SCRIPTS_DIR}/${_script})
1109 disassembler/udis86/ud_opcode.py
1113 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.c ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.h
1114 DEPENDS ${UDIS_GEN_DEP}
1115 WORKING_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
1116 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/disassembler/udis86/ud_itab.py ${JAVASCRIPTCORE_DIR}/disassembler/udis86/optable.xml ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
1119 list(APPEND JavaScriptCore_HEADERS
1120 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/udis86_itab.h
1124 llint/LowLevelInterpreter.asm
1125 llint/LowLevelInterpreter32_64.asm
1126 llint/LowLevelInterpreter64.asm
1133 offlineasm/backends.rb
1135 offlineasm/config.rb
1136 offlineasm/instructions.rb
1138 offlineasm/offsets.rb
1140 offlineasm/parser.rb
1141 offlineasm/registers.rb
1143 offlineasm/self_hash.rb
1144 offlineasm/settings.rb
1145 offlineasm/transform.rb
1150 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
1151 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/generate-bytecode-files
1152 DEPENDS ${JAVASCRIPTCORE_DIR}/generate-bytecode-files bytecode/BytecodeList.json
1153 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 ${JAVASCRIPTCORE_DIR}/bytecode/BytecodeList.json
1156 list(APPEND JavaScriptCore_HEADERS
1157 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
1161 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
1162 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb
1163 DEPENDS ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
1164 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
1167 # We add the header files directly to the ADD_EXECUTABLE call instead of setting the
1168 # OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb and
1169 # generate-bytecode-files may not regenerate the .h files in case the hash it calculates does not change.
1170 # In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMANDs above have
1171 # changed the command will always be called because the mtime of the .h files will
1172 # always be older than that of their dependencies.
1173 # Additionally, setting the OBJECT_DEPENDS property will make the .h files a Makefile
1174 # dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will
1175 # actually be run multiple times!
1176 add_executable(LLIntOffsetsExtractor
1177 ${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp
1178 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
1180 target_link_libraries(LLIntOffsetsExtractor WTF)
1182 # The build system will execute asm.rb every time LLIntOffsetsExtractor's mtime is newer than
1183 # LLIntAssembly.h's mtime. The problem we have here is: asm.rb has some built-in optimization
1184 # that generates a checksum of the LLIntOffsetsExtractor binary, if the checksum of the new
1185 # LLIntOffsetsExtractor matches, no output is generated. To make this target consistent and avoid
1186 # running this command for every build, we artificially update LLIntAssembly.h's mtime (using touch)
1187 # after every asm.rb run.
1189 set(LLIntOutput LowLevelInterpreterWin.asm)
1190 set(OFFLINE_ASM_ARGS --assembler=MASM)
1192 set(LLIntOutput LLIntAssembly.h)
1196 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${LLIntOutput}
1197 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb
1198 DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
1199 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}
1200 COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${LLIntOutput}
1201 WORKING_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
1204 # The explanation for not making LLIntAssembly.h part of the OBJECT_DEPENDS property of some of
1205 # the .cpp files below is similar to the one in the previous comment. However, since these .cpp
1206 # files are used to build JavaScriptCore itself, we can just add LLIntAssembly.h to JSC_HEADERS
1207 # since it is used in the add_library() call at the end of this file.
1209 enable_language(ASM_MASM)
1210 if (CMAKE_SIZEOF_VOID_P EQUAL 4)
1211 # Win32 needs /safeseh with assembly, but Win64 does not.
1212 set(MASM_EXECUTABLE ml)
1213 set(LLINT_MASM_FLAGS /safeseh /c /Fo)
1215 set(MASM_EXECUTABLE ml64)
1216 set(LLINT_MASM_FLAGS /c /Fo)
1219 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LowLevelInterpreterWin.obj
1220 DEPENDS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LowLevelInterpreterWin.asm
1221 COMMAND ${MASM_EXECUTABLE} ${LLINT_MASM_FLAGS} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LowLevelInterpreterWin.obj ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LowLevelInterpreterWin.asm
1223 list(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LowLevelInterpreterWin.obj)
1225 list(APPEND JavaScriptCore_HEADERS
1226 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
1230 # WebAssembly generator
1232 macro(GENERATE_PYTHON _generator _input _output)
1235 MAIN_DEPENDENCY ${_generator}
1237 COMMAND ${PYTHON_EXECUTABLE} ${_generator} ${_input} ${_output}
1239 list(APPEND JavaScriptCore_HEADERS ${_output})
1240 ADD_SOURCE_DEPENDENCIES(${_input} ${_output})
1242 GENERATE_PYTHON(${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasmOpsHeader.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/wasm.json ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WasmOps.h)
1243 GENERATE_PYTHON(${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasmValidateInlinesHeader.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/wasm.json ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WasmValidateInlines.h)
1244 GENERATE_PYTHON(${CMAKE_CURRENT_SOURCE_DIR}/wasm/generateWasmB3IRGeneratorInlinesHeader.py ${CMAKE_CURRENT_SOURCE_DIR}/wasm/wasm.json ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WasmB3IRGeneratorInlines.h)
1248 set(HASH_LUT_GENERATOR ${CMAKE_CURRENT_SOURCE_DIR}/create_hash_table)
1249 macro(GENERATE_HASH_LUT _input _output)
1252 MAIN_DEPENDENCY ${HASH_LUT_GENERATOR}
1254 COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} > ${_output}
1256 list(APPEND JavaScriptCore_HEADERS ${_output})
1257 ADD_SOURCE_DEPENDENCIES(${_input} ${_output})
1260 # GENERATOR 1-A: LUT creator
1262 foreach (_file ${JavaScriptCore_OBJECT_LUT_SOURCES})
1263 get_filename_component(_name ${_file} NAME_WE)
1264 GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/${_file} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/${_name}.lut.h)
1267 set(JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES
1292 inspector/augmentable
1298 # GENERATOR 1-B: particular LUT creator (for 1 file only)
1299 GENERATE_HASH_LUT(${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Lexer.lut.h)
1301 #GENERATOR: "RegExpJitTables.h": tables used by Yarr
1303 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
1304 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/create_regex_tables
1305 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/create_regex_tables > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h
1307 ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/yarr/YarrPattern.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/RegExpJitTables.h)
1310 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/YarrCanonicalizeUnicode.cpp
1311 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/generateYarrCanonicalizeUnicode
1312 DEPENDS ${JAVASCRIPTCORE_DIR}/ucd/CaseFolding.txt
1313 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/generateYarrCanonicalizeUnicode ${JAVASCRIPTCORE_DIR}/ucd/CaseFolding.txt ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/YarrCanonicalizeUnicode.cpp
1316 list(APPEND JavaScriptCore_SOURCES
1317 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/YarrCanonicalizeUnicode.cpp
1320 #GENERATOR: "KeywordLookup.h": keyword decision tree used by the lexer
1322 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
1323 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py
1324 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table
1325 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/KeywordLookupGenerator.py ${CMAKE_CURRENT_SOURCE_DIR}/parser/Keywords.table > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h
1327 ADD_SOURCE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/parser/Lexer.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/KeywordLookup.h)
1330 # Inspector Interfaces
1332 set(JavaScriptCore_INSPECTOR_SCRIPTS_DIR "${JAVASCRIPTCORE_DIR}/inspector/scripts")
1334 set(JavaScriptCore_INSPECTOR_PROTOCOL_SCRIPTS
1335 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/generate-inspector-protocol-bindings.py
1336 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/cpp_generator.py
1337 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/cpp_generator_templates.py
1338 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_js_backend_commands.py
1339 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_backend_dispatcher_header.py
1340 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_backend_dispatcher_implementation.py
1341 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_frontend_dispatcher_header.py
1342 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_frontend_dispatcher_implementation.py
1343 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_protocol_types_header.py
1344 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generate_cpp_protocol_types_implementation.py
1345 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generator.py
1346 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/generator_templates.py
1347 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/__init__.py
1348 ${JavaScriptCore_INSPECTOR_SCRIPTS_DIR}/codegen/models.py
1351 set(JavaScriptCore_INSPECTOR_DOMAINS
1352 ${JAVASCRIPTCORE_DIR}/inspector/protocol/ApplicationCache.json
1353 ${JAVASCRIPTCORE_DIR}/inspector/protocol/CSS.json
1354 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Console.json
1355 ${JAVASCRIPTCORE_DIR}/inspector/protocol/DOM.json
1356 ${JAVASCRIPTCORE_DIR}/inspector/protocol/DOMDebugger.json
1357 ${JAVASCRIPTCORE_DIR}/inspector/protocol/DOMStorage.json
1358 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Database.json
1359 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Debugger.json
1360 ${JAVASCRIPTCORE_DIR}/inspector/protocol/GenericTypes.json
1361 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Heap.json
1362 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Inspector.json
1363 ${JAVASCRIPTCORE_DIR}/inspector/protocol/LayerTree.json
1364 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Network.json
1365 ${JAVASCRIPTCORE_DIR}/inspector/protocol/OverlayTypes.json
1366 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Page.json
1367 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Runtime.json
1368 ${JAVASCRIPTCORE_DIR}/inspector/protocol/ScriptProfiler.json
1369 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Timeline.json
1370 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Worker.json
1373 if (ENABLE_INDEXED_DATABASE)
1374 list(APPEND JavaScriptCore_INSPECTOR_DOMAINS
1375 ${JAVASCRIPTCORE_DIR}/inspector/protocol/IndexedDB.json
1379 if (ENABLE_RESOURCE_USAGE)
1380 list(APPEND JavaScriptCore_INSPECTOR_DOMAINS
1381 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Memory.json
1385 if (ENABLE_WEB_REPLAY)
1386 list(APPEND JavaScriptCore_INSPECTOR_DOMAINS
1387 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Replay.json
1392 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
1393 MAIN_DEPENDENCY ${JavaScriptCore_SCRIPTS_DIR}/generate-combined-inspector-json.py
1394 DEPENDS ${JavaScriptCore_INSPECTOR_DOMAINS}
1395 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/generate-combined-inspector-json.py ${JavaScriptCore_INSPECTOR_DOMAINS} > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
1398 # Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders
1399 file(MAKE_DIRECTORY ${DERIVED_SOURCES_WEBINSPECTORUI_DIR}/UserInterface/Protocol)
1400 file(MAKE_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector)
1402 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.cpp
1403 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.h
1404 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.cpp
1405 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.h
1406 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.cpp
1407 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.h
1408 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendCommands.js
1409 MAIN_DEPENDENCY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/CombinedDomains.json
1410 DEPENDS ${JavaScriptCore_INSPECTOR_PROTOCOL_SCRIPTS}
1411 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
1416 set(BUILTINS_GENERATOR_SCRIPTS
1417 ${JavaScriptCore_SCRIPTS_DIR}/builtins.py
1418 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generator.py
1419 ${JavaScriptCore_SCRIPTS_DIR}/builtins_model.py
1420 ${JavaScriptCore_SCRIPTS_DIR}/builtins_templates.py
1421 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_combined_header.py
1422 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_combined_implementation.py
1423 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_header.py
1424 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_separate_implementation.py
1425 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_wrapper_header.py
1426 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_wrapper_implementation.py
1427 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_internals_wrapper_header.py
1428 ${JavaScriptCore_SCRIPTS_DIR}/builtins_generate_internals_wrapper_implementation.py
1429 ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py
1430 ${JavaScriptCore_SCRIPTS_DIR}/lazywriter.py
1433 set(JavaScriptCore_BUILTINS_SOURCES
1434 ${JAVASCRIPTCORE_DIR}/builtins/ArrayConstructor.js
1435 ${JAVASCRIPTCORE_DIR}/builtins/ArrayIteratorPrototype.js
1436 ${JAVASCRIPTCORE_DIR}/builtins/ArrayPrototype.js
1437 ${JAVASCRIPTCORE_DIR}/builtins/AsyncFunctionPrototype.js
1438 ${JAVASCRIPTCORE_DIR}/builtins/DatePrototype.js
1439 ${JAVASCRIPTCORE_DIR}/builtins/FunctionPrototype.js
1440 ${JAVASCRIPTCORE_DIR}/builtins/GeneratorPrototype.js
1441 ${JAVASCRIPTCORE_DIR}/builtins/GlobalObject.js
1442 ${JAVASCRIPTCORE_DIR}/builtins/GlobalOperations.js
1443 ${JAVASCRIPTCORE_DIR}/builtins/InspectorInstrumentationObject.js
1444 ${JAVASCRIPTCORE_DIR}/builtins/InternalPromiseConstructor.js
1445 ${JAVASCRIPTCORE_DIR}/builtins/IteratorHelpers.js
1446 ${JAVASCRIPTCORE_DIR}/builtins/IteratorPrototype.js
1447 ${JAVASCRIPTCORE_DIR}/builtins/MapPrototype.js
1448 ${JAVASCRIPTCORE_DIR}/builtins/ModuleLoaderPrototype.js
1449 ${JAVASCRIPTCORE_DIR}/builtins/NumberConstructor.js
1450 ${JAVASCRIPTCORE_DIR}/builtins/NumberPrototype.js
1451 ${JAVASCRIPTCORE_DIR}/builtins/ObjectConstructor.js
1452 ${JAVASCRIPTCORE_DIR}/builtins/PromiseConstructor.js
1453 ${JAVASCRIPTCORE_DIR}/builtins/PromiseOperations.js
1454 ${JAVASCRIPTCORE_DIR}/builtins/PromisePrototype.js
1455 ${JAVASCRIPTCORE_DIR}/builtins/ReflectObject.js
1456 ${JAVASCRIPTCORE_DIR}/builtins/RegExpPrototype.js
1457 ${JAVASCRIPTCORE_DIR}/builtins/SetPrototype.js
1458 ${JAVASCRIPTCORE_DIR}/builtins/StringConstructor.js
1459 ${JAVASCRIPTCORE_DIR}/builtins/StringIteratorPrototype.js
1460 ${JAVASCRIPTCORE_DIR}/builtins/StringPrototype.js
1461 ${JAVASCRIPTCORE_DIR}/builtins/TypedArrayConstructor.js
1462 ${JAVASCRIPTCORE_DIR}/builtins/TypedArrayPrototype.js
1466 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/AirOpcode.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/AirOpcodeGenerated.h
1467 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/b3/air/AirOpcode.opcodes
1468 DEPENDS ${JAVASCRIPTCORE_DIR}/b3/air/opcode_generator.rb
1469 COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/b3/air/opcode_generator.rb ${JAVASCRIPTCORE_DIR}/b3/air/AirOpcode.opcodes VERBATIM
1470 WORKING_DIRECTORY ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
1473 list(APPEND JavaScriptCore_SOURCES
1474 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/AirOpcode.h
1475 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/AirOpcodeGenerated.h
1479 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
1480 MAIN_DEPENDENCY ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py
1481 DEPENDS ${JavaScriptCore_BUILTINS_SOURCES} ${BUILTINS_GENERATOR_SCRIPTS}
1482 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/generate-js-builtins.py --framework JavaScriptCore --output-directory ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} --combined ${JavaScriptCore_BUILTINS_SOURCES}
1485 list(APPEND JavaScriptCore_SOURCES
1486 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.cpp
1487 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.cpp
1488 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.cpp
1489 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.cpp
1492 list(APPEND JavaScriptCore_HEADERS
1493 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorBackendDispatchers.h
1494 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorFrontendDispatchers.h
1495 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector/InspectorProtocolObjects.h
1496 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
1500 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
1501 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js
1502 DEPENDS ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl ${JavaScriptCore_SCRIPTS_DIR}/jsmin.py
1503 COMMAND ${CMAKE_COMMAND} -E echo "//# sourceURL=__InjectedScript_InjectedScriptSource.js" > ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
1504 COMMAND ${PYTHON_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/jsmin.py < ${JAVASCRIPTCORE_DIR}/inspector/InjectedScriptSource.js >> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js
1505 COMMAND ${PERL_EXECUTABLE} ${JavaScriptCore_SCRIPTS_DIR}/xxd.pl InjectedScriptSource_js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.min.js ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h
1508 list(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InjectedScriptSource.h)
1510 # Web Replay inputs generator
1511 if (ENABLE_WEB_REPLAY)
1512 set(JavaScript_WEB_REPLAY_INPUTS ${CMAKE_CURRENT_SOURCE_DIR}/replay/JSInputs.json)
1514 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.cpp
1515 MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/replay/scripts/CodeGeneratorReplayInputs.py
1516 DEPENDS ${JavaScript_WEB_REPLAY_INPUTS}
1517 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/replay/scripts/CodeGeneratorReplayInputs.py --outputDir ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ --framework JavaScriptCore ${JavaScript_WEB_REPLAY_INPUTS}
1520 list(APPEND JavaScriptCore_SOURCES
1521 replay/EncodedValue.cpp
1522 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.cpp
1524 list(APPEND JavaScriptCore_HEADERS ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSReplayInputs.h)
1528 elseif (WTF_CPU_ARM64)
1529 elseif (WTF_CPU_HPPA)
1530 elseif (WTF_CPU_PPC)
1531 elseif (WTF_CPU_PPC64)
1532 elseif (WTF_CPU_PPC64LE)
1533 elseif (WTF_CPU_S390)
1534 elseif (WTF_CPU_S390X)
1535 elseif (WTF_CPU_MIPS)
1536 elseif (WTF_CPU_SH4)
1537 elseif (WTF_CPU_X86)
1538 elseif (WTF_CPU_X86_64)
1539 if (MSVC AND ENABLE_JIT)
1541 OUTPUT ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj
1542 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm
1543 COMMAND ml64 -nologo -c -Fo ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj ${JAVASCRIPTCORE_DIR}/jit/JITStubsMSVC64.asm
1546 list(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/JITStubsMSVC64.obj)
1549 message(FATAL_ERROR "Unknown CPU")
1553 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
1555 WEBKIT_CREATE_FORWARDING_HEADERS(JavaScriptCore DIRECTORIES ${JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES} FILES ${JavaScriptCore_FORWARDING_HEADERS_FILES})
1557 target_include_directories(LLIntOffsetsExtractor PRIVATE ${JavaScriptCore_INCLUDE_DIRECTORIES})
1559 add_subdirectory(shell)
1561 WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
1562 WEBKIT_FRAMEWORK(JavaScriptCore)
1564 if (NOT "${PORT}" STREQUAL "Mac")
1565 if (${JavaScriptCore_LIBRARY_TYPE} STREQUAL "SHARED")
1566 POPULATE_LIBRARY_VERSION(JAVASCRIPTCORE)
1567 set_target_properties(JavaScriptCore PROPERTIES VERSION ${JAVASCRIPTCORE_VERSION} SOVERSION ${JAVASCRIPTCORE_VERSION_MAJOR})
1568 install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}")
1572 # Force staging of shared scripts, even if they aren't directly used to build JavaScriptCore.
1574 add_custom_target(stageSharedScripts DEPENDS ${JavaScriptCore_SCRIPTS})
1575 add_dependencies(JavaScriptCore stageSharedScripts)
1579 TARGET JavaScriptCore
1581 COMMAND ${PERL_EXECUTABLE} ${WEBKIT_LIBRARIES_DIR}/tools/scripts/auto-version.pl ${DERIVED_SOURCES_DIR}
1585 TARGET JavaScriptCore
1587 COMMAND ${PERL_EXECUTABLE} ${WEBKIT_LIBRARIES_DIR}/tools/scripts/version-stamp.pl ${DERIVED_SOURCES_DIR} $<TARGET_FILE:JavaScriptCore>