├── .gitignore ├── dep └── .keep ├── jni ├── Android.mk ├── Application.mk ├── jsc.mk ├── jsc_offsets.mk └── wtf.mk ├── patch ├── JavaScriptCore.patch ├── WTF.patch └── icu.patch ├── readme.md ├── script ├── lib │ └── common.rb ├── prepare-icu.rb └── prepare-jsc.rb └── src └── JavaScriptCore.h /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /dep/* 3 | !.keep 4 | /gen 5 | /obj 6 | /libs 7 | -------------------------------------------------------------------------------- /dep/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omochi/JavaScriptCore-android-build/b631325dd4fbef5e4c0a5aff4e9be01482f0b9bb/dep/.keep -------------------------------------------------------------------------------- /jni/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | MY_LOCAL_PATH := $(LOCAL_PATH) 4 | 5 | LOCAL_MODULE := jscore 6 | LOCAL_WHOLE_STATIC_LIBRARIES := jsc 7 | include $(BUILD_SHARED_LIBRARY) 8 | 9 | include $(MY_LOCAL_PATH)/../dep/icu/Android.mk 10 | include $(MY_LOCAL_PATH)/wtf.mk 11 | include $(MY_LOCAL_PATH)/jsc.mk 12 | include $(MY_LOCAL_PATH)/jsc_offsets.mk -------------------------------------------------------------------------------- /jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_PLATFORM := android-16 2 | APP_ABI := armeabi-v7a 3 | APP_STL := gnustl_static 4 | 5 | -------------------------------------------------------------------------------- /jni/jsc.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | MY_SRC_DIR := ../dep/WebKit/Source/JavaScriptCore 5 | MY_GEN_DIR := ../gen/jsc 6 | 7 | LOCAL_MODULE := jsc 8 | LOCAL_STATIC_LIBRARIES := icuuc icui18n wtf 9 | LOCAL_CFLAGS += \ 10 | -D__STDC_LIMIT_MACROS \ 11 | -DUSE_EXPORT_MACROS=1 \ 12 | -DBUILDING_JavaScriptCore=1 \ 13 | -DNDEBUG -O2 14 | 15 | LOCAL_CPPFLAGS += -std=gnu++14 16 | LOCAL_C_INCLUDES := \ 17 | $(LOCAL_PATH)/$(MY_SRC_DIR) \ 18 | $(LOCAL_PATH)/$(MY_SRC_DIR)/API \ 19 | $(LOCAL_PATH)/$(MY_SRC_DIR)/ForwardingHeaders \ 20 | $(LOCAL_PATH)/$(MY_SRC_DIR)/assembler \ 21 | $(LOCAL_PATH)/$(MY_SRC_DIR)/b3 \ 22 | $(LOCAL_PATH)/$(MY_SRC_DIR)/b3/air \ 23 | $(LOCAL_PATH)/$(MY_SRC_DIR)/bindings \ 24 | $(LOCAL_PATH)/$(MY_SRC_DIR)/builtins \ 25 | $(LOCAL_PATH)/$(MY_SRC_DIR)/bytecode \ 26 | $(LOCAL_PATH)/$(MY_SRC_DIR)/bytecompiler \ 27 | $(LOCAL_PATH)/$(MY_SRC_DIR)/dfg \ 28 | $(LOCAL_PATH)/$(MY_SRC_DIR)/disassembler \ 29 | $(LOCAL_PATH)/$(MY_SRC_DIR)/disassembler/udis86 \ 30 | $(LOCAL_PATH)/$(MY_SRC_DIR)/ftl \ 31 | $(LOCAL_PATH)/$(MY_SRC_DIR)/heap \ 32 | $(LOCAL_PATH)/$(MY_SRC_DIR)/debugger \ 33 | $(LOCAL_PATH)/$(MY_SRC_DIR)/inspector \ 34 | $(LOCAL_PATH)/$(MY_SRC_DIR)/inspector/agents \ 35 | $(LOCAL_PATH)/$(MY_SRC_DIR)/inspector/augmentable \ 36 | $(LOCAL_PATH)/$(MY_SRC_DIR)/inspector/remote \ 37 | $(LOCAL_PATH)/$(MY_SRC_DIR)/interpreter \ 38 | $(LOCAL_PATH)/$(MY_SRC_DIR)/jit \ 39 | $(LOCAL_PATH)/$(MY_SRC_DIR)/llint \ 40 | $(LOCAL_PATH)/$(MY_SRC_DIR)/parser \ 41 | $(LOCAL_PATH)/$(MY_SRC_DIR)/profiler \ 42 | $(LOCAL_PATH)/$(MY_SRC_DIR)/replay \ 43 | $(LOCAL_PATH)/$(MY_SRC_DIR)/runtime \ 44 | $(LOCAL_PATH)/$(MY_SRC_DIR)/tools \ 45 | $(LOCAL_PATH)/$(MY_SRC_DIR)/wasm \ 46 | $(LOCAL_PATH)/$(MY_SRC_DIR)/yarr \ 47 | $(LOCAL_PATH)/$(MY_GEN_DIR) \ 48 | $(LOCAL_PATH)/$(MY_GEN_DIR)/inspector \ 49 | $(LOCAL_PATH)/$(MY_GEN_DIR)/$(TARGET_ARCH_ABI) \ 50 | 51 | MY_GENERATED_SRC_FILES := \ 52 | $(MY_GEN_DIR)/inspector/InspectorBackendDispatchers.cpp \ 53 | $(MY_GEN_DIR)/inspector/InspectorFrontendDispatchers.cpp \ 54 | $(MY_GEN_DIR)/inspector/InspectorProtocolObjects.cpp \ 55 | $(MY_GEN_DIR)/JSCBuiltins.cpp \ 56 | $(MY_GEN_DIR)/YarrCanonicalizeUnicode.cpp 57 | 58 | MY_API_SRC_FILES := \ 59 | $(MY_SRC_DIR)/API/JSBase.cpp \ 60 | $(MY_SRC_DIR)/API/JSCallbackConstructor.cpp \ 61 | $(MY_SRC_DIR)/API/JSCallbackFunction.cpp \ 62 | $(MY_SRC_DIR)/API/JSCallbackObject.cpp \ 63 | $(MY_SRC_DIR)/API/JSClassRef.cpp \ 64 | $(MY_SRC_DIR)/API/JSContextRef.cpp \ 65 | $(MY_SRC_DIR)/API/JSCTestRunnerUtils.cpp \ 66 | $(MY_SRC_DIR)/API/JSObjectRef.cpp \ 67 | $(MY_SRC_DIR)/API/JSScriptRef.cpp \ 68 | $(MY_SRC_DIR)/API/JSStringRef.cpp \ 69 | $(MY_SRC_DIR)/API/JSTypedArray.cpp \ 70 | $(MY_SRC_DIR)/API/JSValueRef.cpp \ 71 | $(MY_SRC_DIR)/API/JSWeakObjectMapRefPrivate.cpp \ 72 | $(MY_SRC_DIR)/API/OpaqueJSString.cpp 73 | 74 | MY_ASSEMBLER_SRC_FILES := \ 75 | $(MY_SRC_DIR)/assembler/ARMAssembler.cpp \ 76 | $(MY_SRC_DIR)/assembler/LinkBuffer.cpp \ 77 | $(MY_SRC_DIR)/assembler/MacroAssembler.cpp \ 78 | $(MY_SRC_DIR)/assembler/MacroAssemblerARM.cpp \ 79 | $(MY_SRC_DIR)/assembler/MacroAssemblerARMv7.cpp \ 80 | $(MY_SRC_DIR)/assembler/MacroAssemblerCodeRef.cpp \ 81 | $(MY_SRC_DIR)/assembler/MacroAssemblerPrinter.cpp \ 82 | $(MY_SRC_DIR)/assembler/MacroAssemblerX86Common.cpp 83 | 84 | MY_B3_SRC_FILES := \ 85 | $(MY_SRC_DIR)/b3/air/AirAllocateStack.cpp \ 86 | $(MY_SRC_DIR)/b3/air/AirArg.cpp \ 87 | $(MY_SRC_DIR)/b3/air/AirBasicBlock.cpp \ 88 | $(MY_SRC_DIR)/b3/air/AirCCallSpecial.cpp \ 89 | $(MY_SRC_DIR)/b3/air/AirCCallingConvention.cpp \ 90 | $(MY_SRC_DIR)/b3/air/AirCode.cpp \ 91 | $(MY_SRC_DIR)/b3/air/AirCustom.cpp \ 92 | $(MY_SRC_DIR)/b3/air/AirDumpAsJS.cpp \ 93 | $(MY_SRC_DIR)/b3/air/AirEliminateDeadCode.cpp \ 94 | $(MY_SRC_DIR)/b3/air/AirEmitShuffle.cpp \ 95 | $(MY_SRC_DIR)/b3/air/AirFixObviousSpills.cpp \ 96 | $(MY_SRC_DIR)/b3/air/AirFixPartialRegisterStalls.cpp \ 97 | $(MY_SRC_DIR)/b3/air/AirGenerate.cpp \ 98 | $(MY_SRC_DIR)/b3/air/AirGenerated.cpp \ 99 | $(MY_SRC_DIR)/b3/air/AirHandleCalleeSaves.cpp \ 100 | $(MY_SRC_DIR)/b3/air/AirInsertionSet.cpp \ 101 | $(MY_SRC_DIR)/b3/air/AirInst.cpp \ 102 | $(MY_SRC_DIR)/b3/air/AirIteratedRegisterCoalescing.cpp \ 103 | $(MY_SRC_DIR)/b3/air/AirLogRegisterPressure.cpp \ 104 | $(MY_SRC_DIR)/b3/air/AirLowerAfterRegAlloc.cpp \ 105 | $(MY_SRC_DIR)/b3/air/AirLowerEntrySwitch.cpp \ 106 | $(MY_SRC_DIR)/b3/air/AirLowerMacros.cpp \ 107 | $(MY_SRC_DIR)/b3/air/AirOptimizeBlockOrder.cpp \ 108 | $(MY_SRC_DIR)/b3/air/AirPhaseScope.cpp \ 109 | $(MY_SRC_DIR)/b3/air/AirRegisterPriority.cpp \ 110 | $(MY_SRC_DIR)/b3/air/AirReportUsedRegisters.cpp \ 111 | $(MY_SRC_DIR)/b3/air/AirSimplifyCFG.cpp \ 112 | $(MY_SRC_DIR)/b3/air/AirSpecial.cpp \ 113 | $(MY_SRC_DIR)/b3/air/AirSpillEverything.cpp \ 114 | $(MY_SRC_DIR)/b3/air/AirStackSlot.cpp \ 115 | $(MY_SRC_DIR)/b3/air/AirStackSlotKind.cpp \ 116 | $(MY_SRC_DIR)/b3/air/AirTmp.cpp \ 117 | $(MY_SRC_DIR)/b3/air/AirTmpWidth.cpp \ 118 | $(MY_SRC_DIR)/b3/air/AirValidate.cpp \ 119 | $(MY_SRC_DIR)/b3/B3ArgumentRegValue.cpp \ 120 | $(MY_SRC_DIR)/b3/B3BasicBlock.cpp \ 121 | $(MY_SRC_DIR)/b3/B3BlockInsertionSet.cpp \ 122 | $(MY_SRC_DIR)/b3/B3BreakCriticalEdges.cpp \ 123 | $(MY_SRC_DIR)/b3/B3CCallValue.cpp \ 124 | $(MY_SRC_DIR)/b3/B3CaseCollection.cpp \ 125 | $(MY_SRC_DIR)/b3/B3CheckSpecial.cpp \ 126 | $(MY_SRC_DIR)/b3/B3CheckValue.cpp \ 127 | $(MY_SRC_DIR)/b3/B3Common.cpp \ 128 | $(MY_SRC_DIR)/b3/B3Commutativity.cpp \ 129 | $(MY_SRC_DIR)/b3/B3Compilation.cpp \ 130 | $(MY_SRC_DIR)/b3/B3Const32Value.cpp \ 131 | $(MY_SRC_DIR)/b3/B3Const64Value.cpp \ 132 | $(MY_SRC_DIR)/b3/B3ConstDoubleValue.cpp \ 133 | $(MY_SRC_DIR)/b3/B3ConstFloatValue.cpp \ 134 | $(MY_SRC_DIR)/b3/B3ConstrainedValue.cpp \ 135 | $(MY_SRC_DIR)/b3/B3DataSection.cpp \ 136 | $(MY_SRC_DIR)/b3/B3DuplicateTails.cpp \ 137 | $(MY_SRC_DIR)/b3/B3Effects.cpp \ 138 | $(MY_SRC_DIR)/b3/B3EliminateCommonSubexpressions.cpp \ 139 | $(MY_SRC_DIR)/b3/B3FixSSA.cpp \ 140 | $(MY_SRC_DIR)/b3/B3FoldPathConstants.cpp \ 141 | $(MY_SRC_DIR)/b3/B3FrequencyClass.cpp \ 142 | $(MY_SRC_DIR)/b3/B3Generate.cpp \ 143 | $(MY_SRC_DIR)/b3/B3HeapRange.cpp \ 144 | $(MY_SRC_DIR)/b3/B3InferSwitches.cpp \ 145 | $(MY_SRC_DIR)/b3/B3InsertionSet.cpp \ 146 | $(MY_SRC_DIR)/b3/B3LegalizeMemoryOffsets.cpp \ 147 | $(MY_SRC_DIR)/b3/B3LowerMacros.cpp \ 148 | $(MY_SRC_DIR)/b3/B3LowerMacrosAfterOptimizations.cpp \ 149 | $(MY_SRC_DIR)/b3/B3LowerToAir.cpp \ 150 | $(MY_SRC_DIR)/b3/B3MathExtras.cpp \ 151 | $(MY_SRC_DIR)/b3/B3MemoryValue.cpp \ 152 | $(MY_SRC_DIR)/b3/B3MoveConstants.cpp \ 153 | $(MY_SRC_DIR)/b3/B3OpaqueByproducts.cpp \ 154 | $(MY_SRC_DIR)/b3/B3Opcode.cpp \ 155 | $(MY_SRC_DIR)/b3/B3Origin.cpp \ 156 | $(MY_SRC_DIR)/b3/B3OriginDump.cpp \ 157 | $(MY_SRC_DIR)/b3/B3PatchpointSpecial.cpp \ 158 | $(MY_SRC_DIR)/b3/B3PatchpointValue.cpp \ 159 | $(MY_SRC_DIR)/b3/B3PhaseScope.cpp \ 160 | $(MY_SRC_DIR)/b3/B3PhiChildren.cpp \ 161 | $(MY_SRC_DIR)/b3/B3Procedure.cpp \ 162 | $(MY_SRC_DIR)/b3/B3PureCSE.cpp \ 163 | $(MY_SRC_DIR)/b3/B3ReduceDoubleToFloat.cpp \ 164 | $(MY_SRC_DIR)/b3/B3ReduceStrength.cpp \ 165 | $(MY_SRC_DIR)/b3/B3SSACalculator.cpp \ 166 | $(MY_SRC_DIR)/b3/B3SlotBaseValue.cpp \ 167 | $(MY_SRC_DIR)/b3/B3StackmapGenerationParams.cpp \ 168 | $(MY_SRC_DIR)/b3/B3StackmapSpecial.cpp \ 169 | $(MY_SRC_DIR)/b3/B3StackmapValue.cpp \ 170 | $(MY_SRC_DIR)/b3/B3StackSlot.cpp \ 171 | $(MY_SRC_DIR)/b3/B3SwitchCase.cpp \ 172 | $(MY_SRC_DIR)/b3/B3SwitchValue.cpp \ 173 | $(MY_SRC_DIR)/b3/B3TimingScope.cpp \ 174 | $(MY_SRC_DIR)/b3/B3Type.cpp \ 175 | $(MY_SRC_DIR)/b3/B3UpsilonValue.cpp \ 176 | $(MY_SRC_DIR)/b3/B3UseCounts.cpp \ 177 | $(MY_SRC_DIR)/b3/B3Validate.cpp \ 178 | $(MY_SRC_DIR)/b3/B3Value.cpp \ 179 | $(MY_SRC_DIR)/b3/B3ValueKey.cpp \ 180 | $(MY_SRC_DIR)/b3/B3ValueRep.cpp \ 181 | $(MY_SRC_DIR)/b3/B3Variable.cpp \ 182 | $(MY_SRC_DIR)/b3/B3VariableValue.cpp 183 | 184 | MY_BINDING_SRC_FILES := \ 185 | $(MY_SRC_DIR)/bindings/ScriptFunctionCall.cpp \ 186 | $(MY_SRC_DIR)/bindings/ScriptObject.cpp \ 187 | $(MY_SRC_DIR)/bindings/ScriptValue.cpp 188 | 189 | MY_BUILTINS_SRC_FILES := \ 190 | $(MY_SRC_DIR)/builtins/BuiltinExecutables.cpp \ 191 | $(MY_SRC_DIR)/builtins/BuiltinExecutableCreator.cpp 192 | 193 | MY_BYTECODE_SRC_FILES := \ 194 | $(MY_SRC_DIR)/bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp \ 195 | $(MY_SRC_DIR)/bytecode/ArithProfile.cpp \ 196 | $(MY_SRC_DIR)/bytecode/ArrayAllocationProfile.cpp \ 197 | $(MY_SRC_DIR)/bytecode/ArrayProfile.cpp \ 198 | $(MY_SRC_DIR)/bytecode/BytecodeBasicBlock.cpp \ 199 | $(MY_SRC_DIR)/bytecode/BytecodeGeneratorification.cpp \ 200 | $(MY_SRC_DIR)/bytecode/BytecodeRewriter.cpp \ 201 | $(MY_SRC_DIR)/bytecode/BytecodeIntrinsicRegistry.cpp \ 202 | $(MY_SRC_DIR)/bytecode/BytecodeLivenessAnalysis.cpp \ 203 | $(MY_SRC_DIR)/bytecode/CallEdge.cpp \ 204 | $(MY_SRC_DIR)/bytecode/CallLinkInfo.cpp \ 205 | $(MY_SRC_DIR)/bytecode/CallLinkStatus.cpp \ 206 | $(MY_SRC_DIR)/bytecode/CallMode.cpp \ 207 | $(MY_SRC_DIR)/bytecode/CallVariant.cpp \ 208 | $(MY_SRC_DIR)/bytecode/CodeBlock.cpp \ 209 | $(MY_SRC_DIR)/bytecode/CodeBlockHash.cpp \ 210 | $(MY_SRC_DIR)/bytecode/CodeBlockJettisoningWatchpoint.cpp \ 211 | $(MY_SRC_DIR)/bytecode/CodeOrigin.cpp \ 212 | $(MY_SRC_DIR)/bytecode/CodeType.cpp \ 213 | $(MY_SRC_DIR)/bytecode/ComplexGetStatus.cpp \ 214 | $(MY_SRC_DIR)/bytecode/DataFormat.cpp \ 215 | $(MY_SRC_DIR)/bytecode/DFGExitProfile.cpp \ 216 | $(MY_SRC_DIR)/bytecode/DeferredCompilationCallback.cpp \ 217 | $(MY_SRC_DIR)/bytecode/DeferredSourceDump.cpp \ 218 | $(MY_SRC_DIR)/bytecode/ExecutionCounter.cpp \ 219 | $(MY_SRC_DIR)/bytecode/ExitKind.cpp \ 220 | $(MY_SRC_DIR)/bytecode/ExitingJITType.cpp \ 221 | $(MY_SRC_DIR)/bytecode/GetByIdStatus.cpp \ 222 | $(MY_SRC_DIR)/bytecode/GetByIdVariant.cpp \ 223 | $(MY_SRC_DIR)/bytecode/InlineAccess.cpp \ 224 | $(MY_SRC_DIR)/bytecode/InlineCallFrame.cpp \ 225 | $(MY_SRC_DIR)/bytecode/InlineCallFrameSet.cpp \ 226 | $(MY_SRC_DIR)/bytecode/JumpTable.cpp \ 227 | $(MY_SRC_DIR)/bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp \ 228 | $(MY_SRC_DIR)/bytecode/LazyOperandValueProfile.cpp \ 229 | $(MY_SRC_DIR)/bytecode/MethodOfGettingAValueProfile.cpp \ 230 | $(MY_SRC_DIR)/bytecode/ObjectPropertyCondition.cpp \ 231 | $(MY_SRC_DIR)/bytecode/ObjectPropertyConditionSet.cpp \ 232 | $(MY_SRC_DIR)/bytecode/Opcode.cpp \ 233 | $(MY_SRC_DIR)/bytecode/PolymorphicAccess.cpp \ 234 | $(MY_SRC_DIR)/bytecode/PreciseJumpTargets.cpp \ 235 | $(MY_SRC_DIR)/bytecode/PropertyCondition.cpp \ 236 | $(MY_SRC_DIR)/bytecode/PutByIdFlags.cpp \ 237 | $(MY_SRC_DIR)/bytecode/PutByIdStatus.cpp \ 238 | $(MY_SRC_DIR)/bytecode/PutByIdVariant.cpp \ 239 | $(MY_SRC_DIR)/bytecode/ReduceWhitespace.cpp \ 240 | $(MY_SRC_DIR)/bytecode/SpecialPointer.cpp \ 241 | $(MY_SRC_DIR)/bytecode/SpeculatedType.cpp \ 242 | $(MY_SRC_DIR)/bytecode/StructureSet.cpp \ 243 | $(MY_SRC_DIR)/bytecode/StructureStubClearingWatchpoint.cpp \ 244 | $(MY_SRC_DIR)/bytecode/StructureStubInfo.cpp \ 245 | $(MY_SRC_DIR)/bytecode/SuperSampler.cpp \ 246 | $(MY_SRC_DIR)/bytecode/ToThisStatus.cpp \ 247 | $(MY_SRC_DIR)/bytecode/TrackedReferences.cpp \ 248 | $(MY_SRC_DIR)/bytecode/UnlinkedCodeBlock.cpp \ 249 | $(MY_SRC_DIR)/bytecode/UnlinkedFunctionExecutable.cpp \ 250 | $(MY_SRC_DIR)/bytecode/UnlinkedInstructionStream.cpp \ 251 | $(MY_SRC_DIR)/bytecode/ValueRecovery.cpp \ 252 | $(MY_SRC_DIR)/bytecode/VariableWriteFireDetail.cpp \ 253 | $(MY_SRC_DIR)/bytecode/VirtualRegister.cpp \ 254 | $(MY_SRC_DIR)/bytecode/Watchpoint.cpp 255 | 256 | MY_BYTECOMPILER_SRC_FILES := \ 257 | $(MY_SRC_DIR)/bytecompiler/BytecodeGenerator.cpp \ 258 | $(MY_SRC_DIR)/bytecompiler/NodesCodegen.cpp 259 | 260 | MY_DEBUGGER_SRC_FILES := \ 261 | $(MY_SRC_DIR)/debugger/Debugger.cpp \ 262 | $(MY_SRC_DIR)/debugger/DebuggerCallFrame.cpp \ 263 | $(MY_SRC_DIR)/debugger/DebuggerLocation.cpp \ 264 | $(MY_SRC_DIR)/debugger/DebuggerScope.cpp 265 | 266 | MY_DFG_SRC_FILES := \ 267 | $(MY_SRC_DIR)/dfg/DFGAbstractHeap.cpp \ 268 | $(MY_SRC_DIR)/dfg/DFGAbstractValue.cpp \ 269 | $(MY_SRC_DIR)/dfg/DFGAdaptiveInferredPropertyValueWatchpoint.cpp \ 270 | $(MY_SRC_DIR)/dfg/DFGAdaptiveStructureWatchpoint.cpp \ 271 | $(MY_SRC_DIR)/dfg/DFGArgumentsEliminationPhase.cpp \ 272 | $(MY_SRC_DIR)/dfg/DFGArgumentsUtilities.cpp \ 273 | $(MY_SRC_DIR)/dfg/DFGArithMode.cpp \ 274 | $(MY_SRC_DIR)/dfg/DFGArrayMode.cpp \ 275 | $(MY_SRC_DIR)/dfg/DFGAtTailAbstractState.cpp \ 276 | $(MY_SRC_DIR)/dfg/DFGAvailability.cpp \ 277 | $(MY_SRC_DIR)/dfg/DFGAvailabilityMap.cpp \ 278 | $(MY_SRC_DIR)/dfg/DFGBackwardsPropagationPhase.cpp \ 279 | $(MY_SRC_DIR)/dfg/DFGBasicBlock.cpp \ 280 | $(MY_SRC_DIR)/dfg/DFGBlockInsertionSet.cpp \ 281 | $(MY_SRC_DIR)/dfg/DFGBlockSet.cpp \ 282 | $(MY_SRC_DIR)/dfg/DFGByteCodeParser.cpp \ 283 | $(MY_SRC_DIR)/dfg/DFGCFAPhase.cpp \ 284 | $(MY_SRC_DIR)/dfg/DFGCFGSimplificationPhase.cpp \ 285 | $(MY_SRC_DIR)/dfg/DFGCPSRethreadingPhase.cpp \ 286 | $(MY_SRC_DIR)/dfg/DFGCSEPhase.cpp \ 287 | $(MY_SRC_DIR)/dfg/DFGCapabilities.cpp \ 288 | $(MY_SRC_DIR)/dfg/DFGCleanUpPhase.cpp \ 289 | $(MY_SRC_DIR)/dfg/DFGClobberSet.cpp \ 290 | $(MY_SRC_DIR)/dfg/DFGClobberize.cpp \ 291 | $(MY_SRC_DIR)/dfg/DFGClobbersExitState.cpp \ 292 | $(MY_SRC_DIR)/dfg/DFGCombinedLiveness.cpp \ 293 | $(MY_SRC_DIR)/dfg/DFGCommon.cpp \ 294 | $(MY_SRC_DIR)/dfg/DFGCommonData.cpp \ 295 | $(MY_SRC_DIR)/dfg/DFGCompilationKey.cpp \ 296 | $(MY_SRC_DIR)/dfg/DFGCompilationMode.cpp \ 297 | $(MY_SRC_DIR)/dfg/DFGConstantFoldingPhase.cpp \ 298 | $(MY_SRC_DIR)/dfg/DFGConstantHoistingPhase.cpp \ 299 | $(MY_SRC_DIR)/dfg/DFGCriticalEdgeBreakingPhase.cpp \ 300 | $(MY_SRC_DIR)/dfg/DFGDCEPhase.cpp \ 301 | $(MY_SRC_DIR)/dfg/DFGDesiredIdentifiers.cpp \ 302 | $(MY_SRC_DIR)/dfg/DFGDesiredTransitions.cpp \ 303 | $(MY_SRC_DIR)/dfg/DFGDesiredWatchpoints.cpp \ 304 | $(MY_SRC_DIR)/dfg/DFGDesiredWeakReferences.cpp \ 305 | $(MY_SRC_DIR)/dfg/DFGDisassembler.cpp \ 306 | $(MY_SRC_DIR)/dfg/DFGDoesGC.cpp \ 307 | $(MY_SRC_DIR)/dfg/DFGDriver.cpp \ 308 | $(MY_SRC_DIR)/dfg/DFGEdge.cpp \ 309 | $(MY_SRC_DIR)/dfg/DFGEpoch.cpp \ 310 | $(MY_SRC_DIR)/dfg/DFGFailedFinalizer.cpp \ 311 | $(MY_SRC_DIR)/dfg/DFGFinalizer.cpp \ 312 | $(MY_SRC_DIR)/dfg/DFGFixupPhase.cpp \ 313 | $(MY_SRC_DIR)/dfg/DFGFlushFormat.cpp \ 314 | $(MY_SRC_DIR)/dfg/DFGFlushedAt.cpp \ 315 | $(MY_SRC_DIR)/dfg/DFGLiveCatchVariablePreservationPhase.cpp \ 316 | $(MY_SRC_DIR)/dfg/DFGFrozenValue.cpp \ 317 | $(MY_SRC_DIR)/dfg/DFGGraph.cpp \ 318 | $(MY_SRC_DIR)/dfg/DFGGraphSafepoint.cpp \ 319 | $(MY_SRC_DIR)/dfg/DFGHeapLocation.cpp \ 320 | $(MY_SRC_DIR)/dfg/DFGInPlaceAbstractState.cpp \ 321 | $(MY_SRC_DIR)/dfg/DFGInferredTypeCheck.cpp \ 322 | $(MY_SRC_DIR)/dfg/DFGInsertionSet.cpp \ 323 | $(MY_SRC_DIR)/dfg/DFGIntegerCheckCombiningPhase.cpp \ 324 | $(MY_SRC_DIR)/dfg/DFGIntegerRangeOptimizationPhase.cpp \ 325 | $(MY_SRC_DIR)/dfg/DFGInvalidationPointInjectionPhase.cpp \ 326 | $(MY_SRC_DIR)/dfg/DFGJITCode.cpp \ 327 | $(MY_SRC_DIR)/dfg/DFGJITCompiler.cpp \ 328 | $(MY_SRC_DIR)/dfg/DFGJITFinalizer.cpp \ 329 | $(MY_SRC_DIR)/dfg/DFGJumpReplacement.cpp \ 330 | $(MY_SRC_DIR)/dfg/DFGLICMPhase.cpp \ 331 | $(MY_SRC_DIR)/dfg/DFGLazyJSValue.cpp \ 332 | $(MY_SRC_DIR)/dfg/DFGLazyNode.cpp \ 333 | $(MY_SRC_DIR)/dfg/DFGLivenessAnalysisPhase.cpp \ 334 | $(MY_SRC_DIR)/dfg/DFGLongLivedState.cpp \ 335 | $(MY_SRC_DIR)/dfg/DFGLoopPreHeaderCreationPhase.cpp \ 336 | $(MY_SRC_DIR)/dfg/DFGMaximalFlushInsertionPhase.cpp \ 337 | $(MY_SRC_DIR)/dfg/DFGMayExit.cpp \ 338 | $(MY_SRC_DIR)/dfg/DFGMinifiedGraph.cpp \ 339 | $(MY_SRC_DIR)/dfg/DFGMinifiedNode.cpp \ 340 | $(MY_SRC_DIR)/dfg/DFGMovHintRemovalPhase.cpp \ 341 | $(MY_SRC_DIR)/dfg/DFGMultiGetByOffsetData.cpp \ 342 | $(MY_SRC_DIR)/dfg/DFGNaturalLoops.cpp \ 343 | $(MY_SRC_DIR)/dfg/DFGNode.cpp \ 344 | $(MY_SRC_DIR)/dfg/DFGNodeFlags.cpp \ 345 | $(MY_SRC_DIR)/dfg/DFGNodeOrigin.cpp \ 346 | $(MY_SRC_DIR)/dfg/DFGOSRAvailabilityAnalysisPhase.cpp \ 347 | $(MY_SRC_DIR)/dfg/DFGOSREntry.cpp \ 348 | $(MY_SRC_DIR)/dfg/DFGOSREntrypointCreationPhase.cpp \ 349 | $(MY_SRC_DIR)/dfg/DFGOSRExit.cpp \ 350 | $(MY_SRC_DIR)/dfg/DFGOSRExitBase.cpp \ 351 | $(MY_SRC_DIR)/dfg/DFGOSRExitCompiler.cpp \ 352 | $(MY_SRC_DIR)/dfg/DFGOSRExitCompiler32_64.cpp \ 353 | $(MY_SRC_DIR)/dfg/DFGOSRExitCompiler64.cpp \ 354 | $(MY_SRC_DIR)/dfg/DFGOSRExitCompilerCommon.cpp \ 355 | $(MY_SRC_DIR)/dfg/DFGOSRExitFuzz.cpp \ 356 | $(MY_SRC_DIR)/dfg/DFGOSRExitJumpPlaceholder.cpp \ 357 | $(MY_SRC_DIR)/dfg/DFGOSRExitPreparation.cpp \ 358 | $(MY_SRC_DIR)/dfg/DFGObjectAllocationSinkingPhase.cpp \ 359 | $(MY_SRC_DIR)/dfg/DFGObjectMaterializationData.cpp \ 360 | $(MY_SRC_DIR)/dfg/DFGOperations.cpp \ 361 | $(MY_SRC_DIR)/dfg/DFGPhantomInsertionPhase.cpp \ 362 | $(MY_SRC_DIR)/dfg/DFGPhase.cpp \ 363 | $(MY_SRC_DIR)/dfg/DFGPhiChildren.cpp \ 364 | $(MY_SRC_DIR)/dfg/DFGPlan.cpp \ 365 | $(MY_SRC_DIR)/dfg/DFGPrePostNumbering.cpp \ 366 | $(MY_SRC_DIR)/dfg/DFGPredictionInjectionPhase.cpp \ 367 | $(MY_SRC_DIR)/dfg/DFGPredictionPropagationPhase.cpp \ 368 | $(MY_SRC_DIR)/dfg/DFGPromotedHeapLocation.cpp \ 369 | $(MY_SRC_DIR)/dfg/DFGPureValue.cpp \ 370 | $(MY_SRC_DIR)/dfg/DFGPutStackSinkingPhase.cpp \ 371 | $(MY_SRC_DIR)/dfg/DFGSSACalculator.cpp \ 372 | $(MY_SRC_DIR)/dfg/DFGSSAConversionPhase.cpp \ 373 | $(MY_SRC_DIR)/dfg/DFGSSALoweringPhase.cpp \ 374 | $(MY_SRC_DIR)/dfg/DFGSafepoint.cpp \ 375 | $(MY_SRC_DIR)/dfg/DFGSpeculativeJIT.cpp \ 376 | $(MY_SRC_DIR)/dfg/DFGSpeculativeJIT32_64.cpp \ 377 | $(MY_SRC_DIR)/dfg/DFGSpeculativeJIT64.cpp \ 378 | $(MY_SRC_DIR)/dfg/DFGStackLayoutPhase.cpp \ 379 | $(MY_SRC_DIR)/dfg/DFGStaticExecutionCountEstimationPhase.cpp \ 380 | $(MY_SRC_DIR)/dfg/DFGStoreBarrierInsertionPhase.cpp \ 381 | $(MY_SRC_DIR)/dfg/DFGStrengthReductionPhase.cpp \ 382 | $(MY_SRC_DIR)/dfg/DFGStructureAbstractValue.cpp \ 383 | $(MY_SRC_DIR)/dfg/DFGStructureRegistrationPhase.cpp \ 384 | $(MY_SRC_DIR)/dfg/DFGThreadData.cpp \ 385 | $(MY_SRC_DIR)/dfg/DFGThunks.cpp \ 386 | $(MY_SRC_DIR)/dfg/DFGTierUpCheckInjectionPhase.cpp \ 387 | $(MY_SRC_DIR)/dfg/DFGToFTLDeferredCompilationCallback.cpp \ 388 | $(MY_SRC_DIR)/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp \ 389 | $(MY_SRC_DIR)/dfg/DFGTransition.cpp \ 390 | $(MY_SRC_DIR)/dfg/DFGTypeCheckHoistingPhase.cpp \ 391 | $(MY_SRC_DIR)/dfg/DFGUnificationPhase.cpp \ 392 | $(MY_SRC_DIR)/dfg/DFGUseKind.cpp \ 393 | $(MY_SRC_DIR)/dfg/DFGValidate.cpp \ 394 | $(MY_SRC_DIR)/dfg/DFGValueSource.cpp \ 395 | $(MY_SRC_DIR)/dfg/DFGValueStrength.cpp \ 396 | $(MY_SRC_DIR)/dfg/DFGVarargsForwardingPhase.cpp \ 397 | $(MY_SRC_DIR)/dfg/DFGVariableAccessData.cpp \ 398 | $(MY_SRC_DIR)/dfg/DFGVariableAccessDataDump.cpp \ 399 | $(MY_SRC_DIR)/dfg/DFGVariableEvent.cpp \ 400 | $(MY_SRC_DIR)/dfg/DFGVariableEventStream.cpp \ 401 | $(MY_SRC_DIR)/dfg/DFGVirtualRegisterAllocationPhase.cpp \ 402 | $(MY_SRC_DIR)/dfg/DFGWatchpointCollectionPhase.cpp \ 403 | $(MY_SRC_DIR)/dfg/DFGWorklist.cpp 404 | 405 | MY_DISASSEMBLER_SRC_FILES := \ 406 | $(MY_SRC_DIR)/disassembler/ARM64Disassembler.cpp \ 407 | $(MY_SRC_DIR)/disassembler/ARMLLVMDisassembler.cpp \ 408 | $(MY_SRC_DIR)/disassembler/ARMv7Disassembler.cpp \ 409 | $(MY_SRC_DIR)/disassembler/Disassembler.cpp \ 410 | $(MY_SRC_DIR)/disassembler/UDis86Disassembler.cpp \ 411 | $(MY_SRC_DIR)/disassembler/X86Disassembler.cpp \ 412 | $(MY_SRC_DIR)/disassembler/ARM64/A64DOpcode.cpp \ 413 | $(MY_SRC_DIR)/disassembler/ARMv7/ARMv7DOpcode.cpp 414 | 415 | MY_FTL_SRC_FILES := \ 416 | $(MY_SRC_DIR)/ftl/FTLAbstractHeap.cpp \ 417 | $(MY_SRC_DIR)/ftl/FTLAbstractHeapRepository.cpp \ 418 | $(MY_SRC_DIR)/ftl/FTLAvailableRecovery.cpp \ 419 | $(MY_SRC_DIR)/ftl/FTLCapabilities.cpp \ 420 | $(MY_SRC_DIR)/ftl/FTLCommonValues.cpp \ 421 | $(MY_SRC_DIR)/ftl/FTLCompile.cpp \ 422 | $(MY_SRC_DIR)/ftl/FTLExceptionTarget.cpp \ 423 | $(MY_SRC_DIR)/ftl/FTLExitArgument.cpp \ 424 | $(MY_SRC_DIR)/ftl/FTLExitArgumentForOperand.cpp \ 425 | $(MY_SRC_DIR)/ftl/FTLExitPropertyValue.cpp \ 426 | $(MY_SRC_DIR)/ftl/FTLExitTimeObjectMaterialization.cpp \ 427 | $(MY_SRC_DIR)/ftl/FTLExitValue.cpp \ 428 | $(MY_SRC_DIR)/ftl/FTLFail.cpp \ 429 | $(MY_SRC_DIR)/ftl/FTLForOSREntryJITCode.cpp \ 430 | $(MY_SRC_DIR)/ftl/FTLJITCode.cpp \ 431 | $(MY_SRC_DIR)/ftl/FTLJITFinalizer.cpp \ 432 | $(MY_SRC_DIR)/ftl/FTLLazySlowPath.cpp \ 433 | $(MY_SRC_DIR)/ftl/FTLLink.cpp \ 434 | $(MY_SRC_DIR)/ftl/FTLLocation.cpp \ 435 | $(MY_SRC_DIR)/ftl/FTLLowerDFGToB3.cpp \ 436 | $(MY_SRC_DIR)/ftl/FTLOSREntry.cpp \ 437 | $(MY_SRC_DIR)/ftl/FTLOSRExit.cpp \ 438 | $(MY_SRC_DIR)/ftl/FTLOSRExitCompiler.cpp \ 439 | $(MY_SRC_DIR)/ftl/FTLOSRExitHandle.cpp \ 440 | $(MY_SRC_DIR)/ftl/FTLOperations.cpp \ 441 | $(MY_SRC_DIR)/ftl/FTLOutput.cpp \ 442 | $(MY_SRC_DIR)/ftl/FTLPatchpointExceptionHandle.cpp \ 443 | $(MY_SRC_DIR)/ftl/FTLRecoveryOpcode.cpp \ 444 | $(MY_SRC_DIR)/ftl/FTLSaveRestore.cpp \ 445 | $(MY_SRC_DIR)/ftl/FTLSlowPathCall.cpp \ 446 | $(MY_SRC_DIR)/ftl/FTLSlowPathCallKey.cpp \ 447 | $(MY_SRC_DIR)/ftl/FTLState.cpp \ 448 | $(MY_SRC_DIR)/ftl/FTLThunks.cpp \ 449 | $(MY_SRC_DIR)/ftl/FTLValueRange.cpp 450 | 451 | MY_HEAP_SRC_FILES := \ 452 | $(MY_SRC_DIR)/heap/AllocatorAttributes.cpp \ 453 | $(MY_SRC_DIR)/heap/CodeBlockSet.cpp \ 454 | $(MY_SRC_DIR)/heap/ConservativeRoots.cpp \ 455 | $(MY_SRC_DIR)/heap/CopiedBlock.cpp \ 456 | $(MY_SRC_DIR)/heap/CopiedSpace.cpp \ 457 | $(MY_SRC_DIR)/heap/CopyVisitor.cpp \ 458 | $(MY_SRC_DIR)/heap/DeferGC.cpp \ 459 | $(MY_SRC_DIR)/heap/DestructionMode.cpp \ 460 | $(MY_SRC_DIR)/heap/EdenGCActivityCallback.cpp \ 461 | $(MY_SRC_DIR)/heap/FullGCActivityCallback.cpp \ 462 | $(MY_SRC_DIR)/heap/FreeList.cpp \ 463 | $(MY_SRC_DIR)/heap/GCActivityCallback.cpp \ 464 | $(MY_SRC_DIR)/heap/GCLogging.cpp \ 465 | $(MY_SRC_DIR)/heap/HandleSet.cpp \ 466 | $(MY_SRC_DIR)/heap/HandleStack.cpp \ 467 | $(MY_SRC_DIR)/heap/Heap.cpp \ 468 | $(MY_SRC_DIR)/heap/HeapCell.cpp \ 469 | $(MY_SRC_DIR)/heap/HeapHelperPool.cpp \ 470 | $(MY_SRC_DIR)/heap/HeapOperation.cpp \ 471 | $(MY_SRC_DIR)/heap/HeapProfiler.cpp \ 472 | $(MY_SRC_DIR)/heap/HeapSnapshot.cpp \ 473 | $(MY_SRC_DIR)/heap/HeapSnapshotBuilder.cpp \ 474 | $(MY_SRC_DIR)/heap/HeapStatistics.cpp \ 475 | $(MY_SRC_DIR)/heap/HeapTimer.cpp \ 476 | $(MY_SRC_DIR)/heap/HeapVerifier.cpp \ 477 | $(MY_SRC_DIR)/heap/IncrementalSweeper.cpp \ 478 | $(MY_SRC_DIR)/heap/JITStubRoutineSet.cpp \ 479 | $(MY_SRC_DIR)/heap/LargeAllocation.cpp \ 480 | $(MY_SRC_DIR)/heap/LiveObjectList.cpp \ 481 | $(MY_SRC_DIR)/heap/MachineStackMarker.cpp \ 482 | $(MY_SRC_DIR)/heap/MarkStack.cpp \ 483 | $(MY_SRC_DIR)/heap/MarkedAllocator.cpp \ 484 | $(MY_SRC_DIR)/heap/MarkedBlock.cpp \ 485 | $(MY_SRC_DIR)/heap/MarkedSpace.cpp \ 486 | $(MY_SRC_DIR)/heap/SlotVisitor.cpp \ 487 | $(MY_SRC_DIR)/heap/Weak.cpp \ 488 | $(MY_SRC_DIR)/heap/WeakBlock.cpp \ 489 | $(MY_SRC_DIR)/heap/WeakHandleOwner.cpp \ 490 | $(MY_SRC_DIR)/heap/WeakSet.cpp \ 491 | $(MY_SRC_DIR)/heap/WriteBarrierBuffer.cpp \ 492 | $(MY_SRC_DIR)/heap/WriteBarrierSupport.cpp 493 | 494 | MY_INSPECTOR_SRC_FILES := \ 495 | $(MY_SRC_DIR)/inspector/ConsoleMessage.cpp \ 496 | $(MY_SRC_DIR)/inspector/ContentSearchUtilities.cpp \ 497 | $(MY_SRC_DIR)/inspector/EventLoop.cpp \ 498 | $(MY_SRC_DIR)/inspector/IdentifiersFactory.cpp \ 499 | $(MY_SRC_DIR)/inspector/InjectedScript.cpp \ 500 | $(MY_SRC_DIR)/inspector/InjectedScriptBase.cpp \ 501 | $(MY_SRC_DIR)/inspector/InjectedScriptHost.cpp \ 502 | $(MY_SRC_DIR)/inspector/InjectedScriptManager.cpp \ 503 | $(MY_SRC_DIR)/inspector/InjectedScriptModule.cpp \ 504 | $(MY_SRC_DIR)/inspector/InspectorAgentRegistry.cpp \ 505 | $(MY_SRC_DIR)/inspector/InspectorFrontendRouter.cpp \ 506 | $(MY_SRC_DIR)/inspector/InspectorBackendDispatcher.cpp \ 507 | $(MY_SRC_DIR)/inspector/InspectorValues.cpp \ 508 | $(MY_SRC_DIR)/inspector/JSGlobalObjectConsoleClient.cpp \ 509 | $(MY_SRC_DIR)/inspector/JSGlobalObjectInspectorController.cpp \ 510 | $(MY_SRC_DIR)/inspector/JSGlobalObjectScriptDebugServer.cpp \ 511 | $(MY_SRC_DIR)/inspector/JSInjectedScriptHost.cpp \ 512 | $(MY_SRC_DIR)/inspector/JSInjectedScriptHostPrototype.cpp \ 513 | $(MY_SRC_DIR)/inspector/JSJavaScriptCallFrame.cpp \ 514 | $(MY_SRC_DIR)/inspector/JSJavaScriptCallFramePrototype.cpp \ 515 | $(MY_SRC_DIR)/inspector/JavaScriptCallFrame.cpp \ 516 | $(MY_SRC_DIR)/inspector/PerGlobalObjectWrapperWorld.cpp \ 517 | $(MY_SRC_DIR)/inspector/ScriptArguments.cpp \ 518 | $(MY_SRC_DIR)/inspector/ScriptCallFrame.cpp \ 519 | $(MY_SRC_DIR)/inspector/ScriptCallStack.cpp \ 520 | $(MY_SRC_DIR)/inspector/ScriptCallStackFactory.cpp \ 521 | $(MY_SRC_DIR)/inspector/ScriptDebugServer.cpp \ 522 | $(MY_SRC_DIR)/inspector/agents/InspectorAgent.cpp \ 523 | $(MY_SRC_DIR)/inspector/agents/InspectorConsoleAgent.cpp \ 524 | $(MY_SRC_DIR)/inspector/agents/InspectorDebuggerAgent.cpp \ 525 | $(MY_SRC_DIR)/inspector/agents/InspectorHeapAgent.cpp \ 526 | $(MY_SRC_DIR)/inspector/agents/InspectorRuntimeAgent.cpp \ 527 | $(MY_SRC_DIR)/inspector/agents/InspectorScriptProfilerAgent.cpp \ 528 | $(MY_SRC_DIR)/inspector/agents/JSGlobalObjectConsoleAgent.cpp \ 529 | $(MY_SRC_DIR)/inspector/agents/JSGlobalObjectDebuggerAgent.cpp \ 530 | $(MY_SRC_DIR)/inspector/agents/JSGlobalObjectRuntimeAgent.cpp 531 | 532 | MY_INTERPRETER_SRC_FILES := \ 533 | $(MY_SRC_DIR)/interpreter/AbstractPC.cpp \ 534 | $(MY_SRC_DIR)/interpreter/CLoopStack.cpp \ 535 | $(MY_SRC_DIR)/interpreter/CallFrame.cpp \ 536 | $(MY_SRC_DIR)/interpreter/Interpreter.cpp \ 537 | $(MY_SRC_DIR)/interpreter/ProtoCallFrame.cpp \ 538 | $(MY_SRC_DIR)/interpreter/ShadowChicken.cpp \ 539 | $(MY_SRC_DIR)/interpreter/StackVisitor.cpp 540 | 541 | MY_JIT_SRC_FILES := \ 542 | $(MY_SRC_DIR)/jit/AssemblyHelpers.cpp \ 543 | $(MY_SRC_DIR)/jit/BinarySwitch.cpp \ 544 | $(MY_SRC_DIR)/jit/CCallHelpers.cpp \ 545 | $(MY_SRC_DIR)/jit/CachedRecovery.cpp \ 546 | $(MY_SRC_DIR)/jit/CallFrameShuffleData.cpp \ 547 | $(MY_SRC_DIR)/jit/CallFrameShuffler.cpp \ 548 | $(MY_SRC_DIR)/jit/CallFrameShuffler32_64.cpp \ 549 | $(MY_SRC_DIR)/jit/CallFrameShuffler64.cpp \ 550 | $(MY_SRC_DIR)/jit/ExecutableAllocationFuzz.cpp \ 551 | $(MY_SRC_DIR)/jit/ExecutableAllocator.cpp \ 552 | $(MY_SRC_DIR)/jit/ExecutableAllocatorFixedVMPool.cpp \ 553 | $(MY_SRC_DIR)/jit/GCAwareJITStubRoutine.cpp \ 554 | $(MY_SRC_DIR)/jit/GPRInfo.cpp \ 555 | $(MY_SRC_DIR)/jit/HostCallReturnValue.cpp \ 556 | $(MY_SRC_DIR)/jit/ICStats.cpp \ 557 | $(MY_SRC_DIR)/jit/IntrinsicEmitter.cpp \ 558 | $(MY_SRC_DIR)/jit/JIT.cpp \ 559 | $(MY_SRC_DIR)/jit/JITAddGenerator.cpp \ 560 | $(MY_SRC_DIR)/jit/JITArithmetic.cpp \ 561 | $(MY_SRC_DIR)/jit/JITArithmetic32_64.cpp \ 562 | $(MY_SRC_DIR)/jit/JITBitAndGenerator.cpp \ 563 | $(MY_SRC_DIR)/jit/JITBitOrGenerator.cpp \ 564 | $(MY_SRC_DIR)/jit/JITBitXorGenerator.cpp \ 565 | $(MY_SRC_DIR)/jit/JITCall.cpp \ 566 | $(MY_SRC_DIR)/jit/JITCall32_64.cpp \ 567 | $(MY_SRC_DIR)/jit/JITCode.cpp \ 568 | $(MY_SRC_DIR)/jit/JITDisassembler.cpp \ 569 | $(MY_SRC_DIR)/jit/JITDivGenerator.cpp \ 570 | $(MY_SRC_DIR)/jit/JITExceptions.cpp \ 571 | $(MY_SRC_DIR)/jit/JITInlineCacheGenerator.cpp \ 572 | $(MY_SRC_DIR)/jit/JITLeftShiftGenerator.cpp \ 573 | $(MY_SRC_DIR)/jit/JITMulGenerator.cpp \ 574 | $(MY_SRC_DIR)/jit/JITNegGenerator.cpp \ 575 | $(MY_SRC_DIR)/jit/JITOpcodes.cpp \ 576 | $(MY_SRC_DIR)/jit/JITOpcodes32_64.cpp \ 577 | $(MY_SRC_DIR)/jit/JITOperations.cpp \ 578 | $(MY_SRC_DIR)/jit/JITPropertyAccess.cpp \ 579 | $(MY_SRC_DIR)/jit/JITPropertyAccess32_64.cpp \ 580 | $(MY_SRC_DIR)/jit/JITRightShiftGenerator.cpp \ 581 | $(MY_SRC_DIR)/jit/JITStubRoutine.cpp \ 582 | $(MY_SRC_DIR)/jit/JITSubGenerator.cpp \ 583 | $(MY_SRC_DIR)/jit/JITThunks.cpp \ 584 | $(MY_SRC_DIR)/jit/JITToDFGDeferredCompilationCallback.cpp \ 585 | $(MY_SRC_DIR)/jit/JITWorklist.cpp \ 586 | $(MY_SRC_DIR)/jit/PCToCodeOriginMap.cpp \ 587 | $(MY_SRC_DIR)/jit/PolymorphicCallStubRoutine.cpp \ 588 | $(MY_SRC_DIR)/jit/Reg.cpp \ 589 | $(MY_SRC_DIR)/jit/RegisterAtOffset.cpp \ 590 | $(MY_SRC_DIR)/jit/RegisterAtOffsetList.cpp \ 591 | $(MY_SRC_DIR)/jit/RegisterSet.cpp \ 592 | $(MY_SRC_DIR)/jit/Repatch.cpp \ 593 | $(MY_SRC_DIR)/jit/ScratchRegisterAllocator.cpp \ 594 | $(MY_SRC_DIR)/jit/SetupVarargsFrame.cpp \ 595 | $(MY_SRC_DIR)/jit/TagRegistersMode.cpp \ 596 | $(MY_SRC_DIR)/jit/TempRegisterSet.cpp \ 597 | $(MY_SRC_DIR)/jit/ThunkGenerators.cpp 598 | 599 | MY_LLINT_SRC_FILES := \ 600 | $(MY_SRC_DIR)/llint/LLIntCLoop.cpp \ 601 | $(MY_SRC_DIR)/llint/LLIntData.cpp \ 602 | $(MY_SRC_DIR)/llint/LLIntEntrypoint.cpp \ 603 | $(MY_SRC_DIR)/llint/LLIntExceptions.cpp \ 604 | $(MY_SRC_DIR)/llint/LLIntSlowPaths.cpp \ 605 | $(MY_SRC_DIR)/llint/LLIntThunks.cpp \ 606 | $(MY_SRC_DIR)/llint/LowLevelInterpreter.cpp 607 | 608 | MY_PARSER_SRC_FILES := \ 609 | $(MY_SRC_DIR)/parser/Lexer.cpp \ 610 | $(MY_SRC_DIR)/parser/ModuleAnalyzer.cpp \ 611 | $(MY_SRC_DIR)/parser/Nodes.cpp \ 612 | $(MY_SRC_DIR)/parser/NodesAnalyzeModule.cpp \ 613 | $(MY_SRC_DIR)/parser/Parser.cpp \ 614 | $(MY_SRC_DIR)/parser/ParserArena.cpp \ 615 | $(MY_SRC_DIR)/parser/SourceCode.cpp \ 616 | $(MY_SRC_DIR)/parser/SourceProvider.cpp \ 617 | $(MY_SRC_DIR)/parser/SourceProviderCache.cpp \ 618 | $(MY_SRC_DIR)/parser/VariableEnvironment.cpp 619 | 620 | MY_PROFILER_SRC_FILES := \ 621 | $(MY_SRC_DIR)/profiler/ProfilerBytecode.cpp \ 622 | $(MY_SRC_DIR)/profiler/ProfilerBytecodeSequence.cpp \ 623 | $(MY_SRC_DIR)/profiler/ProfilerBytecodes.cpp \ 624 | $(MY_SRC_DIR)/profiler/ProfilerCompilation.cpp \ 625 | $(MY_SRC_DIR)/profiler/ProfilerCompilationKind.cpp \ 626 | $(MY_SRC_DIR)/profiler/ProfilerCompiledBytecode.cpp \ 627 | $(MY_SRC_DIR)/profiler/ProfilerDatabase.cpp \ 628 | $(MY_SRC_DIR)/profiler/ProfilerEvent.cpp \ 629 | $(MY_SRC_DIR)/profiler/ProfilerJettisonReason.cpp \ 630 | $(MY_SRC_DIR)/profiler/ProfilerOSRExit.cpp \ 631 | $(MY_SRC_DIR)/profiler/ProfilerOSRExitSite.cpp \ 632 | $(MY_SRC_DIR)/profiler/ProfilerOrigin.cpp \ 633 | $(MY_SRC_DIR)/profiler/ProfilerOriginStack.cpp \ 634 | $(MY_SRC_DIR)/profiler/ProfilerProfiledBytecodes.cpp \ 635 | $(MY_SRC_DIR)/profiler/ProfilerUID.cpp 636 | 637 | MY_RUNTIME_SRC_FILES := \ 638 | $(MY_SRC_DIR)/runtime/ArgList.cpp \ 639 | $(MY_SRC_DIR)/runtime/ArrayBuffer.cpp \ 640 | $(MY_SRC_DIR)/runtime/ArrayBufferNeuteringWatchpoint.cpp \ 641 | $(MY_SRC_DIR)/runtime/ArrayBufferView.cpp \ 642 | $(MY_SRC_DIR)/runtime/ArrayConstructor.cpp \ 643 | $(MY_SRC_DIR)/runtime/ArrayConventions.cpp \ 644 | $(MY_SRC_DIR)/runtime/ArrayIteratorPrototype.cpp \ 645 | $(MY_SRC_DIR)/runtime/ArrayPrototype.cpp \ 646 | $(MY_SRC_DIR)/runtime/BasicBlockLocation.cpp \ 647 | $(MY_SRC_DIR)/runtime/BooleanConstructor.cpp \ 648 | $(MY_SRC_DIR)/runtime/BooleanObject.cpp \ 649 | $(MY_SRC_DIR)/runtime/BooleanPrototype.cpp \ 650 | $(MY_SRC_DIR)/runtime/CallData.cpp \ 651 | $(MY_SRC_DIR)/runtime/CatchScope.cpp \ 652 | $(MY_SRC_DIR)/runtime/ClonedArguments.cpp \ 653 | $(MY_SRC_DIR)/runtime/CodeCache.cpp \ 654 | $(MY_SRC_DIR)/runtime/CodeSpecializationKind.cpp \ 655 | $(MY_SRC_DIR)/runtime/CommonIdentifiers.cpp \ 656 | $(MY_SRC_DIR)/runtime/CommonSlowPaths.cpp \ 657 | $(MY_SRC_DIR)/runtime/CommonSlowPathsExceptions.cpp \ 658 | $(MY_SRC_DIR)/runtime/CompilationResult.cpp \ 659 | $(MY_SRC_DIR)/runtime/Completion.cpp \ 660 | $(MY_SRC_DIR)/runtime/ConsoleClient.cpp \ 661 | $(MY_SRC_DIR)/runtime/ConsoleObject.cpp \ 662 | $(MY_SRC_DIR)/runtime/ConstantMode.cpp \ 663 | $(MY_SRC_DIR)/runtime/ConstructData.cpp \ 664 | $(MY_SRC_DIR)/runtime/ControlFlowProfiler.cpp \ 665 | $(MY_SRC_DIR)/runtime/CustomGetterSetter.cpp \ 666 | $(MY_SRC_DIR)/runtime/DataView.cpp \ 667 | $(MY_SRC_DIR)/runtime/DateConstructor.cpp \ 668 | $(MY_SRC_DIR)/runtime/DateConversion.cpp \ 669 | $(MY_SRC_DIR)/runtime/DateInstance.cpp \ 670 | $(MY_SRC_DIR)/runtime/DatePrototype.cpp \ 671 | $(MY_SRC_DIR)/runtime/DirectArguments.cpp \ 672 | $(MY_SRC_DIR)/runtime/DirectArgumentsOffset.cpp \ 673 | $(MY_SRC_DIR)/runtime/DumpContext.cpp \ 674 | $(MY_SRC_DIR)/runtime/ECMAScriptSpecInternalFunctions.cpp \ 675 | $(MY_SRC_DIR)/runtime/Error.cpp \ 676 | $(MY_SRC_DIR)/runtime/ErrorConstructor.cpp \ 677 | $(MY_SRC_DIR)/runtime/ErrorHandlingScope.cpp \ 678 | $(MY_SRC_DIR)/runtime/ErrorInstance.cpp \ 679 | $(MY_SRC_DIR)/runtime/ErrorPrototype.cpp \ 680 | $(MY_SRC_DIR)/runtime/Exception.cpp \ 681 | $(MY_SRC_DIR)/runtime/ExceptionEventLocation.cpp \ 682 | $(MY_SRC_DIR)/runtime/ExceptionFuzz.cpp \ 683 | $(MY_SRC_DIR)/runtime/ExceptionHelpers.cpp \ 684 | $(MY_SRC_DIR)/runtime/ExceptionScope.cpp \ 685 | $(MY_SRC_DIR)/runtime/Executable.cpp \ 686 | $(MY_SRC_DIR)/runtime/FunctionConstructor.cpp \ 687 | $(MY_SRC_DIR)/runtime/FunctionExecutableDump.cpp \ 688 | $(MY_SRC_DIR)/runtime/FunctionHasExecutedCache.cpp \ 689 | $(MY_SRC_DIR)/runtime/FunctionPrototype.cpp \ 690 | $(MY_SRC_DIR)/runtime/FunctionRareData.cpp \ 691 | $(MY_SRC_DIR)/runtime/GeneratorFunctionConstructor.cpp \ 692 | $(MY_SRC_DIR)/runtime/GeneratorFunctionPrototype.cpp \ 693 | $(MY_SRC_DIR)/runtime/GeneratorPrototype.cpp \ 694 | $(MY_SRC_DIR)/runtime/GetterSetter.cpp \ 695 | $(MY_SRC_DIR)/runtime/HashMapImpl.cpp \ 696 | $(MY_SRC_DIR)/runtime/Identifier.cpp \ 697 | $(MY_SRC_DIR)/runtime/IndexingType.cpp \ 698 | $(MY_SRC_DIR)/runtime/InferredType.cpp \ 699 | $(MY_SRC_DIR)/runtime/InferredTypeTable.cpp \ 700 | $(MY_SRC_DIR)/runtime/InferredValue.cpp \ 701 | $(MY_SRC_DIR)/runtime/InitializeThreading.cpp \ 702 | $(MY_SRC_DIR)/runtime/InspectorInstrumentationObject.cpp \ 703 | $(MY_SRC_DIR)/runtime/InternalFunction.cpp \ 704 | $(MY_SRC_DIR)/runtime/IntlCollator.cpp \ 705 | $(MY_SRC_DIR)/runtime/IntlCollatorConstructor.cpp \ 706 | $(MY_SRC_DIR)/runtime/IntlCollatorPrototype.cpp \ 707 | $(MY_SRC_DIR)/runtime/IntlDateTimeFormat.cpp \ 708 | $(MY_SRC_DIR)/runtime/IntlDateTimeFormatConstructor.cpp \ 709 | $(MY_SRC_DIR)/runtime/IntlDateTimeFormatPrototype.cpp \ 710 | $(MY_SRC_DIR)/runtime/IntlNumberFormat.cpp \ 711 | $(MY_SRC_DIR)/runtime/IntlNumberFormatConstructor.cpp \ 712 | $(MY_SRC_DIR)/runtime/IntlNumberFormatPrototype.cpp \ 713 | $(MY_SRC_DIR)/runtime/IntlObject.cpp \ 714 | $(MY_SRC_DIR)/runtime/IteratorOperations.cpp \ 715 | $(MY_SRC_DIR)/runtime/IteratorPrototype.cpp \ 716 | $(MY_SRC_DIR)/runtime/JSAPIValueWrapper.cpp \ 717 | $(MY_SRC_DIR)/runtime/JSArray.cpp \ 718 | $(MY_SRC_DIR)/runtime/JSArrayBuffer.cpp \ 719 | $(MY_SRC_DIR)/runtime/JSArrayBufferConstructor.cpp \ 720 | $(MY_SRC_DIR)/runtime/JSArrayBufferPrototype.cpp \ 721 | $(MY_SRC_DIR)/runtime/JSArrayBufferView.cpp \ 722 | $(MY_SRC_DIR)/runtime/JSBoundFunction.cpp \ 723 | $(MY_SRC_DIR)/runtime/JSCJSValue.cpp \ 724 | $(MY_SRC_DIR)/runtime/JSCallee.cpp \ 725 | $(MY_SRC_DIR)/runtime/JSCell.cpp \ 726 | $(MY_SRC_DIR)/runtime/JSCustomGetterSetterFunction.cpp \ 727 | $(MY_SRC_DIR)/runtime/JSDataView.cpp \ 728 | $(MY_SRC_DIR)/runtime/JSDataViewPrototype.cpp \ 729 | $(MY_SRC_DIR)/runtime/JSDateMath.cpp \ 730 | $(MY_SRC_DIR)/runtime/JSEnvironmentRecord.cpp \ 731 | $(MY_SRC_DIR)/runtime/JSFunction.cpp \ 732 | $(MY_SRC_DIR)/runtime/JSGeneratorFunction.cpp \ 733 | $(MY_SRC_DIR)/runtime/JSGlobalLexicalEnvironment.cpp \ 734 | $(MY_SRC_DIR)/runtime/JSGlobalObject.cpp \ 735 | $(MY_SRC_DIR)/runtime/JSGlobalObjectDebuggable.cpp \ 736 | $(MY_SRC_DIR)/runtime/JSGlobalObjectFunctions.cpp \ 737 | $(MY_SRC_DIR)/runtime/JSInternalPromise.cpp \ 738 | $(MY_SRC_DIR)/runtime/JSInternalPromiseConstructor.cpp \ 739 | $(MY_SRC_DIR)/runtime/JSInternalPromiseDeferred.cpp \ 740 | $(MY_SRC_DIR)/runtime/JSInternalPromisePrototype.cpp \ 741 | $(MY_SRC_DIR)/runtime/JSJob.cpp \ 742 | $(MY_SRC_DIR)/runtime/JSLexicalEnvironment.cpp \ 743 | $(MY_SRC_DIR)/runtime/JSLock.cpp \ 744 | $(MY_SRC_DIR)/runtime/JSMap.cpp \ 745 | $(MY_SRC_DIR)/runtime/JSMapIterator.cpp \ 746 | $(MY_SRC_DIR)/runtime/JSModuleEnvironment.cpp \ 747 | $(MY_SRC_DIR)/runtime/JSModuleLoader.cpp \ 748 | $(MY_SRC_DIR)/runtime/JSModuleNamespaceObject.cpp \ 749 | $(MY_SRC_DIR)/runtime/JSModuleRecord.cpp \ 750 | $(MY_SRC_DIR)/runtime/JSNativeStdFunction.cpp \ 751 | $(MY_SRC_DIR)/runtime/JSONObject.cpp \ 752 | $(MY_SRC_DIR)/runtime/JSObject.cpp \ 753 | $(MY_SRC_DIR)/runtime/JSPromise.cpp \ 754 | $(MY_SRC_DIR)/runtime/JSPromiseConstructor.cpp \ 755 | $(MY_SRC_DIR)/runtime/JSPromiseDeferred.cpp \ 756 | $(MY_SRC_DIR)/runtime/JSPromisePrototype.cpp \ 757 | $(MY_SRC_DIR)/runtime/JSPropertyNameEnumerator.cpp \ 758 | $(MY_SRC_DIR)/runtime/JSPropertyNameIterator.cpp \ 759 | $(MY_SRC_DIR)/runtime/JSProxy.cpp \ 760 | $(MY_SRC_DIR)/runtime/JSScope.cpp \ 761 | $(MY_SRC_DIR)/runtime/JSSegmentedVariableObject.cpp \ 762 | $(MY_SRC_DIR)/runtime/JSSet.cpp \ 763 | $(MY_SRC_DIR)/runtime/JSSetIterator.cpp \ 764 | $(MY_SRC_DIR)/runtime/JSString.cpp \ 765 | $(MY_SRC_DIR)/runtime/JSStringIterator.cpp \ 766 | $(MY_SRC_DIR)/runtime/JSStringJoiner.cpp \ 767 | $(MY_SRC_DIR)/runtime/JSSymbolTableObject.cpp \ 768 | $(MY_SRC_DIR)/runtime/JSTemplateRegistryKey.cpp \ 769 | $(MY_SRC_DIR)/runtime/JSTypedArrayConstructors.cpp \ 770 | $(MY_SRC_DIR)/runtime/JSTypedArrayPrototypes.cpp \ 771 | $(MY_SRC_DIR)/runtime/JSTypedArrayViewConstructor.cpp \ 772 | $(MY_SRC_DIR)/runtime/JSTypedArrayViewPrototype.cpp \ 773 | $(MY_SRC_DIR)/runtime/JSTypedArrays.cpp \ 774 | $(MY_SRC_DIR)/runtime/JSWeakMap.cpp \ 775 | $(MY_SRC_DIR)/runtime/JSWeakSet.cpp \ 776 | $(MY_SRC_DIR)/runtime/JSWithScope.cpp \ 777 | $(MY_SRC_DIR)/runtime/JSWrapperObject.cpp \ 778 | $(MY_SRC_DIR)/runtime/LazyClassStructure.cpp \ 779 | $(MY_SRC_DIR)/runtime/LiteralParser.cpp \ 780 | $(MY_SRC_DIR)/runtime/Lookup.cpp \ 781 | $(MY_SRC_DIR)/runtime/MapBase.cpp \ 782 | $(MY_SRC_DIR)/runtime/MapConstructor.cpp \ 783 | $(MY_SRC_DIR)/runtime/MapIteratorPrototype.cpp \ 784 | $(MY_SRC_DIR)/runtime/MapPrototype.cpp \ 785 | $(MY_SRC_DIR)/runtime/MatchResult.cpp \ 786 | $(MY_SRC_DIR)/runtime/MathCommon.cpp \ 787 | $(MY_SRC_DIR)/runtime/MathObject.cpp \ 788 | $(MY_SRC_DIR)/runtime/MemoryStatistics.cpp \ 789 | $(MY_SRC_DIR)/runtime/ModuleLoaderPrototype.cpp \ 790 | $(MY_SRC_DIR)/runtime/NativeErrorConstructor.cpp \ 791 | $(MY_SRC_DIR)/runtime/NativeErrorPrototype.cpp \ 792 | $(MY_SRC_DIR)/runtime/NativeStdFunctionCell.cpp \ 793 | $(MY_SRC_DIR)/runtime/NullGetterFunction.cpp \ 794 | $(MY_SRC_DIR)/runtime/NullSetterFunction.cpp \ 795 | $(MY_SRC_DIR)/runtime/NumberConstructor.cpp \ 796 | $(MY_SRC_DIR)/runtime/NumberObject.cpp \ 797 | $(MY_SRC_DIR)/runtime/NumberPrototype.cpp \ 798 | $(MY_SRC_DIR)/runtime/ObjectConstructor.cpp \ 799 | $(MY_SRC_DIR)/runtime/ObjectPrototype.cpp \ 800 | $(MY_SRC_DIR)/runtime/Operations.cpp \ 801 | $(MY_SRC_DIR)/runtime/Options.cpp \ 802 | $(MY_SRC_DIR)/runtime/PropertyDescriptor.cpp \ 803 | $(MY_SRC_DIR)/runtime/PropertySlot.cpp \ 804 | $(MY_SRC_DIR)/runtime/PropertyTable.cpp \ 805 | $(MY_SRC_DIR)/runtime/PrototypeMap.cpp \ 806 | $(MY_SRC_DIR)/runtime/ProxyConstructor.cpp \ 807 | $(MY_SRC_DIR)/runtime/ProxyObject.cpp \ 808 | $(MY_SRC_DIR)/runtime/ProxyRevoke.cpp \ 809 | $(MY_SRC_DIR)/runtime/ReflectObject.cpp \ 810 | $(MY_SRC_DIR)/runtime/RegExp.cpp \ 811 | $(MY_SRC_DIR)/runtime/RegExpCache.cpp \ 812 | $(MY_SRC_DIR)/runtime/RegExpCachedResult.cpp \ 813 | $(MY_SRC_DIR)/runtime/RegExpConstructor.cpp \ 814 | $(MY_SRC_DIR)/runtime/RegExpMatchesArray.cpp \ 815 | $(MY_SRC_DIR)/runtime/RegExpObject.cpp \ 816 | $(MY_SRC_DIR)/runtime/RegExpPrototype.cpp \ 817 | $(MY_SRC_DIR)/runtime/RuntimeType.cpp \ 818 | $(MY_SRC_DIR)/runtime/SamplingCounter.cpp \ 819 | $(MY_SRC_DIR)/runtime/SamplingProfiler.cpp \ 820 | $(MY_SRC_DIR)/runtime/ScopeOffset.cpp \ 821 | $(MY_SRC_DIR)/runtime/ScopedArguments.cpp \ 822 | $(MY_SRC_DIR)/runtime/ScopedArgumentsTable.cpp \ 823 | $(MY_SRC_DIR)/runtime/SetConstructor.cpp \ 824 | $(MY_SRC_DIR)/runtime/SetIteratorPrototype.cpp \ 825 | $(MY_SRC_DIR)/runtime/SetPrototype.cpp \ 826 | $(MY_SRC_DIR)/runtime/SimpleTypedArrayController.cpp \ 827 | $(MY_SRC_DIR)/runtime/SmallStrings.cpp \ 828 | $(MY_SRC_DIR)/runtime/SparseArrayValueMap.cpp \ 829 | $(MY_SRC_DIR)/runtime/StackFrame.cpp \ 830 | $(MY_SRC_DIR)/runtime/StrictEvalActivation.cpp \ 831 | $(MY_SRC_DIR)/runtime/StringConstructor.cpp \ 832 | $(MY_SRC_DIR)/runtime/StringIteratorPrototype.cpp \ 833 | $(MY_SRC_DIR)/runtime/StringObject.cpp \ 834 | $(MY_SRC_DIR)/runtime/StringPrototype.cpp \ 835 | $(MY_SRC_DIR)/runtime/StringRecursionChecker.cpp \ 836 | $(MY_SRC_DIR)/runtime/Structure.cpp \ 837 | $(MY_SRC_DIR)/runtime/StructureChain.cpp \ 838 | $(MY_SRC_DIR)/runtime/StructureIDTable.cpp \ 839 | $(MY_SRC_DIR)/runtime/StructureRareData.cpp \ 840 | $(MY_SRC_DIR)/runtime/Symbol.cpp \ 841 | $(MY_SRC_DIR)/runtime/SymbolConstructor.cpp \ 842 | $(MY_SRC_DIR)/runtime/SymbolObject.cpp \ 843 | $(MY_SRC_DIR)/runtime/SymbolPrototype.cpp \ 844 | $(MY_SRC_DIR)/runtime/SymbolTable.cpp \ 845 | $(MY_SRC_DIR)/runtime/ThrowScope.cpp \ 846 | $(MY_SRC_DIR)/runtime/TemplateRegistry.cpp \ 847 | $(MY_SRC_DIR)/runtime/TestRunnerUtils.cpp \ 848 | $(MY_SRC_DIR)/runtime/TypeLocationCache.cpp \ 849 | $(MY_SRC_DIR)/runtime/TypeProfiler.cpp \ 850 | $(MY_SRC_DIR)/runtime/TypeProfilerLog.cpp \ 851 | $(MY_SRC_DIR)/runtime/TypeSet.cpp \ 852 | $(MY_SRC_DIR)/runtime/TypedArrayController.cpp \ 853 | $(MY_SRC_DIR)/runtime/TypedArrayType.cpp \ 854 | $(MY_SRC_DIR)/runtime/TypeofType.cpp \ 855 | $(MY_SRC_DIR)/runtime/VM.cpp \ 856 | $(MY_SRC_DIR)/runtime/VMEntryScope.cpp \ 857 | $(MY_SRC_DIR)/runtime/VarOffset.cpp \ 858 | $(MY_SRC_DIR)/runtime/Watchdog.cpp \ 859 | $(MY_SRC_DIR)/runtime/WeakMapConstructor.cpp \ 860 | $(MY_SRC_DIR)/runtime/WeakMapData.cpp \ 861 | $(MY_SRC_DIR)/runtime/WeakMapPrototype.cpp \ 862 | $(MY_SRC_DIR)/runtime/WeakSetConstructor.cpp \ 863 | $(MY_SRC_DIR)/runtime/WeakSetPrototype.cpp 864 | 865 | MY_TOOLS_SRC_FILES := \ 866 | $(MY_SRC_DIR)/tools/CodeProfile.cpp \ 867 | $(MY_SRC_DIR)/tools/CodeProfiling.cpp \ 868 | $(MY_SRC_DIR)/tools/FunctionOverrides.cpp \ 869 | $(MY_SRC_DIR)/tools/FunctionWhitelist.cpp \ 870 | $(MY_SRC_DIR)/tools/JSDollarVM.cpp \ 871 | $(MY_SRC_DIR)/tools/JSDollarVMPrototype.cpp 872 | 873 | MY_WASM_SRC_FILES := \ 874 | $(MY_SRC_DIR)/wasm/JSWASMModule.cpp \ 875 | $(MY_SRC_DIR)/wasm/WASMB3IRGenerator.cpp \ 876 | $(MY_SRC_DIR)/wasm/WASMCallingConvention.cpp \ 877 | $(MY_SRC_DIR)/wasm/WASMModuleParser.cpp \ 878 | $(MY_SRC_DIR)/wasm/WASMPlan.cpp \ 879 | $(MY_SRC_DIR)/wasm/WASMSections.cpp 880 | 881 | MY_YARR_SRC_FILES := \ 882 | $(MY_SRC_DIR)/yarr/RegularExpression.cpp \ 883 | $(MY_SRC_DIR)/yarr/YarrCanonicalizeUCS2.cpp \ 884 | $(MY_SRC_DIR)/yarr/YarrInterpreter.cpp \ 885 | $(MY_SRC_DIR)/yarr/YarrJIT.cpp \ 886 | $(MY_SRC_DIR)/yarr/YarrPattern.cpp \ 887 | $(MY_SRC_DIR)/yarr/YarrSyntaxChecker.cpp 888 | 889 | 890 | LOCAL_SRC_FILES := \ 891 | $(MY_API_SRC_FILES) \ 892 | $(MY_ASSEMBLER_SRC_FILES) \ 893 | $(MY_B3_SRC_FILES) \ 894 | $(MY_BINDING_SRC_FILES) \ 895 | $(MY_BUILTINS_SRC_FILES) \ 896 | $(MY_BYTECODE_SRC_FILES) \ 897 | $(MY_BYTECOMPILER_SRC_FILES) \ 898 | $(MY_DEBUGGER_SRC_FILES) \ 899 | $(MY_DFG_SRC_FILES) \ 900 | $(MY_DISASSEMBLER_SRC_FILES) \ 901 | $(MY_FTL_SRC_FILES) \ 902 | $(MY_HEAP_SRC_FILES) \ 903 | $(MY_INSPECTOR_SRC_FILES) \ 904 | $(MY_INTERPRETER_SRC_FILES) \ 905 | $(MY_JIT_SRC_FILES) \ 906 | $(MY_LLINT_SRC_FILES) \ 907 | $(MY_PARSER_SRC_FILES) \ 908 | $(MY_PROFILER_SRC_FILES) \ 909 | $(MY_RUNTIME_SRC_FILES) \ 910 | $(MY_TOOLS_SRC_FILES) \ 911 | $(MY_WASM_SRC_FILES) \ 912 | $(MY_YARR_SRC_FILES) \ 913 | $(MY_GENERATED_SRC_FILES) 914 | 915 | 916 | include $(BUILD_STATIC_LIBRARY) 917 | 918 | 919 | -------------------------------------------------------------------------------- /jni/jsc_offsets.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | MY_SRC_DIR := ../dep/WebKit/Source/JavaScriptCore 5 | MY_GEN_DIR := ../gen/jsc 6 | 7 | LOCAL_MODULE := jsc_offsets 8 | LOCAL_STATIC_LIBRARIES := icuuc wtf 9 | LOCAL_CFLAGS += \ 10 | -D__STDC_LIMIT_MACROS \ 11 | -DNDEBUG -O2 12 | 13 | LOCAL_CPPFLAGS += -std=gnu++14 14 | LOCAL_C_INCLUDES := \ 15 | $(LOCAL_PATH)/$(MY_SRC_DIR) \ 16 | $(LOCAL_PATH)/$(MY_SRC_DIR)/API \ 17 | $(LOCAL_PATH)/$(MY_SRC_DIR)/assembler \ 18 | $(LOCAL_PATH)/$(MY_SRC_DIR)/bytecode \ 19 | $(LOCAL_PATH)/$(MY_SRC_DIR)/dfg \ 20 | $(LOCAL_PATH)/$(MY_SRC_DIR)/disassembler \ 21 | $(LOCAL_PATH)/$(MY_SRC_DIR)/heap \ 22 | $(LOCAL_PATH)/$(MY_SRC_DIR)/interpreter \ 23 | $(LOCAL_PATH)/$(MY_SRC_DIR)/jit \ 24 | $(LOCAL_PATH)/$(MY_SRC_DIR)/llint \ 25 | $(LOCAL_PATH)/$(MY_SRC_DIR)/parser \ 26 | $(LOCAL_PATH)/$(MY_SRC_DIR)/profiler \ 27 | $(LOCAL_PATH)/$(MY_SRC_DIR)/runtime \ 28 | $(LOCAL_PATH)/$(MY_GEN_DIR) \ 29 | $(LOCAL_PATH)/$(MY_GEN_DIR)/include 30 | 31 | 32 | LOCAL_SRC_FILES := \ 33 | $(MY_SRC_DIR)/llint/LLIntOffsetsExtractor.cpp 34 | 35 | include $(BUILD_SHARED_LIBRARY) -------------------------------------------------------------------------------- /jni/wtf.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | MY_SRC_DIR := ../dep/WebKit/Source/WTF 5 | 6 | LOCAL_MODULE := wtf 7 | LOCAL_STATIC_LIBRARIES := icuuc icui18n 8 | LOCAL_CFLAGS := \ 9 | -DUSE_SYSTEM_MALLOC=1 \ 10 | -DNDEBUG -O2 11 | 12 | LOCAL_CPPFLAGS += -std=gnu++14 13 | 14 | LOCAL_EXPORT_C_INCLUDES := \ 15 | $(LOCAL_PATH)/$(MY_SRC_DIR) 16 | 17 | LOCAL_C_INCLUDES := \ 18 | $(LOCAL_EXPORT_C_INCLUDES) \ 19 | $(LOCAL_PATH)/$(MY_SRC_DIR)/wtf \ 20 | $(LOCAL_PATH)/$(MY_SRC_DIR)/wtf/dtoa \ 21 | $(LOCAL_PATH)/$(MY_SRC_DIR)/wtf/text \ 22 | $(LOCAL_PATH)/$(MY_SRC_DIR)/wtf/text/icu \ 23 | $(LOCAL_PATH)/$(MY_SRC_DIR)/wtf/threads \ 24 | $(LOCAL_PATH)/$(MY_SRC_DIR)/wtf/unicode 25 | 26 | 27 | LOCAL_SRC_FILES := \ 28 | $(MY_SRC_DIR)/wtf/Assertions.cpp \ 29 | $(MY_SRC_DIR)/wtf/Atomics.cpp \ 30 | $(MY_SRC_DIR)/wtf/BitVector.cpp \ 31 | $(MY_SRC_DIR)/wtf/CompilationThread.cpp \ 32 | $(MY_SRC_DIR)/wtf/CrossThreadCopier.cpp \ 33 | $(MY_SRC_DIR)/wtf/CryptographicUtilities.cpp \ 34 | $(MY_SRC_DIR)/wtf/CryptographicallyRandomNumber.cpp \ 35 | $(MY_SRC_DIR)/wtf/CurrentTime.cpp \ 36 | $(MY_SRC_DIR)/wtf/DataLog.cpp \ 37 | $(MY_SRC_DIR)/wtf/DateMath.cpp \ 38 | $(MY_SRC_DIR)/wtf/DecimalNumber.cpp \ 39 | $(MY_SRC_DIR)/wtf/FastBitVector.cpp \ 40 | $(MY_SRC_DIR)/wtf/FastMalloc.cpp \ 41 | $(MY_SRC_DIR)/wtf/FilePrintStream.cpp \ 42 | $(MY_SRC_DIR)/wtf/FunctionDispatcher.cpp \ 43 | $(MY_SRC_DIR)/wtf/GregorianDateTime.cpp \ 44 | $(MY_SRC_DIR)/wtf/HashTable.cpp \ 45 | $(MY_SRC_DIR)/wtf/Lock.cpp \ 46 | $(MY_SRC_DIR)/wtf/MD5.cpp \ 47 | $(MY_SRC_DIR)/wtf/MainThread.cpp \ 48 | $(MY_SRC_DIR)/wtf/MediaTime.cpp \ 49 | $(MY_SRC_DIR)/wtf/MetaAllocator.cpp \ 50 | $(MY_SRC_DIR)/wtf/NumberOfCores.cpp \ 51 | $(MY_SRC_DIR)/wtf/OSRandomSource.cpp \ 52 | $(MY_SRC_DIR)/wtf/PageBlock.cpp \ 53 | $(MY_SRC_DIR)/wtf/ParallelHelperPool.cpp \ 54 | $(MY_SRC_DIR)/wtf/ParallelJobsGeneric.cpp \ 55 | $(MY_SRC_DIR)/wtf/ParkingLot.cpp \ 56 | $(MY_SRC_DIR)/wtf/PrintStream.cpp \ 57 | $(MY_SRC_DIR)/wtf/RAMSize.cpp \ 58 | $(MY_SRC_DIR)/wtf/RandomNumber.cpp \ 59 | $(MY_SRC_DIR)/wtf/RefCountedLeakCounter.cpp \ 60 | $(MY_SRC_DIR)/wtf/RunLoop.cpp \ 61 | $(MY_SRC_DIR)/wtf/SHA1.cpp \ 62 | $(MY_SRC_DIR)/wtf/SixCharacterHash.cpp \ 63 | $(MY_SRC_DIR)/wtf/StackBounds.cpp \ 64 | $(MY_SRC_DIR)/wtf/StackStats.cpp \ 65 | $(MY_SRC_DIR)/wtf/StringPrintStream.cpp \ 66 | $(MY_SRC_DIR)/wtf/Threading.cpp \ 67 | $(MY_SRC_DIR)/wtf/WTFThreadData.cpp \ 68 | $(MY_SRC_DIR)/wtf/WordLock.cpp \ 69 | $(MY_SRC_DIR)/wtf/WorkQueue.cpp \ 70 | $(MY_SRC_DIR)/wtf/dtoa.cpp \ 71 | \ 72 | $(MY_SRC_DIR)/wtf/dtoa/bignum-dtoa.cc \ 73 | $(MY_SRC_DIR)/wtf/dtoa/bignum.cc \ 74 | $(MY_SRC_DIR)/wtf/dtoa/cached-powers.cc \ 75 | $(MY_SRC_DIR)/wtf/dtoa/diy-fp.cc \ 76 | $(MY_SRC_DIR)/wtf/dtoa/double-conversion.cc \ 77 | $(MY_SRC_DIR)/wtf/dtoa/fast-dtoa.cc \ 78 | $(MY_SRC_DIR)/wtf/dtoa/fixed-dtoa.cc \ 79 | $(MY_SRC_DIR)/wtf/dtoa/strtod.cc \ 80 | \ 81 | $(MY_SRC_DIR)/wtf/text/AtomicString.cpp \ 82 | $(MY_SRC_DIR)/wtf/text/AtomicStringImpl.cpp \ 83 | $(MY_SRC_DIR)/wtf/text/AtomicStringTable.cpp \ 84 | $(MY_SRC_DIR)/wtf/text/Base64.cpp \ 85 | $(MY_SRC_DIR)/wtf/text/CString.cpp \ 86 | $(MY_SRC_DIR)/wtf/text/StringBuilder.cpp \ 87 | $(MY_SRC_DIR)/wtf/text/StringImpl.cpp \ 88 | $(MY_SRC_DIR)/wtf/text/StringStatics.cpp \ 89 | $(MY_SRC_DIR)/wtf/text/StringView.cpp \ 90 | $(MY_SRC_DIR)/wtf/text/SymbolRegistry.cpp \ 91 | $(MY_SRC_DIR)/wtf/text/TextBreakIterator.cpp \ 92 | $(MY_SRC_DIR)/wtf/text/WTFString.cpp \ 93 | \ 94 | $(MY_SRC_DIR)/wtf/text/icu/UTextProvider.cpp \ 95 | $(MY_SRC_DIR)/wtf/text/icu/UTextProviderLatin1.cpp \ 96 | $(MY_SRC_DIR)/wtf/text/icu/UTextProviderUTF16.cpp \ 97 | \ 98 | $(MY_SRC_DIR)/wtf/threads/BinarySemaphore.cpp \ 99 | \ 100 | $(MY_SRC_DIR)/wtf/unicode/UTF8.cpp \ 101 | \ 102 | $(MY_SRC_DIR)/wtf/unicode/icu/CollatorICU.cpp \ 103 | \ 104 | $(MY_SRC_DIR)/wtf/OSAllocatorPosix.cpp \ 105 | $(MY_SRC_DIR)/wtf/ThreadIdentifierDataPthreads.cpp \ 106 | $(MY_SRC_DIR)/wtf/ThreadingPthreads.cpp \ 107 | \ 108 | $(MY_SRC_DIR)/wtf/generic/MainThreadGeneric.cpp \ 109 | $(MY_SRC_DIR)/wtf/generic/RunLoopGeneric.cpp \ 110 | $(MY_SRC_DIR)/wtf/generic/WorkQueueGeneric.cpp \ 111 | $(MY_SRC_DIR)/wtf/PlatformUserPreferredLanguagesUnix.cpp \ 112 | $(MY_SRC_DIR)/wtf/text/jsconly/TextBreakIteratorInternalICUJSCOnly.cpp 113 | 114 | include $(BUILD_STATIC_LIBRARY) 115 | -------------------------------------------------------------------------------- /patch/JavaScriptCore.patch: -------------------------------------------------------------------------------- 1 | diff --git inspector/JSGlobalObjectInspectorController.cpp inspector/JSGlobalObjectInspectorController.cpp 2 | index 16ddf55..7ca4c36 100644 3 | --- inspector/JSGlobalObjectInspectorController.cpp 4 | +++ inspector/JSGlobalObjectInspectorController.cpp 5 | @@ -49,7 +49,7 @@ 6 | #include "ScriptCallStackFactory.h" 7 | #include 8 | 9 | -#if OS(DARWIN) || (OS(LINUX) && !PLATFORM(GTK)) 10 | +#if OS(DARWIN) || (OS(LINUX) && !PLATFORM(GTK) && !defined(__ANDROID__)) 11 | #include 12 | #include 13 | #include 14 | @@ -187,7 +187,7 @@ void JSGlobalObjectInspectorController::pause() 15 | 16 | void JSGlobalObjectInspectorController::appendAPIBacktrace(ScriptCallStack* callStack) 17 | { 18 | -#if OS(DARWIN) || (OS(LINUX) && !PLATFORM(GTK)) 19 | +#if OS(DARWIN) || (OS(LINUX) && !PLATFORM(GTK) && !defined(__ANDROID__)) 20 | static const int framesToShow = 31; 21 | static const int framesToSkip = 3; // WTFGetBacktrace, appendAPIBacktrace, reportAPIException. 22 | 23 | diff --git runtime/DatePrototype.cpp runtime/DatePrototype.cpp 24 | index 5ef4e72..6724fbe 100644 25 | --- runtime/DatePrototype.cpp 26 | +++ runtime/DatePrototype.cpp 27 | @@ -44,7 +44,7 @@ 28 | #include 29 | #include 30 | 31 | -#if HAVE(LANGINFO_H) 32 | +#if HAVE(LANGINFO_H) && !defined(__ANDROID__) 33 | #include 34 | #endif 35 | 36 | diff --git runtime/JSObjectInlines.h runtime/JSObjectInlines.h 37 | index 1a7e823..08434f3 100644 38 | --- runtime/JSObjectInlines.h 39 | +++ runtime/JSObjectInlines.h 40 | @@ -45,7 +45,7 @@ void createListFromArrayLike(ExecState* exec, JSValue arrayLikeValue, RuntimeTyp 41 | double lengthAsDouble = lengthProperty.toLength(exec); 42 | if (UNLIKELY(scope.exception())) 43 | return; 44 | - RELEASE_ASSERT(lengthAsDouble >= 0.0 && lengthAsDouble == std::trunc(lengthAsDouble)); 45 | + RELEASE_ASSERT(lengthAsDouble >= 0.0 && lengthAsDouble == trunc(lengthAsDouble)); 46 | uint64_t length = static_cast(lengthAsDouble); 47 | for (uint64_t index = 0; index < length; index++) { 48 | JSValue next = arrayLikeValue.get(exec, index); 49 | diff --git runtime/MathObject.cpp runtime/MathObject.cpp 50 | index 3db16f8..63644c0 100644 51 | --- runtime/MathObject.cpp 52 | +++ runtime/MathObject.cpp 53 | @@ -30,6 +30,12 @@ 54 | #include 55 | #include 56 | 57 | +#ifdef __ANDROID__ 58 | +static double log2(double x) { 59 | + return log(x) / log(2.0); 60 | +} 61 | +#endif 62 | + 63 | namespace JSC { 64 | 65 | STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(MathObject); 66 | -------------------------------------------------------------------------------- /patch/WTF.patch: -------------------------------------------------------------------------------- 1 | diff --git wtf/Assertions.cpp wtf/Assertions.cpp 2 | index 4f39fb1..bcba312 100644 3 | --- wtf/Assertions.cpp 4 | +++ wtf/Assertions.cpp 5 | @@ -78,6 +78,11 @@ 6 | #include 7 | #endif 8 | 9 | +#ifdef __ANDROID__ 10 | +#include 11 | +#include 12 | +#endif 13 | + 14 | extern "C" { 15 | 16 | static void logToStderr(const char* buffer) 17 | diff --git wtf/DateMath.cpp wtf/DateMath.cpp 18 | index c992b60..1c421e6 100644 19 | --- wtf/DateMath.cpp 20 | +++ wtf/DateMath.cpp 21 | @@ -102,6 +102,19 @@ 22 | #include 23 | #endif 24 | 25 | +#ifdef __ANDROID__ 26 | +#include 27 | +static time_t timegm(struct tm* const t) { 28 | + static const time_t kTimeMax = ~(1L << (sizeof(time_t) * 8 - 1)); 29 | + static const time_t kTimeMin = (1L << (sizeof(time_t) * 8 - 1)); 30 | + time64_t result = timegm64(t); 31 | + if (result < kTimeMin || result > kTimeMax) { 32 | + return -1; 33 | + } 34 | + return result; 35 | +} 36 | +#endif 37 | + 38 | using namespace WTF; 39 | 40 | namespace WTF { 41 | diff --git wtf/ThreadIdentifierDataPthreads.cpp wtf/ThreadIdentifierDataPthreads.cpp 42 | index 1528dad..e9c8e4a 100644 43 | --- wtf/ThreadIdentifierDataPthreads.cpp 44 | +++ wtf/ThreadIdentifierDataPthreads.cpp 45 | @@ -43,6 +43,10 @@ 46 | #include 47 | #endif 48 | 49 | +#ifdef __ANDROID__ 50 | +#define PTHREAD_KEYS_MAX 1024 51 | +#endif 52 | + 53 | namespace WTF { 54 | 55 | pthread_key_t ThreadIdentifierData::m_key = PTHREAD_KEYS_MAX; 56 | -------------------------------------------------------------------------------- /patch/icu.patch: -------------------------------------------------------------------------------- 1 | diff --git common/Android.mk common/Android.mk 2 | index 00761ea..01ed13c 100644 3 | --- common/Android.mk 4 | +++ common/Android.mk 5 | @@ -145,15 +145,15 @@ include $(CLEAR_VARS) 6 | LOCAL_SRC_FILES += $(src_files) 7 | LOCAL_C_INCLUDES += $(c_includes) 8 | LOCAL_CFLAGS += $(local_cflags) -DPIC -fPIC 9 | +LOCAL_CPPFLAGS += -std=gnu++03 10 | LOCAL_SHARED_LIBRARIES += libdl 11 | -LOCAL_LDLIBS += $(local_ldlibs) 12 | LOCAL_MODULE_TAGS := optional 13 | LOCAL_MODULE := libicuuc 14 | LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk 15 | LOCAL_REQUIRED_MODULES += icu-data 16 | -include abi/cpp/use_rtti.mk 17 | -include external/stlport/libstlport.mk 18 | -include $(BUILD_SHARED_LIBRARY) 19 | +LOCAL_CPP_FEATURES += rtti 20 | +LOCAL_EXPORT_C_INCLUDES += $(LOCAL_PATH)/../../../gen/icu/include/icuuc 21 | +include $(BUILD_STATIC_LIBRARY) 22 | 23 | 24 | # 25 | diff --git i18n/Android.mk i18n/Android.mk 26 | index a9b7948..85749d6 100644 27 | --- i18n/Android.mk 28 | +++ i18n/Android.mk 29 | @@ -81,7 +81,7 @@ src_files += \ 30 | vzone.cpp fphdlimp.cpp fpositer.cpp\ 31 | locdspnm.cpp ucol_wgt.cpp \ 32 | alphaindex.cpp bocsu.cpp decfmtst.cpp \ 33 | - smpdtfst.cpp smpdtfst.h tzfmt.cpp \ 34 | + smpdtfst.cpp tzfmt.cpp \ 35 | tzgnames.cpp tznames.cpp tznames_impl.cpp \ 36 | udateintervalformat.cpp upluralrules.cpp 37 | 38 | @@ -105,14 +105,14 @@ include $(CLEAR_VARS) 39 | LOCAL_SRC_FILES += $(src_files) 40 | LOCAL_C_INCLUDES += $(c_includes) 41 | LOCAL_CFLAGS += $(local_cflags) -DPIC -fPIC 42 | +LOCAL_CPPFLAGS += -std=gnu++03 43 | LOCAL_SHARED_LIBRARIES += libicuuc 44 | -LOCAL_LDLIBS += $(local_ldlibs) 45 | LOCAL_MODULE_TAGS := optional 46 | LOCAL_MODULE := libicui18n 47 | LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk 48 | -include abi/cpp/use_rtti.mk 49 | -include external/stlport/libstlport.mk 50 | -include $(BUILD_SHARED_LIBRARY) 51 | +LOCAL_CPP_FEATURES += rtti 52 | +LOCAL_EXPORT_C_INCLUDES += $(LOCAL_PATH)/../../../gen/icu/include/icui18n 53 | +include $(BUILD_STATIC_LIBRARY) 54 | 55 | 56 | # 57 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Build Steps 2 | 3 | Follow to build steps below. 4 | 5 | ## Select ABIs 6 | 7 | Select ABIs and write to `jni/Application.mk`. 8 | `armeabi-v7a` only is default. 9 | You can put multiple archs here normally. 10 | 11 | ## Get ICU 12 | 13 | - Package URL is `https://android.googlesource.com/platform/external/icu4c/+/android-4.4.4_r2.0.1` 14 | 15 | ``` 16 | $ cd dep 17 | $ git clone https://android.googlesource.com/platform/external/icu4c icu 18 | $ cd icu 19 | $ git checkout android-4.4.4_r2.0.1 20 | ``` 21 | 22 | ## Patch ICU 23 | 24 | ``` 25 | $ cd dep/icu 26 | $ patch -p0 < ../../patch/icu.patch 27 | ``` 28 | 29 | ## Prepare ICU 30 | 31 | ``` 32 | $ script/prepare-icu.rb 33 | ``` 34 | 35 | ## Build ICU 36 | 37 | ``` 38 | $ ndk-build icuuc 39 | $ ndk-build icui18n 40 | ``` 41 | 42 | ## Get WebKit 43 | 44 | - Package URL is `https://trac.webkit.org/browser/releases/WebKitGTK/webkit-2.13.4` 45 | - svn commit is `releases/WebKitGTK/webkit-2.13.4@205581` 46 | 47 | ``` 48 | $ cd dep 49 | $ git clone git://git.webkit.org/WebKit.git WebKit 50 | $ cd WebKit 51 | $ Tools/Scripts/webkit-patch setup-git-clone 52 | $ git checkout 4f72f2a8897d6dbd07d85a2b30c4197bec8fcd72 53 | ``` 54 | 55 | ## Patch WTF 56 | 57 | ``` 58 | $ cd dep/WebKit/Source/WTF 59 | $ patch -p0 < ../../../../patch/WTF.patch 60 | ``` 61 | 62 | ## Build WTF 63 | 64 | ``` 65 | $ ndk-build wtf 66 | ``` 67 | 68 | ## Patch JavaScriptCore 69 | 70 | ``` 71 | $ cd dep/Webkit/Source/JavaScriptCore 72 | $ patch -p0 < ../../../../patch/JavaScriptCore.patch 73 | ``` 74 | 75 | ## Prepare JavaScriptCore (1/2) 76 | 77 | ``` 78 | $ script/prepare-jsc.rb 1 79 | ``` 80 | 81 | ## Build JIT Information Binary 82 | 83 | ``` 84 | $ ndk-build jsc-offsets 85 | ``` 86 | 87 | ## Prepare JavaScriptCore (2/2) 88 | 89 | ``` 90 | $ script/prepare-jsc.rb 2 91 | ``` 92 | 93 | ## Build JavaScriptCore 94 | 95 | ``` 96 | $ ndk-build jsc 97 | ``` 98 | 99 | ## Link All 100 | 101 | ``` 102 | $ ndk-build jscore 103 | ``` 104 | 105 | ## Install 106 | 107 | ``` 108 | $ ndk-build 109 | ``` 110 | 111 | You can get library at `libs//libjscore.so`. 112 | You do **not** need `libs//libjsc_offsets.so`. 113 | Use headers at `gen/jsc/include`. 114 | 115 | # License 116 | 117 | My build assets is MIT. 118 | 119 | Be careful that JavaScriptCore is LGPL. 120 | Generated binaries are protected it too. 121 | 122 | -------------------------------------------------------------------------------- /script/lib/common.rb: -------------------------------------------------------------------------------- 1 | require "pathname" 2 | 3 | $common_rb = {} 4 | 5 | $common_rb.tap {|c| 6 | c[:script_lib_dir] = Pathname(__FILE__).parent.expand_path 7 | c[:script_dir] = c[:script_lib_dir].parent 8 | c[:repo_dir] = c[:script_dir].parent 9 | c[:patch_dir] = c[:repo_dir] + "patch" 10 | c[:dep_dir] = c[:repo_dir] + "dep" 11 | c[:gen_dir] = c[:repo_dir] + "gen" 12 | c[:icu_gen_dir] = c[:gen_dir] + "icu" 13 | c[:jsc_gen_dir] = c[:gen_dir] + "jsc" 14 | c[:icu_dir] = c[:dep_dir] + "icu" 15 | c[:webkit_dir] = c[:dep_dir] + "WebKit" 16 | c[:wtf_dir] = c[:webkit_dir] + "Source/WTF" 17 | c[:jsc_dir] = c[:webkit_dir] + "Source/JavaScriptCore" 18 | } 19 | 20 | def repo_dir 21 | $common_rb[:repo_dir] 22 | end 23 | 24 | def script_dir 25 | $common_rb[:script_dir] 26 | $script_dir 27 | end 28 | 29 | def patch_dir 30 | $common_rb[:patch_dir] 31 | end 32 | 33 | def icu_gen_dir 34 | $common_rb[:icu_gen_dir] 35 | end 36 | 37 | def icu_dir 38 | $common_rb[:icu_dir] 39 | end 40 | 41 | def jsc_gen_dir 42 | $common_rb[:jsc_gen_dir] 43 | end 44 | 45 | def jsc_dir 46 | $common_rb[:jsc_dir] 47 | end 48 | 49 | def exec(command) 50 | system(command) 51 | st = $? 52 | if ! st.success? 53 | raise "exec failed: status=#{st}, command=#{command}" 54 | end 55 | end 56 | 57 | def exec_capture(command) 58 | capture = `#{command}` 59 | st = $? 60 | if ! st.success? 61 | raise "exec failed: status=#{st}, command=#{command}" 62 | end 63 | return capture 64 | end 65 | -------------------------------------------------------------------------------- /script/prepare-icu.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require "pathname" 4 | require "fileutils" 5 | require "shellwords" 6 | require_relative "lib/common" 7 | 8 | class PrepareIcuScript 9 | def main 10 | make_include_dir 11 | end 12 | 13 | def make_include_dir 14 | puts "make_include_dir" 15 | 16 | Dir.chdir(icu_dir.to_s) 17 | 18 | include_dir = icu_gen_dir + "include" 19 | 20 | if include_dir.exist? 21 | include_dir.rmtree 22 | end 23 | 24 | uc_dir = include_dir + "icuuc" 25 | uc_dir.mkpath 26 | FileUtils.cp_r((icu_dir + "common/unicode").to_s, uc_dir.to_s) 27 | 28 | i18n_dir = include_dir + "icui18n" 29 | i18n_dir.mkpath 30 | FileUtils.cp_r((icu_dir + "i18n/unicode").to_s, i18n_dir.to_s) 31 | 32 | puts "done" 33 | end 34 | end 35 | 36 | PrepareIcuScript.new.main 37 | -------------------------------------------------------------------------------- /script/prepare-jsc.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require "pathname" 4 | require "fileutils" 5 | require "shellwords" 6 | require_relative "lib/common" 7 | 8 | class PrepareJscScript 9 | def main 10 | if ARGV.length < 1 11 | throw "missing stage number" 12 | end 13 | 14 | stage = ARGV.shift 15 | 16 | Dir.chdir(jsc_dir.to_s) 17 | 18 | case stage 19 | when "clean" 20 | clean_gen_dir 21 | when "1" 22 | make_include_dir 23 | generate_bytecodes_files 24 | generate_jsc_builtins 25 | generate_inspector_json 26 | generate_inspector_bindings 27 | generate_injected_script_source 28 | generate_llint_desired_offsets_h 29 | generate_keyword_lookup_h 30 | generate_lut_headers 31 | generate_regexp_jit_tables_h 32 | generate_yarr_canonicalize_unicode 33 | when "2" 34 | generate_llint_assembly 35 | end 36 | end 37 | 38 | def clear_gen_dir 39 | if jsc_gen_dir.exist? 40 | jsc_gen_dir.rmtree 41 | end 42 | jsc_gen_dir.mkpath 43 | end 44 | 45 | def make_include_dir 46 | puts "make_include_dir" 47 | include_dir = jsc_gen_dir + "include" 48 | 49 | if include_dir.exist? 50 | include_dir.rmtree 51 | end 52 | 53 | dir = include_dir + "JavaScriptCore" 54 | dir.mkpath 55 | 56 | headers = [ 57 | "JSBase.h", 58 | "JSContextRef.h", 59 | "JSObjectRef.h", 60 | "JSStringRef.h", 61 | "JSValueRef.h", 62 | "WebKitAvailability.h" 63 | ] 64 | 65 | FileUtils.cp(headers.map{|x| 66 | (jsc_dir + "API" + x).to_s 67 | }, dir.to_s) 68 | 69 | FileUtils.cp((repo_dir + "src/JavaScriptCore.h").to_s, dir.to_s) 70 | 71 | puts "done" 72 | end 73 | 74 | def generate_bytecodes_files 75 | puts "generate_bytecodes_h" 76 | 77 | cmd = [ 78 | "python", 79 | (jsc_dir + "generate-bytecode-files").to_s, 80 | "--bytecodes_h", 81 | (jsc_gen_dir + "Bytecodes.h").to_s, 82 | "--init_bytecodes_asm", 83 | (jsc_gen_dir + "InitBytecodes.asm").to_s, 84 | (jsc_dir + "bytecode/BytecodeList.json").to_s 85 | ].shelljoin 86 | exec(cmd) 87 | 88 | puts "done" 89 | end 90 | 91 | def generate_jsc_builtins 92 | puts "generate_jsc_builtins" 93 | 94 | sources = Pathname.glob("builtins/*.js").map {|x| x.to_s } 95 | cmd = ([ 96 | "python", 97 | (jsc_dir + "Scripts/generate-js-builtins.py").to_s, 98 | "--framework", 99 | "JavaScriptCore", 100 | "--output-directory", 101 | (jsc_gen_dir).to_s, 102 | "--combined" 103 | ] + sources).shelljoin 104 | exec(cmd) 105 | 106 | puts "done" 107 | end 108 | 109 | def generate_inspector_json 110 | puts "generate_inspector_json" 111 | 112 | inspector_domains = [ 113 | "ApplicationCache.json", 114 | "CSS.json", 115 | "Console.json", 116 | "DOM.json", 117 | "DOMDebugger.json", 118 | "DOMStorage.json", 119 | "Database.json", 120 | "Debugger.json", 121 | "GenericTypes.json", 122 | "Heap.json", 123 | "Inspector.json", 124 | "LayerTree.json", 125 | "Network.json", 126 | "OverlayTypes.json", 127 | "Page.json", 128 | "Runtime.json", 129 | "ScriptProfiler.json", 130 | "Timeline.json" 131 | ].map {|x| 132 | (jsc_dir + "inspector/protocol" + x).to_s 133 | } 134 | 135 | cmd = ([ 136 | "python", 137 | (jsc_dir + "Scripts/generate-combined-inspector-json.py").to_s 138 | ] + inspector_domains).shelljoin 139 | 140 | cmd_out = (jsc_gen_dir + "CombinedDomains.json").to_s.shellescape 141 | 142 | exec("#{cmd} > #{cmd_out}") 143 | 144 | puts "done" 145 | end 146 | 147 | def generate_inspector_bindings 148 | puts "generate_inspector_bindings" 149 | 150 | scripts_dir = jsc_dir + "inspector/scripts" 151 | output_dir = jsc_gen_dir + "inspector" 152 | 153 | output_dir.mkpath 154 | 155 | cmd = [ 156 | "python", 157 | (scripts_dir + "generate-inspector-protocol-bindings.py").to_s, 158 | "--outputDir", 159 | output_dir.to_s, 160 | "--framework", 161 | "JavaScriptCore", 162 | (jsc_gen_dir + "CombinedDomains.json").to_s 163 | ].shelljoin 164 | exec(cmd) 165 | puts "done" 166 | end 167 | 168 | def generate_injected_script_source 169 | puts "generate_injected_script_source" 170 | 171 | iss_minjs = (jsc_gen_dir + "InjectedScriptSource.min.js").to_s 172 | 173 | cmd = [ 174 | "echo", 175 | "//# sourceURL=__InjectedScript_InjectedScriptSource.js" 176 | ].shelljoin 177 | cmd_out = iss_minjs.shellescape 178 | 179 | exec("#{cmd} > #{cmd_out}") 180 | 181 | cmd = [ 182 | "python", 183 | (jsc_dir + "Scripts/jsmin.py").to_s 184 | ].shelljoin 185 | cmd_in = (jsc_dir + "inspector/InjectedScriptSource.js").to_s.shellescape 186 | cmd_out = iss_minjs.shellescape 187 | 188 | exec("#{cmd} < #{cmd_in} >> #{cmd_out}") 189 | 190 | cmd = [ 191 | "perl", 192 | (jsc_dir + "Scripts/xxd.pl").to_s, 193 | "InjectedScriptSource_js", 194 | iss_minjs, 195 | (jsc_gen_dir + "InjectedScriptSource.h").to_s 196 | ].shelljoin 197 | 198 | exec(cmd) 199 | 200 | puts "done" 201 | end 202 | 203 | def generate_llint_desired_offsets_h 204 | puts "generate_llint_desired_offsets_h" 205 | 206 | cmd = [ 207 | "ruby", 208 | (jsc_dir + "offlineasm/generate_offset_extractor.rb").to_s, 209 | "-I" + jsc_gen_dir.to_s, 210 | (jsc_dir + "llint/LowLevelInterpreter.asm").to_s, 211 | (jsc_gen_dir + "LLIntDesiredOffsets.h").to_s 212 | ].shelljoin 213 | exec(cmd) 214 | 215 | puts "done" 216 | end 217 | 218 | def generate_keyword_lookup_h 219 | puts "generate_keyword_lookup_h" 220 | 221 | cmd = [ 222 | "python", 223 | (jsc_dir + "KeywordLookupGenerator.py").to_s, 224 | (jsc_dir + "parser/Keywords.table").to_s, 225 | ].shelljoin 226 | 227 | cmd_out = (jsc_gen_dir + "KeywordLookup.h").to_s.shellescape 228 | 229 | exec("#{cmd} > #{cmd_out}") 230 | 231 | puts "done" 232 | end 233 | 234 | def generate_lut_headers 235 | sources = [ 236 | "ArrayConstructor.cpp", 237 | "ArrayIteratorPrototype.cpp", 238 | "BooleanPrototype.cpp", 239 | "DateConstructor.cpp", 240 | "DatePrototype.cpp", 241 | "ErrorPrototype.cpp", 242 | "GeneratorPrototype.cpp", 243 | "InspectorInstrumentationObject.cpp", 244 | "IntlCollatorConstructor.cpp", 245 | "IntlCollatorPrototype.cpp", 246 | "IntlDateTimeFormatConstructor.cpp", 247 | "IntlDateTimeFormatPrototype.cpp", 248 | "IntlNumberFormatConstructor.cpp", 249 | "IntlNumberFormatPrototype.cpp", 250 | "JSDataViewPrototype.cpp", 251 | "JSGlobalObject.cpp", 252 | "JSInternalPromiseConstructor.cpp", 253 | "JSONObject.cpp", 254 | "JSPromiseConstructor.cpp", 255 | "JSPromisePrototype.cpp", 256 | "MapPrototype.cpp", 257 | "ModuleLoaderPrototype.cpp", 258 | "NumberConstructor.cpp", 259 | "NumberPrototype.cpp", 260 | "ObjectConstructor.cpp", 261 | "ReflectObject.cpp", 262 | "RegExpConstructor.cpp", 263 | "RegExpPrototype.cpp", 264 | "SetPrototype.cpp", 265 | "StringConstructor.cpp", 266 | "StringIteratorPrototype.cpp", 267 | "StringPrototype.cpp", 268 | "SymbolConstructor.cpp", 269 | "SymbolPrototype.cpp" 270 | ] 271 | 272 | for source in sources 273 | lut_name = File.basename(source, ".*") + ".lut.h" 274 | 275 | generate_lut_header( 276 | jsc_dir + "runtime" + source, 277 | jsc_gen_dir + lut_name) 278 | end 279 | 280 | generate_lut_header( 281 | jsc_dir + "parser/Keywords.table", 282 | jsc_gen_dir + "Lexer.lut.h") 283 | end 284 | 285 | def generate_lut_header(src, out) 286 | puts "generate_lut_header(#{out.basename.to_s})" 287 | 288 | cmd = [ 289 | "perl", 290 | (jsc_dir + "create_hash_table").to_s, 291 | src.to_s, 292 | "-i" 293 | ].shelljoin 294 | 295 | cmd_out = out.to_s.shellescape 296 | 297 | exec("#{cmd} > #{cmd_out}") 298 | 299 | puts "done" 300 | end 301 | 302 | def generate_regexp_jit_tables_h 303 | puts "generate_regexp_jit_tables_h" 304 | 305 | cmd = [ 306 | "python", 307 | (jsc_dir + "create_regex_tables").to_s 308 | ].shelljoin 309 | cmd_out = (jsc_gen_dir + "RegExpJitTables.h").to_s.shellescape 310 | 311 | exec("#{cmd} > #{cmd_out}") 312 | 313 | puts "done" 314 | end 315 | 316 | def generate_yarr_canonicalize_unicode 317 | puts "generate_yarr_canonicalize_unicode" 318 | 319 | cmd = [ 320 | "python", 321 | (jsc_dir + "generateYarrCanonicalizeUnicode").to_s, 322 | (jsc_dir + "ucd/CaseFolding.txt").to_s, 323 | (jsc_gen_dir + "YarrCanonicalizeUnicode.cpp").to_s 324 | ].shelljoin 325 | 326 | exec(cmd) 327 | 328 | puts "done" 329 | end 330 | 331 | def generate_llint_assembly 332 | archs = Pathname.glob(repo_dir.to_s + "/obj/local/*/libjsc_offsets.so").map {|x| 333 | x.parent.basename.to_s 334 | } 335 | for arch in archs 336 | generate_llint_assembly_arch(arch) 337 | end 338 | end 339 | 340 | def generate_llint_assembly_arch(arch) 341 | puts "generate_llint_assembly(arch=#{arch})" 342 | 343 | out_dir = jsc_gen_dir + arch 344 | out_dir.mkpath 345 | 346 | cmd = [ 347 | "ruby", 348 | (jsc_dir + "offlineasm/asm.rb").to_s, 349 | "-I" + jsc_gen_dir.to_s, 350 | (jsc_dir + "llint/LowLevelInterpreter.asm").to_s, 351 | (repo_dir + "obj/local" + arch + "libjsc_offsets.so").to_s, 352 | (out_dir + "LLIntAssembly.h").to_s 353 | ].shelljoin 354 | exec(cmd) 355 | 356 | puts "done" 357 | end 358 | 359 | end 360 | 361 | PrepareJscScript.new.main 362 | -------------------------------------------------------------------------------- /src/JavaScriptCore.h: -------------------------------------------------------------------------------- 1 | #ifndef JavaScriptCore_h 2 | #define JavaScriptCore_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #endif 11 | --------------------------------------------------------------------------------